0

我有两个程序

第一个程序:

qManager = serverConfig.qMgr;
            queueName=serverConfig.qName;
            this.serverType=serverType;
            //Factory Settings

            MQEnvironment.hostname =serverConfig.server;

            MQEnvironment.port = serverConfig.port;
            //
            MQEnvironment.channel = serverConfig.sChannel;

            MQEnvironment.properties.put(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES);//Connection

// Create a connection to the queue manager

            //qMgr = new MQQueueManager(qManager);

第二个程序:

                InitialDirContext ctx = null;
                Hashtable environment = new java.util.Hashtable();
                try{
                environment.put(Context.INITIAL_CONTEXT_FACTORY,QUEUE_CONTEXT);
                environment.put(Context.PROVIDER_URL,QUEUE_URL);
                ctx = new InitialDirContext(environment);

在第一个程序中它要求提供队列管理器名称,但在第二个程序中它不需要队列管理器名称。我需要用第二个程序替换第一个程序代码。任何人都可以帮我解决这个问题吗??

4

1 回答 1

0

您的第二个程序是一个 JMS 应用程序,它使用 JNDI 查找来获取连接详细信息。

            environment.put(Context.INITIAL_CONTEXT_FACTORY,QUEUE_CONTEXT);
            environment.put(Context.PROVIDER_URL,QUEUE_URL);

            ctx = new InitialDirContext(environment);    
            connectionFactory = (ConnectionFactory) ctx.lookup(MYCF_LOOKUP_NAME);

QUEUE_CONTEXT是从 QUEUE_URL 中查找的连接工厂名称。将QUEUE_CONTEXT包含所有连接详细信息,例如队列管理器名称、通道等。

于 2013-10-30T14:01:45.653 回答