最近工作中需要用的从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…