<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>家有小虎 &#187; MQ</title>
	<atom:link href="http://jiahu.net/tag/mq/feed" rel="self" type="application/rss+xml" />
	<link>http://jiahu.net</link>
	<description>我在路上, 你不在身旁. 想你的时候, 温暖依然.</description>
	<lastBuildDate>Sun, 15 Jan 2012 03:12:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>使用MQ传输结构体信息</title>
		<link>http://jiahu.net/%e4%bd%bf%e7%94%a8mq%e4%bc%a0%e8%be%93%e7%bb%93%e6%9e%84%e4%bd%93%e4%bf%a1%e6%81%af.htm</link>
		<comments>http://jiahu.net/%e4%bd%bf%e7%94%a8mq%e4%bc%a0%e8%be%93%e7%bb%93%e6%9e%84%e4%bd%93%e4%bf%a1%e6%81%af.htm#comments</comments>
		<pubDate>Wed, 05 Dec 2007 17:16:19 +0000</pubDate>
		<dc:creator>@ouc</dc:creator>
				<category><![CDATA[工作]]></category>
		<category><![CDATA[技术]]></category>
		<category><![CDATA[MQ]]></category>
		<category><![CDATA[代码]]></category>
		<category><![CDATA[消息队列]]></category>

		<guid isPermaLink="false">http://cngator.net/?p=208</guid>
		<description><![CDATA[忙了一个星期终于搞掂了，心情顺畅，以此志之。 代码如下： unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls; type MQDataInfo = record ID : Integer; Name : PAnsiChar; Value : PAnsiChar; Image : TBitmap; end; PMQDataInfo = ^MQDataInfo; type TForm1 = &#8230; <a href="http://jiahu.net/%e4%bd%bf%e7%94%a8mq%e4%bc%a0%e8%be%93%e7%bb%93%e6%9e%84%e4%bd%93%e4%bf%a1%e6%81%af.htm">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>忙了一个星期终于搞掂了，心情顺畅，以此志之。</p>
<p>代码如下：</p>
<p>unit Unit1;</p>
<p>interface</p>
<p>uses<br />
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,<br />
Dialogs, ExtCtrls, StdCtrls;</p>
<p>type<br />
MQDataInfo = record<br />
ID : Integer;<br />
Name : PAnsiChar;<br />
Value : PAnsiChar;<br />
Image : TBitmap;<br />
end;<br />
PMQDataInfo = ^MQDataInfo;</p>
<p>type<br />
TForm1 = class(TForm)<br />
Memo1: TMemo;<br />
Button1: TButton;<br />
LabeledEdit1: TLabeledEdit;<br />
LabeledEdit2: TLabeledEdit;<br />
LabeledEdit3: TLabeledEdit;<br />
Button2: TButton;<br />
Button3: TButton;<br />
Image1: TImage;<br />
procedure Button1Click(Sender: TObject);<br />
procedure Button2Click(Sender: TObject);<br />
procedure Button3Click(Sender: TObject);<br />
private<br />
{ Private declarations }<br />
public<br />
{ Public declarations }<br />
end;</p>
<p>var<br />
Form1: TForm1;</p>
<p>implementation</p>
<p>{$R *.dfm}</p>
<p>uses MQI;</p>
<p>const<br />
QM_NAME : MQCHAR48 = &#8216;MyTest&#8217;#0;<br />
QUEUE_NAME : MQCHAR48 = &#8216;Test001&#8242;#0;</p>
<p>procedure TForm1.Button1Click(Sender: TObject);<br />
var<br />
Hconn : MQHCONN;<br />
Hobj : MQHOBJ;<br />
ConnectOpts : MQCNO;<br />
QMgrName : MQCHAR48;<br />
ObjDesc : MQOD;<br />
Options, CompCode, Reason : MQLONG;<br />
Buffer : MQDataInfo; //PAnsiChar;//Array[0..1024000] of Byte;<br />
BufferLength : Integer;<br />
MsgDesc : MQMD;<br />
PutMsgOptions : MQPMO;<br />
begin<br />
QMgrName := QM_NAME;<br />
ConnectOpts := MQCNO_DEFAULT;</p>
<p>MQCONNX ( @QMgrName, @ConnectOpts, @HConn, @Compcode, @Reason);</p>
<p>if CompCode &lt;&gt; MQCC_OK then<br />
begin<br />
Self.Memo1.Lines.Add(&#8216;Connect Failed&#8217;);<br />
end<br />
else<br />
begin<br />
Self.Memo1.Lines.Add(&#8216;Connected successed&#8217;);<br />
end;</p>
<p>Options := MQOO_FAIL_IF_QUIESCING + MQOO_OUTPUT;<br />
ObjDesc := MQOD_DEFAULT;<br />
ObjDesc.ObjectName := QUEUE_NAME;</p>
<p>MQOPEN (HConn, @ObjDesc, Options, @HObj, @Compcode, @Reason );</p>
<p>if CompCode &lt;&gt; MQCC_OK then<br />
begin<br />
Self.Memo1.Lines.Add(&#8216;Open Failed&#8217;);<br />
end<br />
else<br />
begin<br />
Self.Memo1.Lines.Add(&#8216;Open Successed&#8217;);<br />
end;</p>
<p>MsgDesc := MQMD_DEFAULT;<br />
PutMsgOptions := MQPMO_DEFAULT;</p>
<p>Buffer.ID := 100;<br />
Buffer.Name := &#8216;Name001&#8242;#0;<br />
Buffer.Value := &#8216;Value001&#8242;#0;<br />
Buffer.Image := TBitmap.Create;<br />
Buffer.Image.Assign(Self.Image1.Picture.Bitmap);</p>
<p>BufferLength := sizeof(Buffer);</p>
<p>MQPUT(HConn, Hobj, @MsgDesc, @PutMsgOptions, BufferLength, @Buffer, @Compcode, @Reason);</p>
<p>if CompCode &lt;&gt; MQCC_OK then<br />
begin<br />
Self.Memo1.Lines.Add(&#8216;Put Failed&#8217;);<br />
end<br />
else<br />
begin<br />
Self.Memo1.Lines.Add(&#8216;Put Successed&#8217;);<br />
end;</p>
<p>Options := MQCO_NONE;<br />
MQCLOSE ( HConn, @Hobj, Options, @Compcode, @Reason);</p>
<p>if CompCode &lt;&gt; MQCC_OK then<br />
begin<br />
Self.Memo1.Lines.Add(&#8216;Close Failed&#8217;);<br />
end<br />
else<br />
begin<br />
Self.Memo1.Lines.Add(&#8216;Close Successed&#8217;);<br />
end;</p>
<p>MQDISC ( @HConn, @Compcode, @Reason );</p>
<p>if CompCode &lt;&gt; MQCC_OK then<br />
begin<br />
Self.Memo1.Lines.Add(&#8216;Disconnect Failed&#8217;);<br />
end<br />
else<br />
begin<br />
Self.Memo1.Lines.Add(&#8216;Disconnected successed&#8217;);<br />
end;</p>
<p>Self.Memo1.Lines.Add(&#8216;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-&#8217;);<br />
end;</p>
<p>procedure TForm1.Button2Click(Sender: TObject);<br />
var<br />
Hconn : MQHCONN;<br />
Hobj : MQHOBJ;<br />
ConnectOpts : MQCNO;<br />
QMgrName : MQCHAR48;<br />
ObjDesc : MQOD;<br />
Options, CompCode, Reason : MQLONG;<br />
Buffer : MQDataInfo;// Array[0..1024000] of Char;<br />
BufferLength : Integer;<br />
MsgDesc : MQMD;<br />
GetMsgOptions : MQGMO;<br />
DataLength : MQLONG;<br />
begin<br />
QMgrName := QM_NAME;<br />
ConnectOpts := MQCNO_DEFAULT;</p>
<p>MQCONNX ( @QMgrName, @ConnectOpts, @HConn, @Compcode, @Reason);</p>
<p>if CompCode &lt;&gt; MQCC_OK then<br />
begin<br />
Self.Memo1.Lines.Add(&#8216;Connect Failed&#8217;);<br />
end<br />
else<br />
begin<br />
Self.Memo1.Lines.Add(&#8216;Connected successed&#8217;);<br />
end;</p>
<p>Options := MQOO_FAIL_IF_QUIESCING + MQOO_INPUT_AS_Q_DEF;<br />
ObjDesc := MQOD_DEFAULT;<br />
ObjDesc.ObjectName := QUEUE_NAME;</p>
<p>MQOPEN (HConn, @ObjDesc, Options, @HObj, @Compcode, @Reason );</p>
<p>if CompCode &lt;&gt; MQCC_OK then<br />
begin<br />
Self.Memo1.Lines.Add(&#8216;Open Failed&#8217;);<br />
end<br />
else<br />
begin<br />
Self.Memo1.Lines.Add(&#8216;Open Successed&#8217;);<br />
end;</p>
<p>BufferLength := sizeof(Buffer);<br />
DataLength := 0;<br />
MsgDesc := MQMD_DEFAULT;<br />
GetMsgOptions := MQGMO_DEFAULT;</p>
<p>MQGET(HConn, Hobj, @MsgDesc, @GetMsgOptions, BufferLength, @Buffer, @DataLength, @Compcode, @Reason);</p>
<p>if CompCode &lt;&gt; MQCC_OK then<br />
begin<br />
//队列无消息信息<br />
if Reason = MQRC_NO_MSG_AVAILABLE then<br />
begin<br />
Self.Memo1.Lines.Add(&#8216;The queue is empty&#8217;);<br />
end<br />
else<br />
begin<br />
Self.Memo1.Lines.Add(&#8216;Get Failed&#8217;);<br />
end;<br />
end<br />
else<br />
begin<br />
Self.LabeledEdit1.Text := IntToStr(Buffer.ID);<br />
Self.LabeledEdit2.Text := Buffer.Name;<br />
Self.LabeledEdit3.Text := Buffer.Value;<br />
Self.Image1.Picture.Bitmap.Assign(Buffer.Image);</p>
<p>Self.Memo1.Lines.Add(&#8216;Get Successed&#8217;);<br />
end;</p>
<p>Options := MQCO_NONE;<br />
MQCLOSE ( HConn, @Hobj, Options, @Compcode, @Reason);</p>
<p>if CompCode &lt;&gt; MQCC_OK then<br />
begin<br />
Self.Memo1.Lines.Add(&#8216;Close Failed&#8217;);<br />
end<br />
else<br />
begin<br />
Self.Memo1.Lines.Add(&#8216;Close Successed&#8217;);<br />
end;</p>
<p>MQDISC ( @HConn, @Compcode, @Reason );</p>
<p>if CompCode &lt;&gt; MQCC_OK then<br />
begin<br />
Self.Memo1.Lines.Add(&#8216;Disconnect Failed&#8217;);<br />
end<br />
else<br />
begin<br />
Self.Memo1.Lines.Add(&#8216;Disconnected successed&#8217;);<br />
end;</p>
<p>Self.Memo1.Lines.Add(&#8216;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-&#8217;);<br />
end;</p>
<p>procedure TForm1.Button3Click(Sender: TObject);<br />
begin<br />
Self.LabeledEdit1.Text := &#8217;0&#8242;;<br />
Self.LabeledEdit2.Text := ”;<br />
Self.LabeledEdit3.Text := ”;<br />
Self.Image1.Picture.Assign(nil);<br />
end;</p>
<p>end.</p>
]]></content:encoded>
			<wfw:commentRss>http://jiahu.net/%e4%bd%bf%e7%94%a8mq%e4%bc%a0%e8%be%93%e7%bb%93%e6%9e%84%e4%bd%93%e4%bf%a1%e6%81%af.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>测试服务器到服务器的MQ传输</title>
		<link>http://jiahu.net/%e6%b5%8b%e8%af%95%e6%9c%8d%e5%8a%a1%e5%99%a8%e5%88%b0%e6%9c%8d%e5%8a%a1%e5%99%a8%e7%9a%84mq%e4%bc%a0%e8%be%93.htm</link>
		<comments>http://jiahu.net/%e6%b5%8b%e8%af%95%e6%9c%8d%e5%8a%a1%e5%99%a8%e5%88%b0%e6%9c%8d%e5%8a%a1%e5%99%a8%e7%9a%84mq%e4%bc%a0%e8%be%93.htm#comments</comments>
		<pubDate>Wed, 05 Dec 2007 17:15:51 +0000</pubDate>
		<dc:creator>@ouc</dc:creator>
				<category><![CDATA[工作]]></category>
		<category><![CDATA[技术]]></category>
		<category><![CDATA[MQ]]></category>
		<category><![CDATA[代码]]></category>
		<category><![CDATA[消息队列]]></category>

		<guid isPermaLink="false">http://cngator.net/?p=206</guid>
		<description><![CDATA[测试服务器到服务器： 要测试安装，必须设置两个工作站，一个作为发送方，另一个作为接收方。 1.设置发送方工作站： 1.1.创建名为“saturn.queue.manager”的缺省队列管理器。 命令为：crtmqm -q saturn.queue.manager 消息显示已创建该队列管理器，并且创建了缺省WebSphere MQ对象。 1.2.启动缺省队列管理器。 命令为：strmqm 队列管理器启动时，将显示信息。 1.3.启动MQSC命令。 命令为：runmqsc MQSC启动时，显示消息“启动WebSphere MQ命令”。MQSC不使用命令提示。 1.4.定义一个本地队列，作为名为Transmit1.queue的传输队列。 命令：define qlocal(transmit1.queue) usage(xmitq) 创建队列时，显示消息“已创建WebSphere MQ队列”。 1.5.创建远程队列的本地定义。 命令：define qremote(local.def.remote.queue) rname(orange.queue) rqmname(&#8216;venus.queue.manager&#8217;) xnitq(transmit1.queue) rname参数指定该消息将要发送到远程机器上的队列名称。 因此，rname参数指定的名称必须是向其发送消息的队列名称（即接收方工作站的Orange.queue）。 1.6.定义发送方通道。 命令：define channel(first.channel) chltype(sdr) conname(con-name) xmitq(transmit1.queue) trptype(tcp) 值con-name是接收方工作站的TCP/IP地址。 1.7.停止MQSC。 命令：end &#8230; <a href="http://jiahu.net/%e6%b5%8b%e8%af%95%e6%9c%8d%e5%8a%a1%e5%99%a8%e5%88%b0%e6%9c%8d%e5%8a%a1%e5%99%a8%e7%9a%84mq%e4%bc%a0%e8%be%93.htm">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>测试服务器到服务器：<br />
要测试安装，必须设置两个工作站，一个作为发送方，另一个作为接收方。<br />
1.设置发送方工作站：<br />
1.1.创建名为“saturn.queue.manager”的缺省队列管理器。<br />
命令为：crtmqm -q saturn.queue.manager<br />
消息显示已创建该队列管理器，并且创建了缺省WebSphere MQ对象。<br />
1.2.启动缺省队列管理器。<br />
命令为：strmqm<br />
队列管理器启动时，将显示信息。<br />
1.3.启动MQSC命令。<br />
命令为：runmqsc<br />
MQSC启动时，显示消息“启动WebSphere MQ命令”。MQSC不使用命令提示。<br />
1.4.定义一个本地队列，作为名为Transmit1.queue的传输队列。<br />
命令：define qlocal(transmit1.queue) usage(xmitq)<br />
创建队列时，显示消息“已创建WebSphere MQ队列”。<br />
1.5.创建远程队列的本地定义。<br />
命令：define qremote(local.def.remote.queue) rname(orange.queue)<br />
rqmname(&#8216;venus.queue.manager&#8217;) xnitq(transmit1.queue)<br />
rname参数指定该消息将要发送到远程机器上的队列名称。<br />
因此，rname参数指定的名称必须是向其发送消息的队列名称（即接收方工作站的Orange.queue）。<br />
1.6.定义发送方通道。<br />
命令：define channel(first.channel) chltype(sdr) conname(con-name)<br />
xmitq(transmit1.queue) trptype(tcp)<br />
值con-name是接收方工作站的TCP/IP地址。<br />
1.7.停止MQSC。<br />
命令：end<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
现在，已经定义了一下对象：<br />
1.名为saturn.queue.manager的缺省队列管理器<br />
2.名为Transmit1.queue的传输队列<br />
3.名为Local.def.of.remote.queue的远程队列<br />
4.名为First.Channel的发送方通道<br />
2.设置接收方工作站：<br />
2.1.创建名为venus.queue.manager的缺省队列管理器。<br />
命令：crtmqm -q venus.queue.manager<br />
消息显示已创建该队列管理器，并且创建了缺省WebSphere MQ对象。<br />
2.2.启动队列管理器。<br />
命令：strmqm<br />
队列管理器启动时，将显示消息。<br />
2.3.启动WebSphere MQ侦听器。<br />
命令：runmqlsr -t tcp<br />
侦听器启动时，将显示消息。<br />
2.4.打开一个新的命令提示窗口，准备发出MQSC命令。<br />
命令：runmqsc<br />
MQSC启动时，显示消息“启动WebSphere MQ命令”。MQSC不使用命令提示。<br />
2.5.定义名为Orange.Queue的本地队列。<br />
命令：define qlocal(orange.queue)<br />
创建队列时，显示消息“已创建WebSphere MQ队列”。<br />
2.6.创建接收方通道。<br />
命令：define channel(first.channel) chltype(rcvr) trptype(tcp)<br />
2.7.停止MQSC。<br />
命令：end<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
现在，已经定义了以下对象：<br />
1.名为venus.queue.manager的缺省队列管理器<br />
2.名为Orange.Queue的队列<br />
3.名为First.Channel的接收方通道<br />
3.测试工作站之间的通信：<br />
3.1.如果两个工作站已停止，则使用strmqm命令重新启动它们。<br />
3.2.在发送方工作站上，启动发送方通道。<br />
命令：runmqchl -c FIRST.CHANNEL -m saturn.queue.manager<br />
启动发送方通道时，将自动启动接收方工作站上的接收方通道。<br />
3.3.在发送方工作站上，打开一个新的命令提示窗口并更改到Bin目录。<br />
3.4.将消息放入队列。<br />
命令：amqsput LOCAL.DEF.OF.REMOTE.QUEUE<br />
这个命令将消息放入远程队列的本地定义（它指定远程队列名称）。<br />
3.5.输入消息文本，然后按两次Enter键。<br />
3.6.在接收方工作站上，更改到Bin目录。<br />
3.7.从队列中获取消息。<br />
命令：amqsget ORANGE.QUEUE<br />
样本程序启动，并显示消息。暂停后，样本结束并再次显示命令提示符。</p>
]]></content:encoded>
			<wfw:commentRss>http://jiahu.net/%e6%b5%8b%e8%af%95%e6%9c%8d%e5%8a%a1%e5%99%a8%e5%88%b0%e6%9c%8d%e5%8a%a1%e5%99%a8%e7%9a%84mq%e4%bc%a0%e8%be%93.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>验证本地MQ安装</title>
		<link>http://jiahu.net/%e9%aa%8c%e8%af%81%e6%9c%ac%e5%9c%b0mq%e5%ae%89%e8%a3%85.htm</link>
		<comments>http://jiahu.net/%e9%aa%8c%e8%af%81%e6%9c%ac%e5%9c%b0mq%e5%ae%89%e8%a3%85.htm#comments</comments>
		<pubDate>Wed, 05 Dec 2007 17:15:25 +0000</pubDate>
		<dc:creator>@ouc</dc:creator>
				<category><![CDATA[工作]]></category>
		<category><![CDATA[技术]]></category>
		<category><![CDATA[MQ]]></category>
		<category><![CDATA[代码]]></category>
		<category><![CDATA[消息队列]]></category>

		<guid isPermaLink="false">http://cngator.net/?p=204</guid>
		<description><![CDATA[设置：使用以下步骤来安装队列管理器和队列： 1.创建名为venus.queue.manager的缺省队列管理器。 命令：crtmqm -q venus.queue.manager 消息显示已创建该队列管理器，并且创建了缺省WebSphere MQ对象。 2.启动缺省队列管理器。 命令：strmqm 队列管理器启动时，将显示消息。 3.启用MQSC命令。 命令：runmqsc MQSC会话启动时，将显示消息“启动WebSphere MQ命令”。MQSC不使用命令提示。 4.定义名为Orange.Queue的本地队列。 命令：define qlocal(orange.queue) MQSC中的任何小写文本都将自动转换成大写，除非用引号将它们括起来。 这意味着如果用名称Orange.Queue创建了队列，则在MQSC以外的其它命令中必须使ORANGE.QUEUE。 创建队列时，显示消息“已创建WebSphere MQ队列”。 5.停止MQSC。 命令：end 显示以下消息，随后再次显示命令提示： 读取了一条MQSC命令。 命令未发生语法错误。 处理所有有效的MQSC命令。 &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; 现在，已经定义了以下对象： 1.名为venus.queue.manager的缺省队列管理器 2.名为ORANGE.QUEUE的队列 测试： 要测试队列和队列管理器，请使用样本程序amqsput和amqsget： 1.更改到文件夹：Bin。 2.将消息放入队列。 命令：amqsput ORANGE.QUEUE 显示以下消息： Sample amqsput0 &#8230; <a href="http://jiahu.net/%e9%aa%8c%e8%af%81%e6%9c%ac%e5%9c%b0mq%e5%ae%89%e8%a3%85.htm">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>设置：使用以下步骤来安装队列管理器和队列：<br />
1.创建名为venus.queue.manager的缺省队列管理器。<br />
命令：crtmqm -q venus.queue.manager<br />
消息显示已创建该队列管理器，并且创建了缺省WebSphere MQ对象。<br />
2.启动缺省队列管理器。<br />
命令：strmqm<br />
队列管理器启动时，将显示消息。<br />
3.启用MQSC命令。<br />
命令：runmqsc<br />
MQSC会话启动时，将显示消息“启动WebSphere MQ命令”。MQSC不使用命令提示。<br />
4.定义名为Orange.Queue的本地队列。<br />
命令：define qlocal(orange.queue)<br />
MQSC中的任何小写文本都将自动转换成大写，除非用引号将它们括起来。<br />
这意味着如果用名称Orange.Queue创建了队列，则在MQSC以外的其它命令中必须使ORANGE.QUEUE。<br />
创建队列时，显示消息“已创建WebSphere MQ队列”。<br />
5.停止MQSC。<br />
命令：end<br />
显示以下消息，随后再次显示命令提示：<br />
读取了一条MQSC命令。<br />
命令未发生语法错误。<br />
处理所有有效的MQSC命令。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
现在，已经定义了以下对象：<br />
1.名为venus.queue.manager的缺省队列管理器<br />
2.名为ORANGE.QUEUE的队列<br />
测试：<br />
要测试队列和队列管理器，请使用样本程序amqsput和amqsget：<br />
1.更改到文件夹：Bin。<br />
2.将消息放入队列。<br />
命令：amqsput ORANGE.QUEUE<br />
显示以下消息：<br />
Sample amqsput0 start<br />
target queue is ORANGE.QUEUE<br />
3.输入一些消息文本，然后按Enter键两次。显示以下消息：<br />
Sample amqsput0 end<br />
现在消息已经在队列中并且再次显示命令提示。<br />
4.从队列获取消息。<br />
命令：amqsget ORANGE.QUEUE<br />
样本程序启动，并显示您的消息。暂停后，样本结束并再次显示命令提示符。</p>
<p>现在完成了本地安装的验证。</p>
]]></content:encoded>
			<wfw:commentRss>http://jiahu.net/%e9%aa%8c%e8%af%81%e6%9c%ac%e5%9c%b0mq%e5%ae%89%e8%a3%85.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MQ中简单的消息发送和接收的单元文件MQI.pas</title>
		<link>http://jiahu.net/mq%e4%b8%ad%e7%ae%80%e5%8d%95%e7%9a%84%e6%b6%88%e6%81%af%e5%8f%91%e9%80%81%e5%92%8c%e6%8e%a5%e6%94%b6%e7%9a%84%e5%8d%95%e5%85%83%e6%96%87%e4%bb%b6mqipas.htm</link>
		<comments>http://jiahu.net/mq%e4%b8%ad%e7%ae%80%e5%8d%95%e7%9a%84%e6%b6%88%e6%81%af%e5%8f%91%e9%80%81%e5%92%8c%e6%8e%a5%e6%94%b6%e7%9a%84%e5%8d%95%e5%85%83%e6%96%87%e4%bb%b6mqipas.htm#comments</comments>
		<pubDate>Wed, 05 Dec 2007 17:14:37 +0000</pubDate>
		<dc:creator>@ouc</dc:creator>
				<category><![CDATA[工作]]></category>
		<category><![CDATA[技术]]></category>
		<category><![CDATA[MQ]]></category>
		<category><![CDATA[代码]]></category>
		<category><![CDATA[消息队列]]></category>

		<guid isPermaLink="false">http://cngator.net/?p=202</guid>
		<description><![CDATA[以下内容是单元文件MQI.pas的正文 MQI.pas是对mqm.dll的Delphi封装接口（版权归原作者） unit MQI; interface const MQOD_STRUC_ID = &#8216;OD &#8216;; MQOD_VERSION_1 = 1; MQOD_VERSION_2 = 2; MQOD_VERSION_3 = 3; MQOD_CURRENT_VERSION = 3; MQPMO_STRUC_ID = &#8216;PMO &#8216;; MQPMO_VERSION_1 = 1; MQPMO_VERSION_2 = 2; MQPMO_CURRENT_VERSION = 2; MQGMO_STRUC_ID = &#8216;GMO &#8216;; MQGMO_VERSION_1 &#8230; <a href="http://jiahu.net/mq%e4%b8%ad%e7%ae%80%e5%8d%95%e7%9a%84%e6%b6%88%e6%81%af%e5%8f%91%e9%80%81%e5%92%8c%e6%8e%a5%e6%94%b6%e7%9a%84%e5%8d%95%e5%85%83%e6%96%87%e4%bb%b6mqipas.htm">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>以下内容是单元文件MQI.pas的正文<br />
MQI.pas是对mqm.dll的Delphi封装接口（版权归原作者）</p>
<p>unit MQI;</p>
<p>interface</p>
<p>const<br />
MQOD_STRUC_ID                  = &#8216;OD  &#8216;;<br />
MQOD_VERSION_1                 = 1;<br />
MQOD_VERSION_2                 = 2;<br />
MQOD_VERSION_3                 = 3;<br />
MQOD_CURRENT_VERSION           = 3;</p>
<p>MQPMO_STRUC_ID                 = &#8216;PMO &#8216;;<br />
MQPMO_VERSION_1                = 1;<br />
MQPMO_VERSION_2                = 2;<br />
MQPMO_CURRENT_VERSION          = 2;</p>
<p>MQGMO_STRUC_ID                 = &#8216;GMO &#8216;;<br />
MQGMO_VERSION_1                = 1;<br />
MQGMO_VERSION_2                = 2;<br />
MQGMO_VERSION_3                = 3;<br />
MQGMO_CURRENT_VERSION          = 3;</p>
<p>MQMD_STRUC_ID                  = &#8216;MD  &#8216;;<br />
MQMD_VERSION_1                 = 1;<br />
MQMD_VERSION_2                 = 2;<br />
MQMD_CURRENT_VERSION           = 2;</p>
<p>MQMDE_STRUC_ID                 = &#8216;MDE &#8216;;<br />
MQMDE_VERSION_2                = 2;<br />
MQMDE_CURRENT_VERSION          = 2;</p>
<p>MQBO_STRUC_ID                  = &#8216;BO  &#8216;;<br />
MQBO_VERSION_1                 = 1;<br />
MQBO_CURRENT_VERSION           = 1;</p>
<p>MQSCO_STRUC_ID                 = &#8216;SCO &#8216;;<br />
MQSCO_VERSION_1                = 1;<br />
MQSCO_CURRENT_VERSION          = 1;</p>
<p>MQAIR_STRUC_ID                 = &#8216;AIR &#8216;;<br />
MQAIR_VERSION_1                = 1;<br />
MQAIR_CURRENT_VERSION          = 1;</p>
<p>MQCNO_STRUC_ID                 = &#8216;CNO &#8216;;<br />
MQCNO_VERSION_1                = 1;<br />
MQCNO_VERSION_2                = 2;<br />
MQCNO_VERSION_3                = 3;<br />
MQCNO_VERSION_4                = 4;<br />
MQCNO_CURRENT_VERSION          = 4;</p>
<p>MQRFH_STRUC_ID                 = &#8216;RFH &#8216;;<br />
MQRFH_VERSION_1                = 1;<br />
MQRFH_VERSION_2                = 2;</p>
<p>MQDH_STRUC_ID                  = &#8216;DH  &#8216;;<br />
MQDH_VERSION_1                 = 1;<br />
MQDH_CURRENT_VERSION           = 1;</p>
<p>MQDLH_STRUC_ID                 = &#8216;DLH &#8216;;<br />
MQDLH_VERSION_1                = 1;<br />
MQDLH_CURRENT_VERSION          = 1;</p>
<p>MQCIH_STRUC_ID                 = &#8216;CIH &#8216;;<br />
MQCIH_VERSION_1                = 1;<br />
MQCIH_VERSION_2                = 2;<br />
MQCIH_CURRENT_VERSION          = 2;</p>
<p>MQIIH_STRUC_ID                 = &#8216;IIH &#8216;;<br />
MQIIH_VERSION_1                = 1;<br />
MQIIH_CURRENT_VERSION          = 1;</p>
<p>MQRMH_STRUC_ID                 = &#8216;RMH &#8216;;<br />
MQRMH_VERSION_1                = 1;<br />
MQRMH_CURRENT_VERSION          = 1;</p>
<p>MQTM_STRUC_ID                  = &#8216;TM  &#8216;;<br />
MQTM_VERSION_1                 = 1;<br />
MQTM_CURRENT_VERSION           = 1;</p>
<p>MQTMC_STRUC_ID                 = &#8216;TMC &#8216;;<br />
MQTMC_VERSION_1                = &#8216;   1&#8242;;<br />
MQTMC_VERSION_2                = &#8216;   2&#8242;;<br />
MQTMC_CURRENT_VERSION          = &#8216;   2&#8242;;</p>
<p>MQWIH_STRUC_ID                 = &#8216;WIH &#8216;;<br />
MQWIH_VERSION_1                = 1;<br />
MQWIH_CURRENT_VERSION          = 1;</p>
<p>MQXQH_STRUC_ID                 = &#8216;XQH &#8216;;<br />
MQXQH_VERSION_1                = 1;<br />
MQXQH_CURRENT_VERSION          = 1;</p>
<p>{Object types}<br />
MQOT_Q                         = 1;<br />
MQOT_NAMELIST                  = 2;<br />
MQOT_PROCESS                   = 3;<br />
MQOT_STORAGE_CLASS             = 4;<br />
MQOT_Q_MGR                     = 5;<br />
MQOT_CHANNEL                   = 6;<br />
MQOT_AUTH_INFO                 = 7;<br />
MQOT_CF_STRUC                  = 10;<br />
MQOT_RESERVED_1                = 999;</p>
<p>{Connect Options}<br />
MQCNO_STANDARD_BINDING         = {row.content}000000;<br />
MQCNO_FASTPATH_BINDING         = {row.content}000001;<br />
MQCNO_HANDLE_SHARE_NONE        = {row.content}000020;<br />
MQCNO_HANDLE_SHARE_BLOCK       = {row.content}000040;<br />
MQCNO_HANDLE_SHARE_NO_BLOCK    = {row.content}000080;<br />
MQCNO_NONE                     = {row.content}000000;</p>
<p>{Open Options}<br />
MQOO_INPUT_AS_Q_DEF            = {row.content}000001;<br />
MQOO_INPUT_SHARED              = {row.content}000002;<br />
MQOO_INPUT_EXCLUSIVE           = {row.content}000004;<br />
MQOO_BROWSE                    = {row.content}000008;<br />
MQOO_OUTPUT                    = {row.content}000010;<br />
MQOO_INQUIRE                   = {row.content}000020;<br />
MQOO_SET                       = {row.content}000040;<br />
MQOO_BIND_ON_OPEN              = {row.content}004000;<br />
MQOO_BIND_NOT_FIXED            = {row.content}008000;<br />
MQOO_BIND_AS_Q_DEF             = {row.content}000000;<br />
MQOO_SAVE_ALL_CONTEXT          = {row.content}000080;<br />
MQOO_PASS_IDENTITY_CONTEXT     = {row.content}000100;<br />
MQOO_PASS_ALL_CONTEXT          = {row.content}000200;<br />
MQOO_SET_IDENTITY_CONTEXT      = {row.content}000400;<br />
MQOO_SET_ALL_CONTEXT           = {row.content}000800;<br />
MQOO_ALTERNATE_USER_AUTHORITY  = {row.content}001000;<br />
MQOO_FAIL_IF_QUIESCING         = {row.content}002000;<br />
MQOO_RESOLVE_NAMES             = {row.content}010000;</p>
<p>{Report options}<br />
MQRO_EXCEPTION                 = 000000;<br />
MQRO_EXCEPTION_WITH_DATA       = 000000;<br />
MQRO_EXCEPTION_WITH_FULL_DATA  = 000000;<br />
MQRO_EXPIRATION                = {row.content}200000;<br />
MQRO_EXPIRATION_WITH_DATA      = {row.content}600000;<br />
MQRO_EXPIRATION_WITH_FULL_DATA = {row.content}E00000;<br />
MQRO_COA                       = {row.content}000100;<br />
MQRO_COA_WITH_DATA             = {row.content}000300;<br />
MQRO_COA_WITH_FULL_DATA        = {row.content}000700;<br />
MQRO_COD                       = {row.content}000800;<br />
MQRO_COD_WITH_DATA             = {row.content}001800;<br />
MQRO_COD_WITH_FULL_DATA        = {row.content}003800;<br />
MQRO_PAN                       = {row.content}000001;<br />
MQRO_NAN                       = {row.content}000002;<br />
MQRO_NEW_MSG_ID                = {row.content}000000;<br />
MQRO_PASS_MSG_ID               = {row.content}000080;<br />
MQRO_COPY_MSG_ID_TO_CORREL_ID  = {row.content}000000;<br />
MQRO_PASS_CORREL_ID            = {row.content}000040;<br />
MQRO_DEAD_LETTER_Q             = {row.content}000000;<br />
MQRO_DISCARD_MSG               = 000000;<br />
MQRO_NONE                      = {row.content}000000;</p>
<p>{Close options}<br />
MQCO_NONE                      = 0;<br />
MQCO_DELETE                    = 1;<br />
MQCO_DELETE_PURGE              = 2;</p>
<p>{Message types}<br />
MQMT_SYSTEM_FIRST              = 1;<br />
MQMT_REQUEST                   = 1;<br />
MQMT_REPLY                     = 2;<br />
MQMT_DATAGRAM                  = 8;<br />
MQMT_REPORT                    = 4;<br />
MQMT_MQE_FIELDS_FROM_MQE       = 112;<br />
MQMT_MQE_FIELDS                = 113;<br />
MQMT_SYSTEM_LAST               = 65535;<br />
MQMT_APPL_FIRST                = 65536;<br />
MQMT_APPL_LAST                 = 999999999;</p>
<p>{Expiry}<br />
MQEI_UNLIMITED                 = -1;</p>
<p>{Begin Options}<br />
MQBO_NONE                      = {row.content}000000;</p>
<p>{Feedback values}<br />
MQFB_NONE                      = 0;<br />
MQFB_SYSTEM_FIRST              = 1;<br />
MQFB_QUIT                      = 256;<br />
MQFB_EXPIRATION                = 258;<br />
MQFB_COA                       = 259;<br />
MQFB_COD                       = 260;<br />
MQFB_CHANNEL_COMPLETED         = 262;<br />
MQFB_CHANNEL_FAIL_RETRY        = 263;<br />
MQFB_CHANNEL_FAIL              = 264;<br />
MQFB_APPL_CANNOT_BE_STARTED    = 265;<br />
MQFB_TM_ERROR                  = 266;<br />
MQFB_APPL_TYPE_ERROR           = 267;<br />
MQFB_STOPPED_BY_MSG_EXIT       = 268;<br />
MQFB_XMIT_Q_MSG_ERROR          = 271;<br />
MQFB_PAN                       = 275;<br />
MQFB_NAN                       = 276;<br />
MQFB_STOPPED_BY_CHAD_EXIT      = 277;<br />
MQFB_STOPPED_BY_PUBSUB_EXIT    = 279;<br />
MQFB_NOT_A_REPOSITORY_MSG      = 280;<br />
MQFB_BIND_OPEN_CLUSRCVR_DEL    = 281;<br />
MQFB_DATA_LENGTH_ZERO          = 291;<br />
MQFB_DATA_LENGTH_NEGATIVE      = 292;<br />
MQFB_DATA_LENGTH_TOO_BIG       = 293;<br />
MQFB_BUFFER_OVERFLOW           = 294;<br />
MQFB_LENGTH_OFF_BY_ONE         = 295;<br />
MQFB_IIH_ERROR                 = 296;<br />
MQFB_NOT_AUTHORIZED_FOR_IMS    = 298;<br />
MQFB_IMS_ERROR                 = 300;<br />
MQFB_IMS_FIRST                 = 301;<br />
MQFB_IMS_LAST                  = 399;<br />
MQFB_CICS_INTERNAL_ERROR       = 401;<br />
MQFB_CICS_NOT_AUTHORIZED       = 402;<br />
MQFB_CICS_BRIDGE_FAILURE       = 403;<br />
MQFB_CICS_CORREL_ID_ERROR      = 404;<br />
MQFB_CICS_CCSID_ERROR          = 405;<br />
MQFB_CICS_ENCODING_ERROR       = 406;<br />
MQFB_CICS_CIH_ERROR            = 407;<br />
MQFB_CICS_UOW_ERROR            = 408;<br />
MQFB_CICS_COMMAREA_ERROR       = 409;<br />
MQFB_CICS_APPL_NOT_STARTED     = 410;<br />
MQFB_CICS_APPL_ABENDED         = 411;<br />
MQFB_CICS_DLQ_ERROR            = 412;<br />
MQFB_CICS_UOW_BACKED_OUT       = 413;<br />
MQFB_SYSTEM_LAST               = 65535;<br />
MQFB_APPL_FIRST                = 65536;<br />
MQFB_APPL_LAST                 = 999999999;</p>
<p>{Encoding}<br />
MQENC_NATIVE                   = {row.content}000222;<br />
MQENC_INTEGER_MASK             = {row.content}00000F;<br />
MQENC_DECIMAL_MASK             = {row.content}0000F0;<br />
MQENC_FLOAT_MASK               = {row.content}000F00;<br />
MQENC_RESERVED_MASK            = $FFFFF000;<br />
MQENC_INTEGER_UNDEFINED        = {row.content}000000;<br />
MQENC_INTEGER_NORMAL           = {row.content}000001;<br />
MQENC_INTEGER_REVERSED         = {row.content}000002;<br />
MQENC_FLOAT_UNDEFINED          = {row.content}000000;<br />
MQENC_FLOAT_IEEE_NORMAL        = {row.content}000100;<br />
MQENC_FLOAT_IEEE_REVERSED      = {row.content}000200;<br />
MQENC_FLOAT_S390               = {row.content}000300;<br />
MQENC_DECIMAL_UNDEFINED        = {row.content}000000;<br />
MQENC_DECIMAL_NORMAL           = {row.content}000010;<br />
MQENC_DECIMAL_REVERSED         = {row.content}000020;</p>
<p>{Coded Character-Set Identifiers}<br />
MQCCSI_UNDEFINED               = 0;<br />
MQCCSI_DEFAULT                 = 0;<br />
MQCCSI_Q_MGR                   = 0;<br />
MQCCSI_INHERIT                 = -2;<br />
MQCCSI_EMBEDDED                = -1;</p>
<p>{Formats}<br />
MQFMT_NONE                     = &#8216;        &#8216;;<br />
MQFMT_ADMIN                    = &#8216;MQADMIN &#8216;;<br />
MQFMT_CHANNEL_COMPLETED        = &#8216;MQCHCOM &#8216;;<br />
MQFMT_CICS                     = &#8216;MQCICS  &#8216;;<br />
MQFMT_COMMAND_1                = &#8216;MQCMD1  &#8216;;<br />
MQFMT_COMMAND_2                = &#8216;MQCMD2  &#8216;;<br />
MQFMT_DEAD_LETTER_HEADER       = &#8216;MQDEAD  &#8216;;<br />
MQFMT_DIST_HEADER              = &#8216;MQHDIST &#8216;;<br />
MQFMT_EVENT                    = &#8216;MQEVENT &#8216;;<br />
MQFMT_IMS                      = &#8216;MQIMS   &#8216;;<br />
MQFMT_IMS_VAR_STRING           = &#8216;MQIMSVS &#8216;;<br />
MQFMT_MD_EXTENSION             = &#8216;MQHMDE  &#8216;;<br />
MQFMT_PCF                      = &#8216;MQPCF   &#8216;;<br />
MQFMT_REF_MSG_HEADER           = &#8216;MQHREF  &#8216;;<br />
MQFMT_RF_HEADER                = &#8216;MQHRF   &#8216;;<br />
MQFMT_RF_HEADER_2              = &#8216;MQHRF2  &#8216;;<br />
MQFMT_STRING                   = &#8216;QSTR    &#8216;;<br />
MQFMT_TRIGGER                  = &#8216;MQTRIG  &#8216;;<br />
MQFMT_WORK_INFO_HEADER         = &#8216;MQHWIH  &#8216;;</p>
<p>{Message Flags}<br />
MQMF_SEGMENTATION_INHIBITED     = {row.content}000000;<br />
MQMF_SEGMENTATION_ALLOWED       = {row.content}000001;<br />
MQMF_MSG_IN_GROUP               = {row.content}000008;<br />
MQMF_LAST_MSG_IN_GROUP          = {row.content}000010;<br />
MQMF_SEGMENT                    = {row.content}000002;<br />
MQMF_LAST_SEGMENT               = {row.content}000004;<br />
MQMF_NONE                       = {row.content}000000;<br />
MQMF_REJECT_UNSUP_MASK          = {row.content}000FFF;<br />
MQMF_ACCEPT_UNSUP_MASK          = $FFF00000;<br />
MQMF_ACCEPT_UNSUP_IF_XMIT_MASK  = {row.content}0FF000;</p>
<p>{Application types}<br />
MQAT_UNKNOWN                    = -1;<br />
MQAT_NO_CONTEXT                 = 0;<br />
MQAT_CICS                       = 1;<br />
MQAT_MVS                        = 2;<br />
MQAT_OS390                      = 2;<br />
MQAT_ZOS                        = 2;<br />
MQAT_IMS                        = 3;<br />
MQAT_OS2                        = 4;<br />
MQAT_DOS                        = 5;<br />
MQAT_AIX                        = 6;<br />
MQAT_UNIX                       = 6;<br />
MQAT_QMGR                       = 7;<br />
MQAT_OS400                      = 8;<br />
MQAT_WINDOWS                    = 9;<br />
MQAT_CICS_VSE                   = 10;<br />
MQAT_WINDOWS_NT                 = 11;<br />
MQAT_VMS                        = 12;<br />
MQAT_GUARDIAN                   = 13;<br />
MQAT_NSK                        = 13;<br />
MQAT_VOS                        = 14;<br />
MQAT_IMS_BRIDGE                 = 19;<br />
MQAT_XCF                        = 20;<br />
MQAT_CICS_BRIDGE                = 21;<br />
MQAT_NOTES_AGENT                = 22;<br />
MQAT_USER                       = 25;<br />
MQAT_BROKER                     = 26;<br />
MQAT_JAVA                       = 28;<br />
MQAT_DQM                        = 29;<br />
MQAT_CHANNEL_INITIATOR          = 30;<br />
MQAT_DEFAULT                    = 6;<br />
MQAT_USER_FIRST                 = 65536;<br />
MQAT_USER_LAST                  = 999999999;</p>
<p>{Put-message options}<br />
MQPMO_SYNCPOINT                 = {row.content}000002;<br />
MQPMO_NO_SYNCPOINT              = {row.content}000004;<br />
MQPMO_NEW_MSG_ID                = {row.content}000040;<br />
MQPMO_NEW_CORREL_ID             = {row.content}000080;<br />
MQPMO_LOGICAL_ORDER             = {row.content}008000;<br />
MQPMO_NO_CONTEXT                = {row.content}004000;<br />
MQPMO_DEFAULT_CONTEXT           = {row.content}000020;<br />
MQPMO_PASS_IDENTITY_CONTEXT     = {row.content}000100;<br />
MQPMO_PASS_ALL_CONTEXT          = {row.content}000200;<br />
MQPMO_SET_IDENTITY_CONTEXT      = {row.content}000400;<br />
MQPMO_SET_ALL_CONTEXT           = {row.content}000800;<br />
MQPMO_ALTERNATE_USER_AUTHORITY  = {row.content}001000;<br />
MQPMO_FAIL_IF_QUIESCING         = {row.content}002000;<br />
MQPMO_NONE                      = {row.content}000000;</p>
<p>{Put Message Record Fields}<br />
MQPMRF_MSG_ID                   = {row.content}000001;<br />
MQPMRF_CORREL_ID                = {row.content}000002;<br />
MQPMRF_GROUP_ID                 = {row.content}000004;<br />
MQPMRF_FEEDBACK                 = {row.content}000008;<br />
MQPMRF_ACCOUNTING_TOKEN         = {row.content}000010;<br />
MQPMRF_NONE                     = {row.content}000000;</p>
<p>{Get-message options}<br />
MQGMO_WAIT                      = {row.content}000001;<br />
MQGMO_NO_WAIT                   = {row.content}000000;<br />
MQGMO_SET_SIGNAL                = {row.content}000008;<br />
MQGMO_FAIL_IF_QUIESCING         = {row.content}002000;<br />
MQGMO_SYNCPOINT                 = {row.content}000002;<br />
MQGMO_SYNCPOINT_IF_PERSISTENT   = {row.content}001000;<br />
MQGMO_NO_SYNCPOINT              = {row.content}000004;<br />
MQGMO_MARK_SKIP_BACKOUT         = {row.content}000080;<br />
MQGMO_BROWSE_FIRST              = {row.content}000010;<br />
MQGMO_BROWSE_NEXT               = {row.content}000020;<br />
MQGMO_BROWSE_MSG_UNDER_CURSOR   = {row.content}000800;<br />
MQGMO_MSG_UNDER_CURSOR          = {row.content}000100;<br />
MQGMO_LOCK                      = {row.content}000200;<br />
MQGMO_UNLOCK                    = {row.content}000400;<br />
MQGMO_ACCEPT_TRUNCATED_MSG      = {row.content}000040;<br />
MQGMO_CONVERT                   = {row.content}004000;<br />
MQGMO_LOGICAL_ORDER             = {row.content}008000;<br />
MQGMO_COMPLETE_MSG              = {row.content}010000;<br />
MQGMO_ALL_MSGS_AVAILABLE        = {row.content}020000;<br />
MQGMO_ALL_SEGMENTS_AVAILABLE    = {row.content}040000;<br />
MQGMO_NONE                      = {row.content}000000;</p>
<p>{String Lengths}<br />
MQ_ABEND_CODE_LENGTH            = 4;<br />
MQ_ACCOUNTING_TOKEN_LENGTH      = 32;<br />
MQ_APPL_IDENTITY_DATA_LENGTH    = 32;<br />
MQ_APPL_NAME_LENGTH             = 28;<br />
MQ_APPL_ORIGIN_DATA_LENGTH      = 4;<br />
MQ_APPL_TAG_LENGTH              = 28;<br />
MQ_ATTENTION_ID_LENGTH          = 4;<br />
MQ_AUTH_INFO_CONN_NAME_LENGTH   = 264;<br />
MQ_AUTH_INFO_DESC_LENGTH        = 64;<br />
MQ_AUTH_INFO_NAME_LENGTH        = 48;<br />
MQ_AUTHENTICATOR_LENGTH         = 8;<br />
MQ_BRIDGE_NAME_LENGTH           = 24;<br />
MQ_CANCEL_CODE_LENGTH           = 4;<br />
MQ_CF_STRUC_DESC_LENGTH         = 64;<br />
MQ_CF_STRUC_NAME_LENGTH         = 12;<br />
MQ_CHANNEL_DATE_LENGTH          = 12;<br />
MQ_CHANNEL_DESC_LENGTH          = 64;<br />
MQ_CHANNEL_NAME_LENGTH          = 20;<br />
MQ_CHANNEL_TIME_LENGTH          = 8;<br />
MQ_CLUSTER_NAME_LENGTH          = 48;<br />
MQ_CONN_NAME_LENGTH             = 264;<br />
MQ_CONN_TAG_LENGTH              = 128;<br />
MQ_CORREL_ID_LENGTH             = 24;<br />
MQ_CREATION_DATE_LENGTH         = 12;<br />
MQ_CREATION_TIME_LENGTH         = 8;<br />
MQ_DATE_LENGTH                  = 12;<br />
MQ_DISTINGUISHED_NAME_LENGTH    = 1024;<br />
MQ_EXIT_DATA_LENGTH             = 32;<br />
MQ_EXIT_NAME_LENGTH             = 128;<br />
MQ_EXIT_PD_AREA_LENGTH          = 48;<br />
MQ_EXIT_USER_AREA_LENGTH        = 16;<br />
MQ_FACILITY_LENGTH              = 8;<br />
MQ_FACILITY_LIKE_LENGTH         = 4;<br />
MQ_FORMAT_LENGTH                = 8;<br />
MQ_FUNCTION_LENGTH              = 4;<br />
MQ_GROUP_ID_LENGTH              = 24;<br />
MQ_LDAP_PASSWORD_LENGTH         = 32;<br />
MQ_LOCAL_ADDRESS_LENGTH         = 48;<br />
MQ_LTERM_OVERRIDE_LENGTH        = 8;<br />
MQ_LUWID_LENGTH                 = 16;<br />
MQ_MAX_EXIT_NAME_LENGTH         = 128;<br />
MQ_MAX_MCA_USER_ID_LENGTH       = 64;<br />
MQ_MAX_USER_ID_LENGTH           = 64;<br />
MQ_MCA_JOB_NAME_LENGTH          = 28;<br />
MQ_MCA_NAME_LENGTH              = 20;<br />
MQ_MCA_USER_ID_LENGTH           = 12;<br />
MQ_MFS_MAP_NAME_LENGTH          = 8;<br />
MQ_MODE_NAME_LENGTH             = 8;<br />
MQ_MSG_HEADER_LENGTH            = 4000;<br />
MQ_MSG_ID_LENGTH                = 24;<br />
MQ_MSG_TOKEN_LENGTH             = 16;<br />
MQ_NAMELIST_DESC_LENGTH         = 64;<br />
MQ_NAMELIST_NAME_LENGTH         = 48;<br />
MQ_OBJECT_INSTANCE_ID_LENGTH    = 24;<br />
MQ_OBJECT_NAME_LENGTH           = 48;<br />
MQ_PASSWORD_LENGTH              = 12;<br />
MQ_PROCESS_APPL_ID_LENGTH       = 256;<br />
MQ_PROCESS_DESC_LENGTH          = 64;<br />
MQ_PROCESS_ENV_DATA_LENGTH      = 128;<br />
MQ_PROCESS_NAME_LENGTH          = 48;<br />
MQ_PROCESS_USER_DATA_LENGTH     = 128;<br />
MQ_PUT_APPL_NAME_LENGTH         = 28;<br />
MQ_PUT_DATE_LENGTH              = 8;<br />
MQ_PUT_TIME_LENGTH              = 8;<br />
MQ_Q_DESC_LENGTH                = 64;<br />
MQ_Q_MGR_DESC_LENGTH            = 64;<br />
MQ_Q_MGR_IDENTIFIER_LENGTH      = 48;<br />
MQ_Q_MGR_NAME_LENGTH            = 48;<br />
MQ_Q_NAME_LENGTH                = 48;<br />
MQ_QSG_NAME_LENGTH              = 4;<br />
MQ_REMOTE_SYS_ID_LENGTH         = 4;<br />
MQ_SECURITY_ID_LENGTH           = 40;<br />
MQ_SERVICE_NAME_LENGTH          = 32;<br />
MQ_SERVICE_STEP_LENGTH          = 8;<br />
MQ_SHORT_CONN_NAME_LENGTH       = 20;<br />
MQ_SSL_CIPHER_SPEC_LENGTH       = 32;<br />
MQ_SSL_CRYPTO_HARDWARE_LENGTH   = 256;<br />
MQ_SSL_HANDSHAKE_STAGE_LENGTH   = 32;<br />
MQ_SSL_KEY_REPOSITORY_LENGTH    = 256;<br />
MQ_SSL_PEER_NAME_LENGTH         = 1024;<br />
MQ_SSL_SHORT_PEER_NAME_LENGTH   = 256;<br />
MQ_START_CODE_LENGTH            = 4;<br />
MQ_STORAGE_CLASS_DESC_LENGTH    = 64;<br />
MQ_STORAGE_CLASS_LENGTH         = 8;<br />
MQ_SUB_IDENTITY_LENGTH          = 128;<br />
MQ_TIME_LENGTH                  = 8;<br />
MQ_TOTAL_EXIT_DATA_LENGTH       = 999;<br />
MQ_TOTAL_EXIT_NAME_LENGTH       = 999;<br />
MQ_TP_NAME_LENGTH               = 64;<br />
MQ_TRAN_INSTANCE_ID_LENGTH      = 16;<br />
MQ_TRANSACTION_ID_LENGTH        = 4;<br />
MQ_TRIGGER_DATA_LENGTH          = 64;<br />
MQ_USER_ID_LENGTH               = 12;<br />
MQ_XCF_GROUP_NAME_LENGTH        =  8;<br />
MQ_XCF_MEMBER_NAME_LENGTH       =  16;</p>
<p>{Unit of Work Control}<br />
MQCUOWC_ONLY                    = {row.content}000111;<br />
MQCUOWC_CONTINUE                = {row.content}010000;<br />
MQCUOWC_FIRST                   = {row.content}000011;<br />
MQCUOWC_MIDDLE                  = {row.content}000010;<br />
MQCUOWC_LAST                    = {row.content}000110;<br />
MQCUOWC_COMMIT                  = {row.content}000100;<br />
MQCUOWC_BACKOUT                 = {row.content}001100;</p>
<p>{Character-Attribute Selectors}<br />
MQCA_ALTERATION_DATE            = 2027;<br />
MQCA_ALTERATION_TIME            = 2028;<br />
MQCA_APPL_ID                    = 2001;<br />
MQCA_AUTH_INFO_CONN_NAME        = 2053;<br />
MQCA_AUTH_INFO_DESC             = 2046;<br />
MQCA_AUTH_INFO_NAME             = 2045;<br />
MQCA_BACKOUT_REQ_Q_NAME         = 2019;<br />
MQCA_BASE_Q_NAME                = 2002;<br />
MQCA_CF_STRUC_DESC              = 2052;<br />
MQCA_CF_STRUC_NAME              = 2039;<br />
MQCA_CHANNEL_AUTO_DEF_EXIT      = 2026;<br />
MQCA_CLUSTER_DATE               = 2037;<br />
MQCA_CLUSTER_NAME               = 2029;<br />
MQCA_CLUSTER_NAMELIST           = 2030;<br />
MQCA_CLUSTER_Q_MGR_NAME         = 2031;<br />
MQCA_CLUSTER_TIME               = 2038;<br />
MQCA_CLUSTER_WORKLOAD_DATA      = 2034;<br />
MQCA_CLUSTER_WORKLOAD_EXIT      = 2033;<br />
MQCA_COMMAND_INPUT_Q_NAME       = 2003;<br />
MQCA_CREATION_DATE              = 2004;<br />
MQCA_CREATION_TIME              = 2005;<br />
MQCA_DEAD_LETTER_Q_NAME         = 2006;<br />
MQCA_DEF_XMIT_Q_NAME            = 2025;<br />
MQCA_ENV_DATA                   = 2007;<br />
MQCA_FIRST                      = 2001;<br />
MQCA_IGQ_USER_ID                = 2041;<br />
MQCA_INITIATION_Q_NAME          = 2008;<br />
MQCA_LAST                       = 4000;<br />
MQCA_LAST_USED                  = 2053;<br />
MQCA_LDAP_PASSWORD              = 2048;<br />
MQCA_LDAP_USER_NAME             = 2047;<br />
MQCA_NAMELIST_DESC              = 2009;<br />
MQCA_NAMELIST_NAME              = 2010;<br />
MQCA_NAMES                      = 2020;<br />
MQCA_PROCESS_DESC               = 2011;<br />
MQCA_PROCESS_NAME               = 2012;<br />
MQCA_Q_DESC                     = 2013;<br />
MQCA_Q_MGR_DESC                 = 2014;<br />
MQCA_Q_MGR_IDENTIFIER           = 2032;<br />
MQCA_Q_MGR_NAME                 = 2015;<br />
MQCA_Q_NAME                     = 2016;<br />
MQCA_QSG_NAME                   = 2040;<br />
MQCA_REMOTE_Q_MGR_NAME          = 2017;<br />
MQCA_REMOTE_Q_NAME              = 2018;<br />
MQCA_REPOSITORY_NAME            = 2035;<br />
MQCA_REPOSITORY_NAMELIST        = 2036;<br />
MQCA_SSL_CRL_NAMELIST           = 2050;<br />
MQCA_SSL_CRYPTO_HARDWARE        = 2051;<br />
MQCA_SSL_KEY_REPOSITORY         = 2049;<br />
MQCA_STORAGE_CLASS              = 2022;<br />
MQCA_STORAGE_CLASS_DESC         = 2042;<br />
MQCA_TRIGGER_DATA               = 2023;<br />
MQCA_USER_DATA                  = 2021;<br />
MQCA_USER_LIST                  = 4000;<br />
MQCA_XCF_GROUP_NAME             = 2043;<br />
MQCA_XCF_MEMBER_NAME            = 2044;<br />
MQCA_XMIT_Q_NAME                = 2024;</p>
<p>{Integer-Attribute Selectors}<br />
MQIA_APPL_TYPE                  = 1;<br />
MQIA_ARCHIVE                    = 60;<br />
MQIA_AUTH_INFO_TYPE             = 66;<br />
MQIA_AUTHORITY_EVENT            = 47;<br />
MQIA_BACKOUT_THRESHOLD          = 22;<br />
MQIA_CF_LEVEL                   = 70;<br />
MQIA_CF_RECOVER                 = 71;<br />
MQIA_CHANNEL_AUTO_DEF           = 55;<br />
MQIA_CHANNEL_AUTO_DEF_EVENT     = 56;<br />
MQIA_CLUSTER_Q_TYPE             = 59;<br />
MQIA_CLUSTER_WORKLOAD_LENGTH    = 58;<br />
MQIA_CODED_CHAR_SET_ID          = 2;<br />
MQIA_COMMAND_LEVEL              = 31;<br />
MQIA_CONFIGURATION_EVENT        = 51;<br />
MQIA_CURRENT_Q_DEPTH            = 3;<br />
MQIA_DEF_BIND                   = 61;<br />
MQIA_DEF_INPUT_OPEN_OPTION      = 4;<br />
MQIA_DEF_PERSISTENCE            = 5;<br />
MQIA_DEF_PRIORITY               = 6;<br />
MQIA_DEFINITION_TYPE            = 7;<br />
MQIA_DIST_LISTS                 = 34;<br />
MQIA_EXPIRY_INTERVAL            = 39;<br />
MQIA_FIRST                      = 1;<br />
MQIA_HARDEN_GET_BACKOUT         = 8;<br />
MQIA_HIGH_Q_DEPTH               = 36;<br />
MQIA_IGQ_PUT_AUTHORITY          = 65;<br />
MQIA_INDEX_TYPE                 = 57;<br />
MQIA_INHIBIT_EVENT              = 48;<br />
MQIA_INHIBIT_GET                = 9;<br />
MQIA_INHIBIT_PUT                = 10;<br />
MQIA_INTRA_GROUP_QUEUING        = 64;<br />
MQIA_LAST                       = 2000;<br />
MQIA_LAST_USED                  = 66;<br />
MQIA_LOCAL_EVENT                = 49;<br />
MQIA_MAX_HANDLES                = 11;<br />
MQIA_MAX_MSG_LENGTH             = 13;<br />
MQIA_MAX_PRIORITY               = 14;<br />
MQIA_MAX_Q_DEPTH                = 15;<br />
MQIA_MAX_UNCOMMITTED_MSGS       = 33;<br />
MQIA_MSG_DELIVERY_SEQUENCE      = 16;<br />
MQIA_MSG_DEQ_COUNT              = 38;<br />
MQIA_MSG_ENQ_COUNT              = 37;<br />
MQIA_NAME_COUNT                 = 19;<br />
MQIA_NAMELIST_TYPE              = 72;<br />
MQIA_OPEN_INPUT_COUNT           = 17;<br />
MQIA_OPEN_OUTPUT_COUNT          = 18;<br />
MQIA_PAGESET_ID                 = 62;<br />
MQIA_PERFORMANCE_EVENT          = 53;<br />
MQIA_PLATFORM                   = 32;<br />
MQIA_Q_DEPTH_HIGH_EVENT         = 43;<br />
MQIA_Q_DEPTH_HIGH_LIMIT         = 40;<br />
MQIA_Q_DEPTH_LOW_EVENT          = 44;<br />
MQIA_Q_DEPTH_LOW_LIMIT          = 41;<br />
MQIA_Q_DEPTH_MAX_EVENT          = 42;<br />
MQIA_Q_SERVICE_INTERVAL         = 54;<br />
MQIA_Q_SERVICE_INTERVAL_EVENT   = 46;<br />
MQIA_Q_TYPE                     = 20;<br />
MQIA_QSG_DISP                   = 63;<br />
MQIA_REMOTE_EVENT               = 50;<br />
MQIA_RETENTION_INTERVAL         = 21;<br />
MQIA_SCOPE                      = 45;<br />
MQIA_SHAREABILITY               = 23;<br />
MQIA_SSL_TASKS                  = 69;<br />
MQIA_START_STOP_EVENT           = 52;<br />
MQIA_SYNCPOINT                  = 30;<br />
MQIA_TIME_SINCE_RESET           = 35;<br />
MQIA_TRIGGER_CONTROL            = 24;<br />
MQIA_TRIGGER_DEPTH              = 29;<br />
MQIA_TRIGGER_INTERVAL           = 25;<br />
MQIA_TRIGGER_MSG_PRIORITY       = 26;<br />
MQIA_TRIGGER_TYPE               = 28;<br />
MQIA_USAGE                      = 12;<br />
MQIA_USER_LIST                  = 2000;</p>
<p>{Return Code}<br />
MQCRC_OK                        = 0;<br />
MQCRC_CICS_EXEC_ERROR           = 1;<br />
MQCRC_MQ_API_ERROR              = 2;<br />
MQCRC_BRIDGE_ERROR              = 3;<br />
MQCRC_BRIDGE_ABEND              = 4;<br />
MQCRC_APPLICATION_ABEND    &amp;nbs</p>
]]></content:encoded>
			<wfw:commentRss>http://jiahu.net/mq%e4%b8%ad%e7%ae%80%e5%8d%95%e7%9a%84%e6%b6%88%e6%81%af%e5%8f%91%e9%80%81%e5%92%8c%e6%8e%a5%e6%94%b6%e7%9a%84%e5%8d%95%e5%85%83%e6%96%87%e4%bb%b6mqipas.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MQ中简单的消息发送和接收</title>
		<link>http://jiahu.net/mq%e4%b8%ad%e7%ae%80%e5%8d%95%e7%9a%84%e6%b6%88%e6%81%af%e5%8f%91%e9%80%81%e5%92%8c%e6%8e%a5%e6%94%b6.htm</link>
		<comments>http://jiahu.net/mq%e4%b8%ad%e7%ae%80%e5%8d%95%e7%9a%84%e6%b6%88%e6%81%af%e5%8f%91%e9%80%81%e5%92%8c%e6%8e%a5%e6%94%b6.htm#comments</comments>
		<pubDate>Wed, 05 Dec 2007 17:13:02 +0000</pubDate>
		<dc:creator>@ouc</dc:creator>
				<category><![CDATA[工作]]></category>
		<category><![CDATA[技术]]></category>
		<category><![CDATA[MQ]]></category>
		<category><![CDATA[代码]]></category>
		<category><![CDATA[消息队列]]></category>

		<guid isPermaLink="false">http://cngator.net/?p=200</guid>
		<description><![CDATA[对mqm.dll动态链接库的封装接口 通过MQI.pas提供的接口函数我们可以很容易的发送和接收简单的文本信息 因为只是例子，所以命名不标准，注释不规范，好在代码简单，容易读懂 窗体文件不提供了，相信看到代码也应该能猜出来了 整个单元代码文件如下： unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, MQI; type TForm1 = class(TForm) Button1: TButton; Memo1: TMemo; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; Button6: TButton; Button7: TButton; &#8230; <a href="http://jiahu.net/mq%e4%b8%ad%e7%ae%80%e5%8d%95%e7%9a%84%e6%b6%88%e6%81%af%e5%8f%91%e9%80%81%e5%92%8c%e6%8e%a5%e6%94%b6.htm">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>对mqm.dll动态链接库的封装接口<br />
通过MQI.pas提供的接口函数我们可以很容易的发送和接收简单的文本信息<br />
因为只是例子，所以命名不标准，注释不规范，好在代码简单，容易读懂</p>
<p>窗体文件不提供了，相信看到代码也应该能猜出来了</p>
<p>整个单元代码文件如下：</p>
<p>unit Unit1;</p>
<p>interface</p>
<p>uses<br />
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,<br />
Dialogs, StdCtrls, MQI;</p>
<p>type<br />
TForm1 = class(TForm)<br />
Button1: TButton;<br />
Memo1: TMemo;<br />
Button2: TButton;<br />
Button3: TButton;<br />
Button4: TButton;<br />
Button5: TButton;<br />
Button6: TButton;<br />
Button7: TButton;<br />
Button8: TButton;<br />
procedure Button1Click(Sender: TObject);<br />
procedure Button2Click(Sender: TObject);<br />
procedure Button3Click(Sender: TObject);<br />
procedure Button4Click(Sender: TObject);<br />
procedure Button5Click(Sender: TObject);<br />
procedure Button6Click(Sender: TObject);<br />
procedure Button7Click(Sender: TObject);<br />
procedure Button8Click(Sender: TObject);<br />
private<br />
{ Private declarations }<br />
Hconn : MQHCONN;<br />
Hobj : MQHOBJ;<br />
public<br />
{ Public declarations }<br />
end;</p>
<p>var<br />
Form1: TForm1;</p>
<p>implementation</p>
<p>{$R *.dfm}</p>
<p>const<br />
QM_NAME : MQCHAR48 = &#8216;MyTest&#8217;#0;<br />
QUEUE_NAME : MQCHAR48 = &#8216;Test001&#8242;#0;</p>
<p>procedure TForm1.Button1Click(Sender: TObject);<br />
var<br />
ConnectOpts : MQCNO;<br />
CompCode, Reason : MQLONG;<br />
QMgrName : MQCHAR48;<br />
begin<br />
Self.Memo1.Lines.Add(&#8216;Begin connect&#8230;&#8217;);</p>
<p>QMgrName := QM_NAME;<br />
ConnectOpts := MQCNO_DEFAULT;</p>
<p>MQCONNX ( @QMgrName, @ConnectOpts, @(Self.HConn), @Compcode, @Reason);</p>
<p>if CompCode &lt;&gt; MQCC_OK then<br />
begin<br />
Self.Memo1.Lines.Add(&#8216;Connect Failed&#8217;);<br />
end<br />
else<br />
begin<br />
Self.Memo1.Lines.Add(&#8216;Connected successed&#8217;);<br />
end;<br />
end;</p>
<p>procedure TForm1.Button2Click(Sender: TObject);<br />
var<br />
ObjDesc : MQOD;<br />
Options, CompCode, Reason : MQLONG;<br />
begin<br />
{ Calling the MQCONN procedure to get a valid connection handle was left out ! }<br />
Options := MQOO_FAIL_IF_QUIESCING + MQOO_OUTPUT + MQOO_INPUT_SHARED;<br />
ObjDesc := MQOD_DEFAULT;<br />
ObjDesc.ObjectName := QUEUE_NAME;</p>
<p>MQOPEN (Self.HConn, @ObjDesc, Options, @Self.HObj, @Compcode, @Reason );</p>
<p>if CompCode &lt;&gt; MQCC_OK then<br />
begin<br />
Self.Memo1.Lines.Add(&#8216;Open Failed&#8217;);<br />
end<br />
else<br />
begin<br />
Self.Memo1.Lines.Add(&#8216;Open Successed&#8217;);<br />
end;<br />
end;</p>
<p>procedure TForm1.Button3Click(Sender: TObject);<br />
var<br />
Options, CompCode, Reason : MQLONG;<br />
begin<br />
{ Calling the MQOPEN procedure to get a valid object handle was left out ! }<br />
Options := MQCO_NONE;<br />
MQCLOSE ( Self.HConn, @Self.Hobj, Options, @Compcode, @Reason);</p>
<p>if CompCode &lt;&gt; MQCC_OK then<br />
begin<br />
Self.Memo1.Lines.Add(&#8216;Close Failed&#8217;);<br />
end<br />
else<br />
begin<br />
Self.Memo1.Lines.Add(&#8216;Close Successed&#8217;);<br />
end;<br />
end;</p>
<p>procedure TForm1.Button4Click(Sender: TObject);<br />
var<br />
ObjDesc : MQOD;<br />
MsgDesc : MQMD;<br />
PutMsgOptions : MQPMO;<br />
BufferLength : MQLONG;<br />
Buffer : array [0..1024] of Char;<br />
CompCode, Reason : MQLONG;<br />
begin<br />
{ Calling the MQCONN procedure to get a valid connection handle was left out ! }<br />
Buffer := &#8216;This message was sent from Delphi by put1&#8242;#0;<br />
BufferLength := Length(Trim(Buffer));<br />
ObjDesc := MQOD_DEFAULT;<br />
ObjDesc.ObjectName := QUEUE_NAME;</p>
<p>MsgDesc := MQMD_DEFAULT;<br />
PutMsgOptions := MQPMO_DEFAULT;</p>
<p>//在MQ的13个函数中，MQPUT1实现了这样一种功能，<br />
//即它合并了MQOPEN, MQPUT, MQCLOSE三个函数的功能，<br />
//在打开队列并且只希望发送一条消息时，它的CPU消耗比上述三个函数相加要少。<br />
MQPUT1 ( Self.HConn, @ObjDesc, @MsgDesc, @PutMsgOptions, BufferLength, @Buffer, @Compcode, @Reason );</p>
<p>if CompCode &lt;&gt; MQCC_OK then<br />
begin<br />
Self.Memo1.Lines.Add(&#8216;Put1 Failed&#8217;);<br />
end<br />
else<br />
begin<br />
Self.Memo1.Lines.Add(&#8216;Put1 Successed&#8217;);<br />
end;<br />
end;</p>
<p>procedure TForm1.Button5Click(Sender: TObject);<br />
var<br />
MsgDesc : MQMD;<br />
PutMsgOptions : MQPMO;<br />
BufferLength : MQLONG;<br />
Buffer : array [0..1024] of Char;<br />
CompCode, Reason : MQLONG;<br />
begin<br />
{ Calling the MQCONN or MQCONNX and MQOPEN procedure to get a valid }<br />
{ connection handle and object handle was left out ! }<br />
Buffer := &#8216;This message was sent from Delphi by put&#8217;#0;<br />
BufferLength := Length(Trim(Buffer));<br />
MsgDesc := MQMD_DEFAULT;<br />
PutMsgOptions := MQPMO_DEFAULT;</p>
<p>MQPUT(Self.HConn, Self.Hobj, @MsgDesc, @PutMsgOptions, BufferLength, @Buffer, @Compcode, @Reason);</p>
<p>if CompCode &lt;&gt; MQCC_OK then<br />
begin<br />
Self.Memo1.Lines.Add(&#8216;Put Failed&#8217;);<br />
end<br />
else<br />
begin<br />
Self.Memo1.Lines.Add(&#8216;Put Successed&#8217;);<br />
end;<br />
end;</p>
<p>procedure TForm1.Button6Click(Sender: TObject);<br />
var<br />
MsgDesc : MQMD;<br />
GetMsgOptions : MQGMO;<br />
DataLength : MQLONG;<br />
BufferLength : Integer;<br />
Buffer : array [0..1024] of Char;<br />
CompCode, Reason : MQLONG;<br />
begin<br />
{ Calling the MQCONN or MQCONNX and MQOPEN procedure to get a valid }<br />
{ connection handle and object handle was left out ! }<br />
BufferLength := 1024;<br />
DataLength := 0;<br />
MsgDesc := MQMD_DEFAULT;<br />
GetMsgOptions := MQGMO_DEFAULT;</p>
<p>//&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
//  GetMsgOptions.Options := MQGMO_WAIT + MQGMO_FAIL_IF_QUIESCING + MQGMO_ALL_MSGS_AVAILABLE;<br />
//  GetMsgOptions.WaitInterval := 10000;<br />
//&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>MQGET(Self.HConn, Self.Hobj, @MsgDesc, @GetMsgOptions, BufferLength, Buffer,<br />
@DataLength, @Compcode, @Reason);</p>
<p>if CompCode &lt;&gt; MQCC_OK then<br />
begin<br />
Self.Memo1.Lines.Add(&#8216;Get Failed&#8217;);<br />
end<br />
else<br />
begin<br />
Self.Memo1.Lines.Add(Buffer);<br />
Self.Memo1.Lines.Add(&#8216;Get Successed&#8217;);<br />
end;<br />
end;</p>
<p>procedure TForm1.Button7Click(Sender: TObject);<br />
var<br />
ObjDesc : MQOD;<br />
Selectors : array [0..2] of MQLONG;<br />
Options, CompCode, Reason : MQLONG;<br />
QMgrName : MQCHAR48;<br />
Buffer : array [0..1024] of Char;<br />
ConnectOpts : MQCNO;<br />
begin<br />
QMgrName := QM_NAME;<br />
ConnectOpts := MQCNO_DEFAULT;<br />
//  MQCONNX ( @QMgrName, @Self.HConn, @Compcode, @Reason);<br />
MQCONNX ( @QMgrName, @ConnectOpts, @Self.HConn, @Compcode, @Reason);</p>
<p>if CompCode &lt;&gt; MQCC_OK then<br />
begin<br />
Self.Memo1.Lines.Add(&#8216;Connect Failed&#8217;);<br />
end<br />
else<br />
begin<br />
Self.Memo1.Lines.Add(&#8216;Connect Successed&#8217;);<br />
end;</p>
<p>ObjDesc := MQOD_DEFAULT;</p>
<p>with ObjDesc do<br />
begin<br />
ObjectQmgrName := QMgrName;<br />
ObjectType := MQOT_Q_MGR;<br />
end;</p>
<p>Options := MQOO_INQUIRE + MQOO_FAIL_IF_QUIESCING;<br />
MQOPEN (Self.HConn, @ObjDesc, Options, @Self.HObj, @Compcode, @Reason );</p>
<p>if CompCode &lt;&gt; MQCC_OK then<br />
begin<br />
Self.Memo1.Lines.Add(&#8216;Open Failed&#8217;);<br />
end<br />
else<br />
begin<br />
Self.Memo1.Lines.Add(&#8216;Open Successed&#8217;);<br />
end;</p>
<p>Selectors[0] := MQCA_Q_MGR_NAME;<br />
MQINQ ( Self.HConn, Self.Hobj, 1, @Selectors, 0, nil, MQ_Q_MGR_NAME_LENGTH, Buffer, @Compcode, @Reason );</p>
<p>if CompCode &lt;&gt; MQCC_OK then<br />
begin<br />
Self.Memo1.Lines.Add(&#8216;Inquire Failed&#8217;);<br />
end<br />
else<br />
begin<br />
Self.Memo1.Lines.Add(&#8216;Inquire Successed&#8217;);<br />
end;<br />
end;</p>
<p>procedure TForm1.Button8Click(Sender: TObject);<br />
var<br />
CompCode, Reason : MQLONG;<br />
begin<br />
Self.Memo1.Lines.Add(&#8216;Begin Disconnect&#8230;&#8217;);</p>
<p>MQDISC ( @Self.HConn, @Compcode, @Reason );</p>
<p>if CompCode &lt;&gt; MQCC_OK then<br />
begin<br />
Self.Memo1.Lines.Add(&#8216;Disconnect Failed&#8217;);<br />
end<br />
else<br />
begin<br />
Self.Memo1.Lines.Add(&#8216;Disconnected successed&#8217;);<br />
end;<br />
end;</p>
<p>end.</p>
]]></content:encoded>
			<wfw:commentRss>http://jiahu.net/mq%e4%b8%ad%e7%ae%80%e5%8d%95%e7%9a%84%e6%b6%88%e6%81%af%e5%8f%91%e9%80%81%e5%92%8c%e6%8e%a5%e6%94%b6.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

