2


0

現在、メインフレームからデータを取得するためにWebSphere MQを使用していますが、時にはMQ側で問題に直面しています。

MQを迂回してメインフレームからデータを取得する代わりにJMSを使用する方法があるかどうかを知りたいです。 WebSphere Application Server 6.0.2を使用しています。

3 Answer


3


申し訳ありませんが、JMSはドライバインタフェースであり、キューマネージャの実装ではありません。

JMSとキューマネージャの間には、JDBCとデータベースの間と同じ違いがあります。

LLP、アンドレア


1


もちろん、Java側でJMSを使用することもできます。これは、MQへの呼び出しをラップすることになります。 あなたはただメッセージヘッダに注意する必要があります。 MQを他のメッセージングインフラストラクチャで置き換えることは、メインフレームが何を話すことができるかにかかっています。 MQは、IBMのメインフレームシステムによってサポートされているため、よく選択されます。

グレッグ


0


ロジックを見つけてください、

  1. ConnectionFactory、Connection、およびSessionを使用してサーバーへの接続を確立する必要があります。

  2. Queueを使ってQueue参照を作成する必要があります。

  3. TextMessageを使用してQueueに送信する予定のMessage用のオブジェクトを作成する必要があります。

  4. Queueとやり取りするためのオブジェクトを作成する必要があります。 ここでは、MessageProducerが手順3で作成したメッセージを送信し、MessageConsumerが応答を受信して​​いました。

実装のための以下のコードを見つけてください、

//Instantiate a Sun Java(tm) System Message Queue ConnectionFactory
ConnectionFactory myConnFactory = new com.sun.messaging.ConnectionFactory();

文字列h = "ホスト名";文字列p = "PORTNO";

// Set imqAddressList property
((com.sun.messaging.ConnectionFactory)myConnFactory).setProperty(com.sun.messaging.ConnectionConfiguration.imqAddressList、new StringBuffer()。append( "mq://").append(h).append( ":" .append(p).append( "/ jms")。toString());

//Create a connection to the Sun Java(tm) System Message Queue Message Service.
接続myConn = myConnFactory.createConnection();

//Start the Connection created in step 3.
myConn.start();

//Create a session within the connection.
Session mySess = myConn.createSession(false、Session.AUTO_ACKNOWLEDGE);

//Instantiate a Sun Java(tm) System Message Queue Destination administered object.
キューmyQueue = new com.sun.messaging.Queue( "");

//Create a message producer.
MessageProducer myMsgProducer = mySess.createProducer(myQueue);

//Create and send a message to the queue.
TextMessage myTextMsg = mySess.createTextMessage(); myTextMsg.setText( "");

System.out.println( "送信メッセージ:" myTextMsg.getText()); myMsgProducer.send(myTextMsg);

//Create a message consumer.
MessageConsumer myMsgConsumer = mySess.createConsumer(myQueue);

//Start the Connection created in step 3.
myConn.start();

//Receive a message from the queue.
メッセージmsg = myMsgConsumer.receive();

//Retreive the contents of the message.
if(msg instanceof TextMessage){TextMessage txtMsg =(TextMessage)msg; System.out.println( "メッセージの読み取り:" txtMsg.getText()); }

//Close the session and connection resources.
mySess.close(); myConn.close();