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

mq java 怎么判断队列为空

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

我来回答

1个回答

热心网友 时间:2023-10-11 04:43

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
王卡专属免流包是什么意思 腾讯王卡专属流量是什么意思 人防临空墙排烟机房可以留洞吗? 瑞士转机的问题? 雅阁、第九代凯美瑞、迈腾,大空间的中级车推荐 云顶之弈双人排位介绍 金铲铲之战 金铲铲段位相差多少可以一起打? 现在上海办理居住证需要本人去吗 34周加5天是几个月 孕34周是几个月了 孕34周如何预防早产 抖音“最尴尬结婚证”走红,网友看到了什么感叹到:这才是真爱!? MQ Java Client 方式和MQ Java Binding方式的区别 结婚证扫描件怎么弄 抖音里怎么查看结婚证 制作结婚证怎么那个照片不显示出来 - 信息提示 开展企业文化理念的意义 建设企业文化有什么意义? 求加强企业文化建设的现实意义 企业文化建设的意义是什么? 红色警戒2共和国之辉中文版下载 红色警戒2共和国之辉硬盘版下载 红警2共和国之辉 求红色警戒2共和国之辉绿色修改器下载地址,要能用。 谁有红警2共和国之辉的绿色下载网址,不要有任何插件的,谢谢 哪里有绿色版的红警2共和国之辉 IT包括哪些? 淘宝店铺中如何隐藏自定义内容区模块的标题? 请问QQ空间模块的标题怎么去掉? 百度空间如何在文章标题和模块标题区加入图片? 添加图片模块标题什么意思?怎么弄? 离婚了男方在抖音上发结婚证照片,还有其他照片违法吗? java 监听mq消息 底层是用线程实现的吗 请问用java连接MQ时,如何获得某一个队列管理器下所有队列名称。 用java接口怎么取MQ队列深度 Java和MQ问题:JMS中的进入了OnMessage方法,是否就等于消费了这个MQ消息,还是有其它机制? spring java mq消息是怎么实现消息接收的 MQ Java客户端连接出错,报2009错误,请问如何解决 java使用mq get api从mq中取数据怎样触发侦听器连续取数据 怎样使用java获取当前MQ队列深度 Java 开源消息队列ActiveMQ等 java项目打成war后,项目中用到的zookeeper或mq等服务需要再安装吗? 创业板股票和普通股票,在交易时有哪些不同? 抖音pc站是什么 芭蕾女睡觉穿舞蹈袜舞蹈服吗? 在冰上芭蕾日常培训中,需要注意哪些事情呢? 服饰穿戴原则(T.O.P.)具体要求有哪些 芭蕾舞男演员的裤子结构问题 舞蹈练功服里面要戴胸罩吗? sport+是什么意思 芭蕾舞女生自爱嘛?