簡體   English   中英

通過綁定將JMS連接到遠程MQ

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM