最近工作中需要用的從MQ隊列中取消息的業務..找了一下MQ API寫了一個實例..
建立一個QueueManagerEntity實體:
如下:
-
private String queueManagerName; //隊列管理器名稱;
-
private int port; //埠號
-
private String svrconn; //連接通道
-
private String hostName; //主機地址
-
private String queueName; //隊列名稱;
-
/ getter和setter方法省略…
下列是通過Java程序獲取WebSphere MQ 本地隊列的消息代碼:
Java代碼
public static String getMessageFromQueue(MQQueueManager queueManager,MQQueueEntity entity)
{
logger.debug(“getMssageFromQueue begin:”+entity.getQueueName());
MQEnvironment.hostname = entity.getHostName();
MQEnvironment.port = entity.getProt();
MQEnvironment.channel = entity.getChannel();
MQEnvironment.CCSID = 1383;
int openOptions = MQC.MQOO_INPUT_AS_Q_DEF|MQC.MQOO_OUTPUT|MQC.MQOO_INQUIRE;
String msg=null;
try
{
MQQueue queue=queueManager.accessQueue(entity.getQueueName(), openOptions);
MQMessage message=new MQMessage();
MQGetMessageOptions pmo=new MQGetMessageOptions();
queue.get(message,pmo);
message.format=MQC.MQFMT_STRING;
message.characterSet=1381;
msg=message.readString(message.getMessageLength());
queue.close();
queueManager.disconnect();
}
catch (Exception e)
{
e.printStackTrace();
}
return msg;
}
以下文章點擊率最高
Loading…
