问题标签 [xms]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
297 浏览

ibm-mq - IBM XMS Websphere MQ 多线程

我使用 xms.net 8.0.0.8,我想在 Web 应用程序中启动多线程 xms 侦听器。

我使用 new Thread t=new Thread()... 开始处理消息代码

但是出了点问题,线程被卡住并且没有读取消息?如果有人有 Web 应用程序的多线程 xms 示例可以分享或告诉我的错误?或者这是 xms 中多线程的任何错误?

0 投票
0 回答
47 浏览

c++ - 在使用 IBM MQ XMS API 发送之前测试消息的长度

我是 XMS 的初学者,我很难找到解决问题的方法。我希望你能帮助我找到解决方案,或者至少帮我一把。

因此,在我的项目中,我使用 IBM MQ XMS API 来发送和接收消息。它运作良好,但只有一个问题。当用户发送高于Max Msg Length的消息时,它会触发一般异常。在该异常中,有针对各种错误情况的处理,但缺少对该特定异常的处理。

在发送之前测试消息长度是否低于服务器上定义的Max Msg Length的最佳方法是什么?或者至少我应该如何更准确地捕获该异常的触发器?

(对不起,我不能发布代码,因为它属于我工作的公司)

0 投票
0 回答
173 浏览

c# - 每个 IMessageConsumer 或 IMessageProducer 是否应该有自己的 ISession?

要建立连接,需要以下对象:

我的情况是我必须连接到 5 个队列Consumer和 5 个队列Producer。看了很多,得出的结论IConnection应该是单实例对象。但是我开始提问的地方是;我是否必须ISession为每个队列连接创建新对象?或者这也可以是单实例?

引自IBM 文档

会话是用于发送和接收消息的单线程上下文。

如果应用程序必须在多个线程上同时处理消息,则应用程序必须在每个线程上创建一个会话,然后将该会话用于该线程内的任何发送或接收操作。

那么我们可以得出结论,每个队列连接都必须有一个会话吗?换句话说,这意味着我必须创建 10 ISession、 10 IDestination、 5IMessageConsumer和 5 个IMessageProducer对象。我对吗?这里的最佳做法是什么?

我还在某处读到,新ISession创建将根据SHARECNV值建立一个新的 TCP 连接(如果为 1,则每个会话都是一个新的 TCP 连接)。那么使用单实例有什么意义IConnection呢?

伪代码

创建连接

对所有传入消息执行 5 次

对所有传出消息执行 5 次

开始连接

处置连接

0 投票
0 回答
51 浏览

ibm-mq - IBM MQ:我是否必须在多线程上下文中锁定 ISession 对象?

在文档中,我看到以下句子:

