MQと通信する完全なJAVAプログラム
このプログラムの元のドキュメントはインターネットから来ていますが、作者が誰なのか分かりません.先にお礼を言って、私は個人の理解を増やして、注釈を増やして、このように読みやすくて理解しやすいです.
このプログラムはメッセージの送信とメッセージの読み取り機能を実現し、send***とget***メソッドを参照してください.これはテストにのみ適しています.環境内のプログラムはこれに対して少し変更する必要があるため、実際の環境ではwhile(true){...}の無限ループでgetメソッドを呼び出し、値があればメッセージの処理操作を実行し、値がなければループを続け、getメソッドで待つ時間があります.
このプログラムはそれ自体が理解できます.
1、まず関連する環境変数を設定する
2、再接続キューマネージャ
3、キューマネージャで指定されたキューを再操作する
4、指定されたキューにメッセージを送るか、指定された対列からメッセージを取り出す
5、キューを閉じる
MQエクスプローラでリモート・キューを構成し、リモート・キューを介してリモートのMQにメッセージを送信する方法が分からない場合は、次の文書を参照してください.
http://blog.csdn.net/fenglibing/archive/2009/05/08/4160639.aspx
実際の環境でのMQは、少なくとも2つのローカルキューと1つのリモートキューがあるべきだと思います.メッセージのインタラクションは必ず相互であり、受信メッセージがあり、送信メッセージもあるに違いありません.ローカルキューは、外部から送信されたメッセージを受信するために使用され、通常の使用方法です.もう1つのローカル・キューは、リモート・キューの転送キューとして使用され、リモート・ホストのローカル・キューにメッセージを送信します.メッセージをリモート・キューに正常に転送するには、チャネルを構成する必要があります.通常、リモート・チャネルのIPアドレスおよびポート、ローカル・トランスポート・キューの名前、およびローカルの通信アドレスを指定する必要があります.これにより、リモート・ホストにメッセージを送信できます.
転載先:http://blog.csdn.net/fenglibing/article/details/4161441
このプログラムはメッセージの送信とメッセージの読み取り機能を実現し、send***とget***メソッドを参照してください.これはテストにのみ適しています.環境内のプログラムはこれに対して少し変更する必要があるため、実際の環境ではwhile(true){...}の無限ループでgetメソッドを呼び出し、値があればメッセージの処理操作を実行し、値がなければループを続け、getメソッドで待つ時間があります.
このプログラムはそれ自体が理解できます.
1、まず関連する環境変数を設定する
2、再接続キューマネージャ
3、キューマネージャで指定されたキューを再操作する
4、指定されたキューにメッセージを送るか、指定された対列からメッセージを取り出す
5、キューを閉じる
MQエクスプローラでリモート・キューを構成し、リモート・キューを介してリモートのMQにメッセージを送信する方法が分からない場合は、次の文書を参照してください.
http://blog.csdn.net/fenglibing/archive/2009/05/08/4160639.aspx
実際の環境でのMQは、少なくとも2つのローカルキューと1つのリモートキューがあるべきだと思います.メッセージのインタラクションは必ず相互であり、受信メッセージがあり、送信メッセージもあるに違いありません.ローカルキューは、外部から送信されたメッセージを受信するために使用され、通常の使用方法です.もう1つのローカル・キューは、リモート・キューの転送キューとして使用され、リモート・ホストのローカル・キューにメッセージを送信します.メッセージをリモート・キューに正常に転送するには、チャネルを構成する必要があります.通常、リモート・チャネルのIPアドレスおよびポート、ローカル・トランスポート・キューの名前、およびローカルの通信アドレスを指定する必要があります.これにより、リモート・ホストにメッセージを送信できます.
/**
* @author Fenglb E-mail:[email protected]
* @version :2009-4-30 04:13:38
*
*/
import java.io.IOException;
import com.ibm.mq.MQC;
import com.ibm.mq.MQEnvironment;
import com.ibm.mq.MQException;
import com.ibm.mq.MQGetMessageOptions;
import com.ibm.mq.MQMessage;
import com.ibm.mq.MQPutMessageOptions;
import com.ibm.mq.MQQueue;
import com.ibm.mq.MQQueueManager;
public class MessageByMQ{
//
private static String qmName;
private static String qName;
private static MQQueueManager qMgr;
static{
// :
//MQEnvironment MQQueueManager ,MQEnvironment MQQueueManager ,
// MQQueueManager MQEnvironment .
MQEnvironment.hostname="10.24.1.180"; //MQ IP
MQEnvironment.channel="S_FENGLB"; //
MQEnvironment.CCSID=1381; // MQ 1381 GBK、1208 UTF(Coded Character Set Identifier:CCSID)
MQEnvironment.port=1414; //MQ
qmName = "QM_FENGLB"; //MQ
qName = "testQ"; //MQ
try {
//
//MQQueueManager , MQ , MQ 。
qMgr = new MQQueueManager(qmName);
} catch (MQException e) {
// TODO Auto-generated catch block
System.out.println(" MQ ");
e.printStackTrace();
}
}
/**
* MQ
* @param message
* @return
*/
public static int sendMessage(String message){
int result=0;
try{
//
// Note. The MQC interface defines all the constants used by the WebSphere MQ Java programming interface
//(except for completion code constants and error code constants).
//MQOO_INPUT_AS_Q_DEF:Open the queue to get messages using the queue-defined default.
//MQOO_OUTPUT:Open the queue to put messages.
/* , MQOO_INPUT_AS_Q_DEF */
//int openOptions = MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_OUTPUT;
/* */
int openOptions = MQC.MQOO_OUTPUT | MQC.MQOO_FAIL_IF_QUIESCING;
//
//MQQueue provides inquire, set, put and get operations for WebSphere MQ queues.
//The inquire and set capabilities are inherited from MQManagedObject.
/* */
if(qMgr==null || !qMgr.isConnected()){
qMgr = new MQQueueManager(qmName);
}
MQQueue queue = qMgr.accessQueue(qName, openOptions);
//
MQMessage putMessage = new MQMessage();
//
putMessage.writeUTF(message);
// ( )
MQPutMessageOptions pmo = new MQPutMessageOptions();
//
queue.put(putMessage,pmo);
queue.close();
}catch (MQException ex) {
System.out.println("A WebSphere MQ error occurred : Completion code "
+ ex.completionCode + " Reason code " + ex.reasonCode);
ex.printStackTrace();
}catch (IOException ex) {
System.out.println("An error occurred whilst writing to the message buffer: " + ex);
}catch(Exception ex){
ex.printStackTrace();
}finally{
try {
qMgr.disconnect();
} catch (MQException e) {
e.printStackTrace();
}
}
return result;
}
/**
* , , , , TRY...CATCH, ,
* while(true){...} , , 。
* @return
*/
public static String getMessage(){
String message=null;
try{
//
// Note. The MQC interface defines all the constants used by the WebSphere MQ Java programming interface
//(except for completion code constants and error code constants).
//MQOO_INPUT_AS_Q_DEF:Open the queue to get messages using the queue-defined default.
//MQOO_OUTPUT:Open the queue to put messages.
int openOptions = MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_OUTPUT;
MQMessage retrieve = new MQMessage();
// ( )
//Set the put message options.( )
MQGetMessageOptions gmo = new MQGetMessageOptions();
gmo.options = gmo.options + MQC.MQGMO_SYNCPOINT;//Get messages under sync point control( )
gmo.options = gmo.options + MQC.MQGMO_WAIT; // Wait if no messages on the Queue( )
gmo.options = gmo.options + MQC.MQGMO_FAIL_IF_QUIESCING;// Fail if Qeue Manager Quiescing( )
gmo.waitInterval = 1000 ; // Sets the time limit for the wait.( )
/* */
if(qMgr==null || !qMgr.isConnected()){
qMgr = new MQQueueManager(qmName);
}
MQQueue queue = qMgr.accessQueue(qName, openOptions);
//
queue.get(retrieve, gmo);
message = retrieve.readUTF();
System.out.println("The message is: " + message);
queue.close();
}catch (MQException ex) {
System.out.println("A WebSphere MQ error occurred : Completion code "
+ ex.completionCode + " Reason code " + ex.reasonCode);
}catch (IOException ex) {
System.out.println("An error occurred whilst writing to the message buffer: " + ex);
}catch(Exception ex){
ex.printStackTrace();
}finally{
try {
qMgr.disconnect();
} catch (MQException e) {
e.printStackTrace();
}
}
return message;
}
public static void main(String args[]) {
/* , */
sendMessage("this is a test");
//getMessage();
}
}
転載先:http://blog.csdn.net/fenglibing/article/details/4161441