问题标签 [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.
ibm-mq - IBM XMS Websphere MQ 多线程
我使用 xms.net 8.0.0.8,我想在 Web 应用程序中启动多线程 xms 侦听器。
我使用 new Thread t=new Thread()... 开始处理消息代码
但是出了点问题,线程被卡住并且没有读取消息?如果有人有 Web 应用程序的多线程 xms 示例可以分享或告诉我的错误?或者这是 xms 中多线程的任何错误?
c++ - 在使用 IBM MQ XMS API 发送之前测试消息的长度
我是 XMS 的初学者,我很难找到解决问题的方法。我希望你能帮助我找到解决方案,或者至少帮我一把。
因此,在我的项目中,我使用 IBM MQ XMS API 来发送和接收消息。它运作良好,但只有一个问题。当用户发送高于Max Msg Length的消息时,它会触发一般异常。在该异常中,有针对各种错误情况的处理,但缺少对该特定异常的处理。
在发送之前测试消息长度是否低于服务器上定义的Max Msg Length的最佳方法是什么?或者至少我应该如何更准确地捕获该异常的触发器?
(对不起,我不能发布代码,因为它属于我工作的公司)
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 次
开始连接
处置连接
ibm-mq - IBM MQ:我是否必须在多线程上下文中锁定 ISession 对象?
在文档中,我看到以下句子:
一个 Session 对象在任何时候都只能在一个线程上使用。(来源)
这是否意味着如果我的应用程序是多线程的,并且如果我的ISession
对象可以被多个线程访问,那么ISession
每当我使用它们时我必须锁定对象以便同步访问这些对象?
我在发送消息时使用ISession
对象(这里我处于多线程上下文中,所以我应该在这里锁定 ISession 对象吗?)
示例代码:
ibm-mq - 为 XMS.NET 中的每个连接配置单独的 CCDT 文件
作为我们合作伙伴的要求,我们必须在不同的端口上建立 MQ 连接。并且要求为每个端口配置单独的 CCDT 文件,因为。所有连接都在一个客户端应用程序(一个Process
)上进行。
因为我们的客户端应用程序是一个Process
,所以我不能分别为每个端口配置以下环境变量。
如何设置环境变量以配置客户端通道定义(这是 .NET C#):
我们的问题;我们必须在连接级别而不是在进程或全局级别设置这些环境变量。有什么建议么?
以下更新来自评论和聊天中收集的信息:
- 要求是使用 XMS.NET 配置 Header 和 Message 压缩。
- 根据 IBM 对 IBM 社区论坛帖子“带有 C# .NET 的 IBM.XMS 上的标头和消息压缩”的回答, XMS.NET 只能使用 CCDT 进行压缩。
- CCDT 条目有
QMNAME(*)
. - CCDT 条目之间的区别仅在于
PORT
.
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),那么它会在正确的配置目录中查找。但是当使用非托管模式时,这个属性会被忽略。
我尝试相同的设置,一次使用客户端模式,一次使用非托管模式。事件查看器提供与 CCDT 相关的不同输出。在非托管模式下,它会查找默认位置。
- 客户端模式事件查看器事件:http://pasted.co/27db600f(CCDT 不存在,但它在正确的目录中看起来很好)
- 非托管模式事件查看器事件: http: //pasted.co/d5979a2c
请帮助为这 4 个单独的连接设置单独的 CCDTURL。不要要求我使用其中包含所有已定义连接的 CCDT,这不是我们想要的,因为我们想自己进行负载平衡。
ibm-mq - IBM.XMS 标头和消息压缩
请在下面查看我的代码片段:
我们尝试了所有可能的方式来配置压缩(在 XMS 中)。我真的很感谢你的帮助,如果有人可以帮助...
ibm-mq - 当连接被禁止关闭时,IBM XMS.Net 侦听器挂起
嗨,我使用 webpshere mq 客户端 8.0.0.8,我立即设置了我的侦听器并开始侦听 mq,但是出了点问题并且 myconnection 已关闭但它没有引发错误并且 mylistener 挂出并且无法收听消息。如果它引发错误我有一个机制来捕获并重新启动它,但那次我失败了。是否有任何属性设置来避免这个问题?
我的连接属性中有异常侦听器和重新连接选项。但这不是直接起作用,我有一个自动重置事件(receiveCompleteEvent)机制,唯一的解决方案是我可以在异常侦听器中找到设置信号,并终止连接。在异常侦听器中,我可以记录连接错误通知,但是没有自动连接设置,
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
。
c# - 在没有 MQ 客户端的情况下使用 XMS .Net 连接到 MQ
我正在尝试使用 XMS .Net 连接到 MQ。MQ 目前已在服务器上设置并使用 IBM.WMQ 我能够连接到它。现在我想探索 IBM XMS,因为它支持 API,所以将来我们可以尝试从 .net 全框架或 .net 核心客户端连接到 MQ。
在网上花了 2 天时间,但无法找到实现此功能的完整示例。我也不想在我的本地机器上安装 MQ 客户端。有没有办法做到这一点?有没有相同的好文章?