0

我正在尝试设置 MQCD 结构属性 - 特别是使用 XMS.NET API 的 HeartBeatInterval。

背景:我有客户端应用程序(在 .NET 中)使用 XMS.NET API 从 WebSphere MQ 读取消息。我使用 ClientAcknowledge 模式。如果客户端读取了消息但没有确认它,WebSphere MQ 会在超时前等待 300 秒,并使原始队列中的消息可用(回退)以供其他客户端读取消息。

任务:我想将超时时间从 300 秒降低。

我们的 MQ 管理员建议更改频道上的 HearBeatInterval 属性。但是改变它没有任何区别。

显然,以某种方式在客户端设置 Channel 的 HeartBeatInterval 属性(以及服务器端通道设置)将使其工作。我正在尝试在客户端应用程序中设置此值。但是XMS API没有对应于MQCD.HeartBeatInterval属性的属性

在完成降低消息确认超时的任务方面有什么见解吗?甚至在客户端设置 HeartBeatInterval - 如果这样做的话。

4

2 回答 2

0

当然,实际协商的心跳间隔值将在客户端和服务器端心跳值中取最大的数字,即使用最不频繁的间隔。如果您想要更短的间隔,则需要更改两端。

与其在您的应用程序中编写代码,不如使用 CCDT?如果您改变对要使用的值的想法并希望在将来降低或提高它,这将更加灵活。

延伸阅读

  1. 在 .NET 中使用客户端通道定义表
于 2014-10-01T22:20:42.377 回答
0

DISCINT我认为您可以使用服务器连接通道的 Disconnect interval( ) 属性来终止来自挂起的应用程序的连接。默认情况下DISCINT设置为 0,这意味着它被禁用。您可以设置一个适合您要求的值。在此处阅读更多信息:http ://www-01.ibm.com/support/knowledgecenter/SSFKSJ_7.5.0/com.ibm.mq.ref.con.doc/q081860_.htm

这是在 XMS .NET 应用程序中使用 CCDT 的示例片段。

        // Get an instance of factory.
        factoryFactory = XMSFactoryFactory.GetInstance(XMSC.CT_WMQ);

        // Create WMQ Connection Factory.
        cf = factoryFactory.CreateConnectionFactory();

        // Use CCDT URL for client connection.
        cf.SetStringProperty(XMSC.WMQ_QUEUE_MANAGER, "QM1");
        cf.SetStringProperty(XMSC.WMQ_CCDTURL, "file://C:\\ProgramData\\IBM\\MQ\\qmgrs\\QM1\\@ipcc\\AMQCLCHL.TAB");

        // Create connection.
        connectionWMQ = cf.CreateConnection();
于 2014-10-04T06:35:10.713 回答