IBM XMS的接收方法没有立即返回信息
我使用IBM XMS连接到第三方发送和接收消息. 更新: 客户端.NET CORE 3.1 Nuget的IBM XMS库版本.尝试了9.2.4和9.1.5,结果相同 一周前用于工作正常的相同代码 - 因此,MQ Manager或我的基础架构中的某个地方必须发生任何变化 SSL和客户证书 我已经使用了一段时间了,但自上周以来,我开始看不到任何消息 - 即使它们在那里 - 但是一旦我更改为"不超时接收方法",我都会再次开始每5分钟选择消息. 查看XMS日志,我可以看到消息实际上几乎立即在没有超时的情况下立即读取,但是XMS似乎决定等待这5分钟,然后才返回消息... 我没有改变任何东西,第三方也没有放心. 我的问题是:给定以下代码用于接收的代码是否有5分钟等待的原因?我可以尝试的事情有什么想法吗?如果有帮助,我也可以共享XMS日志. // This is used to set the default properties in the fact
18 2024-04-26
编程技术问答社区
抓到的错误MQException:2059-MQRC_Q_MGR_NOT_AVAILABLE .Net Core Linux Docker Container IBM MQ,由cipherspec不匹配引起。
我有一个.NET Core托管客户端在Linux Docker容器中运行.我正在尝试使用SSL连接到IBM消息队列,并使用tls_rsa_with_aes_aes_128_cbc_sha256成功连接.我再次通过要求他们将服务器更改为AES_256进行了测试.但是,当他们切换到AES_256时,即我在 tls_rsa_with_aes_aes_256_cbc_sha256 上尝试了相同的尝试. 在Windows中,您可以通过转到组策略编辑器来指定默认的密码规格. 例子. private static string _host = "GH2134"; private static int _port = 1414; private static string _channel= "AES256.TEST.CHANNEL"; private static string _qmgr= "MQMGR"; private sta
22 2024-04-26
编程技术问答社区
在IBM MQ客户端中传递ID
我读了从一个队列到另一个队列的消息.但是我的相关ID并未保留. 如果对导入队列中的消息的相关ID为" ABC12345",则将其放入导出队列时,相关ID的值不同. 我如何在两个队列之间保持相同的相关ID并始终保持 有唯一的消息ID? 获取: mqQueue.Get(mqMsg); string messageID = Convert.ToString(mqMsg.MessageId); string correlationID = Convert.ToString(mqMsg.CorrelationId); 例如,如果相关ID为" 000123456789",则在阅读后,将其放回原则后,则相同消息的值会更改. put: mqMsg.CorrelationId = System.Text.Encoding.UTF8.GetBytes(correlationID); mqQueue.Put(mqMsg, mqPutMsgOpts); 我正在使用
12 2024-04-24
编程技术问答社区
IBM MQ与集群队列的问题
无法在远程队列管理器上向群集队列输入消息.我正在使用MQGetMessageOptions和MqputMessageOptions.我正在使用7.5 MQ服务器和客户端(7.5.0.1) 它抛出原因代码-2085-消息-Compcode:2,原因:2085 使用MQ簇连接了队列和队列管理器. mqQueue = mqQueueMgr.AccessQueue("queue name", MQC.MQOO_FAIL_IF_QUIESCING | MQC.MQOO_INPUT_SHARED | MQC.MQOO_BROWSE); 我尝试使用amqsput.exe添加测试消息,在那里工作正常. 有什么想法吗? 解决方案 此调用: mqQueue = mqQueueMgr.AccessQueue("queue name", MQC.MQOO_FAIL_IF_QUIESCING | MQC.MQOO_INPUT_SHARED | MQC.MQOO_BROW
10 2024-04-24
编程技术问答社区
ibmmqdotnetclient vs ibmxmsdotnetclient
我正在从事一个项目,该项目需要使用C#连接到IBM MQ,并考虑哪个Nuget软件包是最好的. 但是,有2个Nuget软件包 ibmmqdotnetclient 和 ibmxmsdotnetclient . 阅读了一些参考文献 nuget packages ibmmmqdotnetnetclclient and ibmmxclient and ibmmmmmm.netclient-dotototnetnetclient-ibmmmmm.netclient(净核) 看来这2个API之间存在2个主要区别. ibmxmsdotnetclient 提供更多功能 ibmxmsdotnetclient 提供类似JMS的API.如果有人以前使用Java,则将Java代码移植到.NET 更容易 我注意到的另一个区别是它们连接到MQ服务器的方式(QueueManager vs Connection和Session).但这不是确实是一个问题,据我所知,不同的样式.
12 2024-04-24
编程技术问答社区
XMS.NET在factory.CreateConnection("username", null)上无限期地挂起。
我试图通过.NET客户端连接到现有的JMS队列. 我知道队列正在工作,我已经使用IBM MQ Explorer浏览了它. 在以下代码中,呼叫factory.createconnection持续悬挂 - 它不会跳到下一行,在没有显示任何错误消息.它甚至不消耗任何CPU. 我应该尝试使它起作用(或至少使它显示出任何类型的错误消息)? private static IConnectionFactory GetConnectionFactory() { var factoryFactory = XMSFactoryFactory.GetInstance(XMSC.CT_WMQ); var cf = factoryFactory.CreateConnectionFactory(); cf.SetStringProperty(XMSC.WMQ_HOST_NAME, "server address"); cf.
10 2024-04-23
编程技术问答社区
IBM MQ XMS订阅未关闭
我有一个应用程序,该应用程序使用WebSphere MQ通过WebSphere将数据发送到云中的数据中心.该功能的一部分是,如果服务器端订户检测到30分钟内未收到消息,则暂停线程5分钟,并删除连接.重新启动时,它重新连接. 实际上,我发现断开连接并未删除订阅.尝试重新连接时,我会看到此错误: "由于另一个消息消费者正在使用订阅,因此可能存在问题. 在尝试以相同名称创建新订阅之前,请确保关闭使用此订阅的任何消息.请参阅链接的异常以获取更多信息." 这表明消息处理程序仍在连接中,这意味着断开连接失败. XMSClient对象的断开代码(库的一部分,尽管我的一个同事可能已经更改了)是: public override void Disconnect() { _producer.Close(); _producer.Dispose(); _producer = null;
14 2024-04-23
编程技术问答社区
通过.net客户端通过SSL连接到IBM MQ
我试图通过.NET客户端连接到MQ服务器队列.我需要使用证书进行安全通信.这是我拥有的代码: MQEnvironment.SSLKeyRepository = "*SYSTEM"; MQEnvironment.ConnectionName = connectionName; MQEnvironment.Channel = channelName; MQEnvironment.properties.Add(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES_MANAGED); MQEnvironment.SSLCipherSpec = "TLS_RSA_WITH_AES_256_CBC_SHA"; queueManager = new MQQueueManager(queueManagerName, channelName, connectionName); queue = queueManager.AccessQueue(SendQu
14 2024-04-22
编程技术问答社区
XMS.Net 2.1.0.0/1 CWSMQ0282E
我们使用XMS.NET连接到WebSphere MQ Server V7;这一直在V6服务器上运行良好,但是由于"另一方"已升级为V7,我们会遇到一些麻烦.它的大部分已经修复了,但现在我偶然发现了一个无法解释的错误,也没有找到任何内容: CWSMQ0282E: A null value has been used for argument BUFFER = NULL within method ImportMQMDMesageBuffer(WmqSession, WmqDestination, MQMD,byte[],int,int). The preceding method detected an invalid null argument. If necessary, recode the application to avoid the error condition. Stacktrace: at IBM.XMS.Client.WMQ.WmqReceiveM
4 2024-04-22
编程技术问答社区
如何在Net Core平台上的IBM MQ.上使用Backout和Commit?
我想使用Backout并在IBM MQ客户端进行提交. 流程顺序 将10条消息放在队列 从队列和 Backout()获取10条消息 我预计由于支持,队列中存在10条消息,但是队列中没有任何消息.因此,我认为后备工作无法正常工作.为什么? 平台:.NET Core 2.1 IBM客户端DLL:AMQMDNETSTD.DLL V 9.1.2 代码 string hostName = "TX32"; int port = 5566; string channelName = "TESTTRY"; string queueName = "TESTTRY"; int numberOfMsgs = 10; string queueManagerName = "DMQ1"; int queueOpenOptionsForPut = MQC.MQOO_OUTPUT + MQC.MQGMO_SYNCPOINT + MQC.MQOO_FAIL_IF_QUIESCING
16 2024-04-21
编程技术问答社区
连接失败时重新连接到IBM MQ队列
以下代码段具有IBM MQ队列的我的连接和订阅逻辑.当有连接故障时,我都会使用iconnection.exceptionListener委托来建立新的连接,并通过队列和重新订阅消息.但是问题是,我可以看到多个队列手柄.我如何确保我关闭以前的连接句柄并在由于网络问题或MQ服务器重新启动引起的连接中断的地方建立新连接? private CancellationToken _cancellationToken; private IConnection _connection; private IConnectionFactory _connectionfactory; private IMessageConsumer _consumer; private IDestination _destination; private MessageFormat _msgFormat; private IMessageProducer _producer; private ISession _ses
20 2024-04-21
编程技术问答社区
通过C#在Websphere MQ中投放消息的数据长度与手动投放相同消息的数据长度不同。
MQMessage queueMessage = new MQMessage(); queueMessage.WriteString(strInputMsg); queueMessage.Format = MQC.MQFMT_STRING; MQPutMessageOptions queuePutMessageOptions = new MQPutMessageOptions(); Queue.Put(queueMessage, queuePutMessageOptions); 使用C#,与上述代码,当我将消息输入队列时,消息的数据长度为3600. 当我通过右键单击队列并选择put测试消息选项手动将消息输入队列时,该消息的数据长度为1799. 我真的很困惑为什么是这种情况.两种情况下的消息都是带有声明的XML字符串.在记事本++中,有1811个字
14 2024-04-19
编程技术问答社区
MQQueueManager消息池
我过去曾用过RabbitMQ作为MessageQueue,在收到消息时发射事件真的很简单. 我已经查看了IBM安装程序提供的.NET源,但是我发现了处理它的好方法.查看示例simplesubscribe,它做了这样的事情 // getting messages continuously for (int i = 1; i
14 2024-04-17
编程技术问答社区
C# MQ连接得到错误2035,但Java MQ连接工作良好
我在bellow中写了MQ 7.5连接例程,但获得" 2035"错误 using IBM.WMQ; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { try { MQEnvironment.Hostname = "192.168.163.63"; MQEnvironment.Port = 1418; MQEnvironment.UserId = "mq"; MQEnvironment.Password = "mq"; MQEnvironment.Channel = "ServerChannel";
6 2024-04-16
编程技术问答社区
对于MQ/JMS的setTargetClient,是否有一个等同于MQ/XMS的东西?
我有一个XMS Publish应用程序,它可以正常工作,但它包括JMS标题作为消息的一部分.我的订阅应用程序实际上是一个Python应用程序,我想知道是否可以从XMS应用程序中删除JMS标题.我知道在JMS中可能有可能,但是在C#/XMS中可能有可能. 我的C#代码很简单(遗漏了一些细节 - // Get an instance of factory. factoryFactory = XMSFactoryFactory.GetInstance(XMSC.CT_WMQ); // Create WMQ Connection Factory. cf = factoryFactory.CreateConnectionFactory(); // Set the properties cf.SetStringProperty(XMSC.WM
14 2024-04-16
编程技术问答社区
使用.Net Core 2.2的WebsphereMQ
我正在尝试使用.NET Core 2.2连接到WebSpheremq队列. 我对如何做到这一点感到非常困惑.在显示我的尝试(和失败)之前,我想澄清一下: 我应该使用哪个LIB以及如何获得? (nms?amqp?webphereclient?) 我已经看到了一些示例,这些示例使用了安装WebSpheremq(???)时使用的一些DLL.那是对的吗?我需要安装WebSpheremq吗? (现在,我将其连接到我需要的队列中的远程服务器中). 到目前为止,我已经尝试的是安装 webSpheremqclient 带有以下代码的队列: public void StartListener() { try { var xff = XMSFactoryFactory.GetInstance(XMSC.CT_WMQ); var cf = xff.CreateConnectionFactory(
16 2024-04-16
编程技术问答社区
设置关闭和断开连接时的超时时间 IBM MQ.NET客户端
是否可以为下面的代码设置超时期: private MQQueueManager queueManager; private MQQueue queue; ... queue.Close(); queueManager.Disconnect(); 原因是有时连接被卡住试图关闭.螺纹在close()或disconnect(). 上封锁 更新 客户端使用托管客户端,CCDT文件,群集队列管理器和其他可能导致不同设置的功能. 请提供代码样本. 我们可以使用类似的方法通过API来更改超时设置: : int openOptions = Set possible settings here var properties = new Hashtable { Set possible settings here }; _queueManager = new MQQueueManager(_que
22 2024-04-16
编程技术问答社区
如何通过使用c#.net获得与ibm websphere mq的连接?
可以使用C#.NET与IBM WebSphere MQ连接,我可以通过C#.NET进行连接,原因是我试图将消息推向MQ,请通过使用C#.NET 解决方案 在名为amqmdnet.dll的Windows上提供了IBM提供的DLL(自v5.3 fixpack8),该窗口是一个.NET汇编,为MQSeries提供IBM支持的模型. (参考)通常位于C:\Program Files\IBM\WebSphere MQ\bin\amqmdnet.dll 如果您需要更多方向,则有几个示例有关如何与.net上的MQ通信: http://www.codeproject . /www.codeproject.com/articles/37807/how-to-to-setup-a-websphere-mq-with-c-net-gui-to-put http://www.codeproject.com/articles/6212/c-and-websphere-mq-formerly-mq
16 2024-04-13
编程技术问答社区
无法用TLS-证书自动识别到IBM MQ C#
我正在尝试使用.NET Core("IBMMQDotnetClient" Version="9.2.0.1")连接到IBM MQ,并在A Linux内部的证书 container(mcr.microsoft.com/dotnet/core/runtime:3.1)中连接到IBM MQ. 配置hashtable: new Hashtable { { MQC.HOST_NAME_PROPERTY, "localhost" }, { MQC.CHANNEL_PROPERTY, "DEV.SVRCONN" }, { MQC.PORT_PROPER
14 2024-04-13
编程技术问答社区
如何在不知道包含文件的情况下编译一个C程序
我有一些示例C代码,我希望适应我的需求.在此之前,我试图按原样编译示例. C代码包含#include参考,我可以在" Inc"目录中找到.H文件.还有一个相应的" lib"目录.我正在努力寻找需要编译代码的命令行. 到目前为止,我已经设法了解了以下内容; gcc -o amqsinqa -I/opt/mqm/inc amqsinqa.c -L/opt/mqm/lib -lcmqc 但它"找不到-lcmqc".我看了Lib,很正确地没有CMQC.我如何确定这里需要什么-l选项? 代码看起来很简单,有包括参考; #include 和呼叫本身; MQCONN(QMgrName,&Hcon,&CompCode,&CReason); 如果我从命令行中省略了-l选项; undefined reference to 'MQCONN' 这不足为奇. mqconn存在于cmqc.h中. 解决方案 要尝试帮助他人,此参考很有用:
10 2024-04-10
编程技术问答社区