﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-从零开始学Java</title><link>http://www.blogjava.net/Eazon/</link><description>一点一滴的积累才是学习的最高境界</description><language>zh-cn</language><lastBuildDate>Tue, 09 Jun 2026 21:55:55 GMT</lastBuildDate><pubDate>Tue, 09 Jun 2026 21:55:55 GMT</pubDate><ttl>60</ttl><item><title>How to build OpenSSL for Windows with MingW and MSYS</title><link>http://www.blogjava.net/Eazon/archive/2010/09/23/332666.html</link><dc:creator>Eason Wu</dc:creator><author>Eason Wu</author><pubDate>Wed, 22 Sep 2010 16:21:00 GMT</pubDate><guid>http://www.blogjava.net/Eazon/archive/2010/09/23/332666.html</guid><wfw:comment>http://www.blogjava.net/Eazon/comments/332666.html</wfw:comment><comments>http://www.blogjava.net/Eazon/archive/2010/09/23/332666.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Eazon/comments/commentRss/332666.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Eazon/services/trackbacks/332666.html</trackback:ping><description><![CDATA[Today I need to build a static openssl library for Windows.<br />
<br />
The compiling environment is MingW/MSYS/gcc 4.4.1/perl<br />
<br />
It turns out a few tweaks have to be made to compile from the latest OpenSSL 0.9.8m source package:<br />
<br />
<u><strong>Step 1:&nbsp; Setup the working environment.</strong></u> Perl is needed to configure the make file, and you can download a perl 5 package from ActiveState. Please ensure all of the MingW/bin, MSYS/bin and Perl binaries folder are in your current PATH variable.<br />
<br />
[<strong>make</strong>]<br />
The "make" version does matter for the compiling, you need the Unix-style make, unfortunately in my machine there are multiple versions of "make" (Borland Delphi7 &amp; BDS2010) which cause fatal conflicts so I have to disable them by simply renaming the Borland / BDS2010 folder name.<br />
<br />
[<strong>sed</strong>]<br />
Please ensure the sed utility is already in your PATH folder, if not it can be downloaded from MSYS/MINGW website.<br />
<br />
Unzip the tar ball with 7-zip, launch a DOS box and go to the folder where the source is extracted,<br />
<br />
<u><strong>Step 2:&nbsp; Fix Configure script</strong></u><br />
<p>Open Configure script with text editor, find line</p>
<pre>$IsMK1MF=1 if ($target eq "mingw" &amp;&amp; $^O ne "cygwin" &amp;&amp; !is_msys());</pre>
and comment it out (or delete altogether). <br />
<br />
<u><strong>Step 3: Disable <font color="#ff0000">export_var_as_fn</font></strong></u><br />
<br />
In Configure script, find line:<br />
<br />
"mingw", "gcc:-mno-cygwin -DL_ENDIAN -fomit-frame-pointer -O3 -march=i486 -Wall -D_WIN32_WINNT=0x333:::MINGW32:-lwsock32 -lgdi32:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts} EXPORT_VAR_AS_FN:${x86_coff_asm}:win32:cygwin-shared:-D_WINDLL -DOPENSSL_USE_APPLINK:-mno-cygwin -shared:.dll.a",<br />
<br />
<font color="#ff0000"><strong>Remove</strong></font> the <strong>EXPORT_VAR_AS_FN</strong> macro so we get:<br />
<br />
"mingw", "gcc:-mno-cygwin -DL_ENDIAN -fomit-frame-pointer -O3 -march=i486 -Wall -D_WIN32_WINNT=0x333:::MINGW32:-lwsock32 -lgdi32:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts} :${x86_coff_asm}:win32:cygwin-shared:-D_WINDLL -DOPENSSL_USE_APPLINK:-mno-cygwin -shared:.dll.a",<br />
<br />
<br />
The reason to do it is that (1) to build static library we do not need exporting global variables as functions; (2) the current OpenSSL source code has a compiling bug and cannot be easily fixed without lots of source code change:<br />
<br />
<strong><u>e_os2.h:</u></strong><br />
<br />
<font size="2">#ifdef OPENSSL_EXPORT_VAR_AS_FUNCTION<br />
<br />
# define <strong>OPENSSL_IMPLEMENT_GLOBAL</strong>(type,name)&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; \<br />
extern type _hide_##name;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; \<br />
type *_shadow_##name(void) { return &amp;_hide_##name; }&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; \<br />
static type _hide_##name<br />
</font><br />
In the source code it is used in two formats:<br />
<br />
(use 1)<br />
<br />
OPENSSL_IMPLEMENT_GLOBAL(int, check_key);&nbsp; //check_key not initialized.<br />
<br />
(use 2)<br />
<br />
OPENSSL_IMPLEMENT_GLOBAL(int, check_key) = 1;&nbsp; //check_key is 1 by default.<br />
<br />
Unfortunately the macro cannot compile in gcc 4.4.1 (also I guess including a lot of other C compilers) because it first declare the _hide_name as external and then re-declare it as static scope.<br />
<br />
A simple fix is :<br />
<font size="2"><br />
# define <strong>OPENSSL_IMPLEMENT_GLOBAL</strong>(type,name)&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; \<br />
type *_shadow_##name(void) {</font><font size="2">static type _hide_##name;</font><font size="2"> return &amp;_hide_##name; }<br />
<br />
</font><font size="2"># define <strong>OPENSSL_IMPLEMENT_GLOBAL_INIT</strong>(type,name, val)&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; \<br />
type *_shadow_##name(void) {</font><font size="2">static type _hide_##name = (val);</font><font size="2"> return &amp;_hide_##name; }<br />
</font><br />
<br />
<u><strong>Step 4: Fix the zero-length test cases</strong></u><br />
<br />
Go to $(openssl)/test, dir *.c, you might find several test c sources with zero length! It is because that the original openssl tar ball is created in real UNIX and those zero-length files are actually softlinks to a file called dummytest.c. when unzipping in Windows platform 7-Zip (and other unzip utilities you are using) might not be able to cope with soft-link correctly thus just leaves those empty source files.<br />
<br />
Fortunately these files are not many and can be fixed manually as following:<br />
<br />
<em><strong>rm xx.c; ln -s dummytest.c xx.c</strong></em><br />
<br />
<u><strong>Step 5:&nbsp; Configure</strong></u><br />
<br />
Run the following command :<br />
<br />
<em><strong></strong></em><strong>perl Configure mingw</strong><br />
<br />
<br />
If everything works fine you should get makefile configured for MingW target.<br />
<br />
<u><strong>Step 6: Make</strong></u><br />
<br />
Just run make to begin the building process:<br />
<br />
<strong>make</strong><br />
<br />
<br />
Hopefully you will get the following after several minutes:<br />
<br />
$(openssl)/libssl.a<br />
$(openssl)/libcrypto.a<br />
$(openssl)/apps/openssl.exe<br />
<br />
also all of the test cases are run automatically to verify everything works as expected, or you can run the test with command :&nbsp;<strong> make test</strong><br />
<br />
<br />
The <strong>libssl.a</strong> and <strong>libcrypto.a</strong> is just what I need to embed the openssl features in a project ;-)<br />
<br />
<br />
Wish the above memo can help others someday.<br />
<br />
<font color="#00ff00" size="3"><strong>http://hi.baidu.com/007ware/blog/item/72a4424f70a380c6d0c86a1c.html</strong></font><br />
<img src ="http://www.blogjava.net/Eazon/aggbug/332666.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Eazon/" target="_blank">Eason Wu</a> 2010-09-23 00:21 <a href="http://www.blogjava.net/Eazon/archive/2010/09/23/332666.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>转:WebShpere MQ 配置与测试</title><link>http://www.blogjava.net/Eazon/archive/2010/06/15/323615.html</link><dc:creator>Eason Wu</dc:creator><author>Eason Wu</author><pubDate>Tue, 15 Jun 2010 07:30:00 GMT</pubDate><guid>http://www.blogjava.net/Eazon/archive/2010/06/15/323615.html</guid><wfw:comment>http://www.blogjava.net/Eazon/comments/323615.html</wfw:comment><comments>http://www.blogjava.net/Eazon/archive/2010/06/15/323615.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Eazon/comments/commentRss/323615.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Eazon/services/trackbacks/323615.html</trackback:ping><description><![CDATA[在&#8220;WebSphere&nbsp;
<div class="articalContent" id="sina_keyword_ad_area2"><wbr>MQ程序设计初探&#8221;一文中，讨论了从MQ队列管理器的本地队列中放置和读出消息的程序，本文主要通过两台机器，搭建
MQ消息传输的环境，并编写测试程序进行测试。<br />
<strong>第一、准备工作</strong><br />
准备2台Win2000环境（XP也可），通过以太网连通。<br />
机器A：代码为00000000，IP地址为：10.1.1.1<br />
机器B：代码为88888888，IP地址为：10.1.1.2<br />
安装MQ&nbsp;<wbr>5.3<br />
<br />
<strong>第二、创建MQ对象</strong><br />
A机器上：<br />
1、打开&#8220;WebSphere&nbsp;<wbr>MQ资源管理器&#8221;，新建队列管理器，名称为QM_00000000，其余采用默认设置;<br />
2、在QM_00000000队列管理器中创建本地队列，名称为LQ_00000000;<br />
3、创建传输队列，名称为XQ_88888888（新建时选择&#8220;本地队列&#8221;，将&#8220;用法&#8221;设置为&#8220;传输&#8221;）;<br />
4、创建远程队列定义，名称为RQ_88888888，指定远程队列名称为LQ_88888888，远程队列管理器名称为QM_88888888，传输队
列名称为XQ_88888888;<br />
5、创建发送方通道，名称为00000000.88888888，传输协议为TCP/IP，连接名称为10.1.1.2(1414)，传输队列为
XQ_88888888;<br />
6、创建接受方通道，名称为88888888.00000000，采用默认设置；<br />
7、创建服务器连接通道，名称为DC.SVRCONN，采用默认设置（该通道主要给后面的测试程序使用）。<br />
B机器和A机器上的操作一样，只是命名不同，如下：<br />
1、打开&#8220;WebSphere&nbsp;<wbr>MQ资源管理器&#8221;，新建队列管理器，名称为QM_88888888，其余采用默认设置;<br />
2、在QM_88888888队列管理器中创建本地队列，名称为LQ_88888888;<br />
3、创建传输队列，名称为XQ_00000000（新建时选择&#8220;本地队列&#8221;，将&#8220;用法&#8221;设置为&#8220;传输&#8221;）;<br />
4、创建远程队列定义，名称为RQ_00000000，指定远程队列名称为LQ_00000000，远程队列管理器名称为QM_00000000，传输队
列名称为XQ_00000000;<br />
5、创建发送方通道，名称为88888888.00000000，传输协议为TCP/IP，连接名称为10.1.1.1(1414)，传输队列为
XQ_00000000;<br />
6、创建接受方通道，名称为00000000.88888888，采用默认设置；<br />
7、创建服务器连接通道，名称为DC.SVRCONN，采用默认设置。<br />
<br />
<strong>第三、消息测试</strong><br />
在A、B机器上分别启动其发送方通道，正常情况通道状态应为&#8220;正在运行&#8221;。<br />
通过如下测试程序进行测试，文件名为：MQTest.java，在机器A上进行运行（如在B上运行请读者自行适当修改）。<br />
-------------------------------------------------------------------------------------------<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080;">&nbsp;1</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.io.IOException;<br />
</span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.util.Hashtable;<br />
</span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;com.ibm.mq.MQException;<br />
</span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;com.ibm.mq.MQMessage;<br />
</span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;com.ibm.mq.MQPutMessageOptions;<br />
</span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;com.ibm.mq.MQQueue;<br />
</span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;com.ibm.mq.MQQueueManager;<br />
</span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">10</span>&nbsp;<span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;MQSample{<br />
</span><span style="color: #008080;">11</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">定义队列管理器和队列的名称&nbsp;</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">12</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;String&nbsp;qmName&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">QM_00000000</span><span style="color: #000000;">"</span><span style="color: #000000;">;&nbsp;<br />
</span><span style="color: #008080;">13</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;String&nbsp;qName&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">RQ_88888888</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">14</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">15</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;MQQueueManager&nbsp;qMgr;&nbsp;<br />
</span><span style="color: #008080;">16</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;Hashtable&nbsp;properties&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Hashtable();<br />
</span><span style="color: #008080;">17</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">18</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;main(String&nbsp;args[])&nbsp;{<br />
</span><span style="color: #008080;">19</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">try</span><span style="color: #000000;">&nbsp;{<br />
</span><span style="color: #008080;">20</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;properties.put(</span><span style="color: #000000;">"</span><span style="color: #000000;">hostname</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">10.1.1.1</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">21</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;properties.put(</span><span style="color: #000000;">"</span><span style="color: #000000;">port</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Integer(</span><span style="color: #000000;">1414</span><span style="color: #000000;">));<br />
</span><span style="color: #008080;">22</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;properties.put(</span><span style="color: #000000;">"</span><span style="color: #000000;">channel</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">DC.SVRCONN</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">23</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;properties.put(</span><span style="color: #000000;">"</span><span style="color: #000000;">CCSID</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Integer(</span><span style="color: #000000;">1381</span><span style="color: #000000;">));<br />
</span><span style="color: #008080;">24</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;properties.put(</span><span style="color: #000000;">"</span><span style="color: #000000;">transport</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">"</span><span style="color: #000000;">MQSeries</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">25</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">26</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;Create&nbsp;a&nbsp;connection&nbsp;to&nbsp;the&nbsp;queue&nbsp;manager&nbsp;</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">27</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qMgr&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;MQQueueManager(qmName,properties);&nbsp;<br />
</span><span style="color: #008080;">28</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;Set&nbsp;up&nbsp;the&nbsp;options&nbsp;on&nbsp;the&nbsp;queue&nbsp;we&nbsp;wish&nbsp;to&nbsp;open<img src="http://www.blogjava.net/Images/dot.gif"  alt="" />&nbsp;</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">29</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;openOptions&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">16</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">30</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;Now&nbsp;specify&nbsp;the&nbsp;queue&nbsp;that&nbsp;we&nbsp;wish&nbsp;to&nbsp;open,&nbsp;<br />
</span><span style="color: #008080;">31</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;and&nbsp;the&nbsp;open&nbsp;options<img src="http://www.blogjava.net/Images/dot.gif"  alt="" />&nbsp;</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">32</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MQQueue&nbsp;remoteQ&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;qMgr.accessQueue(qName,&nbsp;openOptions);&nbsp;<br />
</span><span style="color: #008080;">33</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">34</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;Define&nbsp;a&nbsp;simple&nbsp;WebSphere&nbsp;MQ&nbsp;message,&nbsp;and&nbsp;write&nbsp;some&nbsp;text&nbsp;in&nbsp;UTF&nbsp;format..&nbsp;</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">35</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MQMessage&nbsp;putMessage&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;MQMessage();&nbsp;<br />
</span><span style="color: #008080;">36</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;putMessage.writeUTF(</span><span style="color: #000000;">"</span><span style="color: #000000;">Test</span><span style="color: #000000;">"</span><span style="color: #000000;">);&nbsp;<br />
</span><span style="color: #008080;">37</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;specify&nbsp;the&nbsp;message&nbsp;options<img src="http://www.blogjava.net/Images/dot.gif"  alt="" />&nbsp;</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">38</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MQPutMessageOptions&nbsp;pmo&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;MQPutMessageOptions();&nbsp;<br />
</span><span style="color: #008080;">39</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;accept&nbsp;the&nbsp;defaults,&nbsp;same&nbsp;as&nbsp;MQPMO_DEFAULT<br />
</span><span style="color: #008080;">40</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;put&nbsp;the&nbsp;message&nbsp;on&nbsp;the&nbsp;queue&nbsp;</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">41</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;remoteQ.put(putMessage,pmo);&nbsp;<br />
</span><span style="color: #008080;">42</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">Message&nbsp;has&nbsp;been&nbsp;input&nbsp;into&nbsp;the&nbsp;Remote&nbsp;Queue</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">43</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">44</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;Close&nbsp;the&nbsp;queue<img src="http://www.blogjava.net/Images/dot.gif"  alt="" />&nbsp;</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">45</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;remoteQ.close();&nbsp;<br />
</span><span style="color: #008080;">46</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;Disconnect&nbsp;from&nbsp;the&nbsp;queue&nbsp;manager&nbsp;</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">47</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qMgr.disconnect();&nbsp;<br />
</span><span style="color: #008080;">48</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="color: #0000ff;">catch</span><span style="color: #000000;">&nbsp;(MQException&nbsp;ex)&nbsp;{&nbsp;<br />
</span><span style="color: #008080;">49</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;If&nbsp;an&nbsp;error&nbsp;has&nbsp;occurred&nbsp;in&nbsp;the&nbsp;above,&nbsp;try&nbsp;to&nbsp;identify&nbsp;what&nbsp;went&nbsp;wrong&nbsp;<br />
</span><span style="color: #008080;">50</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;Was&nbsp;it&nbsp;a&nbsp;WebSphere&nbsp;MQ&nbsp;error?&nbsp;</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">51</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">A&nbsp;WebSphere&nbsp;MQ&nbsp;error&nbsp;occurred&nbsp;:&nbsp;Completion&nbsp;code&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;ex.completionCode&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;<br />
</span><span style="color: #008080;">52</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;Reason&nbsp;code&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;ex.reasonCode);&nbsp;<br />
</span><span style="color: #008080;">53</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="color: #0000ff;">catch</span><span style="color: #000000;">&nbsp;(IOException&nbsp;ex)&nbsp;{&nbsp;<br />
</span><span style="color: #008080;">54</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;Was&nbsp;it&nbsp;a&nbsp;Java&nbsp;buffer&nbsp;space&nbsp;error?&nbsp;</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">55</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">An&nbsp;error&nbsp;occurred&nbsp;whilst&nbsp;writing&nbsp;to&nbsp;the&nbsp;message&nbsp;buffer:&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;ex);&nbsp;<br />
</span><span style="color: #008080;">56</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="color: #0000ff;">catch</span><span style="color: #000000;">(Exception&nbsp;ex){<br />
</span><span style="color: #008080;">57</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ex.printStackTrace();<br />
</span><span style="color: #008080;">58</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">59</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">60</span>&nbsp;<span style="color: #000000;">}</span></div>
<br />
</div>
<img src ="http://www.blogjava.net/Eazon/aggbug/323615.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Eazon/" target="_blank">Eason Wu</a> 2010-06-15 15:30 <a href="http://www.blogjava.net/Eazon/archive/2010/06/15/323615.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>