我们目前有一个正在运行的WCF服务和COBOL虚拟机进行通信,以提供对Vision文件中数据的访问。这个过程是有效的,但我们必须将WCF服务限制为
COBOL VM是单例的,所以我认为我不能在多个WCF服务请求之间隔离我的COBOL程序,否则它们会相互干扰。COBOL程序没有办法知道哪个调用是为哪个客户端,它只是返回/操作数据。
我的想法是创建一个COBOL程序来为我管理请求,但我不确定如何将那些信息传回WCF服务,以便正确响应客户端请求。
我的想法是传递一些WCF客户端请求的ID,例如guid。COBOL程序将存储WCF guid并调用另一个程序,在COBOL中使用guid获取数据。然后,COBOL程序将返回带有ID的数据,但我需要某种方法来确保正确的请求数据被路由到正确的WCF客户端请求。
流程如下:
[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Single)]
。它有效,但有时用户会感觉慢,因为他们被排队了,有些请求有时长达几秒钟。COBOL VM是单例的,所以我认为我不能在多个WCF服务请求之间隔离我的COBOL程序,否则它们会相互干扰。COBOL程序没有办法知道哪个调用是为哪个客户端,它只是返回/操作数据。
我的想法是创建一个COBOL程序来为我管理请求,但我不确定如何将那些信息传回WCF服务,以便正确响应客户端请求。
我的想法是传递一些WCF客户端请求的ID,例如guid。COBOL程序将存储WCF guid并调用另一个程序,在COBOL中使用guid获取数据。然后,COBOL程序将返回带有ID的数据,但我需要某种方法来确保正确的请求数据被路由到正确的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功能?