JMSWMQ2013:Weblogic未将Foreign Connection Factory中指定的用户标识和密码发送到IBM MQ

时间:2016-10-06 02:17:16

标签: authentication weblogic ibm-mq

我从MQ管理员的USER_ID和PASSWORD提供,从我们在Webloigc 12c(12.1.3)上托管的JMS应用程序连接到IBM MQ。

以下是我在Weblogic中所做的配置: - 1.创建外部服务器。指定的JNDI初始上下文工厂为" com.sun.jndi.fscontext.RefFSContextFactory"和JNDI连接URL作为.bindings文件的路径。

  1. 在外国服务器中创建目的地。

  2. 在外部服务器中创建连接工厂。指定MQ管理员提供的用户名和密码。

  3. 重新启动服务器。

  4. 重启后,服务器日志显示错误" JMSWMQ2013"和MQ管理员报告了以下错误

    ----- cmqxrsrv.c : 2321 -------------------------------------------------------
    09/30/2016 11:09:46 AM - Process(10686.64) User(mqm) Program(amqzlaa0)
                        Host(vlq9dmqsdv01.fulcrumlimited.ca) Installation(Installation1)
                        VRMF(8.0.0.4) QMgr(FCSWIFTD)
    
    AMQ5540: Application 'weblogic.Server' did not supply a user ID and password
    

    MQ管理员还报告他接收用户ID作为OS用户创建EJB而不是外部服务器中指定的用户ID。

    我需要做什么配置,以便weblogic向IBM MQ发送正确的用户名和密码。

1 个答案:

答案 0 :(得分:1)

您可以通过JMS API调用传递用户标识符和密码:

  javax.jms.ConnectionFactory.createConnection(String, String)

或者,如果使用简化的JMS 2.0 API:

  javax.jms.ConnectionFactory.createContext(String, String)

其中第一个String参数是在建立连接时传递给MQ的用户标识符,第二个参数是密码。

如果您不通过上述API调用提供用户凭据,则JMS的MQ类将默认将启动JVM的用户标识符发送到连接上的MQ队列管理器而不是密码。

供参考: https://docs.oracle.com/javaee/7/api/javax/jms/ConnectionFactory.html