- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我正在使用的示例代码,但是,我不知道如何从放置或访问队列中获取消息已发送的响应。
mqQueue = mqQMgr.AccessQueue("Queue Name", MQC.MQOO_OUTPUT |
MQC.MQOO_INPUT_SHARED | MQC.MQOO_INQUIRE);
mqQueue.Put(mqMsg, mqPutMsgOpts);
PUT 方法是一个 void 返回类型,例如,如果它是 bool,基于返回值 - true/false,我可以确认,消息已发送到队列,这就是我的问题,我该怎么做返回确认,以便将消息发送到队列。
任何输入都会非常有帮助。
最佳答案
根据澄清问题的评论进行更新:
将您的 PUT
包含在 try block 中并捕获 MQException
。如果没有抛出 MQException
,则 PUT
起作用并且您返回 RC=0。例如,这来自示例 PUT
程序:
void PutMessages()
{
try
{
// mq properties
properties = new Hashtable();
properties.Add(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES_MANAGED);
properties.Add(MQC.HOST_NAME_PROPERTY, hostName);
properties.Add(MQC.PORT_PROPERTY, port);
properties.Add(MQC.CHANNEL_PROPERTY, channelName);
// display all details
Console.WriteLine("MQ Parameters");
Console.WriteLine("1) queueName = " + queueName);
Console.WriteLine("2) host = " + hostName);
Console.WriteLine("3) port = " + port);
Console.WriteLine("4) channel = " + channelName);
Console.WriteLine("5) numberOfMsgs = " + numberOfMsgs);
Console.WriteLine("");
// create connection
Console.Write("Connecting to queue manager.. ");
queueManager = new MQQueueManager(queueManagerName, properties);
Console.WriteLine("done");
// accessing queue
Console.Write("Accessing queue " + queueName + ".. ");
queue = queueManager.AccessQueue(queueName, MQC.MQOO_OUTPUT + MQC.MQOO_FAIL_IF_QUIESCING);
Console.WriteLine("done");
// creating a message object
message = new MQMessage();
message.WriteString(messageString);
// putting messages continuously
for (int i = 1; i <= numberOfMsgs; i++)
{
Console.Write("Message " + i + " <" + messageString + ">.. ");
queue.Put(message);
Console.WriteLine("put");
}
// closing queue
Console.Write("Closing queue.. ");
queue.Close();
Console.WriteLine("done");
// disconnecting queue manager
Console.Write("Disconnecting queue manager.. ");
queueManager.Disconnect();
Console.WriteLine("done");
}
catch (MQException mqe)
{
Console.WriteLine("");
Console.WriteLine("MQException caught: {0} - {1}", mqe.ReasonCode, mqe.Message);
Console.WriteLine(mqe.StackTrace);
}
}
如前所述,这是来自示例代码,用于生产的真实程序可能会有更精细的异常处理。也就是说,API 调用要么成功,要么抛出 MQException
。确切的行为取决于您的选择。例如,如果您在 GET
上请求消息转换,则可能会出现转换错误,而作为二进制有效负载检索到的完全相同的消息会成功。
之前的回复:
我不确定我是否理解这个问题,但我认为您要问的是如何使用 WebSphere MQ 设计请求/回复程序,这就是我的回应方式。但是,如果您所说的“响应”实际上是指 PUT
的原因和返回代码,请澄清问题,我会更新我的答案。
请求/响应的通常模式是请求程序首先打开回复队列。如果打开的队列的名称是模型队列,那么队列管理器会创建一个动态队列并返回一个句柄。否则,队列必须是预先存在的本地队列。
一旦应用程序有了回复队列的句柄,它就会打开请求队列并创建一个新的请求消息。本地回复队列的名称用于初始化请求消息的 replyToQueue
字段。本地队列管理器名称会自动填充到消息的 replyToQMgr
字段中。然后应用程序将消息放入回复队列中并等待回复。
如果有多个应用程序实例监听同一个回复队列,它们通常会为它们想要的特定消息指定相关 ID。通常的设计是读取请求消息的服务器将 MQMD.MsgID
放入回复消息的 MQMD.CorrelID
字段中,但有时它会将传入的消息 ID 传输到出站消息 ID。
确保在发出 GET
之前COMMIT
PUT
,否则您将永远得到回复。
信息中心主题中有更多相关信息 Design of the Request sample program在默认的 Windows WMQ 客户端安装中,您可以在 C:\Program Files (x86)\IBM\WebSphere MQ\tools\dotnet
中找到示例程序。我鼓励您熟悉示例并重用其中的一些代码。如果您实际上没有下载并安装完整的客户端,请在 SupportPac MQC75 免费获取一份副本。 .然后在安装的时候一定要选择安装SDK和示例代码的选项。
关于c# - 如何从 IBM MQ 上的 put 方法获得确认?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15074791/
IBM Watson 和 IBM Inforsphere BigInsights (IBM Hadoop)/Streams 之间有什么区别? Watson 带来了 BigInsights 无法提供的哪
据我所知,Rational 是一种测试工具,而 Rational Rose 是一种建模工具。 最佳答案 Rational 是一家为软件开发生命周期制作工具的公司。 Rational Rose 就是这样
我尝试将 ibm-eventstreams-dev v 0.1.1 安装到 IBM Cloud Private 中,但收到一条错误消息: 内部服务错误:图表与 Tiller v2.6.0 不兼容 最佳
我正在尝试配置连接到集群MQ的集群Websphere应用程序服务器。 但是,我所掌握的信息是两个具有不同主机名,服务器通道和队列管理器的MQ实例的详细信息,这些主机名属于同一MQ集群名称。 在Webs
我想问问你们中的一些聪明人 :) 是否可以在 IBM Connections 文件中使用目录结构。还有图书馆,但我无法通过 webdav/smdb 映射它,也许这是关于我的信息差距,但我可以安装桌面插
我一次又一次地读到 IBM i 是一个支持多种编程语言的现代系统。除了 COBOL 和 RPG 之外,我如何确定哪些可供我使用? 维基百科上提供了一份 list ,我对 C、C++、BASIC、Sma
是否可以将 IBM HTTP 服务器设置为非 IBM Websphere 应用程序服务器(Glassfish、Apache Tomcat 或其他 Java 应用程序服务器)的前端?IBM 支持吗?我试
我有一个在 IBM Bluemix 上运行的简单 JSF 应用程序,与以下 J2EE 依赖项配合良好。 javax javaee-web-api 6.
我正在查看一个 RPG 程序。有一些这样的子程序:有没有工具哪个会将其创建为一个过程,可以在单独的过程中使用? C Eval FinQty# = 0
我正在设计一个新的体系结构大数据,我的客户将其作为IBM MQ代理使用。我们曾经在大数据架构中与Kafka一起工作,因为我想它比其他选择更快,更可靠,更强大,并且因为风暴和火花流在Kafka中更容易工
我偶然发现了一些 FMTDTA,它似乎是一种查询/排序语言,早于旧 RPG 系统中的 SQL。我试图解开它的用法。 例子: 物理文件布局: ORNO S 9 0 1
除了许可之外,IBM Worklight 的企业版和消费者版之间在功能方面是否存在任何差异? 最佳答案 企业版的销售目的是在组织内使用 (B2E)。许可证是“每台设备”。消费者版旨在以 B2C 的形式
我希望使用 IBM Worklight v5.0.5 Fix pack 1 设置 Eclipse 开发环境。 我可以获得有关旧版本 Worklight 的安装链接的一些指示吗? 最佳答案 查看下面的可
是否可以保留已检索且不再位于队列中的消息历史记录(包含消息内容将是完美的)? 在应用程序中,我可以看到发送者何时尝试将消息放入队列以及接收者何时尝试拾取消息,但我想查看消息何时真正到达队列以及消息何时
我正在向远程队列发送消息,但我无法控制该队列。 我发送一个 xml 文件作为消息,但是当应用程序读取消息时,它会得到一个消息头,例如 jms_text \0\0\0lqueue:///TEST128
在什么情况下队列管理器可能会失去与集群环境中存储库的连接?我的环境中队列管理器经常失去与存储库的连接,我需要刷新集群来修复此问题并重新建立与集群中其他队列管理器的通信。 我们的集群有 100 个队列管
我们正在为助手实现 Watson 技术,以帮助某些用户。 对话有些复杂,有时需要针对某些问题做跳答,这样做的坏处是用户可以再问一遍问题,以防不明白这就是问题所在。 当想进入后续进入的节点时,该节点进行
我们有一个启用了 DevOps 交付管道的 NodeJS Cloud Foundry 应用程序。 最初,我们将管道设置为使用 Bluemix 中交付管道的 Active Deploy 扩展来部署应用程
请注意,此问题特定于“IBM DB2 for i”,即 IBM i 操作系统的 version of DB2 . 下面的屏幕截图显示了一个故意错误的 INSERT 语句,它产生了 SQL0407 的
我想使用 IBM Websphere MQ 客户端 v7.5。我正在编写独立的 JMS 客户端应用程序来发送和使用来自 IBM WebsphereMQ 服务器的消息(它在其他地方运行,但我有权发送/接
我是一名优秀的程序员,十分优秀!