在.NET应用程序中使用Websphere MQ和JMS

时间:2009-11-20 15:34:40

标签: c# .net jms ibm-mq

我正在尝试通过使用JMS作为传输协议的Websphere MQ向java服务器发送消息。我很高兴使用IBM提供的库在MQ上删除消息,但服务器拒绝它们。我假设(希望正确)这是因为我在MQ消息上缺少各种JMS特定的头/属性。

我已经通过检查队列来确保消息的有效负载是相同的(如果有帮助,它们都是映射消息),但是不想完全实现JMS Websphere MQ protocol只是为了让它工作。

我想知道是否有人设法让这个工作,如果是这样,你需要在JMS头中指定的最小信息量是多少?是否有任何替代方法可以直接在MQ上执行此操作(我已经看到了一些关于使用java互操作的东西,但这是我认为会有些过分的。)

非常感谢任何帮助!

4 个答案:

答案 0 :(得分:2)

您可以粘贴用于阅读邮件的Java代码吗?该代码是否假定消息是“MapMessage”。通常,从非Java客户端放入队列的内容将显示为TextMessage或BytesMessage。

WebsphereMQ JMS api通常可以在没有JMS头的情况下读取这些消息,只要您将其作为TextMessage / BytesMessage读取即可。

在我的服务器代码中,我的内容通常以字节形式放入队列,因此显示为BytesMessage,但为了防止我收到手动放入队列的消息,我抓住classcastexception,并测试到看看它是否实际上是一个TextMessage。

答案 1 :(得分:1)

WebSphere MQ没有非常明确的错误消息。我建议在出现问题时检查的事项是:

  1. 异常详情及其递归原因。
  2. MQ错误日志。
  3. MQ提供的事件日志。
  4. .FDC文件。

答案 2 :(得分:1)

您是否尝试使用MQI发送JMS消息?看一下IBM的XMS库。他们将提供您需要的一切。这些库提供了与WebsphereMQ一起使用的JMS的.NET实现。在过去的一年里,我曾多次使用这些库,在java和.net系统之间进行交流,并且对这些功能非常满意。

XMS .NET Library Download

答案 3 :(得分:0)

我认为我有同样的问题,我无法让XMS工作。万一你仍然有问题,this might help

关心Kristoffer