Служба WCF и виртуальная машина COBOLC#

Место общения программистов C#
Anonymous
Служба WCF и виртуальная машина COBOL

Сообщение Anonymous »

У нас есть действующая служба WCF и виртуальная машина COBOL, обеспечивающая доступ к данным из файлов Vision. Процесс работает, но нам придется ограничить службу WCF значением [ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Single)]. Он работает, но иногда кажется пользователям медленным, поскольку они поставлены в очередь, а некоторые запросы иногда длятся более пары секунд.

COBOL VM — это Singleton, поэтому я не верю, что смогу изолировать свою программу COBOL от нескольких запросов службы WCF, не наступая друг на друга. Программа COBOL не имеет возможности узнать, какой вызов для какого клиента, она просто возвращает/манипулирует данными.

Я думаю создать программу на COBOL, которая будет управлять моими запросы для меня, но я не уверен, как вернуть эту информацию в службу WCF, чтобы она ответила на правильный запрос клиента.

Я думаю передать некоторый идентификатор запроса клиента WCF, например руководство. Программа COBOL сохранит руководство WCF и вызовет другую программу, которая получит для меня данные в COBOL, используя это руководство. Затем программа COBOL возвращает данные с идентификатором, но мне нужен какой-то способ убедиться, что правильные запрошенные данные направляются в правильный запрос клиента WCF.

ПРОЦЕСС:

Код: Выделить всё

WCF Client 1->WCF Service (creates WCF_id1)->COBOL program 1(WCF_id1)->COBOL getData(WCF_id1).
WCF Client 2->WCF Service (creates WCF_id2)->COBOL program 1(WCF_id2)->COBOL getData(WCF_id2).
WCF Service stores both Wcf_id1 and Wcf_id2 somehow associating them with the WCF Client that requested them.

COBOL program 1 stores both Wcf_id1 and Wcf_id2 and makes the request to COBOL getData individually passing in the ids.
Both Client 1 and Client 2 are waiting for a response.

COBOL getData(WCF_id2)->COBOL program 1(WCF_id2)->WCF Service(WCF_id2)
Как я могу убедиться, что эти данные получает клиент WCF 2, а не клиент WCF 1?

Я хочу просмотреть данные, возвращенные программой COBOL, а затем направить их клиенту, который их запросил. Возможно ли это в WCF?

Я изучал обратные вызовы WCF, думая, что смогу использовать обратный вызов для запроса WCF_id, а затем вернуть данные в правильный клиент WCF.

Я на правильном пути? Стоит ли мне искать другие возможности WCF?

Подробнее здесь: https://stackoverflow.com/questions/250 ... d-cobol-vm

Вернуться в «C#»