Java 获取MQ 本地队列的消息

最近工作中需要用的从MQ队列中取消息的业务..找了一下MQ API写了一个实例..

建立一个QueueManagerEntity实体:

如下:

Java代码  

  1. private String queueManagerName; //队列管理器名称;  
  2. private int port;  //端口号  
  3. private String svrconn;  //连接通道  
  4. private String hostName; //主机地址  
  5. private String queueName; //队列名称;  
  6. / gettersetter方法省略…  

下列是通过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…


发表评论

电子邮件地址不会被公开。 必填项已用*标注