IBM.XMS标头和消息压缩

时间:2018-07-21 11:10:23

标签: ibm-mq message-queue xms

请在下面查看我的代码段:

  1. amqmdnet (this works but we prefer IBM.XMS because we can then do asynchronous consumption)
  2. XMS with CCDT file
  3. XMS with property for compression

我们尝试了所有可能的方法来配置压缩(在XMS中)。非常感谢您的帮助,如果有人可以帮助您...

2 个答案:

答案 0 :(得分:2)

在我看来,压缩属性的可能值为:

static int  WMQ_COMPMSG_DEFAULT
static int  WMQ_COMPMSG_NONE
static int  WMQ_COMPMSG_RLE
static int  WMQ_COMPMSG_ZLIBFAST
static int  WMQ_COMPMSG_ZLIBHIGH

所以类似的事情可能会起作用:

cf.SetIntProperty(XMSC.WMQ_MSG_COMP,XMSC.WMQ_COMPMSG_DEFAULT);

编辑:

即使有实际值,也可以。

public static final int     WMQ_COMPMSG_DEFAULT     0
public static final int     WMQ_COMPMSG_NONE    0
public static final int     WMQ_COMPMSG_RLE     1
public static final int     WMQ_COMPMSG_ZLIBFAST    2
public static final int     WMQ_COMPMSG_ZLIBHIGH    4

请记住,我正在尝试提供帮助,但不会设置测试环境只是为了发布可能的解决方案。如果这样没有帮助,请随意投票。

答案 1 :(得分:2)

如果没有APAR IJ12614,则无法在XMS .NET中以编程方式设置通道压缩。为了使用通道压缩,必须通过CCDT使用它。

据我所知,也不支持WMQ_CCDTURL。使用标准环境变量,并将具有不同QMNAME字段值的多个记录添加到单个CCDT中。让应用程序连接到适当的队列管理器名称,以便从CCDT中选择正确的记录。请记住,在这种情况下,如果还使用星号,则队列管理器名称可以是逻辑名称,而不必是物理名称。

确保所有通道名称在CCDT中都是唯一的。无论如何都是好的做法。例如,请勿使用SYSTEM.DEF.SVRCONN,而应使用APP1.QM2.SVRCONN或类似的名称,例如通道名称中包含应用程序引用和QMgr名称引用。