【发布时间】:2018-01-19 06:13:57
【问题描述】:
我正在尝试为 IBM MQ 队列创建一个侦听器,以便在使用本机 API 将消息放入队列时读取消息。
使用 Thread/TimerTask 每秒执行一次 GET 是否更好。
我需要使用 CCDT 、用户名和密码进行身份验证。
有没有可用的默认监听器? 使用下面的代码读取
MQMessage theMessage = new MQMessage();
MQGetMessageOptions mqGetMessageOptions = new MQGetMessageOptions();
mqGetMessageOptions.options=MQC.MQGMO_WAIT | MQC.MQGMO_BROWSE_FIRST;
mqGetMessageOptions.matchOptions=MQC.MQMO_NONE;
mqGetMessageOptions.waitInterval=5000;
try{
//read the message from queue
queue.get(theMessage,mqGetMessageOptions);
mqGetMessageOptions.options = MQC.MQGMO_MSG_UNDER_CURSOR;
queue.get(theMessage, mqGetMessageOptions);
【问题讨论】:
-
您说您需要使用 CCDT 进行用户名和密码验证吗?这是什么验证?这是 MQ v8 或更高版本的本机连接身份验证,还是服务器端某种形式的安全出口?对 MQ v8 或更高版本进行身份验证的一种方法是使用 mqcred 出口,这就是您认为需要使用 CCDT 的原因吗?
-
是的 queueManager = new MQQueueManager(qManager, chanTab);为了连接到队列管理器,我传递了 CCDT 文件
-
我问了几个不同的问题,“Yeah”指的是什么?您是否确认队列管理器正在使用 MQ v8 和更高版本的连接身份验证?
-
CCDT 是否有一个使用 mqcred 的 CLNTCONN 通道和 mqcred 出口?
-
我需要传递所有 3 个变量,用户名、密码和 CCDT 文件才能获得连接。 MQ 是 V8。我使用的 CCDT 没有配置客户端安全出口。并且 CHLAUTH 规则被配置为控制对 WebSphere MQ 队列管理器的访问。
标签: multithreading jms message-queue ibm-mq