[英]JMS connection to a remote MQ with bindings
我想配置Java應用程序以使用綁定文件與JMS IBM MQ隊列一起使用。 我正在使用IBM提供的JMSDEMO應用程序。 它與本地MQ管理器一起工作,但是我無法使其連接到遠程管理器。 我已經在遠程計算機上生成了綁定文件,並將其復制到我的計算機上。
我已將綁定文件中的“ localhost”更改為遠程計算機名稱。 但是,該應用程序仍然認為它應該連接到本地質量管理。 (實際上,它會忽略主機名設置)。
這是IBM演示代碼:
public static final String cfLookup = "JMSDEMOCF";
public static final String JNDITopic = "JMSDEMOTopic";
public static final String JNDIQueue = "JMSDEMOQueue";
public static final String icf ="com.sun.jndi.fscontext.RefFSContextFactory";
........
static String url = "file:C:\\JMSDEMO\\JNDI";
..........
Hashtable environment = new Hashtable();
environment.put(Context.INITIAL_CONTEXT_FACTORY, icf);
environment.put(Context.PROVIDER_URL, url);
ctx = new InitialDirContext( environment );
connFactory = (ConnectionFactory)ctx.lookup( cfLookup );
connection = connFactory.createConnection();
connection.start();
這是綁定文件的一些片段(JMSDEMOCF是連接工廠的名稱)
JMSDEMOCF/RefAddr/3/Content=<the remote machine name or IP; both ignored>
JMSDEMOCF/RefAddr/29/Content=<the remote machine name or IP; both ignored>(the remote port)
它還具有以下行:
JMSDEMOCF/RefAddr/116/Type=XMSC_WMQ_LOCAL_ADDRESS
但是刪除它不會改變任何東西。
使用MQ Explorer在“綁定文件”中創建一個新的連接工廠(為什么要嘗試手動編輯文件?),並在此新的連接工廠上將Transport選項指定為MQ Client(默認為Bindings,即本地連接模式)。 在“連接”選項卡上,指定QM的地址,在“通道”選項卡上,指定用於連接到QM的服務器連接通道。
從遠程主機連接時,請在應用程序中使用新的連接工廠。 您可能需要在類路徑中包括一些其他的MQ JAR。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.