mq-问一个关于 IBM WebSphere MQ的问题,消息错误代码为RC2019

问题描述

问一个关于 IBM WebSphere MQ的问题,消息错误代码为RC2019
我写了一个生产者程序,每隔5s往MQ发100条消息,又写了一个消费者程序,每隔10s从MQ中取消息,再写入文件,
生产者MQ主要代码:
MQQueue queue = null;
int openOptions = MQConstants.MQOO_OUTPUT
| MQConstants.MQOO_FAIL_IF_QUIESCING
| MQConstants.MQGMO_WAIT;

    if (qMgr == null || !qMgr.isConnected()) {        qMgr = new MQQueueManager(qmName);    }    try {        queue = qMgr.accessQueue(qName openOptions);        MQMessage putMessage = new MQMessage();        // putMessage.messageId = msgID.getBytes();        // putMessage.writeUTF(message);        putMessage.write(message.getBytes(""UTF-8""));        MQPutMessageOptions pmo = new MQPutMessageOptions();        queue.put(putMessage pmo);        queue.close();    } catch (Exception e) {        e.printStackTrace(System.out);        throw e;    } finally {        try {            if (queue != null) {                try {                    queue.close();                } catch (MQException e) {                    e.printStackTrace();                }            }            if (qMgr != null) {                qMgr.disconnect();            }        } catch (MQException e) {            throw e;        }    }    消费者MQ主要代码:    String[] messages = null;    int count = 0;    try {        qMgr = new MQQueueManager(qmName);    } catch (MQException e) {        throw e;    }    // @SuppressWarnings(""deprecation"")    // int openOptions = MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_OUTPUT    // | MQC.MQOO_INQUIRE;    // int openOptions = MQConstants.MQOO_INPUT_AS_Q_DEF |    // MQConstants.MQOO_OUTPUT;    int openOptions = MQConstants.MQOO_INPUT_AS_Q_DEF            | MQConstants.MQOO_INQUIRE ;

// | MQConstants.MQOO_FAIL_IF_QUIESCING;

    MQQueue queue = null;    try {        queue = qMgr.accessQueue(qName openOptions null null null);        int depth = queue.getCurrentDepth();        messages = new String[depth];        // System.out.println(""队列中的消息长度为:"" + depth);        // 将队列中的消息读取出来        while (depth-- > 0) {            // System.out.println(depth);            MQMessage msg = new MQMessage();// 读取的队列消息            // msg.messageId = msgID.getBytes();            MQGetMessageOptions gmo = new MQGetMessageOptions();            queue.get(msg gmo);            int len = msg.getDataLength();            byte[] buf = new byte[len];            msg.readFully(buf 0 len);            String strmsgCont = new String(bufUTF-8"");            messages[count++] = strmsgCont;        }    } catch (MQException e) {        e.printStackTrace();    } catch (Exception e) {        e.printStackTrace();    } finally {        if (queue != null) {            try {                queue.close();            } catch (MQException e) {                e.printStackTrace();            }        }        if (qMgr != null) {            qMgr.disconnect();        }    }    return messages;}

刚开始的几次,差不多20s内两边正常收发,之后就报了这个异常MQJE001: 完成代码为 '2',原因为 '2019'。
com.ibm.mq.MQException: MQJE001: 完成代码为 '2',原因为 '2019'。

看了IBM的官方文档解释,也是一头雾水,麻烦谁知道的告诉一下;

注:附IBM官方接释:
2019 (07E3) (RC2019): MQRC_HOBJ_ERROR
Explanation
The object handle Hobj is not valid for one of the following reasons:
v The parameter pointer is not valid or (for the MQOPEN call) points to
read-only storage. (It is not always possible to detect parameter pointers that are
not valid; if not detected unpredictable results occur.)
v The value specified was not returned by a preceding MQOPEN call.
v The value specified has been made invalid by a preceding MQCLOSE call.
v The handle is a shared handle that has been made invalid by another thread
issuing the MQCLOSE call.
v The handle is a nonshared handle that is being used by a thread that did not
create the handle.
v The call is MQGET or MQPUT but the object represented by the handle is not a
queue.

时间: 2024-11-08 21:06:39

mq-问一个关于 IBM WebSphere MQ的问题,消息错误代码为RC2019的相关文章

IBM WebSphere MQ创建队列管理器前的系统级操作

您可以通过本文了解 z/OS 的子系统基本配置和启动流程,以及 MQ 需要的所有定制化操作.作为该系列的第 1 部分,本文着重介绍创建队列管理器前的系统级操作. IBM 主机及其之上的 z/OS 操作系统,是在上世纪 60 年代 IBM 主机平台之上不断积累进化的产物.发展到今日,该环境已经演变为如今商业计算领域最为高效.稳定.可靠的计算机 IT 环境之一.如今,越来越多的银行.金融.电信.交通等行业领域意识到主机系统相比于开放式服务器系统的优势,并投入到主机的怀抱中来. 此外,IBM WebS

IBM WebSphere MQ 7.5基本用法

一.下载7.5 Trial版本 http://www.ibm.com/developerworks/downloads/ws/wmq/ 这是下载网址,下载前先必须注册IBM ID,下载完成后一路Next即可(注:windows上安装时,会询问是否域环境,初次学习时,为简单起见,建议选择No) 安装完成后,MQ的Bin目录会自动添加到环境变量Path中,以后就可以直接用Dos命令行窗口操作(当然,也可以用图形化GUI方式通过IBM WebSphere MQ Explorer来管理) 注:安装时,强

IBM WebSphere MQ在Windows上多版本的安装

本文从基本概念入手,并辅以详细的实现步骤,在 Windows 平台上同时安装 MQ7.0/MQ7.1/MQ7.5.通过阅读本文,读者能够快速理解 MQ V7.1 的多版本特性,并应用到实际工作中. WebSphere MQ 是非常流行的消息中间件,拥有众多的企业级用户.它提供了跨平台的,支持不同编程语言的安全可靠的消息传递,是用于部署企业级 IT 网络的强大通讯工具.本文介绍的 MQ V7.1 多版本特性,有助于加速客户的测试.部署,更好的适应快速发展的 IT 技术. 本系列第 1 部分主要介绍

如何配置IBM WebSphere MQ环境来生成审计事件

系统管理员可使用 http://www.aliyun.com/zixun/aggregation/13387.html">WebSphere MQ 审计功能改进其对 WebSphere MQ 环境的控制和监视,而安全专家可使用它生成审计线索和改进系统治理.本文还将展示如何使用 IBM SupportPac MH05 和 IBM Tivoli Composite Application Manager (ITCAM) for Applications 来查看和监视审计事件. 随着 IT 安全

IBM WebSphere MQ对集群化环境和负载平衡的重要性

假设客户有一个重要应用程序使用 IBM® http://www.aliyun.com/zixun/aggregation/13387.html">WebSphere® MQ 作为消息传递系统,需要升级现有的分布式排队环境以处理新业务和确保高可用性.作为升级的一部分,现有环境中的一些队列管理器将作为一个集群的一部分,另一些队列管理器将单独提供.本文将介绍 IBM 提出的一种概念证明设计. 队列管理器别名定义 队列管理器别名定义有 3 个用途: 在发送消息时,重新映射队列管理器名称 在发送消息

展示IBM WebSphere MQ Application Activity Trace的潜在用途

Application Activity Trace 提供一个详细视图,包含应用程序行为.应用程序与 http://www.aliyun.com/zixun/aggregation/13387.html">WebSphere MQ 队列管理器及其资源的交互.本文使用多个场景来展示 IBM®WebSphere®MQ Application Activity Trace 的潜在用途,包括问题确定和维护 WebSphere MQ 消息的审计跟踪.在各个场景中将使用两个工具来格式化用于分析的 Ap

ibm websphere mq与webservice整合

问题描述 ibm websphere mq与webservice整合 3C 项目里有个需求,需要同时用到ibm mq和webservice.我是client,webservice中没有提供需要访问的ip地址,访问的话需要通过mq队列实现,请问有谁做过吗?具体怎么实现?能否提供样例代码,紧急求助!!! 解决方案 lz的意思是webservice中返回的消息推送给mq,client从mq中读取消息.是这样吗?如果是的话,就用java代码连接目的mq呗.不知lz对mq了解多少,贴些资源自己去看吧.ja

IBM WebSphere MQ帮助用户了解队列管理器迁移的场景

一旦在迁移过程中出现问题,客户总是会以最高的优先级来要求 IBM 支持团队给予最高的重视.迁移问题通常很复杂,涉及面很多,需要收集很多的日志文件协助分析.对于 http://www.aliyun.com/zixun/aggregation/13387.html">WebSphere MQ 来说,最重要的迁移对象是队列管理器.本文通过概念与实例的结合,帮助用户了解队列管理器迁移的场景.使用户熟悉各种情况下对队列管理器的迁移有所掌握. 通常来说,有两种方式可以对 MQ 队列管理器进行迁移.一种

IBM WebSphere MQ认证及访问权限管理

文章介绍了 MQ 7.0 的http://www.aliyun.com/zixun/aggregation/18083.html">权限管理机制和 MQ 7.1 新引入的通道认证机制,并提供详细的实现命令供读者参考.通过概念与实例的结合,使用户对 MQ 的认证及权限管理有一个全面详实的认识. 在企业级解决方案中,WebSphere MQ 被广泛用于不同产品间的通信,包括金融及银行领域.在这些领域中,对系统的安全性特别敏感,这就要求 MQ 具有完善的安全机制,从而应对各种潜在的攻击.MQ 的