一个 Session 对象在任何时候都只能在一个线程上使用。(来源

这是否意味着如果我的应用程序是多线程的,并且如果我的ISession对象可以被多个线程访问,那么ISession每当我使用它们时我必须锁定对象以便同步访问这些对象?

我在发送消息时使用ISession对象(这里我处于多线程上下文中,所以我应该在这里锁定 ISession 对象吗?)

示例代码:

0 投票
2 回答
603 浏览

ibm-mq - 为 XMS.NET 中的每个连接配置单独的 CCDT 文件

作为我们合作伙伴的要求,我们必须在不同的端口上建立 MQ 连接。并且要求为每个端口配置单独的 CCDT 文件,因为。所有连接都在一个客户端应用程序(一个Process)上进行。

因为我们的客户端应用程序是一个Process,所以我不能分别为每个端口配置以下环境变量。

如何设置环境变量以配置客户端通道定义(这是 .NET C#):

我们的问题;我们必须在连接级别而不是在进程或全局级别设置这些环境变量。有什么建议么?

以下更新来自评论和聊天中收集的信息:

  1. 要求是使用 XMS.NET 配置 Header 和 Message 压缩。
  2. 根据 IBM 对 IBM 社区论坛帖子“带有 C# .NET 的 IBM.XMS 上的标头和消息压缩”的回答, XMS.NET 只能使用 CCDT 进行压缩。
  3. CCDT 条目有QMNAME(*).
  4. CCDT 条目之间的区别仅在于PORT.
0 投票
0 回答
90 浏览

ibm-mq - 在 XMS 和非托管模式下设置 WMQ_CCDTURL 不起作用

我做了很多研究,现在我作为客户在我们的实施中陷入了后期......

简而言之,要求是:

  • SSL
  • 客户端应用程序执行负载平衡。我们需要在一个应用程序中使用单独的 CCDT 文件,以便我们自己处理所有连接。
  • 非托管模式用于 SSL
  • XMS 用于传入消息的异步自动消费,而不是轮询队列
  • 使用 IBM MQ Client V8.0.0.5

  • 我们连接到 4 个 QM。除了端口之外,4 个连接中的所有内容都相同。QM 名称为“*”。

要配置单独的 CCDT 文件,我们可以配置XMSC.WMQ_CCDTURL,但在非托管模式下,这是 ingored。如果我只将连接模式更改为 CLIENT 模式 (CT_WMQ),那么它会在正确的配置目录中查找。但是当使用非托管模式时,这个属性会被忽略。

这个问题也在这里问:https ://www.ibm.com/developerworks/community/forums/html/topic?id=0268e8f5-8562-4b28-a621-32e20dee0c53

我尝试相同的设置,一次使用客户端模式,一次使用非托管模式。事件查看器提供与 CCDT 相关的不同输出。在非托管模式下,它会查找默认位置。

请帮助为这 4 个单独的连接设置单独的 CCDTURL。不要要求我使用其中包含所有已定义连接的 CCDT,这不是我们想要的,因为我们想自己进行负载平衡。

0 投票
2 回答
202 浏览

ibm-mq - IBM.XMS 标头和消息压缩

请在下面查看我的代码片段:

  1. amqmdnet(这可行,但我们更喜欢 IBM.XMS,因为我们可以进行异步消费)
  2. XMS 与 CCDT 文件
  3. 具有压缩属性的 XMS

我们尝试了所有可能的方式来配置压缩(在 XMS 中)。我真的很感谢你的帮助,如果有人可以帮助...

0 投票
1 回答
376 浏览

ibm-mq - 当连接被禁止关闭时,IBM XMS.Net 侦听器挂起

嗨,我使用 webpshere mq 客户端 8.0.0.8,我立即设置了我的侦听器并开始侦听 mq,但是出了点问题并且 myconnection 已关闭但它没有引发错误并且 mylistener 挂出并且无法收听消息。如果它引发错误我有一个机制来捕获并重新启动它,但那次我失败了。是否有任何属性设置来避免这个问题?

我的连接属性中有异常侦听器和重新连接选项。但这不是直接起作用,我有一个自动重置事件(receiveCompleteEvent)机制,唯一的解决方案是我可以在异常侦听器中找到设置信号,并终止连接。在异常侦听器中,我可以记录连接错误通知,但是没有自动连接设置,

0 投票
2 回答
715 浏览

c# - MQ 错误原因:在 C# .NET 客户端正常工作多天后随机开始出现 2058

客户端详细信息:作为生产者将消息推送到 IBM MQ 队列和主题的代码会出现问题。生产者使用 WebApi2 公开为 REST 接口,并部署在 IIS 上。我们正在使用 C# .NET (4.5.2) 客户端连接到 IBM MQ。我们使用 CCDT 文件 AMQCLCHL.TAB 进行连接以获取客户端连接详细信息。使用的底层库是 Apache NMS (1.8.0.4573) 和 IBM XMS (2.5.0.3)。

收到异常: CWSMQ0006E:在调用 ConnectionFactory.CreateConnection 方法期间收到异常:CompCode:2,原因:2058。

错误详细信息:客户端正常工作,我们能够将数十万条消息推送到 MQ 队列和主题。但是,在从几个小时到超过 1 周的随机时间段后,客户端开始失败并出现上述错误。更多细节:

  • 通过重新启动 IIS 池或重新加载应用程序来解决该错误
  • 当第一个客户端(IIS 服务器 1)继续出现问题时,从另一个客户端(IIS 服务器 2)连接到同一 MQ 服务器继续工作

AMKERR01.LOG 文件中出现错误。

错误代码 6 是ERROR_INVALID_HANDLE

0 投票
1 回答
2178 浏览

c# - 在没有 MQ 客户端的情况下使用 XMS .Net 连接到 MQ

我正在尝试使用 XMS .Net 连接到 MQ。MQ 目前已在服务器上设置并使用 IBM.WMQ 我能够连接到它。现在我想探索 IBM XMS,因为它支持 API,所以将来我们可以尝试从 .net 全框架或 .net 核心客户端连接到 MQ。

在网上花了 2 天时间,但无法找到实现此功能的完整示例。我也不想在我的本地机器上安装 MQ 客户端。有没有办法做到这一点?有没有相同的好文章?