2017-02-14 110 views
1

我有一個問題WSO2 IMB MQ連接,我在ESB新的,所以我用手動創建上創建.bindings結束我的ESB和IBM MQ與新創建的隊列

https://docs.wso2.com/display/ESB460/Configure+with+IBM+WebSphere+MQ

連接文件和使用。一切正常。所以我能夠從隊列管理器中存在的隊列中讀取消息。

問題:

  • 我是否需要重建每次當我創造新的排隊時間.binding文件? 有沒有一種方法來使用/看到新創建的隊列而不重建一個.binding文件?

  • 對於\庫\的conf \ axis2.xml連接我用

> <parameter name="transport.jms.ConnectionFactoryType" > locked="false">queue</parameter> 
> <parameter name="transport.jms.UserName" locked="false">**myname**</parameter> 
> <parameter name="transport.jms.Password" locked="false">**mypassword**</parameter> 

我見到這對http://nandikajayawardana.blogspot.com/search/label/WSo2%20ESB

,但也許我應該用這個

> <parameter name="transport.jms.ConnectionFactoryType" 
> locked="false">**topic**</parameter> 
>    <parameter name="transport.jms.Destination">ivtT</parameter> 
+0

我發現我需要使用WMQInitialContextFactory和改變ESB的Axis2配置如<參數名稱=「java.naming.provider。 URL「locked =」false「> {MQ_SERVER_IP}:{PORT}/{CHANNEL_NAME} {QUEUE_MANAGER_NAME} 隊列 <參數名稱=」transport.jms.Destination「> {QUEUE_NAME}但爲什麼需要定義隊列名??? – lpastor

回答

1

我試過每一個組合後。在我的情況下工作的解決方案是:不建議

WMQInitialContextFactory ...只使用RefFSContextFactory他們從8版IBM MQ開始

因此創建.binding文件的庫\的conf \ axis2.xml後應該像

 <parameter name="esbMngr" locked="false"> 
      <parameter name="java.naming.factory.initial" locked="false">com.sun.jndi.fscontext.RefFSContextFactory</parameter> 
      <parameter name="java.naming.provider.url" locked="false">file:/home/wso2admin/wso2esb-5.0.0/jndi</parameter> 
      <parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">GSTQueueConnectionFactory</parameter> 
      <parameter name="transport.jms.ConnectionFactoryType" locked="false">queue</parameter> 
      <parameter name="transport.jms.UserName" locked="false">userName</parameter> 
      <parameter name="transport.jms.Password" locked="false">userPassword</parameter> 
     </parameter> 

.....

其中GSTQueueConnectionFactory是在.binding文件

那麼代理服務器看起來定義ConectionFactory名稱,如:

<?xml version="1.0" encoding="UTF-8"?> <proxy xmlns="http://ws.apache.org/ns/synapse" 
      name="TMSLeaseMQParser" 
      startOnLoad="true" 
      statistics="disable" 
      trace="disable" 
      transports="jms">  
<target> 
      <inSequence>   
      <log level="full">   
      </log> 
      </inSequence> 
      <outSequence> 
      <send/> 
      </outSequence> 
      <faultSequence/>   
</target>  
<parameter name="transport.jms.DestinationType">queue</parameter>  
<parameter name="transport.jms.Destination">TMSALease</parameter> 
    <parameter name="transport.jms.ContentType"> 
      <rules xmlns=""> 
      <jmsProperty>contectType</jmsProperty> 
      <default>application/xml</default> 
      </rules>  
</parameter>  
<parameter name="transport.jms.ConnectionFactory">esbMngr</parameter> <description/> 
</proxy> 

所以esbMngr是axis2.xml的定義,同時TMSALease部分的名稱是您正在從IBM MQ讀取的消息隊列

我希望這會節省一些時間...任何反饋我s歡迎

注意:通信可能會非常棘手。要確保你檢查你的用戶名可以訪問排隊,在IBM技術「2035 MQRC_NOT_AUTHORIZED Connecting to WebSphere MQ from WebSphere Application Server via CLIENT Bindings

要檢查MQ OAM權限我們dspmqaut命令讀更多,例如:

dspmqaut -m WS02ESBManager -n TMSALease -t queue -p userName 

要設置MQ OAM權限我們setmqaut命令,例如:

setmqaut -m WS02ESBManager -n TMSALease -t queue -p userName+put 

有時也幫助,如果你:

個禁用信道認證記錄通信屬性隊列管理器的 ...