Java 始终接收MQJE001:完成代码';2';,原因';2059';。错误
我是Web Sphere MQ的新手 我在AIX中创建了一个队列管理器、通道和侦听器,如下所示:Java 始终接收MQJE001:完成代码';2';,原因';2059';。错误,java,ibm-mq,websphere-7,Java,Ibm Mq,Websphere 7,我是Web Sphere MQ的新手 我在AIX中创建了一个队列管理器、通道和侦听器,如下所示: crtmqm MY_Q_MGR strmqm MY_Q_MGR runmqsc DEFINE LISTENER(MY_QM_LISTENER) TRPTYPE(TCP) PORT(5030) DEFINE CHANNEL(MY_QM_CHANNEL) CHLTYPE(SDR) CONNAME('10.128.1.51(5030)') XMITQ('MY_Q_MGR') DISCINT(0)
crtmqm MY_Q_MGR
strmqm MY_Q_MGR
runmqsc
DEFINE LISTENER(MY_QM_LISTENER) TRPTYPE(TCP) PORT(5030)
DEFINE CHANNEL(MY_QM_CHANNEL) CHLTYPE(SDR) CONNAME('10.128.1.51(5030)') XMITQ('MY_Q_MGR') DISCINT(0)
然后我检查QMGR是否正在运行。我在进程中看到了侦听器
然后,我尝试从java创建MQQueueManager,如下所示,得到了MQJE001:完成代码“2”,原因是“2059”。
import com.ibm.mq.MQException;
import com.ibm.mq.MQGetMessageOptions;
import com.ibm.mq.MQMessage;
import com.ibm.mq.MQPutMessageOptions;
import com.ibm.mq.MQQueue;
import com.ibm.mq.MQQueueManager;
import com.ibm.mq.constants.MQConstants;
import com.ibm.mq.MQEnvironment;
public class MQSample {
// code identifier
static final String sccsid = "@(#) samples/wmqjava/MQSample.java, jmscc.samples, k700, k700-L080529 1.4.1.1 08/06/01 09:37:53";
// define the name of the QueueManager
private static final String qManager = "MY_Q_MGR";
// and define the name of the Queue
private static final String qName = "SYSTEM.DEFAULT.LOCAL.QUEUE";
/**
* Main entry point
*
* @param args - command line arguments (ignored)
*/
public static void main(String args[]) {
try {
MQEnvironment.hostname = "MY IP ADDRESS";
MQEnvironment.channel = "MY_QM_CHANNEL";
MQEnvironment.port = 5030;
// Create a connection to the QueueManager
System.out.println("Connecting to queue manager: " + qManager);
System.out.println("Connecting to queue manager is finished: " + qManager);
// Set up the options on the queue we wish to open
int openOptions = MQConstants.MQOO_INPUT_AS_Q_DEF | MQConstants.MQOO_OUTPUT;
// Now specify the queue that we wish to open and the open options
System.out.println("Accessing queue: " + qName);
MQQueue queue = qMgr.accessQueue(qName, openOptions);
MQQueueManager qMgr = new MQQueueManager(qManager); // here i got error
System.out.println("Connecting to queue manager is finished: " + qManager);
// Set up the options on the queue we wish to open
int openOptions = MQConstants.MQOO_INPUT_AS_Q_DEF | MQConstants.MQOO_OUTPUT;
// Now specify the queue that we wish to open and the open options
System.out.println("Accessing queue: " + qName);
MQQueue queue = qMgr.accessQueue(qName, openOptions);
我被困在这里了 您需要一个服务器连接(
SVRCONN
)类型的通道,而不是SDR
类型。客户端应用程序需要SVRCONN
类型通道连接到队列管理器,其中SDR
类型通道用于两个队列管理器之间的通信
创建队列管理器时,将创建默认的SVRCONN通道SYSTEM.DEF.SVRCONN
。您可以将其用于测试。但在生产中,建议您创建自己的频道,而不要使用任何预定义的频道
请参阅此以了解您需要执行的操作的完整详细信息。这是《WebSphere MQ快速入门》一书中的内容。非常感谢您。我刚刚使程序运行。