2016-08-14 77 views
-1

我是MQ和JNDI的新手,我正在尋找一些簡單的樣例Java代碼來解析我的WAS JMS配置,從兩個消息隊列中讀取。如何從WAS上的Java應用程序(使用JNDI)爲IIB MQ隊列使用WAS JMS資源

具體我想Java代碼:在IBM的WebSphere應用服務器網絡部署

  • 運行代碼(WAS ND 8.5.5)
  • 寫入,並從2個IBM集成總線讀取( IIB)消息隊列外部系統

  • 在WAS上我配置的JMS資源如下:

    • 爲連接工廠 - 給它一個隊列#1的JNDI名稱「jms/MQCONN.FACTORY」
    • - 給它一個隊列#2的JNDI名稱「jms/MQUEUE1.DEST」
    • - 讓是一個JNDI名稱 「的JMS/MQUEUE2.DEST」

我設置JAAS - J2C認證數據的憑據。

注意:我無法測試連接到MQ的連接工廠的連接,因爲在嚮導完成後添加安全設置並且只能從嚮導進行測試。我相信WAS配置是正確的,包括憑證。

我特別不明白如何將JNDI部分代碼(即如何儲存環境變量,告訴JNDI要使用的初始上下文,以及在哪裏可以找到供應商。)

感謝的任何援助!

+0

就我所瞭解的IIB消息隊列而言,沒有這種東西。你的意思是IBM MQ隊列嗎? IIB可以與MQ的隊列進行交互,但它本身沒有隊列。 –

回答

0

Sibyl,一旦你配置了這些管理對象(QueueConnectionFactory.Queue),你應該能夠從你可以在應用服務器上部署的代碼中查找這些對象。

您將獲得

A)的InitialContext(當你在服務器上部署一個耳朵,你可以使用默認的構造函數)

二)查找隊列連接工廠(context.lookup(XXX) )

c)中查找隊列(context.lookup(YYYY))

d)創建的消息生產者

e)建立一個隊列會話,文本消息和發送郵件直接

你可以在這裏得到一些更多的想法(http://www.webspheretools.com/sites/webspheretools.nsf/docs/Creating%20a%20Queue%20Connection%20Factory%20and%20Queue%20for%20connectivity%20to%20MQ

基本上後配置是很多樣板JMS的編碼

0

這裏是給你一些幫助。 在WAS中創建資源之後,您不需要提供額外的配置。

Queue myQueue; 
QueueConnectionFactory myQueueFactory; 
QueueConnection connection = null; 
QueueSession session = null; 

try{ 
    InitialContext jndi = new InitialContext(); 
    myQueueFactory = (QueueConnectionFactory) jndi.lookup("jms/MQCONN.FACTORY"); 
    myQueue = (Queue) jndi.lookup("jms/MQUEUE1.DEST"); 

    connection=myQueueFactory.createQueueConnection(); 

    session = connection.createQueueSession(true, Session.AUTO_ACKNOWLEDGE); 

    QueueSender sender = session.createSender(myQueue); 
    connection.start(); 
    TextMessage textMessage = session.createTextMessage(event); 
    textMessage.setStringProperty("messageType", "file"); 
    sender.send(textMessage); 

    sender.close(); 

    if (session != null) { 
     session.close(); 
    } 

    if (connection != null) { 
     connection.close(); 
    } 
} catch (JMSException e) { 
    e.printStackTrace(); 
} 
相關問題