问题标签 [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 回答
1128 浏览

c# - .Net:无法从程序集“IBM.XMS.Client.WMQ,版本=8.0.0.7”加载类型“IBM.WMQ.ManagedCommonServices”

使用 .net 框架 Web API 项目,我们想为我们的 MQ 队列创建一个侦听器(消费者)。我们正在使用 XMS.Net,因为我们对接收消息的异步方式感兴趣。但是,在创建连接时,我们收到错误:

无法从程序集“IBM.XMS.Client.WMQ,版本=8.0.0.7,文化=中性,PublicKeyToken=d2666ab12fca862b”加载类型“IBM.WMQ.ManagedCommonServices”。

在此处输入图像描述

根据http://www-01.ibm.com/support/docview.wss?uid=swg1IC89514,此问题已修复,但我们仍使用 8.0.0.7 版本来解决此问题。

这对于 .Net 框架控制台应用程序工作正常,但对于 Web API 项目它失败了。

作为解决方法,我们还尝试在 app.config 中为 Web API 添加以下内容,但没有运气 -

注意:我的机器上没有安装 MQ 客户端。我们已将 amqmdmsg、amqmdnet、amqmdnm、amqmdnsp、amqmdxcs dll 引用到项目中。

0 投票
1 回答
1138 浏览

c# - 无法更改 IBM MQ XMS.NET 客户端重新连接超时

IBM MQ 具有自动客户端重新连接功能,默认超时为 30 分钟。30 分钟后,它停止尝试重新连接(source - p35)。

我想更改超时,以便重试持续更长的时间(例如 2 小时)。我想我可以XMSC.WMQ_CLIENT_RECONNECT_TIMEOUT为此使用该属性,因为它在 XMSC 类中可用。

测试

我可以通过阻止客户端应用程序连接到 IBM MQ 的端口 1414 来模拟连接失败。出于测试目的,我将超时值降低到 5 分钟(而不是 30 分钟)。

我在日志中看到的是客户端应用程序收到XMSException原因代码 2544(重新连接):

这发生了 30 分钟,之后,我得到一个XMSException原因代码 2009(连接断开)。并且自动重新连接失败。

我可以得出结论,更改超时值没有效果......我是否以错误的方式配置了重新连接超时?

下面,有一个代码片段:

IBM MQ 客户端版本:8.0.0.5

笔记

0 投票
1 回答
241 浏览

c# - MQ/JMS setTargetClient 是否有 MQ/XMS 等效项

我有一个 XMS 发布应用程序,它正在工作,但它包含 JMS 标头作为消息的一部分。我的订阅应用程序实际上是一个 python 应用程序,我想知道是否可以从 XMS 应用程序中删除 JMS 标头。我知道这在 JMS 中是可能的,但在 C#/XMS 中是否可能。

我的 C# 代码相当简单(省略了一些细节 -

在 MQ /JMS 中,我可以setTargetClient用来删除 JMS 标头 -

我想知道我是否可以对 XMS 中的主题目标执行相同的操作

0 投票
0 回答
231 浏览

ibm-mq - 用于异步消息传递的 MQI 与 JMS / XMS

我需要在不进行轮询的情况下从 IBM MQ 队列中提取消息,因此我正在查看 IBM 的一些异步示例代码。我看到了使用 JMS/XMS 而不是 MQI (amqmdnet) 异步获取的示例代码。

我最接近不必使用 MQI 连续轮询的方法是等待,但当然不建议长时间进行,因此您仍在轮询:

有没有办法使用 MQI 从队列中异步获取消息?还是 XMS 是唯一的出路?

0 投票
2 回答
384 浏览

c# - 如何以编程方式从 XMS XMSException 中检索原因代码

我有一个 XMS MQ 客户端应用程序,它从一系列 MQ 端点提取消息。对于某些原因代码,该过程可以继续,而对于某些原因代码,它应该中止。例如MQRC_Q_MGR_NOT_AVAILABLE,一个端点的 2059 不应中止整个过程。因此,我想检查这个原因代码。

问题是 XMSException 上唯一可以检查的属性是ex.ErrorCodeex.Message,它们分别是:

我可以在消息中看到原因,但找不到检索它的方法或属性。

0 投票
1 回答
398 浏览

c# - 使用 XMS 写入远程 IBM MQ 队列

我正在尝试REMOTE使用 XMS 版本 9.1 将消息放入队列中。MQ 服务器也升级到 9.1,但我的消息没有发送到远程服务器。

以不同的方式...

我一直找不到很多例子。是否有producer必须设置的属性才能写入远程队列?

提前致谢。

0 投票
0 回答
62 浏览

ibm-mq - XMS IBytesMessage 导致拆分 ZIP 文件出现问题

自从将 MQ 升级到“IBM MQ Explorer V9.1”后,在以前版本中一直有效的 XMS 库的行为开始有所不同。

本质上,代码仍将消息识别为 IBytesMessage 类型,并通过 Byte 数组成功将它们写入文件,但文件本身是一个拆分的 zip 文件,无法自行重组。

这是该代码的主要部分:

因此,代码不会引发任何异常 - 代码仍将消息识别为 IBytesMessage,但文件不会正确解压缩。

奇怪的是,如果我们使用 rfhutilc.exe,我们可以手动提取文件,前提是我们将 Write 选项设置为 No Headers 并且不包含 MQMD - 但上面的代码在以前版本的 MQ / XMS 中始终有效

您能提供的任何帮助将不胜感激。

0 投票
1 回答
206 浏览

linux - 如何使用在 Linux Docker 中运行的 XMS .NET Core 应用程序向 IBM MQ 进行身份验证?

据我了解,XMS .NET 将使用登录用户的凭据进行身份验证,这就是我们的应用程序现在在 Windows 服务器上运行的操作。但是我们被要求将此应用程序移动到 Linux Docker 容器中,我不确定 XMS .NET 现在是如何尝试进行身份验证的。该进程在 root 下运行,所以我假设它正在尝试使用它进行身份验证并且失败了。

0 投票
0 回答
153 浏览

ibm-mq - 订阅名称以 XMS 开头:而不是 JMS:将 IBM.XMS 非托管客户端用于 .NET 4.7.2 时

我有一个客户端应用程序正在连接到具有持久订阅者的 MQ 主题。

当使用 MQ Session 对象的方法创建我的订阅者时CreateDurableSubscriber(IDestination dest, string subscription);,客户端使用此模式构建它自己的订阅名称:

X MS:{队列管理器}:{客户端 ID}:{订阅}

但是服务器在该字符串的开头期待J MS 而不是X MS。

这是一个代码示例:

它尝试连接到名为XMS:QMGR:CLIENT_ID:SUBSCRITION.

我正在使用 IBM.XMS.dll 版本 9.1.4 从MQ_Client-9.1.4.0-IBM-MQC-Win64.

当客户端构建该订阅名称时,我找不到任何文档或属性来覆盖此 XMS 值......任何线索?

0 投票
0 回答
212 浏览

.net - 无法使用 IBMXMSDotnetClient .NET Core 应用程序连接到 MQ

我无法成功连接到我的 IBM MQ。该方法是从运行在 Windows 7 机器上的 .net 核心应用程序连接到 MQ,而无需安装客户端。IBMXMSDotnetClient我已经添加了 ibm 网站上列出的nuget 包 。

我收到一个错误MQRC_HOST_NOT_AVAILABLE错误。nuget的版本是9.1.4,MQ的版本是9.1

注意:我已经能够使用 .net 框架代码成功连接。