首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WCF服务和COBOL VM

WCF服务和COBOL VM
EN

Stack Overflow用户
提问于 2014-07-30 01:32:23
回答 2查看 253关注 0票数 6

我们有一个当前运行的WCF服务和COBOL VM通信,以提供对Vision文件中数据的访问。该过程可以工作,但我们必须将WCF服务限制为[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Single)]。它可以工作,但有时对用户来说似乎很慢,因为他们正在排队,一些请求有时长于几秒钟。

COBOL VM是单例的,所以我不相信我可以将我的COBOL程序从多个WCF服务请求中隔离出来,而不是让它们彼此冲突。COBOL程序无法知道对哪个客户机的调用,它只是返回/操作数据。

我的想法是用COBOL创建一个程序来管理我的请求,但我不确定如何将该信息返回给WCF服务,以便它响应正确的客户端请求。

我的想法是传递一些WCF客户端请求的ID,比如guid。COBOL程序将存储WCF guid并调用另一个程序,该程序使用该guid在COBOL中为我获取数据。然后,COBOL程序返回带有ID的数据,但是我需要一些方法来确保正确的请求数据被路由到正确的WCF客户机请求。

流程:

代码语言:javascript
复制
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客户端。

我在正确的轨道上吗?

EN

回答 2

Stack Overflow用户

发布于 2014-09-19 20:56:36

我看到"COBOL getData“一次处理一个请求,因为它是单例的。如果您将wcf实例设置为singleton,则来自客户端的所有请求都将是连续的,一个请求将等待另一个请求。因此,您不需要在另一个cobol程序"COBOL program 1“中管理带有ID的请求。只需在下面添加服务行为

代码语言:javascript
复制
[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Single, InstanceContextMode = InstanceContextMode.Single)]
票数 0
EN

Stack Overflow用户

发布于 2014-09-22 16:59:43

如果您希望您的服务在不阻塞GUI的情况下更好地响应客户端,则必须使用回调来构建您的服务。将你的cobol程序调用者放在一个单例类中,并同步它以防止并发访问。在您的WCF服务方法中,在线程池操作中调用cobol调用方。cobol程序返回后,调用您的回调通知客户端。只有nettcpbinding、namedpipebinding和wsdualhttpbindins支持回调操作。

请查看以下链接:

Duplex Services

What You Need To Know About One-Way Calls, Callbacks, And Events

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25021511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档