Java 如何解决MQJE001:完成代码';2';,原因';2195';问题

Java 如何解决MQJE001:完成代码';2';,原因';2195';问题,java,spring-boot,ibm-mq,ibm-integration-bus,Java,Spring Boot,Ibm Mq,Ibm Integration Bus,我正在做一个java程序来连接z/OS上的QMGR,因此,我正在使用绑定模式连接,因为客户端模式在OS内部是不启用的。当我运行jar文件时,它会抛出下一个堆栈跟踪: com.ibm.mq.MQException: MQJE001: Completion Code '2', Reason '2195'. at com.ibm.mq.MQSESSION.<init>(MQSESSION.java:2064) at com.ibm.mq.MQSESSION.getSessi

我正在做一个java程序来连接z/OS上的QMGR,因此,我正在使用绑定模式连接,因为客户端模式在OS内部是不启用的。当我运行jar文件时,它会抛出下一个堆栈跟踪:

com.ibm.mq.MQException: MQJE001: Completion Code '2', Reason '2195'.
    at com.ibm.mq.MQSESSION.<init>(MQSESSION.java:2064)
    at com.ibm.mq.MQSESSION.getSession(MQSESSION.java:2104)
    at com.ibm.mq.MQManagedConnectionJ11.<init>(MQManagedConnectionJ11.java:213)
    at com.ibm.mq.MQBindingsManagedConnectionFactoryJ11._createManagedConnection(MQBindingsManagedConnectionFactoryJ11.java:191)
    at com.ibm.mq.MQBindingsManagedConnectionFactoryJ11.createManagedConnection(MQBindingsManagedConnectionFactoryJ11.java:237)
    at com.ibm.mq.StoredManagedConnection.<init>(StoredManagedConnection.java:97)
    at com.ibm.mq.MQSimpleConnectionManager.allocateConnection(MQSimpleConnectionManager.java:194)
    at com.ibm.mq.MQQueueManagerFactory.obtainBaseMQQueueManager(MQQueueManagerFactory.java:874)
    at com.ibm.mq.MQQueueManagerFactory.procure(MQQueueManagerFactory.java:822)
    at com.ibm.mq.MQQueueManagerFactory.constructQueueManager(MQQueueManagerFactory.java:764)
    at com.ibm.mq.MQQueueManagerFactory.createQueueManager(MQQueueManagerFactory.java:200)
    at com.ibm.mq.MQQueueManager.<init>(MQQueueManager.java:871)
似乎我通过改变下一行解决了这个问题:

MQEnvironment.properties.put(MQConstants.TRANSPORT_PROPERTY, MQConstants.MQCNO_STANDARD_BINDING);
但现在我有一个问题:

java.lang.NullPointerException
    at com.ibm.mq.MQQueueManagerFactory.determineTransport(MQQueueManagerFactory.java:917)
    at com.ibm.mq.MQQueueManagerFactory.obtainBaseMQQueueManager(MQQueueManagerFactory.java:864)
    at com.ibm.mq.MQQueueManagerFactory.procure(MQQueueManagerFactory.java:822)
    at com.ibm.mq.MQQueueManagerFactory.constructQueueManager(MQQueueManagerFactory.java:764)
    at com.ibm.mq.MQQueueManagerFactory.createQueueManager(MQQueueManagerFactory.java:200)
    at com.ibm.mq.MQQueueManager.<init>(MQQueueManager.java:871)
java.lang.NullPointerException
位于com.ibm.mq.MQQueueManagerFactory.determineTransport(MQQueueManagerFactory.java:917)
位于com.ibm.mq.MQQueueManagerFactory.obtainBaseMQQueueManager(MQQueueManagerFactory.java:864)
位于com.ibm.mq.MQQueueManagerFactory.procure(MQQueueManagerFactory.java:822)
位于com.ibm.mq.MQQueueManagerFactory.constructQueueManager(MQQueueManagerFactory.java:764)
位于com.ibm.mq.MQQueueManagerFactory.createQueueManager(MQQueueManagerFactory.java:200)
位于com.ibm.mq.MQQueueManager。(MQQueueManager.java:871)

有什么想法吗?

2195是MQRC意外错误。在z/OS队列管理器的MSTR地址空间的系统日志中查看它所说的内容—可能是某种异常终止。我还在错误中看到此文本
LocalMQ.get390Adapter64
。我不知道这是什么意思,但可能是暗示您使用了错误的比特数?您能否确认此java应用程序正在z/OS上使用队列管理器运行?我看到您在[spring boot]和[ibm integration bus]中都标记了这个问题,您能解释一下这些技术中的一种或两种如何应用于您的情况吗?您能确认您使用的是哪个版本的MQ jar文件吗?我用这两种技术来标记这个问题,因为可能一些IIB开发人员有过类似的问题。。。我使用的java版本是IBM J9 VM(build 2.9,JRE 1.8.0 z/OS s390x-64位压缩引用20191106_432135(启用JIT,启用AOT)您使用的是哪个IBM MQ jar文件版本?您应该坚持使用与您的问题直接相关的标记。您应该提供导致错误的java JMS代码的最小示例。
MQEnvironment.properties.put(MQConstants.TRANSPORT_PROPERTY, MQConstants.MQCNO_STANDARD_BINDING);
java.lang.NullPointerException
    at com.ibm.mq.MQQueueManagerFactory.determineTransport(MQQueueManagerFactory.java:917)
    at com.ibm.mq.MQQueueManagerFactory.obtainBaseMQQueueManager(MQQueueManagerFactory.java:864)
    at com.ibm.mq.MQQueueManagerFactory.procure(MQQueueManagerFactory.java:822)
    at com.ibm.mq.MQQueueManagerFactory.constructQueueManager(MQQueueManagerFactory.java:764)
    at com.ibm.mq.MQQueueManagerFactory.createQueueManager(MQQueueManagerFactory.java:200)
    at com.ibm.mq.MQQueueManager.<init>(MQQueueManager.java:871)