使用JAVA代码发送MQ消息

这一节介绍使用JAVA发送文本内容至MQ中
首先新建一个项目,导入必要的包,我记得,必要的包有6个,后来用了maven,我就把本地的删了,测试的时候,可以把jar全部丢进去,在MQ安装目录有个JAVA——lib文件夹,里面就是用到的架包了。
新建类RemoteTest
其他都我就不写了,稍后在文尾给个下载地址供大家参考。

	/**
	 * 初始化
	 */
	private static void init()
	{
		Properties prop = new Properties();
		InputStream is = RemoteTest.class.getResourceAsStream("/constant.properties");
		try
		{
			prop.load(is);
			Q_MANAGER = prop.getProperty("Q_MANAGER").trim();
			HOST_NAME = prop.getProperty("HOST_NAME").trim();
			PORT = Integer.parseInt(prop.getProperty("PORT").trim());
			MQ_NAME = prop.getProperty("MQ_NAME").trim();
			CHANNEL = prop.getProperty("CHANNEL").trim();
			CCSID = Integer.parseInt(prop.getProperty("CCSID").trim());

			MQEnvironment.hostname = HOST_NAME;
			MQEnvironment.port = PORT;
			MQEnvironment.channel = CHANNEL;
			MQEnvironment.CCSID = CCSID;

			qMgr = new MQQueueManager(Q_MANAGER);
			int qOptioin = MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_INQUIRE | MQC.MQOO_OUTPUT;
			qQueue = qMgr.accessQueue(MQ_NAME, qOptioin);
		} catch (IOException e)
		{
			e.printStackTrace();
		} catch (MQException e)
		{
			e.printStackTrace();
		}
	}

这里的配置文件,大家可以手动改以下,由于我这里是将配置文件写在了properties文件里,大家根据自己喜好选择。
我的配置文件是:

队列管理器名称
Q_MANAGER = Test
主机
HOST_NAME = 10.10.10.223
端口
PORT = 1414
队列
MQ_NAME = QUEUE
通道
CHANNEL = CHANNEL
CCSID = 1383

发送的代码为:

	/**
	 * 发送消息
	 */
	public static void sendMsg(String msgStr)
	{
		try
		{
			init();
			MQMessage qMsg = new MQMessage();
			qMsg.encoding = CCSID;
			qMsg.characterSet = CCSID;
			qMsg.writeString(msgStr);
			MQPutMessageOptions pmo = new MQPutMessageOptions();
			qQueue.put(qMsg, pmo);
			System.out.println("发送成功");
		} catch (MQException e)
		{
			System.out.println("发生了一起异常,异常原因:" + e.reasonCode);
		} catch (IOException e)
		{
			System.out.println("发生了一起IO异常:" + e.getMessage());
		} finally
		{
			finalizer();
		}
	}
	/**
	 * 手动释放
	 */
	private static void finalizer()
	{
		try
		{
			qQueue.close();
			qMgr.disconnect();
		} catch (MQException e)
		{
			System.out.println("发生了一起异常,错误代码:" + e.reasonCode);
			e.printStackTrace();
		}
	}

接受的代码为:

	/**
	 * 接收消息
	 * 
	 * @return
	 */
	public static String getMsg()
	{
		final MQMessage revMessage = new MQMessage();
		try
		{
			init();
			MQGetMessageOptions gmo = new MQGetMessageOptions();
			revMessage.characterSet = CCSID;
			revMessage.encoding = CCSID;
			gmo.options += MQC.MQPMO_SYNCPOINT;
			if (qQueue.getCurrentDepth() <= 0)
			{
				System.out.println("当前队列深度为0,队列中没有消息。");
				return null;
			}
			qQueue.get(revMessage, gmo);
			String revString = revMessage.readStringOfByteLength(revMessage.getMessageLength());
			return revString;
		} catch (MQException e)
		{
			if (e.reasonCode == 2033) // 没有消息
			{
				System.out.println("没收到消息!");
			}
		} catch (IOException e)
		{
			e.printStackTrace();
		} finally
		{
			finalizer();
		}
		return null;
	}

自此,就可以通过MQ队列接受和发送消息了。

下载地址:
MQ錯誤代碼合集http://download.csdn.net/detail/u012552275/9781699

MQ的安裝及配置http://download.csdn.net/detail/u012552275/9781644

IBMMQ安裝教程http://download.csdn.net/detail/u012552275/9781643

java的配置文件http://download.csdn.net/detail/u012552275/9815568

MQ工具类http://download.csdn.net/detail/u012552275/9815577

远程测试http://download.csdn.net/detail/u012552275/9815574

其他博客:
WebSphere MQ使用:http://blog.csdn.net/u012552275/article/details/70194285

使用JAVA代码发送MQ消息:http://blog.csdn.net/u012552275/article/details/70194644

JAVA发送接收MQ代码示例:http://blog.csdn.net/u012552275/article/details/70194969


THE END
< <上一篇
下一篇>>