问题标签 [ibm-mq]
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.
wcf - 自定义 WCF 通道的池化
我们开发了一个通过 IBM Websphere MQ 进行通信的自定义 WCF 通道。
我们创建了一个通道工厂:
它返回我们频道的实例:
连接到 IBM MQ 队列管理器是一项昂贵的操作。目前,我们在 Channel.OnOpen() 中执行此操作。
遵循正确使用通道的指南,我们每次需要通道时调用 ChannelFactory.CreateChannel(),发送消息,然后调用 Channel.Close()。
我们的假设是,ChannelFactory 执行了通道池,因此当 Channel.Close() 被调用时,通道实际上并没有关闭,而是返回到池中。但是,每次我们调用 ChannelFactory.CreateChannel 时,都会实例化一个新的通道,并且在发送请求时,会执行昂贵的通道打开。
所以,问题是:防止在每个请求上打开通道的最佳方法是什么?
我们正在研究的一些选项:
无论如何通过配置来指定应该进行通道池吗?我们是否应该在 ChannelFactory 中实现自己的通道池?
我们是否应该在应用程序的整个生命周期内保持通道打开,通过它发送所有请求?
我们是否应该在通道工厂中执行昂贵的操作(连接到队列管理器),我们在应用程序的生命周期中缓存这些操作?
data-structures - MQ EOL 数据转换
我们通过 MQ 从 z/OS/CICS 系统向 AS400 发送数据。
消息的原始编码是具有 MQSTR 格式的 CCSID 500。客户端应用程序正在使用 CONVERT 选项和 CCSID 819 获取消息。
除了行尾字符之外,数据几乎都被正确转换了。任何的想法?z/OS 正在发送 0D (CR) 作为行尾字符。如果他们有 0D+0A (CR+LF),CCSID 会自动从 500 更改为 437,并且行尾仍然不在客户端。
java - 如何获取现有的 JMS 队列?
我觉得这可能是一个非常简单的问题,但这是我第一次涉足 JMS,所以我有点不确定。
我正在尝试写入现有 JMS 队列(然后从另一个队列读取),我知道队列名称、主机、队列管理器和通道。如何以javax.jms.Destination
对象的形式获取对此队列的引用?
我发现的所有示例都涉及调用javax.jms.Session.createQueue(String)
,但由于该队列已经存在,我不想再创建一个,对吗?还是我误解了发生了什么?
如果重要的话,我正在使用 com.ibm.msg.client.jms 驱动程序。
谢谢!
ibm-mq - 在 IBM Websphere Message Broker 中设置 LDAP 配置
我是消息代理的新手。
我正在尝试在使用 LDAP 进行身份验证的消息代理中创建 Web 服务安全性。
但是我的 SOAP 消息头中的身份验证总是失败我已经指定了正确的用户:wpsadmin 和正确的密码:123
这是我的 ldap 配置: 引用:
我不确定我的配置是对还是错。但是我们将以下配置用于我们的 websphere 进程服务器(安全管理-> 应用程序和基础架构-> 独立 LDAP 注册表)。
代码:
我需要你的帮助。谢谢
c# - 来自 .NET 的 IBM MQSeries 访问问题
我对 IBM MQSeries 不是很熟悉,但我正在编写 c# 脚本,用于从我的队列服务器写入和读取文件。问题是我的阅读作品,但我的写作没有。请注意,我使用的是同一个队列,所以不要费心去那个方向。
我的代码首先使用以下代码访问 MQserver:
我可以使用以下代码从队列中读取文件:
但是,如果我尝试使用以下代码编写它会给我错误:
我的错误捕获给了我错误:
应用程序中的错误
当然,这并没有显示太多。所以我检查了服务器上的事件日志,这向我显示了错误:
通过 TCP/IP 从 stx041774 (192.168.225.51) 接收数据时出错。这可能是由于通信故障。
TCP/IP (recv) 调用的返回码是 10054 (X'2746')。记录这些值并告诉系统管理员。
我查了 10054 并表示:
现有连接被远程主机强行关闭。
有谁知道我能做些什么来完成这项工作?我是否必须设置一个 MQC 选项才能写入?因为我不知道如何处理这些选项,所以我什至不确定这是否是问题所在。
请记住,我每次都会关闭我的连接:
c# - IBM MQSeries 问题:远程主机在写入消息时关闭连接(错误 10054)
我正在尝试使用以下命令写入 IBM MQSeries 主机:
然而,我的 errorcatch 给了我一个错误:
应用程序中的错误
当然,这并没有显示太多。所以我检查了服务器上的事件日志,这向我显示了错误:
通过 TCP/IP 从 stx041774 (192.168.225.51) 接收数据时出错。这可能是由于通信故障。
记录这些值并告诉系统管理员。
我查了 10054 并表示:
现有连接被远程主机强行关闭。
有谁知道我能做些什么来完成这项工作?我是否必须设置一个 MQC 选项才能写入?因为我不知道如何处理这些选项,所以我什至不确定这是否是问题所在。
c++ - 如何从嵌入式 C 客户端(无 JVM)向/从 Websphere Message Broker 发送消息?
对于从没有 JVM 的嵌入式无头 C/C++ linux 客户端向 IBM 消息代理发送和接收来自 IBM 消息代理的消息,我有哪些选择(或点对点但 pubsub 更好)?
理想情况下,我们希望大文件传输(每天一次从客户端传输 2GB)加密(SSL)可靠(“保证”交付/QoS2,也许 QoS1 可以)
有问题的客户端目前只有 exes 和一些 bash 脚本,我一直在使用 MQTTv3 和 RSMB,但为此我必须将大文件切碎(然后重新组装回家),我不想得到如果有交通工具可以为我做这件事?
我看过 MQTTv5(但我们的客户没有 JVM);JMS(无 JVM)和 XMS?看起来它又给了我一个 C API,但是需要在客户端上安装 JVM(或者我错了吗?)
任何线索或提示将不胜感激。
c# - 从 C# 代码创建 IBM MQ 队列
是否可以使用 amqdnet 包装器或 c# 代码中的其他 API 创建和删除队列?
如果需要,我希望能够创建一些队列作为自动化测试套件的一部分。
谢谢。
delphi - MQ(来自 iSeries)和 Delphi
有没有人有任何在 iSeries(使用 IBM 的 Websphere MQ)和 PC 代码之间交谈的经验 - 希望使用 Delphi 2009。
修改:
我有一个需要重写的基于 PC 的大型程序(与 iSeries 对话)。一种选择是在 iSeries 上完成大部分棘手的处理器密集型处理,然后让该程序向基于 PC 的程序(目前用 Delphi 编写)发出信号,以完成最好在 PC 上完成的部分处理。所以我需要以某种方式从 iSeries 发出最后一部分的信号,而不是一直轮询 iSeries。
java - 使用 jms 连接到 ibm mq。指定通道和队列管理器
如何在我的系统属性中指定要连接的队列管理器。这是代码:
上下文总是得到 TEST que 只是不能连接到 TESTOUT 队列