【问题标题】:WCF IBM Websphere MQ Communication (WCF Listener)WCF IBM Websphere MQ 通信(WCF 侦听器)
【发布时间】:2016-03-20 19:17:14
【问题描述】:

我有一个 wcf 服务,它执行一些代码并将消息发送到托管在 linux 服务器上的 IBM WebSphere MQ。我可以很好地从队列中放置和获取消息。我想知道的是,有没有一种方法可以在将消息发送到队列时激活侦听器服务(WCF)来处理这些消息? (this can be done by using netmsmqbinding and WAS for MSMQ)

我进行了很多研究,但找不到任何让我认为这甚至可能的代码示例......

我查看了一些answers,但它们没有链接 wcf 和 mq 部分。一个类似的问题是WCF / WebService to act as Listener for MQ Message?,但没有具体的答案。我也看过Listening to new enqueued messages using WCF Service

所以这种情况让我认为我唯一的选择是编写一个 Windows 服务,在一段时间后侦听(轮询,即调用 get 方法)队列或编写一个执行相同操作的控制台应用程序。

有人有更优雅的解决方案吗?

【问题讨论】:

  • 队列在java中,你想让c#代码监听java服务器吗?
  • @ilansch 它是一个运行 IBM Websphere MQ 安装的 linux 服务器...
  • 如此处所述:ibm.com/support/knowledgecenter/SSFKSJ_7.5.0/com.ibm.mq.dev.doc/… - 您可以使用自托管或 Windows 服务。
  • @Shashi 我看了看,我理解的是,使用 Windows 服务/自托管我将不得不定期调用 Get 方法来从队列中检索消息。我想知道有没有其他方法可以做到这一点?
  • 不,你有两个选择。

标签: c# web-services wcf ibm-mq


【解决方案1】:

触发可能是一种选择。 WebSphere MQ 可以在消息到达队列时启动应用程序:

http://www-01.ibm.com/support/docview.wss?uid=swg27020075&aid=1

由于您要触发不在队列管理器服务器上运行的应用程序,您将需要这样的触发器监视器:

http://www-01.ibm.com/support/docview.wss?uid=swg24000149

【讨论】:

  • 根据我对触发的理解,我将在队列管理器中配置一个触发监视器(服务),只要有消息进入队列,它就会启动。但是我的服务将作为 Windows 服务托管的 wcf 服务,那么触发器服务将如何与它通信?还是我错过了什么……
  • 如果您将程序作为 Windows 服务运行,则需要发出定期获取。触发可用于启动处理消息的程序,也可用于调用启动 Windows 服务的脚本,但我认为仅发出定期获取不会更好。
猜你喜欢
  • 2018-01-19
  • 2010-12-04
  • 2015-07-20
  • 2012-07-11
  • 2011-01-20
  • 2010-12-04
  • 1970-01-01
  • 2021-09-17
  • 1970-01-01
相关资源
最近更新 更多