问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

mq 如何判断队列不为空

发布网友 发布时间:2022-04-26 13:12

我来回答

1个回答

热心网友 时间:2022-06-28 13:01

MQException
该类包含WebSphere MQ 完成代码和错误代码常量的定义。以MQCC_开始的常量是WebSphere MQ 完成代码,而以MQRC_开始的常量则是WebSphere MQ 原因代码。只要出现WebSphere MQ
错误,就会给出MQException。
MQGetMessageOptions
该类包含控制MQQueue.get()方法行为的选项。
MQManagedObject
该类是MQQueueManager、MQQueue 和MQProcess 类的超类。它提供查询并设置这些资源属性的能力。

------解决方案--------------------
去取一次,得到 2033 错误就是没有消息符合你的条件。

使用 PCF 查询队列资料:

/**
* @return current depth of queue connected currently.
* @throws Exception
*/
public QueueInfo queryQueueInfo() throws Exception {
if (!checkStatus2(this.queueManager)) {
throw new IllegalStateException("Not Connected to queue manager.");
}

PCFMessageAgent agent = null;

try {
agent = new PCFMessageAgent(this.queueManager);

// Inquiry Queue Name & Current Depth.
int[] attrs = {
CMQC.MQCA_Q_NAME, CMQC.MQIA_CURRENT_Q_DEPTH,
CMQC.MQIA_OPEN_INPUT_COUNT, CMQC.MQIA_OPEN_OUTPUT_COUNT,
CMQC.MQIA_Q_TYPE, CMQC.MQIA_DEFINITION_TYPE, CMQC.MQIA_INHIBIT_GET,
CMQC.MQIA_INHIBIT_PUT };

PCFParameter[] parameters = {
new MQCFST(CMQC.MQCA_Q_NAME , getInputQueue().getText().trim()),
new MQCFIL(CMQCFC.MQIACF_Q_ATTRS , attrs) };

// logger.log("Querying current depth of current queue.");
MQMessage[] responses = agent.send(CMQCFC.MQCMD_INQUIRE_Q, parameters);

QueueInfo info = new QueueInfo();

for (int i = 0; i < responses.length; i++) {
MQCFH cfh = new MQCFH(responses[i]);

// Check the PCF header (MQCFH) in the response message

if (cfh.reason == 0) {
String name = "";
Integer depth = new Integer(0);

for (int j = 0; j < cfh.parameterCount; j++) { // Extract what we want from the returned attributes

PCFParameter p = PCFParameter.nextParameter(responses[i]);

switch (p.getParameter()) {
case CMQC.MQCA_Q_NAME:
name = (String) p.getValue();
info.name = name;
break;
case CMQC.MQIA_CURRENT_Q_DEPTH:
depth = (Integer) p.getValue();
info.depth = depth.intValue();
break;
case CMQC.MQIA_OPEN_INPUT_COUNT:
Integer inputCount = (Integer) p.getValue();
info.inputCount = inputCount.intValue();
break;
case CMQC.MQIA_OPEN_OUTPUT_COUNT:
Integer outputCount = (Integer) p.getValue();
info.outputCount = outputCount.intValue();
break;
case CMQC.MQIA_Q_TYPE:
info.type = ((Integer) p.getValue()).intValue();
break;
case CMQC.MQIA_DEFINITION_TYPE:
info.definitionType = ((Integer) p.getValue()).intValue();
break;
case CMQC.MQIA_INHIBIT_PUT:
info.putNotAllowed = ((Integer) p.getValue()).intValue() == 1;
break; case CMQC.MQIA_INHIBIT_GET:
info.getNotAllowed = ((Integer) p.getValue()).intValue() == 1;
default:
}
}

// System.out.println("Queue " + name + " curdepth " + depth);

return info;

} else {
System.out.println("PCF error:\n" + cfh);

// Walk through the returned parameters describing the error

for (int j = 0; j < cfh.parameterCount; j++) {
System.out.println(PCFParameter.nextParameter(responses[0]));
}

throw new Exception("PCF Error [reason :" + cfh.reason + "]");
}
}

return null;

} catch (Exception e) {
throw e;
} finally {
if (agent != null) {
try {
agent.disconnect();
} catch (Exception e) {
logger.log(e);
}
}
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
单位高温防护欠缺致员工中暑如何对待 狗狗为什么爱看视频 360浏览器怎么设置倍速播放 ...先讲女主的灵魂飘荡了一段时间,然后重生,请问是那本? 拯救者散热器怎么开 电脑如何一键还原系统电脑一键还原怎么操作 神舟笔记本电脑怎么重新设置神舟战神bios恢复出厂设置 神舟电脑恢复出厂设置神舟战神怎么恢复原厂系统 水泥楼梯如何铺木楼梯 家里面楼梯是水泥的不想铺地毯或者地砖还能铺什么 ActiveMQ 多个队列一个消费者 怎么接收信息 rabbitmq在web页面中如何查看json数据 java怎么将mq接收的文件消息提取出来 如何查看应用程序与MQ 队列管理器连接 如何查看activemq 查看消息堆栈 苹果手机怎么解除银行卡绑定 如何查看activemq 的消息接收记录 怎样解除iPhone 6绑定的银行卡 在JAVA开发中,如何查询MQ中的队列句柄状态? Apple Pay怎么删除银行卡 Apple Pay解绑银行卡教程 怎样彻底移除iPhone上面添加的银行卡 mq 可以查看发送队列深度么深度么? 怎样解除苹果手机上绑定的建行 苹果手机怎样解除绑定银行卡? 苹果手机怎么解除银行卡的绑定 苹果手机绑定的银行卡如何解除 如何删除绑定在苹果id的银行卡 如何解除iPhone的Apple ID银行卡绑定 如果想要去支教,需要什么条件? 高中毕业生可以去支教吗?如果可以,怎么申请? 用快手直播伴侣直播王者荣耀!怎么让观看者只能听到游戏声音,而听不到自己声音和周围环境声音呢? 为什么用电脑直播的时候别人听不到你说话? 什么把表格平均分三位数 表格平均成绩怎么求 表格中如何计算平均分 电脑表格如何求平均分 表格的平均分怎么做 交契税需要夫妻双方一起去吗 契税需要夫妻双方一起去交吗 交契税需要夫妻双方一起去吗? 契税,夫妻可以一人去交吗 房产证写着夫妻俩人名字,交契税时要夫妻俩人到场吗? 房子上写着夫妻名字交契税,需要夫妻都到场吗? 两个人一起买房交契税需要一起去吗? 契税夫妻可以一人去交吗 交房屋契税需要夫妻一起吗 夫妻双方的名字买新房 交契税只去一个人可以吗? 交房子契税必须夫妻到场吗 交契税时要不要夫妻2人一起去? 作文400字羊肉泡馍色香味形,做法,吃法