﻿<?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-gdufo</title><link>http://www.blogjava.net/gdufo/</link><description /><language>zh-cn</language><lastBuildDate>Tue, 28 Apr 2026 16:37:01 GMT</lastBuildDate><pubDate>Tue, 28 Apr 2026 16:37:01 GMT</pubDate><ttl>60</ttl><item><title> Mondrian 使用教程 </title><link>http://www.blogjava.net/gdufo/archive/2016/02/06/429302.html</link><dc:creator>gdufo</dc:creator><author>gdufo</author><pubDate>Sat, 06 Feb 2016 10:18:00 GMT</pubDate><guid>http://www.blogjava.net/gdufo/archive/2016/02/06/429302.html</guid><description><![CDATA[<div>      <h1>         <span><a href="http://blog.csdn.net/evangel_z/article/details/29585571">         <div>http://blog.csdn.net/evangel_z/article/details/29585571</div></a><br /></span></h1><p><div><p>通过本教程，您将了解到什么是Mondiran,及如何将mondrian支持添加到您的Java Web项目中。</p> <p>在阅读本教程之前，您可能需要掌握以下概念：</p> <p>OLAP(联机分析处理On-Line Analytical Processing)，您可以通过阅读<a target="_blank" href="http://www.baidu.com/link?url=Gib-X6umFuahn83g6UQk3gMQNJsE6k6ftKfZQxOMBBqJsVEdUzeBiWd_ktSk1x5U5aV8yuhPkhuxhunVT1J2xHCXdnBLoZPqFBm7dkPjc6_">ROLAP的概念.pptx</a>来了解OLAP</p> <p>MDX多维表达式，您可以通过阅读<a target="_blank" href="http://www.baidu.com/link?url=ENbaNqIsb9H_jrVGd4yY6wCA3H_gWROKPxc6yScWpgsCQOx1q8oik5uTN-Bj0r1xjdGwwKM_3JLMqxEOwXKpzUU_VqhrrmhSYnn3c2oRBuO">MDX的基本语法及概念.pptx</a>来了解MDX</p> <p><br /> </p> <h1><a name="t0"></a>1. Mondrian是什么？</h1> <p>Mondrian是一个开源项目。一个用Java写成的OLAP引擎。它用MDX语言实现查询，从关系数据库(RDBMS)中读取数据。然后经过Java API以多维的方式对结果进行展示。</p> <p>Mondrian的使用方式同JDBC驱动类似。可以非常方便的与现有的Web项目集成<br /> </p> <h2><a name="t1"></a>1.1 Mondrian的体系结构(Architecture)</h2> <p>Mondrian OLAP 系统由四个层组成; 从最终用户到数据中心, 顺序为:&nbsp;<br /> 1.1.1 表现层(the presentation layer)<br /> 1.1.2 维度层(the dimensional layer)<br /> 1.1.3 集合层(the star layer)<br /> 1.1.4 存储层(the storage layer)<br /> 结构图如下:<br /> </p> <p><img src="http://img.blog.csdn.net/20140615220021156" alt="" /><br /> </p> <h3><a name="t2"></a>1.1.1 表现层(the presentation layer)</h3> <p>表现层决定了最终用户将在他们的显示器上看到什么, 及他们如何同系统产生交互。</p> <p>有许多方法可以用来向用户显示多维数据集, 有 pivot 表 (一种交互式的表), pie, line 和图表(bar charts)。它们可以用Swing 或 JSP来实现。</p> <p>表现层以多维"文法(grammar)(维、度量、单元)&#8221;的形式发出查询，然后OLAP服务器返回结果。</p> <p>1.1.1.1 Jpivot表现层<br /> </p> <p>JPivot 是Mondrian的表现层TagLib，一直保持着良好的开发进度。 </p> <p>您可以通过访问jpivot的官方网站<a target="_blank" href="http://jpivot.sourceforge.net/">http://jpivot.sourceforge.net/</a>以获得更多的帮助及支持</p> <p>jpivot使用XML/ XSLT渲染OLAP报表:<br /> </p> <p>JPivot 使用 WCF (Web Component Framework) &nbsp;，基于XML/XSLT来渲染Web UI组件。这使它显得十分另类。不过，OLAP报表这种非常复杂但又有规律可循的东西，最适合使用XSLT来渲染。<br /> </p> <p>jpivot完全基于JSP+TagLib：<br /> </p> <p>JPivot另外一个可能使人不惯的地方是它完全基于taglib而不是大家熟悉的MVC模式。</p> <p>但它可以很方便的将多维数据展示给最终用户，如下表格：<br /> </p> <p><img src="http://img.blog.csdn.net/20140615220247562" alt="" /><br /> </p> <p>jpivot其实是一个自定义jsp的标签库。它基于XML/XSLT配置来生成相应的html。所幸的是，我们并不需要了解太多关于这方面的内容，我们只要掌握相应jsp标签的使用即可。</p> <p>在本教程的实例中，我们将会对一些常用到的jpivot标签进行讲解。</p> <p>您还可以通过汉化WEB-INF/jpivot下的xml文件来完成对jpivot的汉化工作</p> <h3><a name="t3"></a>1.1.2 维度层(the dimensional layer)</h3> <p>维度层用来解析、验证和执行MDX查询要求。</p> <p>一个MDX查询要通过几个阶段来完成：首先是计算坐标轴（axes），再者计算坐标轴axes 中cell的值。</p> <p>&nbsp;为了提高效率，维度层把要求查询的单元成批发送到集合层，查询转换器接受操作现有查询的请求，而不是对每个请求都建立一个MDX 声明。<br /> </p> <h3><a name="t4"></a>1.1.3 集合层(the star layer)</h3> <p>集合层负责维护和创建集合缓存，一个集合是在内存中缓存一组单元值， 这些单元值由一组维的值来确定。</p> <p>维度层对这些单元发出查询请求，如果所查询的单元值不在缓存中，则集合管理器(aggregation manager)会向存储层发出查询请求<br /> </p> <h3><a name="t5"></a>1.1.4 存储层(the storage layer)</h3> <p>存储层是一个关系型数据库(RDBMS)。它负责创建集合的单元数据，和提供维表的成员。<br /> </p> <h2><a name="t6"></a>1.2 API</h2> <p>Mondrian 为客户端提供一个用于查询的API</p> <p>因为到目前为止,并没有一个通用的用于OLAP查询的API,因此Mondrian提供了它私有的API.</p> <p>尽管如此,一个常使用JDBC的人将同样发现它很熟悉.不同之处仅在于它使用的是MDX查询语言,而非SQL<br /> </p> <p>下面的java片段展示了如何连接到Mondrian,然后执行一个查询,最后打印结果.</p>  <div bg_java"=""><div><div><strong>[java]</strong> <a href="http://blog.csdn.net/evangel_z/article/details/29585571#" title="view plain">view plain</a><span data-mod="popu_168"> <a target="_blank" href="http://blog.csdn.net/evangel_z/article/details/29585571#" title="copy">copy</a></span> <span data-mod="popu_167"><a href="https://code.csdn.net/snippets/396796" target="_blank" title="在CODE上查看代码片" style="text-indent:0;"><img src="https://code.csdn.net/assets/CODE_ico.png" alt="在CODE上查看代码片" style="position:relative;top:1px;left:2px;" height="12" width="12" /></a></span><span data-mod="popu_170"><a href="https://code.csdn.net/snippets/396796/fork" target="_blank" title="派生到我的代码片" style="text-indent:0;"><img src="https://code.csdn.net/assets/ico_fork.svg" alt="派生到我的代码片" style="position:relative;top:2px;left:2px;" height="12" width="12" /></a></span></div></div><ol start="1"><li><span>import&nbsp;mondrian.olap.*;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>import&nbsp;java.io.PrintWriter;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;Connection&nbsp;connection&nbsp;=&nbsp;DriverManager.getConnection(<span>"Provider=mondrian;"&nbsp;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+<span>"Jdbc=jdbc:odbc:MondrianFoodMart;"&nbsp;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+<span>"Catalog=/WEB-INF/FoodMart.xml;",null,false);&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;Query&nbsp;query&nbsp;=&nbsp;connection.parseQuery(<span>"SELECT&nbsp;{[Measures].[Unit&nbsp;Sales],&nbsp;[Measures].[Store&nbsp;Sales]}&nbsp;on&nbsp;columns,"&nbsp;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+<span>"&nbsp;{[Product].children}&nbsp;on&nbsp;rows&nbsp;"&nbsp;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+<span>"FROM&nbsp;[Sales]&nbsp;"&nbsp;+"WHERE&nbsp;([Time].[1997].[Q1],&nbsp;[Store].[CA].[San&nbsp;Francisco])");&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;Result&nbsp;result&nbsp;=&nbsp;connection.execute(query);&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;result.print(<span>new&nbsp;PrintWriter(System.out));&nbsp;&nbsp;</span></li></ol></div>  <p>与JDBC类似,一个Connection由DriverManager创建,Query 对象类似于JDBC 的Statement,它通过传递一个MDX语句来创建.Result对象类似于JDBC的ResultSet,只不过它里面保存的是多维数据</p> <p>您可以通过查看Mondrian帮助文档里的javadoc来获取更多关于Mondrian API的资料<br /> </p> <p>通过上面的介绍，您应该对mondrian的体系有一个基本的了解。</p> <p>下面我们将通过一个简单的例子来加深您的理解。<br /> </p> <p><br /> </p> <h1><a name="t7"></a>2. 一个简单的Mondrian例子</h1> <p>现在让我们用一个简单的例子来说明将Mondrian支持添加到您java web的具体步骤。<br /> </p> <h2><a name="t8"></a>2.1 准备开发工具及环境</h2> <p>本测试需要的环境：<br /> 操作系统：Windows 2000;<br /> Web服务器：tomcat6.0；<br /> 关系数据库：sql server 2000；<br /> 开发工具：eclipse + myeclipse;<br /> &nbsp; &nbsp; &nbsp; JDBC驱动：jtds-1.2.2;</p> <p>　 &nbsp; &nbsp; &nbsp; &nbsp;您可以在<a target="_blank" href="http://tomcat.apache.org/">http://tomcat.apache.org/</a>上下载到tomcat的最新版本及帮助；<br /> 　　 &nbsp; &nbsp;您可以在<a target="_blank" href="http://www.myeclipseide.com/">http://www.myeclipseide.com/</a>上下载到myeclipse的最新版本及相应的eclipse开发平台版本<br /> </p> <h2><a name="t9"></a>2.2 准备Mondrian资源：</h2> <p>从<a target="_blank" href="http://sourceforge.net/projects/mondrian/">http://sourceforge.net/projects/mondrian/</a>下载Mondrian的最新版本(目前版本为3.0，大约有50M＋大小)。<br /> </p> <p><img src="http://img.blog.csdn.net/20140615221507484" alt="" /><br /> </p> <h2><a name="t10"></a>2.3 创建项目</h2> <p>启动eclipse。</p> <p>在eclipse中新创建一个web项目，名为Tezz。注意需要加入JSTL支持。</p> <p>具体步骤如下：</p> <h3><a name="t11"></a>2.3.1 &nbsp;打开新建web项目对话框</h3> <p><img src="http://blog.csdn.net/evangel_z/article/details/29585571" alt="" /><img src="http://img.blog.csdn.net/20140616210636421" alt="" /><br /> </p> <p><img src="http://img.blog.csdn.net/20140616210659171" alt="" /><br /> </p> <p><img src="http://blog.csdn.net/evangel_z/article/details/29585571" alt="" />一个新项目Tezz的文件结构如下:</p> <p><img src="http://blog.csdn.net/evangel_z/article/details/29585571" alt="" /><img src="http://img.blog.csdn.net/20140616210734125" alt="" /><br /> </p> <h2><a name="t12"></a>2.4 添加必须的文件</h2> <p>将下载的压缩包进行解压。完成后，进入文件夹可以看到如下目录结构。双击进入lib文件夹。<br /> </p> <p><img src="http://blog.csdn.net/evangel_z/article/details/29585571" alt="" /><img src="http://img.blog.csdn.net/20140616210805828" alt="" /><br /> </p> <p>Lib文件夹有如下内容：注意到这里的mondrian.war文件是一个可直接布署的项目，我们需要将它解压，然后从中取出我们所需要的文件。(建议将其扩展名改成zip，然后直接右键解压)<br /> </p> <p><img src="http://blog.csdn.net/evangel_z/article/details/29585571" alt="" /><img src="http://img.blog.csdn.net/20140616215122562" alt="" /><br /> </p> <p>进入解压后的文件夹，选中jpivot、wcf二个文件夹及busy.jsp、error.jsp、testpage.jsp三个文件，我们需要将这些资源复制到我们测试项目的WebRoot文件夹中。按ctrl+C键复制。<br /> </p> <p><img src="http://blog.csdn.net/evangel_z/article/details/29585571" alt="" /><img src="http://img.blog.csdn.net/20140616215207687" alt="" /><br /> </p> <p>注：jpivot、wcf这两个文件夹包含mondrian使用的图像和css文件。Busy.jsp显示等待页面、error.jsp显示出错页面、testpage.jsp这文件的用处将在后面介绍。</p> <p>切换到eclipse界面，在我们的Tezz项目的WebRoot文件夹处右击鼠标，在弹出的菜单中选择Paste(粘贴)即可<br /> </p> <p><img src="http://blog.csdn.net/evangel_z/article/details/29585571" alt="" /><img src="http://img.blog.csdn.net/20140616215226562" alt="" /><br /> </p> <p>粘贴完成后的项目结构如下<br /> </p> <p><img src="http://blog.csdn.net/evangel_z/article/details/29585571" alt="" /><img src="http://img.blog.csdn.net/20140616215239265" alt="" /><br /> </p> <p>注意：因为我们还未将所有资料复制到项目中，因此eclipse会显示错误图标<br /> </p> <p>最后进入WEB-INF文件夹(在上面步骤中解压的项目文件mondrian.war里)，选中jpivot、lib、wcf这三个文件夹，同样需要复制它们到测试项目的WEB-INF文件夹中。<br /> </p> <p><img src="http://blog.csdn.net/evangel_z/article/details/29585571" alt="" /><img src="http://img.blog.csdn.net/20140616215253171" alt="" /><br /> </p> <p>Jpivot、wcf这两个文件夹包含jpivot和wcf用于生成用户界面的配置文件(*.xml、*.xsl)及标签文件(*.tld)的定义。Lib文件夹包含的是mondrian所要用的java包。<br /> </p> <p>切换到eclipse界面，在我们的Tezz项目的WebRoot文件夹处右击鼠标，在弹出的菜单中选择Paste(粘贴)<br /> </p> <p><img src="http://blog.csdn.net/evangel_z/article/details/29585571" alt="" /><img src="http://img.blog.csdn.net/20140616215313156" alt="" /><br /> </p> <p>至此Mondrian的支持添加完毕，下面我们将配置web.xml，让我们的项目能够使用到mondrian的功能。<br /> </p> <h2><a name="t13"></a>2.5 配置web.xml</h2> <p>用eclipse打开我们在上面解压的布署项目的WEB-INF/web.xml文件<br /> </p> <p><img src="http://blog.csdn.net/evangel_z/article/details/29585571" alt="" /><img src="http://img.blog.csdn.net/20140616215338250" alt="" /><br /> </p> <p>过滤器(filter)</p> <p>复制如下所示的xml代码到我们测试项目Tezz的web.xml文件中。</p> <p>作用：这个过滤器在访问/testpage.jsp前被调用。它被设计成jpivot的前端控制器，用于判断并将用户的请求发送到某个页面。</p> <p>注：在实际项目中可以使用您自己定义的servlet或使用其他技术来替代它以提供更多的功能<br /> </p>  <div bg_html"=""><div><div><strong>[html]</strong> <a href="http://blog.csdn.net/evangel_z/article/details/29585571#" title="view plain">view plain</a><span data-mod="popu_168"> <a target="_blank" href="http://blog.csdn.net/evangel_z/article/details/29585571#" title="copy">copy</a></span> <span data-mod="popu_167"><a href="https://code.csdn.net/snippets/396796" target="_blank" title="在CODE上查看代码片" style="text-indent:0;"><img src="https://code.csdn.net/assets/CODE_ico.png" alt="在CODE上查看代码片" style="position:relative;top:1px;left:2px;" height="12" width="12" /></a></span><span data-mod="popu_170"><a href="https://code.csdn.net/snippets/396796/fork" target="_blank" title="派生到我的代码片" style="text-indent:0;"><img src="https://code.csdn.net/assets/ico_fork.svg" alt="派生到我的代码片" style="position:relative;top:2px;left:2px;" height="12" width="12" /></a></span></div></div><ol start="1"><li>&nbsp;<span>&lt;filter&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;filter-name&gt;JPivotController&lt;/filter-name&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;filter-class&gt;com.tonbeller.wcf.controller.RequestFilter&lt;/filter-class&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;init-param&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;param-name&gt;indexJSP&lt;/param-name&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;param-value&gt;/index.html&lt;/param-value&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;description&gt;如果这是一个新的会话，则转到此页面&lt;/description&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;/init-param&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;init-param&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;param-name&gt;errorJSP&lt;/param-name&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;param-value&gt;/error.jsp&lt;/param-value&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;description&gt;出错时显示的页面&lt;/description&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;/init-param&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;init-param&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;param-name&gt;busyJSP&lt;/param-name&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;param-value&gt;/busy.jsp&lt;/param-value&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;description&gt;这个页面用于当用户点击一个查询时，在这个查询还未将结果还回给用户时所显示的界面&lt;/description&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;/init-param&gt;&nbsp;&nbsp;</span></li><li><span>&lt;/filter&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;<span>&lt;filter-mapping&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;filter-name&gt;JPivotController&lt;/filter-name&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;url-pattern&gt;/testpage.jsp&lt;/url-pattern&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;<span>&lt;/filter-mapping&gt;&nbsp;&nbsp;</span></li></ol></div>复制下面的listener到我们的web.xml文件中(用于初始化一些资源)   <div bg_html"=""><div><div><strong>[html]</strong> <a href="http://blog.csdn.net/evangel_z/article/details/29585571#" title="view plain">view plain</a><span data-mod="popu_168"> <a target="_blank" href="http://blog.csdn.net/evangel_z/article/details/29585571#" title="copy">copy</a></span> <span data-mod="popu_167"><a href="https://code.csdn.net/snippets/396796" target="_blank" title="在CODE上查看代码片" style="text-indent:0;"><img src="https://code.csdn.net/assets/CODE_ico.png" alt="在CODE上查看代码片" style="position:relative;top:1px;left:2px;" height="12" width="12" /></a></span><span data-mod="popu_170"><a href="https://code.csdn.net/snippets/396796/fork" target="_blank" title="派生到我的代码片" style="text-indent:0;"><img src="https://code.csdn.net/assets/ico_fork.svg" alt="派生到我的代码片" style="position:relative;top:2px;left:2px;" height="12" width="12" /></a></span></div></div><ol start="1"><li><span>&lt;listener&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;listener-class&gt;mondrian.web.taglib.Listener&lt;/listener-class&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;<span>&lt;/listener&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&lt;!&#8211;&nbsp;资源初始化--<span>&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;<span>&lt;listener&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;listener-class&gt;com.tonbeller.tbutils.res.ResourcesFactoryContextListener&lt;/listener-class&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;<span>&lt;/listener&gt;&nbsp;&nbsp;</span></li></ol></div>Print &nbsp;servlet,该servlet用于将数据生成Excel文件或pdf文件并返回给用户，如果您需要用到该功能，则需要将其copy到您项目的web.xml文件中   <div bg_html"=""><div><div><strong>[html]</strong> <a href="http://blog.csdn.net/evangel_z/article/details/29585571#" title="view plain">view plain</a><span data-mod="popu_168"> <a target="_blank" href="http://blog.csdn.net/evangel_z/article/details/29585571#" title="copy">copy</a></span> <span data-mod="popu_167"><a href="https://code.csdn.net/snippets/396796" target="_blank" title="在CODE上查看代码片" style="text-indent:0;"><img src="https://code.csdn.net/assets/CODE_ico.png" alt="在CODE上查看代码片" style="position:relative;top:1px;left:2px;" height="12" width="12" /></a></span><span data-mod="popu_170"><a href="https://code.csdn.net/snippets/396796/fork" target="_blank" title="派生到我的代码片" style="text-indent:0;"><img src="https://code.csdn.net/assets/ico_fork.svg" alt="派生到我的代码片" style="position:relative;top:2px;left:2px;" height="12" width="12" /></a></span></div></div><ol start="1"><li><span>&lt;servlet&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;servlet-name&gt;Print&lt;/servlet-name&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;display-name&gt;Print&lt;/display-name&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;description&gt;Default&nbsp;configuration&nbsp;created&nbsp;for&nbsp;servlet.&lt;/description&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;servlet-class&gt;com.tonbeller.jpivot.print.PrintServlet&lt;/servlet-class&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;<span>&lt;/servlet&gt;&nbsp;&nbsp;</span></li><li>&nbsp;<span>&lt;servlet-mapping&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;servlet-name&gt;Print&lt;/servlet-name&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;url-pattern&gt;/Print&lt;/url-pattern&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;<span>&lt;/servlet-mapping&gt;&nbsp;&nbsp;</span></li></ol></div>MDXQueryServlet用于接受并执行一个MDX查询，然后将该查询以Html表格的形式返回。其中的参数connectString用于指定连接到数据库的字符串，例如使用jtds驱动连接到sql server 2000的字符串如下：  <p>Provider=mondrian;Jdbc=jdbc:jtds:sqlserver://localhost/Tezz;user=sa;password=123456;Catalog=/WEB-INF/queries/tezz.xml;JdbcDrivers=net.sourceforge.jtds.jdbc.Driver;&nbsp;</p> <p>如果您需要用到该功能，则需要将其copy到您项目的web.xml文件中。</p>  <div bg_html"=""><div><div><strong>[html]</strong> <a href="http://blog.csdn.net/evangel_z/article/details/29585571#" title="view plain">view plain</a><span data-mod="popu_168"> <a target="_blank" href="http://blog.csdn.net/evangel_z/article/details/29585571#" title="copy">copy</a></span> <span data-mod="popu_167"><a href="https://code.csdn.net/snippets/396796" target="_blank" title="在CODE上查看代码片" style="text-indent:0;"><img src="https://code.csdn.net/assets/CODE_ico.png" alt="在CODE上查看代码片" style="position:relative;top:1px;left:2px;" height="12" width="12" /></a></span><span data-mod="popu_170"><a href="https://code.csdn.net/snippets/396796/fork" target="_blank" title="派生到我的代码片" style="text-indent:0;"><img src="https://code.csdn.net/assets/ico_fork.svg" alt="派生到我的代码片" style="position:relative;top:2px;left:2px;" height="12" width="12" /></a></span></div></div><ol start="1"><li><span>&lt;servlet&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;servlet-name&gt;MDXQueryServlet&lt;/servlet-name&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;servlet-class&gt;mondrian.web.servlet.MDXQueryServlet&lt;/servlet-class&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;init-param&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;param-name&gt;connectString&lt;/param-name&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;param-value&gt;@mondrian.webapp.connectString@&lt;/param-value&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;/init-param&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;<span>&lt;/servlet&gt;&nbsp;&nbsp;</span></li><li>&nbsp;<span>&lt;servlet-mapping&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;servlet-name&gt;MDXQueryServlet&lt;/servlet-name&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;url-pattern&gt;/mdxquery&lt;/url-pattern&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;<span>&lt;/servlet-mapping&gt;&nbsp;&nbsp;</span></li></ol></div>DisplayChart 和GetChart 这两个Servlet 用于生成图表和将其显示给最终用户，如果您需要用到该功能，则需要将其copy到您项目的web.xml文件中。   <div bg_html"=""><div><div><strong>[html]</strong> <a href="http://blog.csdn.net/evangel_z/article/details/29585571#" title="view plain">view plain</a><span data-mod="popu_168"> <a target="_blank" href="http://blog.csdn.net/evangel_z/article/details/29585571#" title="copy">copy</a></span> <span data-mod="popu_167"><a href="https://code.csdn.net/snippets/396796" target="_blank" title="在CODE上查看代码片" style="text-indent:0;"><img src="https://code.csdn.net/assets/CODE_ico.png" alt="在CODE上查看代码片" style="position:relative;top:1px;left:2px;" height="12" width="12" /></a></span><span data-mod="popu_170"><a href="https://code.csdn.net/snippets/396796/fork" target="_blank" title="派生到我的代码片" style="text-indent:0;"><img src="https://code.csdn.net/assets/ico_fork.svg" alt="派生到我的代码片" style="position:relative;top:2px;left:2px;" height="12" width="12" /></a></span></div></div><ol start="1"><li><span>&lt;!--&nbsp;jfreechart&nbsp;provided&nbsp;servlet&nbsp;--&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;<span>&lt;servlet&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;servlet-name&gt;DisplayChart&lt;/servlet-name&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;servlet-class&gt;org.jfree.chart.servlet.DisplayChart&lt;/servlet-class&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;<span>&lt;/servlet&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;<span>&lt;!--&nbsp;jfreechart&nbsp;provided&nbsp;servlet&nbsp;--&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;<span>&lt;servlet&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;servlet-name&gt;GetChart&lt;/servlet-name&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;display-name&gt;GetChart&lt;/display-name&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;description&gt;Default&nbsp;configuration&nbsp;created&nbsp;for&nbsp;servlet.&lt;/description&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;servlet-class&gt;com.tonbeller.jpivot.chart.GetChart&lt;/servlet-class&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;<span>&lt;/servlet&gt;&nbsp;&nbsp;</span></li><li><span>&lt;servlet-mapping&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;servlet-name&gt;DisplayChart&lt;/servlet-name&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;url-pattern&gt;/DisplayChart&lt;/url-pattern&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;<span>&lt;/servlet-mapping&gt;&nbsp;&nbsp;</span></li><li><span>&lt;servlet-mapping&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;servlet-name&gt;GetChart&lt;/servlet-name&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;url-pattern&gt;/GetChart&lt;/url-pattern&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;<span>&lt;/servlet-mapping&gt;&nbsp;&nbsp;</span></li></ol></div>它们用于向用户生成和显示如下所示的各种图表：  <p><img src="http://blog.csdn.net/evangel_z/article/details/29585571" alt="" /><img src="http://img.blog.csdn.net/20140616215358468" alt="" /></p> <p>最后添加以下标签库到我们的web.xml项目中即可</p>  <div bg_html"=""><div><div><strong>[html]</strong> <a href="http://blog.csdn.net/evangel_z/article/details/29585571#" title="view plain">view plain</a><span data-mod="popu_168"> <a target="_blank" href="http://blog.csdn.net/evangel_z/article/details/29585571#" title="copy">copy</a></span> <span data-mod="popu_167"><a href="https://code.csdn.net/snippets/396796" target="_blank" title="在CODE上查看代码片" style="text-indent:0;"><img src="https://code.csdn.net/assets/CODE_ico.png" alt="在CODE上查看代码片" style="position:relative;top:1px;left:2px;" height="12" width="12" /></a></span><span data-mod="popu_170"><a href="https://code.csdn.net/snippets/396796/fork" target="_blank" title="派生到我的代码片" style="text-indent:0;"><img src="https://code.csdn.net/assets/ico_fork.svg" alt="派生到我的代码片" style="position:relative;top:2px;left:2px;" height="12" width="12" /></a></span></div></div><ol start="1"><li><span>&lt;taglib&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;<span>&lt;taglib-uri&gt;http://www.tonbeller.com/wcf&lt;/taglib-uri&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;<span>&lt;taglib-location&gt;/WEB-INF/wcf/wcf-tags.tld&lt;/taglib-location&gt;&nbsp;&nbsp;</span></li><li>&nbsp;<span>&lt;/taglib&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;</li><li>&nbsp;<span>&lt;taglib&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;<span>&lt;taglib-uri&gt;http://www.tonbeller.com/jpivot&lt;/taglib-uri&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;<span>&lt;taglib-location&gt;/WEB-INF/jpivot/jpivot-tags.tld&lt;/taglib-location&gt;&nbsp;&nbsp;</span></li><li>&nbsp;<span>&lt;/taglib&gt;&nbsp;&nbsp;</span></li></ol></div>到这里，您应该对mondrian在web.xml的配置有一定的了解，并可按需要添加相应的功能。  <p>接下来我们将要创建本例子所要用到的表格及数据。</p> <h2><a name="t14"></a>2.6 准备测试用表</h2> <p>本例使用的表结构如下所示：<br /> </p> <p><img src="http://blog.csdn.net/evangel_z/article/details/29585571" alt="" /><img src="http://img.blog.csdn.net/20140616215519609" alt="" /><br /> </p> <p>Sale是事实表，它有两个维：客户(customer)维和由两个表组成的产品(Product)维。</p> <p>表格的创建很简单，您只需要将下面的sql语句导入数据库即可</p> <h3><a name="t15"></a>2.6.1 使用以下sql语句创建表</h3> <div bg_sql"=""><div><div><strong>[sql]</strong> <a href="http://blog.csdn.net/evangel_z/article/details/29585571#" title="view plain">view plain</a><span data-mod="popu_168"> <a target="_blank" href="http://blog.csdn.net/evangel_z/article/details/29585571#" title="copy">copy</a></span> <span data-mod="popu_167"><a href="https://code.csdn.net/snippets/396796" target="_blank" title="在CODE上查看代码片" style="text-indent:0;"><img src="https://code.csdn.net/assets/CODE_ico.png" alt="在CODE上查看代码片" style="position:relative;top:1px;left:2px;" height="12" width="12" /></a></span><span data-mod="popu_170"><a href="https://code.csdn.net/snippets/396796/fork" target="_blank" title="派生到我的代码片" style="text-indent:0;"><img src="https://code.csdn.net/assets/ico_fork.svg" alt="派生到我的代码片" style="position:relative;top:2px;left:2px;" height="12" width="12" /></a></span></div></div><ol start="1"><li><span>/**销售表*/&nbsp;&nbsp;</span></li><li><span>create&nbsp;table&nbsp;Sale&nbsp;(&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;saleId&nbsp;<span>int&nbsp;not&nbsp;null,&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;proId&nbsp;<span>int&nbsp;null,&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;cusId&nbsp;<span>int&nbsp;null,&nbsp;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;unitPrice&nbsp;<span>float&nbsp;null,&nbsp;&nbsp;&nbsp;&nbsp;--单价&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;number&nbsp;<span>int&nbsp;null,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--数量&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>constraint&nbsp;PK_SALE&nbsp;primary&nbsp;key&nbsp;(saleId)&nbsp;&nbsp;</span></li><li>)&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;/**用户表*/&nbsp;&nbsp;</li><li><span>create&nbsp;table&nbsp;Customer&nbsp;(&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;cusId&nbsp;<span>int&nbsp;not&nbsp;null,&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;gender&nbsp;<span>char(1)&nbsp;null,&nbsp;&nbsp;&nbsp;&nbsp;--性别&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>constraint&nbsp;PK_CUSTOMER&nbsp;primary&nbsp;key&nbsp;(cusId)&nbsp;&nbsp;</span></li><li>)&nbsp;&nbsp;</li><li>/**产品表*/&nbsp;&nbsp;</li><li><span>create&nbsp;table&nbsp;Product&nbsp;(&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;proId&nbsp;<span>int&nbsp;not&nbsp;null,&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;proTypeId&nbsp;<span>int&nbsp;null,&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;proName&nbsp;<span>varchar(32)&nbsp;null,&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>constraint&nbsp;PK_PRODUCT&nbsp;primary&nbsp;key&nbsp;(proId)&nbsp;&nbsp;</span></li><li>)&nbsp;&nbsp;</li><li>/**产品类别表*/&nbsp;&nbsp;</li><li><span>create&nbsp;table&nbsp;ProductType&nbsp;(&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;proTypeId&nbsp;<span>int&nbsp;not&nbsp;null,&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;proTypeName&nbsp;<span>varchar(32)&nbsp;null,&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>constraint&nbsp;PK_PRODUCTTYPE&nbsp;primary&nbsp;key&nbsp;(proTypeId)&nbsp;&nbsp;</span></li><li>)&nbsp;&nbsp;</li></ol></div> <h3><a name="t16"></a>2.6.2 使用以下sql语句导入数据</h3>   <div bg_sql"=""><div><div><strong>[sql]</strong> <a href="http://blog.csdn.net/evangel_z/article/details/29585571#" title="view plain">view plain</a><span data-mod="popu_168"> <a target="_blank" href="http://blog.csdn.net/evangel_z/article/details/29585571#" title="copy">copy</a></span> <span data-mod="popu_167"><a href="https://code.csdn.net/snippets/396796" target="_blank" title="在CODE上查看代码片" style="text-indent:0;"><img src="https://code.csdn.net/assets/CODE_ico.png" alt="在CODE上查看代码片" style="position:relative;top:1px;left:2px;" height="12" width="12" /></a></span><span data-mod="popu_170"><a href="https://code.csdn.net/snippets/396796/fork" target="_blank" title="派生到我的代码片" style="text-indent:0;"><img src="https://code.csdn.net/assets/ico_fork.svg" alt="派生到我的代码片" style="position:relative;top:2px;left:2px;" height="12" width="12" /></a></span></div></div><ol start="1"><li><span>insert&nbsp;into&nbsp;Customer(cusId,gender)&nbsp;values(1,'F')&nbsp;&nbsp;</span></li><li><span>insert&nbsp;into&nbsp;Customer(cusId,gender)&nbsp;values(2,'M')&nbsp;&nbsp;</span></li><li><span>insert&nbsp;into&nbsp;Customer(cusId,gender)&nbsp;values(3,'M')&nbsp;&nbsp;</span></li><li><span>insert&nbsp;into&nbsp;Customer(cusId,gender)&nbsp;values(4,'F')&nbsp;&nbsp;</span></li><li><span>insert&nbsp;into&nbsp;producttype(proTypeId,proTypeName)&nbsp;values(1,'电器')&nbsp;&nbsp;</span></li><li><span>insert&nbsp;into&nbsp;producttype(proTypeId,proTypeName)&nbsp;values(2,'数码')&nbsp;&nbsp;</span></li><li><span>insert&nbsp;into&nbsp;producttype(proTypeId,proTypeName)&nbsp;values(3,'家具')&nbsp;&nbsp;</span></li><li><span>insert&nbsp;into&nbsp;product(proId,proTypeId,proName)&nbsp;values(1,1,'洗衣机')&nbsp;&nbsp;</span></li><li><span>insert&nbsp;into&nbsp;product(proId,proTypeId,proName)&nbsp;values(2,1,'电视机')&nbsp;&nbsp;</span></li><li><span>insert&nbsp;into&nbsp;product(proId,proTypeId,proName)&nbsp;values(3,2,'mp3')&nbsp;&nbsp;</span></li><li><span>insert&nbsp;into&nbsp;product(proId,proTypeId,proName)&nbsp;values(4,2,'mp4')&nbsp;&nbsp;</span></li><li><span>insert&nbsp;into&nbsp;product(proId,proTypeId,proName)&nbsp;values(5,2,'数码相机')&nbsp;&nbsp;</span></li><li><span>insert&nbsp;into&nbsp;product(proId,proTypeId,proName)&nbsp;values(6,3,'椅子')&nbsp;&nbsp;</span></li><li><span>insert&nbsp;into&nbsp;product(proId,proTypeId,proName)&nbsp;values(7,3,'桌子')&nbsp;&nbsp;</span></li><li><span>insert&nbsp;into&nbsp;sale(saleId,proId,cusId,unitPrice,number)&nbsp;values(1,1,1,340.34,2)&nbsp;&nbsp;</span></li><li><span>insert&nbsp;into&nbsp;sale(saleId,proId,cusId,unitPrice,number)&nbsp;values(2,1,2,140.34,1)&nbsp;&nbsp;</span></li><li><span>insert&nbsp;into&nbsp;sale(saleId,proId,cusId,unitPrice,number)&nbsp;values(3,2,3,240.34,3)&nbsp;&nbsp;</span></li><li><span>insert&nbsp;into&nbsp;sale(saleId,proId,cusId,unitPrice,number)&nbsp;values(4,3,4,540.34,4)&nbsp;&nbsp;</span></li><li><span>insert&nbsp;into&nbsp;sale(saleId,proId,cusId,unitPrice,number)&nbsp;values(5,4,1,80.34,5)&nbsp;&nbsp;</span></li><li><span>insert&nbsp;into&nbsp;sale(saleId,proId,cusId,unitPrice,number)&nbsp;values(6,5,2,90.34,26)&nbsp;&nbsp;</span></li><li><span>insert&nbsp;into&nbsp;sale(saleId,proId,cusId,unitPrice,number)&nbsp;values(7,6,3,140.34,7)&nbsp;&nbsp;</span></li><li><span>insert&nbsp;into&nbsp;sale(saleId,proId,cusId,unitPrice,number)&nbsp;values(8,7,4,640.34,28)&nbsp;&nbsp;</span></li><li><span>insert&nbsp;into&nbsp;sale(saleId,proId,cusId,unitPrice,number)&nbsp;values(9,6,1,140.34,29)&nbsp;&nbsp;</span></li><li><span>insert&nbsp;into&nbsp;sale(saleId,proId,cusId,unitPrice,number)&nbsp;values(10,7,2,740.34,29)&nbsp;&nbsp;</span></li><li><span>insert&nbsp;into&nbsp;sale(saleId,proId,cusId,unitPrice,number)&nbsp;values(11,5,3,30.34,28)&nbsp;&nbsp;</span></li><li><span>insert&nbsp;into&nbsp;sale(saleId,proId,cusId,unitPrice,number)&nbsp;values(12,4,4,1240.34,72)&nbsp;&nbsp;</span></li><li><span>insert&nbsp;into&nbsp;sale(saleId,proId,cusId,unitPrice,number)&nbsp;values(13,3,1,314.34,27)&nbsp;&nbsp;</span></li><li><span>insert&nbsp;into&nbsp;sale(saleId,proId,cusId,unitPrice,number)&nbsp;values(14,3,2,45.34,27)&nbsp;&nbsp;</span></li></ol></div> <h2><a name="t17"></a>2.7 建立模式(schema)文件</h2>  <p>一个模式定义了一个多维数据库. 它包含一个逻辑模型(logical model)、一组数据立方(consisting of cubes)、层次(hierarchies)、和成员(members), 并映射到物理模型(关系数据库)上。</p> <p>简单的说，配置一个模式就是配置一个关系数据结构到多维数据结构的映射。</p> <p>注：关于mondrian的模式及模式的配置，您可以通过阅读mondrian的基本模式.pptx来了解。这里我们只对其进行了简单介绍。</p> <h3><a name="t18"></a>2.7.1 创建模式文件：</h3> <p>模式文件的创建很简单。首先在WEB-INF下新建一个queries的文件夹，然后在该文件夹下创建一个名为tezz.xml的文件。再按下面的步骤将xml元素添加入即可。</p> <p><img src="http://img.blog.csdn.net/20140616215533359" alt="" /><br /> </p> <h3><a name="t19"></a>2.7.2 配置模式文件：</h3> <h4><a name="t20"></a>2.7.2.1 添加数据立方Sales:</h4> <p><img src="http://img.blog.csdn.net/20140616220152171" alt="" /><br /> </p> <h4><a name="t21"></a>2.7.2.2 添加数据立方Sales的维:</h4> <p><img src="http://img.blog.csdn.net/20140616220238656" alt="" /><br /> </p> <p>添加产品维(因为产品维由两个表连接而成，因此比客户维复杂些)：<br /> </p> <p><img src="http://img.blog.csdn.net/20140616220257062" alt="" /><br /> </p> <p>添加度量(共有三个度量:数量、平均单价和总销售额)：<br /> </p> <p><img src="http://img.blog.csdn.net/20140616220336562" alt="" /><br /> </p> <p>最后生成的tezz.xml文件内容如下：<br /> </p>  <div bg_html"=""><div><div><strong>[html]</strong> <a href="http://blog.csdn.net/evangel_z/article/details/29585571#" title="view plain">view plain</a><span data-mod="popu_168"> <a target="_blank" href="http://blog.csdn.net/evangel_z/article/details/29585571#" title="copy">copy</a></span> <span data-mod="popu_167"><a href="https://code.csdn.net/snippets/396796" target="_blank" title="在CODE上查看代码片" style="text-indent:0;"><img src="https://code.csdn.net/assets/CODE_ico.png" alt="在CODE上查看代码片" style="position:relative;top:1px;left:2px;" height="12" width="12" /></a></span><span data-mod="popu_170"><a href="https://code.csdn.net/snippets/396796/fork" target="_blank" title="派生到我的代码片" style="text-indent:0;"><img src="https://code.csdn.net/assets/ico_fork.svg" alt="派生到我的代码片" style="position:relative;top:2px;left:2px;" height="12" width="12" /></a></span></div></div><ol start="1"><li><span>&lt;?xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"?&gt;&nbsp;&nbsp;</span></li><li><span>&lt;Schema&nbsp;name="tezz"&gt;&nbsp;&nbsp;</span></li><li><span>&lt;Cube&nbsp;name="Sales"&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;!--&nbsp;事实表(fact&nbsp;table)&nbsp;--&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;Table&nbsp;name="sale"&nbsp;/&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;!--&nbsp;客户维&nbsp;--&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;Dimension&nbsp;name="客户性别"&nbsp;foreignKey="cusId"&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;Hierarchy&nbsp;hasAll="true"&nbsp;allMemberName="所有性别"&nbsp;primaryKey="cusId"&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;Table&nbsp;name="Customer"&gt;&lt;/Table&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;Level&nbsp;name="gender"&nbsp;column="gender"&gt;&lt;/Level&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;/Hierarchy&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;/Dimension&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;!--&nbsp;产品类别维&nbsp;--&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;Dimension&nbsp;name="产品类别"&nbsp;foreignKey="proId"&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;Hierarchy&nbsp;hasAll="true"&nbsp;allMemberName="所有产品"&nbsp;primaryKey="proId"&nbsp;primaryKeyTable="product"&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;join&nbsp;leftKey="proTypeId"&nbsp;rightKey="proTypeId"&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;Table&nbsp;name="product"&nbsp;/&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;Table&nbsp;name="producttype"&gt;&lt;/Table&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;/join&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;Level&nbsp;name="proTypeId"&nbsp;column="proTypeId"&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>nameColumn="proTypeName"&nbsp;uniqueMembers="true"&nbsp;table="producttype"&nbsp;/&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;Level&nbsp;name="proId"&nbsp;column="proId"&nbsp;nameColumn="proName"&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>uniqueMembers="true"&nbsp;table="product"&nbsp;/&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;/Hierarchy&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;/Dimension&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;Measure&nbsp;name="数量"&nbsp;column="number"&nbsp;aggregator="sum"&nbsp;datatype="Numeric"&nbsp;/&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;Measure&nbsp;name="总销售额"&nbsp;aggregator="sum"&nbsp;formatString="￥#,##0.00"&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;!--&nbsp;unitPrice*number所得值的列&nbsp;--&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;MeasureExpression&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;SQL&nbsp;dialect="generic"&gt;(unitPrice*number)&lt;/SQL&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;/MeasureExpression&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;/Measure&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;CalculatedMember&nbsp;name="平均单价"&nbsp;dimension="Measures"&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;Formula&gt;[Measures].[总销售额]&nbsp;/&nbsp;[Measures].[数量]&lt;/Formula&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;CalculatedMemberProperty&nbsp;name="FORMAT_STRING"&nbsp;value="￥#,##0.00"&nbsp;/&gt;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;/CalculatedMember&gt;&nbsp;&nbsp;</span></li><li><span>&lt;/Cube&gt;&nbsp;&nbsp;</span></li><li><span>&lt;/Schema&gt;&nbsp;&nbsp;</span></li></ol></div> <h2><a name="t22"></a>2.8 编写MDX查询语句</h2>  <p>在模式文件定义完成之后，我们就可以根据它来编写相应MDX查询语句了。</p> <p>本例所用的MDX语句如下：<br /> <img src="http://img.blog.csdn.net/20140616220445015" alt="" /><br /> </p> <h2><a name="t23"></a>2.9 创建查询文件</h2> <p>现在我们将创建一个jsp文件，该jsp使用jpivot的mondrianQuery标签来完成查询。</p> <p>该文件最后将被testpage.jsp使用。</p> <p>在/WEB-INF/queries文件夹下面创建一名为tezz的jsp文件。该jsp包含如下内容：<br /> </p> <p><img src="http://img.blog.csdn.net/20140616220527046" alt="" /><br /> </p> <h2><a name="t24"></a>2.10 布署项目</h2> <p>至此我们已经全部配置完成，文件结构如下：<br /> </p> <p><img src="http://img.blog.csdn.net/20140616220551640" alt="" /><br /> </p> <p>布署项目，启动Tomcat，在浏览器上输入http://localhost:8080/Tezz/testpage.jsp?query=tezz即可看到如下结果:<br /> </p> <p><img src="http://img.blog.csdn.net/20140616220620375" alt="" /><br /> </p> <p>注:testpage.jsp?query=tezz，这里的tezz即刚我们创建的用于查询jsp文件名称<br /> </p> <p><br /> </p> <h1><a name="t25"></a>3. &nbsp;testpage.jsp的流程</h1> <p>testpage.jsp文件用于发出查询及将结果转换成html格式。它使用一组jsp标签来完成这些复杂的工作。</p> <p>在本教程的最后一章里，我们对testpage.jsp的流程及用到的主要标签进行简单介绍。</p> <h2><a name="t26"></a>3.1 wcf:include标签：</h2> <p><img src="http://img.blog.csdn.net/20140616221516578" alt="" /><br /> </p> <h2><a name="t27"></a>3.2 jp:table标签：</h2> <p>&lt;jp:table id="table01" query="#{query01}"/&gt;<br /> </p> <p>jp:table根据query01中保存的结果（领域数据）准备显示OLAP表格所需的数据（显示数据）<br /> </p> <p>&lt;wcf:render ref="table01" xslUri="/WEB-INF/jpivot/table/mdxtable.xsl"/&gt;<br /> </p> <p>根据table01的结果，使用mdxtable.xsl中的配置，渲染出OLAP表格。<br /> </p> <h2><a name="t28"></a>3.3 其他jp、wcf标签</h2> <p>同样，其他jp标签，如&lt;jp:chart id=&#8220;chart01&#8220; ---/&gt;等标签准备待渲染的数据，再由相应的&lt;wcf:render ref=&#8220;chart01&#8221; ---/&gt;标签将它们渲染成html格式。</p> <p>这样，用户将在浏览器上看到最终的结果。</p> <p>至此，一个完整的mondrian查询结束。</p></div><br /></p></div><img src ="http://www.blogjava.net/gdufo/aggbug/429302.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdufo/" target="_blank">gdufo</a> 2016-02-06 18:18 <a href="http://www.blogjava.net/gdufo/archive/2016/02/06/429302.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java调用MQ队列 </title><link>http://www.blogjava.net/gdufo/archive/2015/08/26/426990.html</link><dc:creator>gdufo</dc:creator><author>gdufo</author><pubDate>Wed, 26 Aug 2015 04:07:00 GMT</pubDate><guid>http://www.blogjava.net/gdufo/archive/2015/08/26/426990.html</guid><description><![CDATA[<div>http://blog.csdn.net/ozwarld/article/details/7735915</div><br /><div><p>IBM MQ 6.0中设置两个队列，（远程队列、通道之类都不设置）。</p> <p>队列管理器是XIR_QM_1502</p> <p>队列名称是ESBREQ</p> <p>IP地址是10.23.117.134（远程的一台电脑，跟我的电脑不在一个局域网内）</p> <p>端口1414</p> <p>CCSID 1208</p> <p><br /> </p> <p>MQ配置可以参考这个，有配图<a href="http://wenku.baidu.com/view/06d108d0360cba1aa811daa3.html">http://wenku.baidu.com/view/06d108d0360cba1aa811daa3.html</a></p> <p>程序如下，发送线程两个，接收线程一个。接收完毕后就结束。</p> <p><br /> </p>  <div bg_java"=""><div><div><strong>[java]</strong> <a href="http://blog.csdn.net/ozwarld/article/details/7735915#" title="view plain">view plain</a><a href="http://blog.csdn.net/ozwarld/article/details/7735915#"  hover"="" title="copy">copy</a></div></div><ol start="1"><li><span>/*&nbsp;</span></li><li><span>&nbsp;*&nbsp;创建日期&nbsp;2012-7-10&nbsp;</span></li><li><span>&nbsp;*&nbsp;</span></li><li><span>&nbsp;*&nbsp;TODO&nbsp;要更改此生成的文件的模板，请转至&nbsp;</span></li><li><span>&nbsp;*&nbsp;窗口&nbsp;－&nbsp;首选项&nbsp;－&nbsp;Java&nbsp;－&nbsp;代码样式&nbsp;－&nbsp;代码模板&nbsp;</span></li><li><span>&nbsp;*/&nbsp;&nbsp;</span></li><li><span>package&nbsp;yerasel;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;</li><li><span>/**&nbsp;</span></li><li><span>&nbsp;*&nbsp;@author&nbsp;Fenglb&nbsp;E-mail:56553655@163.com&nbsp;</span></li><li><span>&nbsp;*&nbsp;@version&nbsp;创建时间：2009-4-30&nbsp;下午04:13:38&nbsp;类说明&nbsp;</span></li><li><span>&nbsp;*/&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;</li><li><span>import&nbsp;java.io.IOException;&nbsp;&nbsp;</span></li><li><span>import&nbsp;com.ibm.mq.MQC;&nbsp;&nbsp;</span></li><li><span>import&nbsp;com.ibm.mq.MQEnvironment;&nbsp;&nbsp;</span></li><li><span>import&nbsp;com.ibm.mq.MQException;&nbsp;&nbsp;</span></li><li><span>import&nbsp;com.ibm.mq.MQGetMessageOptions;&nbsp;&nbsp;</span></li><li><span>import&nbsp;com.ibm.mq.MQMessage;&nbsp;&nbsp;</span></li><li><span>import&nbsp;com.ibm.mq.MQPutMessageOptions;&nbsp;&nbsp;</span></li><li><span>import&nbsp;com.ibm.mq.MQQueue;&nbsp;&nbsp;</span></li><li><span>import&nbsp;com.ibm.mq.MQQueueManager;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;</li><li><span>interface&nbsp;SomeConstants&nbsp;{&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;qManager&nbsp;=&nbsp;<span>"XIR_QM_1502";//"XIR_QM";&nbsp;//QueueManager&nbsp;name&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;qName&nbsp;=&nbsp;<span>"ESBREQ";//&nbsp;Queue&nbsp;Name&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;strIP&nbsp;=&nbsp;<span>"10.23.117.134";//"10.24.28.139";//"10.24.28.102";&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>int&nbsp;iPort&nbsp;=&nbsp;1502;//1414;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;strChl&nbsp;=&nbsp;<span>"SYSTEM.DEF.SVRCONN";//&nbsp;Server-Connection&nbsp;Channel&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>int&nbsp;iCCSID&nbsp;=&nbsp;1208;&nbsp;&nbsp;</span></li><li>}&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li><span>class&nbsp;Sender&nbsp;implements&nbsp;Runnable,&nbsp;SomeConstants&nbsp;{&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>public&nbsp;void&nbsp;run()&nbsp;{&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sendMessage();&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>public&nbsp;void&nbsp;sendMessage()&nbsp;{&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;name&nbsp;=&nbsp;Thread.currentThread().getName();&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(<span>"进入线程"&nbsp;+&nbsp;name);&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MQQueueManager&nbsp;qMgr&nbsp;=&nbsp;<span>null;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>//&nbsp;configure&nbsp;connection&nbsp;parameters&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MQEnvironment.hostname&nbsp;=&nbsp;strIP;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>//&nbsp;Server&nbsp;name&nbsp;or&nbsp;IP&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MQEnvironment.port&nbsp;=&nbsp;iPort;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MQEnvironment.channel&nbsp;=&nbsp;strChl;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MQEnvironment.CCSID&nbsp;=&nbsp;iCCSID;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>//&nbsp;java程序连接mq的方式有两种，一是客户机方式，一是绑定方式，&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>//&nbsp;默认是客户机方式，当mq部署在本地的时候，就需要用绑定方式&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>//&nbsp;本机IP是10.24.28.139连接10.23.117.134的时候不需要下句&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>//MQEnvironment.properties.put(MQC.TRANSPORT_PROPERTY,&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>//MQC.TRANSPORT_MQSERIES_BINDINGS);&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>//&nbsp;Create&nbsp;a&nbsp;connection&nbsp;to&nbsp;the&nbsp;QueueManager&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(name&nbsp;+&nbsp;<span>"&nbsp;Connecting&nbsp;to&nbsp;queue&nbsp;manager:&nbsp;"&nbsp;+&nbsp;qManager);&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>try&nbsp;{&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qMgr&nbsp;=&nbsp;<span>new&nbsp;MQQueueManager(qManager);&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>//&nbsp;Set&nbsp;up&nbsp;the&nbsp;options&nbsp;on&nbsp;the&nbsp;queue&nbsp;we&nbsp;wish&nbsp;to&nbsp;open&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>int&nbsp;openOptions&nbsp;=&nbsp;MQC.MQMT_REQUEST&nbsp;|&nbsp;MQC.MQPMO_NEW_MSG_ID&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;MQC.MQOO_OUTPUT&nbsp;|&nbsp;MQC.MQOO_FAIL_IF_QUIESCING&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;MQC.MQOO_INPUT_AS_Q_DEF;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>//&nbsp;Now&nbsp;specify&nbsp;the&nbsp;queue&nbsp;that&nbsp;we&nbsp;wish&nbsp;to&nbsp;open&nbsp;and&nbsp;the&nbsp;open&nbsp;options&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(name&nbsp;+&nbsp;<span>"&nbsp;Accessing&nbsp;queue:&nbsp;"&nbsp;+&nbsp;qName);&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MQQueue&nbsp;queue&nbsp;=&nbsp;qMgr.accessQueue(qName,&nbsp;openOptions);&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>//&nbsp;Define&nbsp;a&nbsp;simple&nbsp;WebSphere&nbsp;MQ&nbsp;Message&nbsp;...&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>//&nbsp;Specify&nbsp;the&nbsp;default&nbsp;put&nbsp;message&nbsp;options&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MQPutMessageOptions&nbsp;pmo&nbsp;=&nbsp;<span>new&nbsp;MQPutMessageOptions();&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>//&nbsp;Put&nbsp;the&nbsp;message&nbsp;to&nbsp;the&nbsp;queue&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(name&nbsp;+&nbsp;<span>"&nbsp;Sending&nbsp;a&nbsp;message...");&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MQMessage&nbsp;msg&nbsp;=&nbsp;<span>new&nbsp;MQMessage();&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;msg.messageId&nbsp;=&nbsp;<span>"MSGID".getBytes();&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;msg.messageType&nbsp;=&nbsp;MQC.MQMT_REQUEST;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;msg.replyToQueueName&nbsp;=&nbsp;<span>"ESBREQ";&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>//&nbsp;在此测试一下&nbsp;mq&nbsp;的传输次列&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>for&nbsp;(int&nbsp;j&nbsp;=&nbsp;1;&nbsp;j&nbsp;&lt;&nbsp;5;&nbsp;j++)&nbsp;{&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;msg.messageSequenceNumber&nbsp;=&nbsp;j;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>//&nbsp;write&nbsp;some&nbsp;text&nbsp;in&nbsp;UTF8&nbsp;format&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>try&nbsp;{&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;str&nbsp;=&nbsp;<span>"Salemetsizbe&nbsp;Yerasel";&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str&nbsp;=&nbsp;str&nbsp;+&nbsp;<span>"&nbsp;"&nbsp;+&nbsp;j;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;msg.writeUTF(str);&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;queue.put(msg,&nbsp;pmo);&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;msg.clearMessage();&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(name&nbsp;+&nbsp;<span>"&nbsp;putting&nbsp;the&nbsp;message...&nbsp;"&nbsp;+&nbsp;j);&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<span>catch&nbsp;(MQException&nbsp;mqe)&nbsp;{&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mqe.printStackTrace();&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>break;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<span>catch&nbsp;(IOException&nbsp;e1)&nbsp;{&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e1.printStackTrace();&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qMgr.commit();&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(name&nbsp;+&nbsp;<span>"&nbsp;Done!");&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(<span>"==========");&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(<span>"");&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<span>catch&nbsp;(MQException&nbsp;e)&nbsp;{&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</li><li>}&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li><span>class&nbsp;Receiver&nbsp;implements&nbsp;Runnable,&nbsp;SomeConstants&nbsp;{&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>public&nbsp;void&nbsp;run()&nbsp;{&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;recvMessage();&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>public&nbsp;void&nbsp;recvMessage()&nbsp;{&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;name&nbsp;=&nbsp;Thread.currentThread().getName();&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>try&nbsp;{&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Thread.sleep(<span>1000);&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MQQueueManager&nbsp;qMgr&nbsp;=&nbsp;<span>null;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(<span>"进入线程"&nbsp;+&nbsp;name);&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(name&nbsp;+&nbsp;<span>"&nbsp;Connecting&nbsp;to&nbsp;queue&nbsp;manager:&nbsp;"&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;qManager);&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qMgr&nbsp;=&nbsp;<span>new&nbsp;MQQueueManager(qManager);&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>//&nbsp;设置将要连接的队列属性&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>//&nbsp;Note.&nbsp;The&nbsp;MQC&nbsp;interface&nbsp;defines&nbsp;all&nbsp;the&nbsp;constants&nbsp;used&nbsp;by&nbsp;the&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>//&nbsp;WebSphere&nbsp;MQ&nbsp;Java&nbsp;programming&nbsp;interface&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>//&nbsp;(except&nbsp;for&nbsp;completion&nbsp;code&nbsp;constants&nbsp;and&nbsp;error&nbsp;code&nbsp;constants).&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>//&nbsp;MQOO_INPUT_AS_Q_DEF:Open&nbsp;the&nbsp;queue&nbsp;to&nbsp;get&nbsp;messages&nbsp;using&nbsp;the&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>//&nbsp;queue-defined&nbsp;default.&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>//&nbsp;MQOO_OUTPUT:Open&nbsp;the&nbsp;queue&nbsp;to&nbsp;put&nbsp;messages.&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>int&nbsp;openOptions&nbsp;=&nbsp;MQC.MQOO_INPUT_AS_Q_DEF&nbsp;|&nbsp;MQC.MQOO_OUTPUT&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;MQC.MQOO_INQUIRE;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>//&nbsp;Now&nbsp;get&nbsp;the&nbsp;message&nbsp;back&nbsp;again.&nbsp;First&nbsp;define&nbsp;a&nbsp;WebSphere&nbsp;MQ&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>//&nbsp;message&nbsp;to&nbsp;receive&nbsp;the&nbsp;data&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MQMessage&nbsp;rcvMessage&nbsp;=&nbsp;<span>new&nbsp;MQMessage();&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>//&nbsp;Specify&nbsp;default&nbsp;get&nbsp;message&nbsp;options&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MQGetMessageOptions&nbsp;gmo&nbsp;=&nbsp;<span>new&nbsp;MQGetMessageOptions();&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gmo.options&nbsp;=&nbsp;gmo.options&nbsp;+&nbsp;MQC.MQGMO_SYNCPOINT;<span>//&nbsp;Get&nbsp;messages&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>//&nbsp;under&nbsp;sync&nbsp;point&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>//&nbsp;control（在同步点控制下获取消息）&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gmo.options&nbsp;=&nbsp;gmo.options&nbsp;+&nbsp;MQC.MQGMO_WAIT;&nbsp;<span>//&nbsp;Wait&nbsp;if&nbsp;no&nbsp;messages&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>//&nbsp;on&nbsp;the&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>//&nbsp;Queue（如果在队列上没有消息则等待）&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gmo.options&nbsp;=&nbsp;gmo.options&nbsp;+&nbsp;MQC.MQGMO_FAIL_IF_QUIESCING;<span>//&nbsp;Fail&nbsp;if&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>//&nbsp;Qeue&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>//&nbsp;Manager&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>//&nbsp;Quiescing（如果队列管理器停顿则失败）&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gmo.waitInterval&nbsp;=&nbsp;<span>1000;&nbsp;//&nbsp;Sets&nbsp;the&nbsp;time&nbsp;limit&nbsp;for&nbsp;the&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>//&nbsp;wait.（设置等待的毫秒时间限制）&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(name&nbsp;+&nbsp;<span>"&nbsp;Accessing&nbsp;queue:&nbsp;"&nbsp;+&nbsp;qName);&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MQQueue&nbsp;queue&nbsp;=&nbsp;qMgr.accessQueue(qName,&nbsp;openOptions);&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>int&nbsp;depth&nbsp;=&nbsp;0;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>//&nbsp;Get&nbsp;the&nbsp;message&nbsp;off&nbsp;the&nbsp;queue.&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(<span>"...&nbsp;"&nbsp;+&nbsp;name&nbsp;+&nbsp;"&nbsp;getting&nbsp;the&nbsp;message&nbsp;back&nbsp;again");&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>for&nbsp;(;;)&nbsp;{&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>try&nbsp;{&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;queue.get(rcvMessage,&nbsp;gmo);&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(<span>"&nbsp;ID:&nbsp;"&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;(<span>new&nbsp;String(rcvMessage.messageId)).trim()&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;<span>"&nbsp;Num:&nbsp;"&nbsp;+&nbsp;rcvMessage.messageSequenceNumber&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;<span>"&nbsp;Type:&nbsp;"&nbsp;+&nbsp;rcvMessage.messageType&nbsp;+&nbsp;"&nbsp;Flag:&nbsp;"&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;rcvMessage.messageFlags);&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>//&nbsp;And&nbsp;display&nbsp;the&nbsp;message&nbsp;text...&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;msgText&nbsp;=&nbsp;rcvMessage.readUTF();&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(<span>"The&nbsp;message&nbsp;is:&nbsp;"&nbsp;+&nbsp;msgText);&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rcvMessage.clearMessage();&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>//&nbsp;Break&nbsp;if&nbsp;no&nbsp;MSG&nbsp;left&nbsp;in&nbsp;queue&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;depth&nbsp;=&nbsp;queue.getCurrentDepth();&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>if&nbsp;(depth&nbsp;==&nbsp;0)&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>break;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<span>catch&nbsp;(MQException&nbsp;mqe)&nbsp;{&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mqe.printStackTrace();&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>break;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>//&nbsp;null;&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<span>catch&nbsp;(IOException&nbsp;e)&nbsp;{&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>//&nbsp;Close&nbsp;the&nbsp;queue&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(name&nbsp;+&nbsp;<span>"&nbsp;Closing&nbsp;the&nbsp;queue");&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;queue.close();&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>//&nbsp;Disconnect&nbsp;from&nbsp;the&nbsp;QueueManager&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(name&nbsp;+&nbsp;<span>"&nbsp;Disconnecting&nbsp;from&nbsp;the&nbsp;Queue&nbsp;Manager");&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qMgr.disconnect();&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(name&nbsp;+&nbsp;<span>"&nbsp;Done!");&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(<span>"==========");&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(<span>"");&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<span>catch&nbsp;(MQException&nbsp;ex)&nbsp;{&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.println(<span>"A&nbsp;WebSphere&nbsp;MQ&nbsp;Error&nbsp;occured&nbsp;:&nbsp;Completion&nbsp;Code&nbsp;"&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;ex.completionCode&nbsp;+&nbsp;<span>"&nbsp;Reason&nbsp;Code&nbsp;"&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;ex.reasonCode&nbsp;+&nbsp;ex.getMessage());&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<span>catch&nbsp;(InterruptedException&nbsp;e1)&nbsp;{&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e1.printStackTrace();&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</li><li>}&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li><span>public&nbsp;class&nbsp;MQTest&nbsp;{&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span>public&nbsp;static&nbsp;void&nbsp;main(String&nbsp;args[])&nbsp;{&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>/*&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;MQTest&nbsp;first&nbsp;=&nbsp;new&nbsp;MQTest();&nbsp;first.sendMessage();&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;first.recvMessage();&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sender&nbsp;sender&nbsp;=&nbsp;<span>new&nbsp;Sender();&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Thread&nbsp;senderThread&nbsp;=&nbsp;<span>new&nbsp;Thread(sender);&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;senderThread.start();&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;senderThread.setName(<span>"Sender");&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Thread&nbsp;senderThread2&nbsp;=&nbsp;<span>new&nbsp;Thread(sender);&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;senderThread2.start();&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;senderThread2.setName(<span>"Sender2");&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Receiver&nbsp;recv&nbsp;=&nbsp;<span>new&nbsp;Receiver();&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Thread&nbsp;recvThread&nbsp;=&nbsp;<span>new&nbsp;Thread(recv);&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;recvThread.start();&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;recvThread.setName(<span>"Receiver");&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>//&nbsp;Receiver&nbsp;recv&nbsp;=&nbsp;new&nbsp;Receiver();&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>//&nbsp;new&nbsp;Thread(recv).start();&nbsp;&nbsp;</span></li><li>&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</li><li>&nbsp;&nbsp;</li><li>}&nbsp;&nbsp;</li></ol></div><br /> <br />  <p>运行结果如下：</p> 进入线程Sender2<br /> 进入线程Sender<br /> Sender2 Connecting to queue manager: XIR_QM_1502<br /> Sender Connecting to queue manager: XIR_QM_1502<br /> Sender2 Accessing queue: ESBREQ<br /> Sender2 Sending a message...<br /> Sender Accessing queue: ESBREQ<br /> Sender Sending a message...<br /> Sender2 putting the message... 1<br /> Sender putting the message... 1<br /> Sender2 putting the message... 2<br /> Sender putting the message... 2<br /> Sender2 putting the message... 3<br /> Sender putting the message... 3<br /> Sender2 putting the message... 4<br /> Sender putting the message... 4<br /> Sender2 Done!<br /> ==========<br /> <br /> <br /> Sender Done!<br /> ==========<br /> <br /> <br /> 进入线程Receiver<br /> Receiver Connecting to queue manager: XIR_QM_1502<br /> Receiver Accessing queue: ESBREQ<br /> ... Receiver getting the message back again<br /> &nbsp;ID: MSGID Num: 1 Type: 1 Flag: 0<br /> The message is: Salemetsizbe Yerasel 1<br /> &nbsp;ID: MSGID Num: 1 Type: 1 Flag: 0<br /> The message is: Salemetsizbe Yerasel 1<br /> &nbsp;ID: MSGID Num: 1 Type: 1 Flag: 0<br /> The message is: Salemetsizbe Yerasel 2<br /> &nbsp;ID: MSGID Num: 1 Type: 1 Flag: 0<br /> The message is: Salemetsizbe Yerasel 2<br /> &nbsp;ID: MSGID Num: 1 Type: 1 Flag: 0<br /> The message is: Salemetsizbe Yerasel 3<br /> &nbsp;ID: MSGID Num: 1 Type: 1 Flag: 0<br /> The message is: Salemetsizbe Yerasel 3<br /> &nbsp;ID: MSGID Num: 1 Type: 1 Flag: 0<br /> The message is: Salemetsizbe Yerasel 4<br /> &nbsp;ID: MSGID Num: 1 Type: 1 Flag: 0<br /> The message is: Salemetsizbe Yerasel 4<br /> Receiver Closing the queue<br /> Receiver Disconnecting from the Queue Manager<br /> Receiver Done!</div><img src ="http://www.blogjava.net/gdufo/aggbug/426990.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdufo/" target="_blank">gdufo</a> 2015-08-26 12:07 <a href="http://www.blogjava.net/gdufo/archive/2015/08/26/426990.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux 下 安装 PHP 的 PDO_MYSQL 扩展</title><link>http://www.blogjava.net/gdufo/archive/2015/03/19/423613.html</link><dc:creator>gdufo</dc:creator><author>gdufo</author><pubDate>Thu, 19 Mar 2015 02:30:00 GMT</pubDate><guid>http://www.blogjava.net/gdufo/archive/2015/03/19/423613.html</guid><description><![CDATA[<div><h2><a href="http://luhuang.sinaapp.com/linux-php-pdo-mysql/" rel="bookmark" title="Permanent Link: Linux 下 安装 PHP 的 PDO_MYSQL 扩展">Linux 下 安装 PHP 的 PDO_MYSQL 扩展</a></h2>                 <abbr title="2013-03-11T09:41:25+0800">2013 年 3 月 11 日 &#8211; 09:41 | 2,420 views | <img src="http://luhuang.sinaapp.com/wp-content/plugins/wp-favorite-posts/img/heart.png" alt="Favorite" title="Favorite" /><a href="http://luhuang.sinaapp.com/linux-php-pdo-mysql/?wpfpaction=add&amp;postid=100" title="收藏" rel="nofollow">收藏</a>  </abbr>                    <div id="post-ratings-100" itemscope="" itemtype="http://schema.org/Product" data-nonce="b04da14803"><img id="rating_100_1" src="http://luhuang.sinaapp.com/wp-content/plugins/wp-postratings/images/stars/rating_off.gif" alt="1 Star" title="1 Star" style="cursor: pointer; border: 0px;" /><img id="rating_100_2" src="http://luhuang.sinaapp.com/wp-content/plugins/wp-postratings/images/stars/rating_off.gif" alt="2 Stars" title="2 Stars" style="cursor: pointer; border: 0px;" /><img id="rating_100_3" src="http://luhuang.sinaapp.com/wp-content/plugins/wp-postratings/images/stars/rating_off.gif" alt="3 Stars" title="3 Stars" style="cursor: pointer; border: 0px;" /><img id="rating_100_4" src="http://luhuang.sinaapp.com/wp-content/plugins/wp-postratings/images/stars/rating_off.gif" alt="4 Stars" title="4 Stars" style="cursor: pointer; border: 0px;" /><img id="rating_100_5" src="http://luhuang.sinaapp.com/wp-content/plugins/wp-postratings/images/stars/rating_off.gif" alt="5 Stars" title="5 Stars" style="cursor: pointer; border: 0px;" /> (No Ratings Yet)</div>  		 				<p><strong>PDO_MYSQL</strong>以下操作都在Linux 系统下操作</p> <p>1、下载 文件  或者 进入  在PHP源码包中进入ext/pdo_mysql</p> <p>http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz</p> <p>2、解压文件<br /> tar zxvf PDO_MYSQL-1.0.2.tgz</p> <p>3、配置和编译文件<br /> #cd PDO_MYSQL-1.0.2<br /> #/usr/local/php5/bin/phpize<br /> #./configure &#8211;with-php-config=/usr/local/php5/bin/php-config &#8211;with-pdo-mysql=/usr/local/mysql<br /> #make<br /> #make install</p> <p>注： 我的PHP安装在 ： /usr/local/php5/     mysql 安装在 ： /usr/local/mysql   编译的时候注意你自己的安装目录在哪里<br /> 3、安装到PHP配置下</p> <p>把这个记住，然后打开 php.ini文件，<br /> 并添加一行</p> <p>extension=pdo_mysql.so</p><p>并将上面编译产生的so复制到 php.ini文件中extension_dir指定的目录中 <br /></p><p>重新启动！<br /></p></div><img src ="http://www.blogjava.net/gdufo/aggbug/423613.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdufo/" target="_blank">gdufo</a> 2015-03-19 10:30 <a href="http://www.blogjava.net/gdufo/archive/2015/03/19/423613.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux下php安装mcrypt扩展</title><link>http://www.blogjava.net/gdufo/archive/2015/03/19/423612.html</link><dc:creator>gdufo</dc:creator><author>gdufo</author><pubDate>Thu, 19 Mar 2015 02:20:00 GMT</pubDate><guid>http://www.blogjava.net/gdufo/archive/2015/03/19/423612.html</guid><description><![CDATA[<div><p><span style="color: #ff0000;"><strong>说明：</strong></span></p> <p><span style="color: #0000ff;">操作系统：CentOS 5.x 64位</span></p> <p><span style="color: #0000ff;">已安装php版本：php-5.4.4</span></p> <p><span style="color: #0000ff;">已安装php路径：/usr/local/php</span></p> <p><span style="color: #ff0000;"><strong>实现目的：</strong></span></p> <p><span style="color: #0000ff;">在不影响网站访问的情况下，重新编译php，增加对mcrypt扩展的支持</span></p> <p><span style="color: #ff0000;"><strong>具体操作：</strong></span></p> <p><span style="color: #ff0000;">一、下载软件包</span></p> <p><span style="color: #ff0000;">1、下载php</span>（<span style="color: #0000ff;">版本要与系统安装的一致</span>）</p> <p>http://museum.php.net/php5/php-5.4.4.tar.gz</p> <p><span style="color: #ff0000;">2、下载libmcrypt</span>（<span style="color: #0000ff;">安装mcrypt需要此软件包</span>）</p> <p>http://nchc.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz</p> <p><span style="color: #ff0000;">3、下载mhash</span>（<span style="color: #0000ff;">安装mcrypt需要此软件包</span>）</p> <p>https://acelnmp.googlecode.com/files/mhash-0.9.9.9.tar.gz</p> <p><span style="color: #ff0000;">4、下载mcrypt</span></p> <p>https://lcmp.googlecode.com/files/mcrypt-2.6.8.tar.gz</p> <p><span style="color: #0000ff;">以上软件包下载之后，上传到/usr/local/src目录</span></p> <p><span style="color: #ff0000;"><strong>二、安装软件包</strong></span></p> <p><span style="color: #ff0000;">1、安装libmcrypt</span></p> <p>cd /usr/local/src&nbsp; <span style="color: #0000ff;">#进入软件包存放目录</span></p> <p>tar zxvf libmcrypt-2.5.8.tar.gz&nbsp; <span style="color: #0000ff;">#解压</span></p> <p>cd libmcrypt-2.5.8&nbsp; <span style="color: #0000ff;">#进入安装目录</span></p> <p>./configure&nbsp; <span style="color: #0000ff;">#配置</span></p> <p>make&nbsp;<span style="color: #0000ff;"> #编译</span></p> <p>make install&nbsp; <span style="color: #0000ff;">#安装</span></p> <p><span style="color: #ff0000;">2、安装mhash</span></p> <p>cd /usr/local/src</p> <p>tar zxvf mhash-0.9.9.9.tar.gz</p> <p>cd mhash-0.9.9.9</p> <p>./configure</p> <p>make</p> <p>make install</p> <p><span style="color: #ff0000;">3、安装mcrypt</span></p> <p>cd /usr/local/src</p> <p>tar zxvf mcrypt-2.6.8.tar.gz</p> <p>cd mcrypt-2.6.8</p> <p>ln -s&nbsp;&nbsp; /usr/local/bin/libmcrypt_config&nbsp;&nbsp; /usr/bin/libmcrypt_config&nbsp; <span style="color: #0000ff;">#添加软连接</span></p> <p>export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH&nbsp; <span style="color: #0000ff;">#添加环境变量</span></p> <p>./configure</p> <p>make</p> <p>make install</p> <p><span style="color: #ff0000;"><strong>三、重新编译php</strong></span></p> <p><span style="color: #ff0000;">1、查看系统之前安装的php编译参数</span></p> <p><span style="text-indent: 2em;">系统运维&nbsp;&nbsp;</span><a style="text-indent: 2em;" href="http://www.osyunwei.com/">www.osyunwei.com</a><span style="text-indent: 2em;">&nbsp; 温馨提醒：qihang01原创内容 版权所有,转载请注明出处及原文链接</span></p> <p><span style="text-indent: 2em;">/usr/local/php/bin/php -i |grep configure&nbsp;</span><span style="color: #0000ff;"> #查看php编译参数，记录下编译参数，后面会用到</span></p> <p><span style="color: #ff0000;">2、安装php</span></p> <p>cd /usr/local/src</p> <p>tar zxvf php-5.4.4.tar.gz</p> <p>cd php-5.4.4</p> <p>'./configure' '--prefix=/usr/local/php' '--enable-mbstring=all'  '--with-config-file-path=/usr/local/php/etc' '--with-zlib'  '--with-mysql=/usr/local/mysql-5.1.38/' '--with-gd'  '--with-mysqli=/usr/local/mysql-5.1.38/bin/mysql_config'  '--with-jpeg-dir=/usr' '--with-png-dir=/usr' '--enable-fpm'  '--enable-soap' '--with-freetype-dir=/usr/lib64'  '--with-iconv=/usr/local' '--with-curl'<span style="color: #ff00ff;"> '--with-mcrypt'</span></p> <p><span style="color: #0000ff;">#在之前的编译参数后面增加<span style="color: #ff00ff;">'--with-mcrypt'</span> 回车</span></p> <p>make&nbsp; <span style="color: #0000ff;">#编译</span></p> <p>make install&nbsp; <span style="color: #0000ff;">#安装</span></p> <p>/usr/local/src/php-5.4.4/sapi/fpm/init.d.php-fpm&nbsp; reload&nbsp; <span style="color: #0000ff;">#重新加载php-fpm</span></p> <p><strong><span style="color: #ff0000;">四、测试mcrypt扩展是否已安装成功</span></strong></p> <p>在网站目录下新建一个<span style="color: #ff0000;">info.php</span>测试页面，写上下面代码，保存</p> <p><span style="color: #ff00ff;">&lt;?php</span></p> <p><span style="color: #ff00ff;">phpinfo();</span></p> <p><span style="color: #ff00ff;">?&gt;</span></p> <p>在浏览器中打开<span style="color: #ff0000;">info.php</span> 会看到如下的信息</p> <p><img src="http://www.osyunwei.com/wp-content/uploads/2014/02/2866.jpg" style="display: inline;" size-full=""  wp-image-7419"="" title="2866" alt="" height="245" width="640" /></p> <p><img src="http://www.osyunwei.com/wp-content/uploads/2014/02/2867.jpg" style="display: inline;" size-full=""  wp-image-7420"="" title="2867" alt="" height="285" width="640" /></p> <p>说明mcrypt扩展已经安装成功</p> <p><span style="color: #ff0000;"><strong>至此，Linux下php安装mcrypt扩展完成。</strong></span></p></div><img src ="http://www.blogjava.net/gdufo/aggbug/423612.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdufo/" target="_blank">gdufo</a> 2015-03-19 10:20 <a href="http://www.blogjava.net/gdufo/archive/2015/03/19/423612.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OutLook中看不到图片</title><link>http://www.blogjava.net/gdufo/archive/2015/01/23/422377.html</link><dc:creator>gdufo</dc:creator><author>gdufo</author><pubDate>Fri, 23 Jan 2015 00:23:00 GMT</pubDate><guid>http://www.blogjava.net/gdufo/archive/2015/01/23/422377.html</guid><wfw:comment>http://www.blogjava.net/gdufo/comments/422377.html</wfw:comment><comments>http://www.blogjava.net/gdufo/archive/2015/01/23/422377.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gdufo/comments/commentRss/422377.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdufo/services/trackbacks/422377.html</trackback:ping><description><![CDATA[注册表中查看outlook临时目录<br /><div>HK_CURRENT_USER\software\microsoft\Office\11.0\Outlook\Security\OutlookSecureTempFolder<br />查看键值 OutlookSecureTempFolder<br />C:\Documents and Settings\li.shi\Local Settings\Temporary Internet Files\OLK11\<br /><br />删除临时目录下文件即可</div><img src ="http://www.blogjava.net/gdufo/aggbug/422377.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdufo/" target="_blank">gdufo</a> 2015-01-23 08:23 <a href="http://www.blogjava.net/gdufo/archive/2015/01/23/422377.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>RedHat Linux6.0安装Oracle 11g单机</title><link>http://www.blogjava.net/gdufo/archive/2014/03/19/411213.html</link><dc:creator>gdufo</dc:creator><author>gdufo</author><pubDate>Wed, 19 Mar 2014 02:41:00 GMT</pubDate><guid>http://www.blogjava.net/gdufo/archive/2014/03/19/411213.html</guid><wfw:comment>http://www.blogjava.net/gdufo/comments/411213.html</wfw:comment><comments>http://www.blogjava.net/gdufo/archive/2014/03/19/411213.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gdufo/comments/commentRss/411213.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdufo/services/trackbacks/411213.html</trackback:ping><description><![CDATA[<p style="margin-bottom:0pt; margin-top:0pt; text-align:center; "><span style=" font-weight:bold; font-size:22.0000pt; font-family:'宋体'; ">RedHat&nbsp;Linux6.0安装Oracle&nbsp;11g单机</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:center; ">&nbsp;</p><p style="margin-left:21.0000pt; text-indent:-21.0000pt; margin-bottom:0pt; margin-top:0pt; "><span style="color:#ff0000; font-weight:bold; font-size:16.0000pt; font-family:'Wingdings'; ">&#216;&nbsp;</span><span style=" color:#ff0000; font-weight:bold; font-size:16.0000pt; font-family:'宋体'; ">第一步配置YUM仓库</span></p><p style="margin-left:36.0000pt; text-indent:-36.0000pt; margin-bottom:0pt; margin-top:0pt; "><span style="font-size:14.0000pt; font-family:'Times New Roman'; ">1、&nbsp;</span><span style=" font-size:14.0000pt; font-family:'宋体'; ">挂载光盘</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">mount&nbsp;/dev/cdrom&nbsp;/media</span></p><p style="margin-left:36.0000pt; text-indent:-36.0000pt; margin-bottom:0pt; margin-top:0pt; "><span style="font-size:14.0000pt; font-family:'Times New Roman'; ">2、&nbsp;</span><span style=" font-size:14.0000pt; font-family:'宋体'; ">复制光盘里头的rpm包到rpm包源目录</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'宋体'; ">cp&nbsp;</span><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">&#8211;</span><span style=" font-size:14.0000pt; font-family:'宋体'; ">rf&nbsp;&nbsp;/media/Packages&nbsp;&nbsp;/mnt</span><span style=" font-size:14.0000pt; font-family:'宋体'; ">&nbsp;（也可以直接通过桌面COPY）</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff0000; font-weight:bold; font-size:10.5000pt; font-family:'宋体'; ">（这里可以取消挂在了&nbsp;umount&nbsp;/dev/cdrom，顺便删除media目录&nbsp;rm&nbsp;</span><span style=" color:#ff0000; font-weight:bold; font-size:10.5000pt; font-family:'Times New Roman'; ">&#8211;</span><span style=" color:#ff0000; font-weight:bold; font-size:10.5000pt; font-family:'宋体'; ">rf&nbsp;/media）</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-left:36.0000pt; text-indent:-36.0000pt; margin-bottom:0pt; margin-top:0pt; "><span style="font-size:14.0000pt; font-family:'Times New Roman'; ">3、&nbsp;</span><span style=" font-size:14.0000pt; font-family:'宋体'; ">进入你自己创建的YUM仓库，并安装createrepo工具</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'宋体'; ">cd&nbsp;/mnt/Packages</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'宋体'; ">rpm&nbsp;</span><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">&#8211;</span><span style=" font-size:14.0000pt; font-family:'宋体'; ">ivh&nbsp;createrepo-0.4.11-3.e15.noarch.rpm</span><span style=" font-size:14.0000pt; font-family:'宋体'; ">(可以在桌面手动双击安装)</span></p><p style="margin-left:36.0000pt; text-indent:-36.0000pt; margin-bottom:0pt; margin-top:0pt; "><span style="font-size:14.0000pt; font-family:'Times New Roman'; ">4、&nbsp;</span><span style=" font-size:14.0000pt; font-family:'宋体'; ">重建仓库信息配置文件</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'宋体'; ">createrepo&nbsp;&nbsp;/mnt&nbsp;</span>&nbsp;<span style=" color:#ff0000; font-weight:bold; font-size:10.5000pt; font-family:'宋体'; ">（这个配置文件在&nbsp;/mnt/repodata/下）</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-left:36.0000pt; text-indent:-36.0000pt; margin-bottom:0pt; margin-top:0pt; "><span style="font-size:14.0000pt; font-family:'Times New Roman'; ">5、&nbsp;</span><span style=" font-size:14.0000pt; font-family:'宋体'; ">创建YUM配置文件</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'宋体'; ">cd&nbsp;&nbsp;/etc/yum.repos.d/</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'宋体'; ">touch&nbsp;yumredhat.repo</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'宋体'; ">vim&nbsp;yumredhat.repo</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'宋体'; ">添加如下信息：</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'宋体'; ">[rhel6]</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'宋体'; ">name=Red&nbsp;Hat&nbsp;Enterprise&nbsp;Linux6</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'宋体'; ">baseurl=file:///mnt</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'宋体'; ">enabled=1</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'宋体'; ">gpgcheck=0</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'宋体'; ">gpgfile=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'宋体'; ">6、测试</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'宋体'; ">yum&nbsp;list</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'宋体'; ">yum&nbsp;clear&nbsp;all</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-left:21.0000pt; text-indent:-21.0000pt; margin-bottom:0pt; margin-top:0pt; "><span style="color:#ff0000; font-weight:bold; font-size:16.0000pt; font-family:'Wingdings'; ">&#216;&nbsp;</span><span style=" color:#ff0000; font-weight:bold; font-size:16.0000pt; font-family:'宋体'; ">第二步Oracle安装前系统参数的配置以及包的安装</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; text-align:center; "><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; ">（安装Oracle必须关闭掉防火墙以及selinux）</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'宋体'; ">service&nbsp;iptables&nbsp;stop&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'宋体'; ">vim&nbsp;/etc/selinux/config</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; ">SELINUX=disabled</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">========================</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'宋体'; ">想办法把下面2个文件传进&nbsp;Linux&nbsp;操作系统里面去</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">linux_11gR2_database_1of2.zip</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">linux_11gR2_database_2of2.zip</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'宋体'; ">要借助一个软件&nbsp;FileZilla_3.3.3_win32-setup.exe&nbsp;&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'宋体'; ">上传完毕后，&nbsp;使用&nbsp;unzip&nbsp;命令解压刚才上传的2个文件，&nbsp;命令格式如下：</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; ">unzip&nbsp;文件名</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">======================================</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'宋体'; ">检查相关的开发工具和一些包</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'宋体'; ">检查命令格式如下：</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; ">rpm&nbsp;-qa&nbsp;|&nbsp;grep&nbsp;名字</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">binutils-2.17.50.0.6</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">compat-libstdc++-33-3.2.3</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">elfutils-libelf-0.125</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">elfutils-libelf-devel-0.125</span><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">	</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#000000; font-size:14.0000pt; font-family:'宋体'; ">#</span><span style=" color:#000000; font-size:14.0000pt; font-family:'Times New Roman'; ">elfutils-libelf-devel-static-0.125</span>&nbsp;<span style=" color:#0000ff; font-weight:bold; font-size:12.0000pt; font-family:'宋体'; ">(RedHat&nbsp;Linux6.0中无此包，CentOS中有)</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">gcc-4.1.2</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">gcc-c++-4.1.2</span><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">	</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">glibc-2.5-24</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">glibc-common-2.5</span><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">	</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">glibc-devel-2.5</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">glibc-headers-2.5</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">kernel-headers-2.6.18</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">ksh-20060214</span><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">	</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">libaio-0.3.106&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">libaio-devel-0.3.106</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">libgcc-4.1.2</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">libgomp-4.1.2</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">libstdc++-4.1.2</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">libstdc++-devel-4.1.2</span><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">	</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">make-3.81</span><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">	</span>&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">numactl-devel-0.9.8.i386</span><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">	</span>&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">sysstat-7.0.2</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">unixODBC-2.2.11&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">unixODBC-devel-2.2.11</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">======================================</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'宋体'; ">利用配置好的YUM仓库安装包</span></p><p style="margin-bottom:0pt; margin-top:0pt; border-bottom:0.5000pt double #000000; padding:0pt 0pt 0pt 0pt ; "><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; ">yum&nbsp;install&nbsp;(包名).rpm</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'宋体'; ">创建用户以及修改配置参数</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">groupadd&nbsp;oinstall</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">groupadd&nbsp;dba</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">mkdir&nbsp;-p&nbsp;/u01/oracle</span><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//路径可修改，看实际的生产环节</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; ">添加一个oracle用户，&nbsp;根目录是&nbsp;/u01/oracle，&nbsp;主的组是&nbsp;oinstall&nbsp;副的组是dba</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#0000ff; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">useradd&nbsp;-g&nbsp;oinstall&nbsp;-G&nbsp;dba&nbsp;-d&nbsp;/u01/oracle&nbsp;oracle</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">cp&nbsp;/etc/skel/.bash_profile&nbsp;/u01/oracle</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">cp&nbsp;/etc/skel/.bashrc&nbsp;/u01/oracle</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">cp&nbsp;/etc/skel/.bash_logout&nbsp;/u01/oracle</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; ">为oracle用户设置密码&nbsp;123456&nbsp;&nbsp;&nbsp;/111111</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">passwd&nbsp;oracle</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">/]#ls&nbsp;-l</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">/]#chown&nbsp;-R&nbsp;oracle:oinstall&nbsp;u01</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">/]#ls&nbsp;-l</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'宋体'; ">检查&nbsp;nobody&nbsp;是否存在&nbsp;，&nbsp;&nbsp;id&nbsp;nobody</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'宋体'; ">缺省存在的。如果不存在&nbsp;#&nbsp;/usr/sbin/useradd&nbsp;-g&nbsp;nobody</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">========================================</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#0000ff; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">vi&nbsp;/etc/sysctl.conf</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#0000ff; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">fs.aio-max-nr&nbsp;=&nbsp;1048576</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#0000ff; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">fs.file-max&nbsp;=&nbsp;6815744</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#0000ff; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">kernel.shmall&nbsp;=&nbsp;2097152</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#0000ff; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">kernel.shmmax&nbsp;=&nbsp;536870912</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#0000ff; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">kernel.shmmni&nbsp;=&nbsp;4096</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#0000ff; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">kernel.sem&nbsp;=&nbsp;250&nbsp;32000&nbsp;100&nbsp;128</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#0000ff; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">net.ipv4.ip_local_port_range&nbsp;=&nbsp;9000&nbsp;65500</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#0000ff; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">net.core.rmem_default&nbsp;=&nbsp;262144</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#0000ff; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">net.core.rmem_max&nbsp;=&nbsp;4194304</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#0000ff; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">net.core.wmem_default&nbsp;=&nbsp;262144</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#0000ff; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">net.core.wmem_max&nbsp;=&nbsp;1048586</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#0000ff; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">-------------</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#0000ff; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">vi&nbsp;/etc/security/limits.conf</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#0000ff; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">oracle&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;soft&nbsp;&nbsp;&nbsp;&nbsp;nproc&nbsp;&nbsp;&nbsp;2047</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#0000ff; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">oracle&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hard&nbsp;&nbsp;&nbsp;&nbsp;nproc&nbsp;&nbsp;&nbsp;16384</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#0000ff; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">oracle&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;soft&nbsp;&nbsp;&nbsp;&nbsp;nofile&nbsp;&nbsp;1024</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#0000ff; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">oracle&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hard&nbsp;&nbsp;&nbsp;&nbsp;nofile&nbsp;&nbsp;65536</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#0000ff; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">------------</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#0000ff; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">vi&nbsp;/etc/pam.d/login&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#0000ff; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">session&nbsp;&nbsp;&nbsp;&nbsp;required&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pam_limits.so</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#0000ff; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">=================================================</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#0000ff; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; ">设置oracle&nbsp;用户环境变量</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#0000ff; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">su&nbsp;-&nbsp;oracle</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#0000ff; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">pwd</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#0000ff; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">ls&nbsp;-la</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#0000ff; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">---------------</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#0000ff; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">vi&nbsp;.bash_profile</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#0000ff; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">ORACLE_BASE=/u01</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#0000ff; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">ORACLE_HOME=$ORACLE_BASE/oracle</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#0000ff; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">ORACLE_SID=</span><span style=" color:#0000ff; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; ">ORCLTEST</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#0000ff; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#0000ff; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">export&nbsp;ORACLE_BASE&nbsp;ORACLE_HOME&nbsp;ORACLE_SID&nbsp;PATH</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#0000ff; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">===================================</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#0000ff; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">mv&nbsp;database&nbsp;/u01/</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#0000ff; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">cd&nbsp;/u01</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#0000ff; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">ls&nbsp;-l</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#0000ff; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">&nbsp;chown&nbsp;-R&nbsp;oracle:oinstall&nbsp;database/</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">===========</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-left:21.0000pt; text-indent:-21.0000pt; margin-bottom:0pt; margin-top:0pt; "><span style="color:#ff0000; font-weight:bold; font-size:16.0000pt; font-family:'Wingdings'; ">&#216;&nbsp;</span><span style=" color:#ff0000; font-weight:bold; font-size:16.0000pt; font-family:'宋体'; ">第三步正式开始安装.Oracle.11g.r2(图形界面安装)</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#0000ff; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; ">使用oracle账号&nbsp;登陆图形界面&nbsp;进行安装</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'宋体'; ">运行终端&nbsp;Terminal</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">cd&nbsp;/u01/database</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">./runInstalle</span><span style=" font-size:14.0000pt; font-family:'宋体'; ">r</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; ">运行./runInstaller</span><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; ">【</span><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; ">INS-06101</span><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; ">】</span><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; ">IP&nbsp;address&nbsp;of&nbsp;localhost&nbsp;could&nbsp;not&nbsp;be&nbsp;determined&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; ">Are&nbsp;you&nbsp;sure&nbsp;you&nbsp;want&nbsp;to&nbsp;continue?</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff0000; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; ">这里需要指定一个IP与localhost</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#0000ff; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; ">Vi&nbsp;/etc/hosts</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#0000ff; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; ">#127.0.0.1&nbsp;&nbsp;&nbsp;localhost&nbsp;localhost.localdomain&nbsp;localhost4&nbsp;localhost4.localdomain4</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#0000ff; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; ">10.110.12.132&nbsp;ORCLDEV&nbsp;&nbsp;ORCLDEV.ELLINGTON</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#0000ff; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; ">::1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;localhost&nbsp;localhost.localdomain&nbsp;localhost6&nbsp;localhost6.localdomain6</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff6600; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; ">运行./runInstaller出现中文汉字为方框</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff6600; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; ">在运行runinstaller之前，</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff6600; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">export&nbsp;LANG=C</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff6600; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">export&nbsp;LC_ALL=C</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">Installation&nbsp;Optiong</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">	</span><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">install&nbsp;database&nbsp;software&nbsp;only</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">Grid&nbsp;Options</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">	</span><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">Single&nbsp;instance&nbsp;database&nbsp;installation</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">Product&nbsp;Languages</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">	</span><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">English</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">Database&nbsp;Edition</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">	</span><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">Enterprise&nbsp;Edition&nbsp;(3.95)</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">Installation&nbsp;Location</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">	</span><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">Oracle&nbsp;Base:&nbsp;/u01</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">	</span><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">Software&nbsp;Loacation:&nbsp;/u01/oracle</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'宋体'; ">	</span><span style=" font-size:14.0000pt; font-family:'宋体'; ">	</span><span style=" font-size:14.0000pt; font-family:'宋体'; ">提示：&nbsp;yes</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">Create&nbsp;Inventory</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">	</span><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">mkdir&nbsp;/oraInventory</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">	</span><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">chown&nbsp;-R&nbsp;oracle:oinstall&nbsp;oraInventory</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">Operating&nbsp;System&nbsp;Groups</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">	</span><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">Next&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">Prerequis&nbsp;ite&nbsp;Checks</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">	</span><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">Ignore&nbsp;All</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">Summary</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">	</span><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">Finish</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">Install&nbsp;Product</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'宋体'; ">	</span><span style=" font-size:14.0000pt; font-family:'宋体'; ">安装完毕，&nbsp;提示执行&nbsp;2个脚本</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff6600; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; ">//root用户执行</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">	</span><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">/oraInventory/orainstRoot.sh</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">	</span><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">/u01/oracle/root.sh</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'宋体'; ">	</span><span style=" font-size:14.0000pt; font-family:'宋体'; ">	</span><span style=" font-size:14.0000pt; font-family:'宋体'; ">直接按回车，&nbsp;缺省值就可以</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">Finish</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">	</span><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">The&nbsp;installation&nbsp;of&nbsp;Oracle&nbsp;Database&nbsp;was&nbsp;successful</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">====================================</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'宋体'; ">上面只是安装了软件，&nbsp;数据库没有创建，&nbsp;还有配置&nbsp;监听器&nbsp;Listener</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">netca</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'宋体'; ">	</span><span style=" font-size:14.0000pt; font-family:'宋体'; ">一直默认下一步&nbsp;，&nbsp;呵呵，&nbsp;最后&nbsp;Finish</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'宋体'; ">ps&nbsp;-ef&nbsp;可以查看Listener是否配置成功</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">-----------</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">dbca</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'宋体'; ">	</span><span style=" font-size:14.0000pt; font-family:'宋体'; ">一直&nbsp;Next,</span><span style=" font-size:14.0000pt; font-family:'宋体'; ">	</span><span style=" font-size:14.0000pt; font-family:'宋体'; ">Global&nbsp;Database&nbsp;Name&nbsp;和&nbsp;SID&nbsp;都是输入&nbsp;wilson</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'宋体'; ">	</span><span style=" font-size:14.0000pt; font-family:'宋体'; ">选择&nbsp;User&nbsp;the&nbsp;Same.....All&nbsp;Accounts</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'宋体'; ">	</span><span style=" font-size:14.0000pt; font-family:'宋体'; ">	</span><span style=" font-size:14.0000pt; font-family:'宋体'; ">密码:&nbsp;123456</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'宋体'; ">	</span><span style=" font-size:14.0000pt; font-family:'宋体'; ">选择&nbsp;Sample&nbsp;Schemas</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'宋体'; ">	</span><span style=" font-size:14.0000pt; font-family:'宋体'; ">Memory&nbsp;内存分配，默认就可以了</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'宋体'; ">	</span><span style=" color:#ff0000; font-size:14.0000pt; font-family:'宋体'; ">Character&nbsp;Sets</span><span style=" font-size:14.0000pt; font-family:'宋体'; ">&nbsp;选择&nbsp;中文GBK&nbsp;&nbsp;</span><span style=" color:#ff6600; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; ">Use&nbsp;Unicode(AL32UTF8)</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'宋体'; ">	</span><span style=" font-size:14.0000pt; font-family:'宋体'; ">然后一直&nbsp;Next&nbsp;，&nbsp;到最后&nbsp;Finish</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'宋体'; ">弹出一个&nbsp;Confirmation&nbsp;,&nbsp;点击&nbsp;OK&nbsp;就可以了，&nbsp;然后自动进行安装</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'宋体'; ">安装到目录&nbsp;/u01/oradata/wilson</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'宋体'; ">	</span><span style=" font-size:14.0000pt; font-family:'宋体'; ">&nbsp;&nbsp;&nbsp;/u01/等等。。。&nbsp;会发现多了很多文件。</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">[oracle@localhost&nbsp;~]$&nbsp;sqlplus&nbsp;/nolog</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff6600; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; ">//中文字符显示？号解决方法</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff6600; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; ">编辑并运行.bash_profile</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff6600; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">export&nbsp;NLS_LANG=AMERICAN_AMERICA.UTF8</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff6600; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; ">（如果是GBK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff6600; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; ">export&nbsp;NLS_LANG=american_america.ZHS16GBK）</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff6600; font-weight:bold; font-size:14.0000pt; font-family:'Times New Roman'; ">export&nbsp;NLS_LANG=AMERICAN_AMERICA.ZHS16GBK</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff6600; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; ">注销后生效</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff6600; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; ">这样再重新进入sqlplus</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" color:#ff6600; font-weight:bold; font-size:14.0000pt; font-family:'宋体'; ">已经不会是乱码。</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">SQL*Plus:&nbsp;Release&nbsp;11.2.0.1.0&nbsp;Production&nbsp;on&nbsp;Fri&nbsp;Jun&nbsp;25&nbsp;15:05:54&nbsp;2010</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">Copyright&nbsp;(c)&nbsp;1982,&nbsp;2009,&nbsp;Oracle.&nbsp;&nbsp;All&nbsp;rights&nbsp;reserved.</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">SQL&gt;&nbsp;conn&nbsp;/&nbsp;as&nbsp;sysdba</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">Connected&nbsp;to&nbsp;an&nbsp;idle&nbsp;instance.</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'宋体'; ">出现错误&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">SQL&gt;&nbsp;startup</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'宋体'; ">查看当前用户的表名</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">SQL&gt;&nbsp;select&nbsp;table_name&nbsp;from&nbsp;user_tables;</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">SQL&gt;&nbsp;create&nbsp;table&nbsp;testUser(&nbsp;id&nbsp;integer,name&nbsp;char(10));</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">Table&nbsp;created.</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">SQL&gt;&nbsp;insert&nbsp;into&nbsp;testUser&nbsp;values(0,'Jack');</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">1&nbsp;row&nbsp;created.</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">SQL&gt;&nbsp;commit;</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">Commit&nbsp;complete.</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">SQL&gt;&nbsp;select&nbsp;*&nbsp;from&nbsp;testUser;</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ID&nbsp;NAME</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">----------&nbsp;----------</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;Jack</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'宋体'; ">关闭数据库</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">SQL&gt;&nbsp;&nbsp;shutdown&nbsp;immediate</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:14.0000pt; font-family:'Times New Roman'; ">SQL&gt;&nbsp;&nbsp;quit</span></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;</p><img src ="http://www.blogjava.net/gdufo/aggbug/411213.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdufo/" target="_blank">gdufo</a> 2014-03-19 10:41 <a href="http://www.blogjava.net/gdufo/archive/2014/03/19/411213.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQL-Server查询失效索引</title><link>http://www.blogjava.net/gdufo/archive/2014/02/27/410359.html</link><dc:creator>gdufo</dc:creator><author>gdufo</author><pubDate>Thu, 27 Feb 2014 00:53:00 GMT</pubDate><guid>http://www.blogjava.net/gdufo/archive/2014/02/27/410359.html</guid><wfw:comment>http://www.blogjava.net/gdufo/comments/410359.html</wfw:comment><comments>http://www.blogjava.net/gdufo/archive/2014/02/27/410359.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gdufo/comments/commentRss/410359.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdufo/services/trackbacks/410359.html</trackback:ping><description><![CDATA[<div>SELECT&nbsp; TOP 10 <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [Total Cost]&nbsp; = ROUND(avg_total_user_cost * avg_user_impact * (user_seeks + user_scans),0) <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; , avg_user_impact<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; , TableName = statement<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; , [EqualityUsage] = equality_columns <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; , [InequalityUsage] = inequality_columns<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; , [Include Cloumns] = included_columns<br />FROM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sys.dm_db_missing_index_groups g <br />INNER JOIN&nbsp;&nbsp;&nbsp; sys.dm_db_missing_index_group_stats s <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ON s.group_handle = g.index_group_handle <br />INNER JOIN&nbsp;&nbsp;&nbsp; sys.dm_db_missing_index_details d <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ON d.index_handle = g.index_handle<br />ORDER BY [Total Cost] DESC;<br />================================<br />CREATE NONCLUSTERED INDEX IX_Kq_RecordQk_QKRMan<br />&nbsp;&nbsp;&nbsp;&nbsp; ON Kq_RecordQk ([QKRMan])<br />&nbsp;&nbsp;&nbsp;&nbsp; include([COMP_CODE], [QKREMPID], [ApStatus])</div><img src ="http://www.blogjava.net/gdufo/aggbug/410359.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdufo/" target="_blank">gdufo</a> 2014-02-27 08:53 <a href="http://www.blogjava.net/gdufo/archive/2014/02/27/410359.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>mysql配置参数性能优化选项:Max_connections特性和配置优化</title><link>http://www.blogjava.net/gdufo/archive/2014/01/27/409383.html</link><dc:creator>gdufo</dc:creator><author>gdufo</author><pubDate>Mon, 27 Jan 2014 07:12:00 GMT</pubDate><guid>http://www.blogjava.net/gdufo/archive/2014/01/27/409383.html</guid><wfw:comment>http://www.blogjava.net/gdufo/comments/409383.html</wfw:comment><comments>http://www.blogjava.net/gdufo/archive/2014/01/27/409383.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/gdufo/comments/commentRss/409383.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdufo/services/trackbacks/409383.html</trackback:ping><description><![CDATA[<div>http://www.itokit.com/2012/1018/74794.html</div><br /><div>MySQL的max_connections参数用来设置最大连接（用户）数。每个连接<strong><a href="http://www.itokit.com/h_database/mysql/" title="mysql">MySQL</a></strong>的用户均算作一个连接，max_connections的默认值为100。本文将讲解此参数的详细作用与性能影响。 <div><span style="font-size: 18px; "><strong>max_connections配置参数的相关的特性</strong></span></div> <div>1、MySQL无论如何都会保留一个用于管理员（SUPER）登陆的连接，用于管理员连接数据库进行维护操作，即使当前连接数已经达到了max_connections。因此MySQL的实际最大可连接数为max_connections+1；</div> <div>2、这个参数实际起作用的最大值（实际最大可连接数）为16384，即该参数最大值不能超过16384，即使超过也以16384为准；</div> <div>3、增加max_connections参数的值，不会占用太多系统资源。系统资源（CPU、内存）的占用主要取决于查询的密度、效率等；</div> <div>4、该参数设置过小的最明显特征是出现&#8220;Too many connections&#8221;错误；</div> <div>&nbsp;</div> <div><span style="font-size: 18px; "><strong>如何去调整max_connections参数的值</strong></span>（<span style="color: #0000ff; ">有以下三个方法可调整</span>）</div> <div>调整此参数的方法有几种，既可以在编译的时候设置，也可以在MySQL配置文件 my.cnf 中设置，也可以直接使用命令调整并立即生效。<br /> &nbsp;</div> <div><span style="color: #ff00ff; "><strong>1、在编译的时候设置默认最大连接数</strong></span></div> <div>打开MySQL的源码，进入sql目录，修改mysqld.cc文件：</div> <div> <div>C/C++ Code<span style="cursor:pointer">复制内容到剪贴板</span></div> <div id="code_4661"> <ol start="1"><li><span>{&#8220;max_connections&#8221;,&nbsp;OPT_MAX_CONNECTIONS,&nbsp;&nbsp;</span></li><li>&#8220;The&nbsp;number&nbsp;of&nbsp;simultaneous&nbsp;clients&nbsp;allowed.&#8221;,&nbsp;(gptr*)&nbsp;&amp;max_connections,&nbsp;&nbsp;</li><li>(gptr*)&nbsp;&amp;max_connections,&nbsp;0,&nbsp;GET_ULONG,&nbsp;REQUIRED_ARG,&nbsp;<span style="color: #ff0000; ">100,&nbsp;1,&nbsp;16384,&nbsp;0,&nbsp;1,&nbsp;&nbsp;</span></li><li>0},&nbsp;&nbsp;</li></ol> </div> </div> <div>红色的&#8220;<span style="color: #ff0000; ">100</span>&#8221;即为该参数的默认值，修改为想要的数值，存盘退出。然后执行</div> <div> <div>C/C++ Code<span style="cursor:pointer">复制内容到剪贴板</span></div> <div id="code_9911"> <ol start="1"><li><span>./configure;make;make&nbsp;install&nbsp;&nbsp;</span></li></ol> </div> </div> <div>&nbsp;</div> <div>重新编译安装MySQL；注意，由于编译安装且修改了MySQL源码，此操作最好在安装MySQL之前进行；</div> <div><br /> <span style="color: #ff00ff; "><strong>2、在配置文件my.cnf中设置max_connections的值</strong></span></div> <div>打开MySQL配置文件my.cnf</div> <div>  <div id="code_3200"> <ol start="1"><li><span>[root@www&nbsp;~]#&nbsp;vi&nbsp;/etc/my.cnf&nbsp;&nbsp;</span></li></ol> </div> </div> <div>&nbsp;</div> <div>找到max_connections一行，修改为（如果没有，则自己添加），</div> <div>max_connections = 1000</div> <div>上面的1000即该参数的值。<br /> &nbsp;</div> <div><span style="color: #ff00ff; "><strong>3、实时（临时）修改此参数的值</strong></span></div> <div>首先登陆mysql，执行如下命令：</div> <div> <div>C/C++ Code<span style="cursor:pointer">复制内容到剪贴板</span></div> <div id="code_8327"> <ol start="1"><li><span>[root@www&nbsp;~]#&nbsp;mysql&nbsp;-uroot&nbsp;-p&nbsp;&nbsp;</span></li></ol> </div> </div> <div>&nbsp;</div> <div>然后输入MySQL Root的密码。</div> <div>查看当前的Max_connections参数值：</div> <div>  <div id="code_6737"> <ol start="1"><li><span>mysql&gt;&nbsp;SELECT&nbsp;@@MAX_CONNECTIONS&nbsp;AS&nbsp;'Max&nbsp;Connections';&nbsp;&nbsp;</span></li></ol> </div> </div> <div>&nbsp;</div> <div>设置该参数的值：</div> <div>  <div id="code_4789"> <ol start="1"><li><span>mysql&gt;&nbsp;</span><span style="color: #ff0000;">set&nbsp;GLOBAL&nbsp;max_connections=1000;&nbsp;&nbsp;</span></li></ol> </div> </div> <div>（注意上面命令的大小写）</div> <div>修改完成后实时生效，无需重启MySQL。<br /> <br /> <span style="font-size: 18px; "><strong>mysql的max_connections的总结</strong></span></div> <div>总体来说，该参数在服务器资源够用的情况下应该尽量设置大，以满足多个客户端同时连接的需求。否则将会出现类似&#8220;Too many connections&#8221;的错误。</div></div><img src ="http://www.blogjava.net/gdufo/aggbug/409383.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdufo/" target="_blank">gdufo</a> 2014-01-27 15:12 <a href="http://www.blogjava.net/gdufo/archive/2014/01/27/409383.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SPComm的一点小诀窍 spcomm的问题导致数据丢失  </title><link>http://www.blogjava.net/gdufo/archive/2013/11/15/406364.html</link><dc:creator>gdufo</dc:creator><author>gdufo</author><pubDate>Fri, 15 Nov 2013 03:13:00 GMT</pubDate><guid>http://www.blogjava.net/gdufo/archive/2013/11/15/406364.html</guid><wfw:comment>http://www.blogjava.net/gdufo/comments/406364.html</wfw:comment><comments>http://www.blogjava.net/gdufo/archive/2013/11/15/406364.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gdufo/comments/commentRss/406364.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdufo/services/trackbacks/406364.html</trackback:ping><description><![CDATA[<div><div> 	      <div> 	      	<div> 		      <h3>SPComm的一点小诀窍 spcomm的问题导致数据丢失&nbsp;&nbsp;</h3> 		      <p clearfix="" nbw-act=""  fc06"="" style="line-height:20px;"> 		        <span> 		           		          2010-01-08 09:50:51|&nbsp;&nbsp;分类： 		          <a m2a"="" href="http://zxmpmsj.blog.163.com/blog/#m=0&amp;t=1&amp;c=fks_087069083087089069083081080095085084087070080081082068082" title="串口">串口</a> 		           		        </span> 		        <span fc07=""  ztag"="">|<span fc03"="" id="$_fontswitch">字号</span></span><span pnt=""  fc03"="" id="$_blog_subscribe">&nbsp;<a>订阅</a></span> 		      </p> 		    </div> 	      </div>         </div>          <div>                  </div>                   <p>最近几天完成了BiasDAC的程序编写。调试的过程还算比较顺利，除了几个有点bt的小问题。其中一个困扰了我两三天的时间，今天上午终于将其解决。</p>  <p>由于BiasDAC是用RS232 Serial Port通信的，延用之前的程序，使用了Delphi的SPComm控件。在之前的使用中，SPComm控件一直工作正常，使用的是一般的string进行消息的传递。</p>  <p>而BiasDAC由于通信协议的限制，消息的发送使用的是hex方式，会用到从0x00到0xFF所有的这些字符。在调试中发现，发送0x11和0x13之后，SPComm的工作就会不正常。</p>  <p>首先是0x11发送之后，返回的0x11消息会被忽略；其次0x13发送之后，只能返回很有限的消息，而且似乎Serial Port就此关闭，如果再发送消息，就会造成Serial Port失去响应，只能通过重新启动计算机才能恢复。</p>  <p>后来上网上查询，原来不能正常处理0x11和0x13的问题早就存在，原因是SPComm空间中两个属性的存在。</p>  <p>OutX_XonXOffFlow/InX_XonXoffFlow：这个属性是指进行发送/接收时的软件握手标志，两个握手信号之间的数据被认为是通讯数据，收到握手信号后，通讯就中止了。</p>  <p>FOutx_XonXoffFlow := True;<br />FInx_XonXoffFlow := True; </p>  <p>默认的初始化中，这两个属性是默认开启的。 </p>  <p>XOffChar/XOnChar：这是指握手的字节，默认的初始中，有</p>  <p>FXonChar := chr($11);<br />FXoffChar := chr($13); </p>  <p>至此，真相大白。0x11，0x13被占用为通讯握手信号，自然不会得到正确的处理。 </p>  <p>问题找到了，解决也很容易。只需要在Comm的初始化中，自己定义 </p>  <p><span style="color: red;">Comm.Inx_XonXoffFlow:=False;</span><br /><span style="color: red;">Comm.Outx_XonXoffFlow:=False;</span></p>  <p>关闭软件握手功能即可。在一般通讯中，硬件已经具备了握手功能，所以也不会影响到正常的Comm通讯。</p></div><img src ="http://www.blogjava.net/gdufo/aggbug/406364.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdufo/" target="_blank">gdufo</a> 2013-11-15 11:13 <a href="http://www.blogjava.net/gdufo/archive/2013/11/15/406364.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>通达OA中，“数据选择控件”中增加第三方的数据来源</title><link>http://www.blogjava.net/gdufo/archive/2013/10/30/405786.html</link><dc:creator>gdufo</dc:creator><author>gdufo</author><pubDate>Wed, 30 Oct 2013 03:03:00 GMT</pubDate><guid>http://www.blogjava.net/gdufo/archive/2013/10/30/405786.html</guid><wfw:comment>http://www.blogjava.net/gdufo/comments/405786.html</wfw:comment><comments>http://www.blogjava.net/gdufo/archive/2013/10/30/405786.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gdufo/comments/commentRss/405786.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdufo/services/trackbacks/405786.html</trackback:ping><description><![CDATA[在通达OA2009中，&#8220;数据选择控件&#8221;目前只有自带的三种类型数据。<br /><br />现增加第三方的数据来源，以增强其功能。<br /><br />一、<a href="file://\\10.110.2.210\d$\MYOA\webroot\general\system\workflow\flow_form\cool_form\data\config.php">MYOA\webroot\general\system\workflow\flow_form\cool_form\data\config.php</a><br />在Config.php 增加<br />'TX_USERS' =&gt; array("NAME" =&gt; "同享系统用户" , "CONTENT" =&gt; array("EMP_NAME" =&gt; "工号姓名",<br />&nbsp;&nbsp; "DEPT_NAME" =&gt; "部门","ZHIWEI" =&gt; "职位","ZHIWU" =&gt; "职务","ZHIJI" =&gt; "职级"))<br />二、<a href="file://\\10.110.2.210\d$\MYOA\webroot\general\workflow\list\input_form">MYOA\webroot\general\workflow\list\input_form<br /></a>
<p>增加连接MSSQL-SERVER的输出<br />if ($dataSrc == 'TX_USERS') {<br />if($act=="count")<br />&nbsp;&nbsp; $query = "select count(*) from OA_Employee_View where 1=1";<br />else<br />&nbsp;&nbsp; $query = "select top 10 $dataField from OA_Employee_View where 1=1";</p>
<p>if(strstr($dataQuery,"1,"))<br />{<br />&nbsp; $array1 = explode(",",$dataQuery);<br />&nbsp; $array2 = explode(",",$dataField);<br />&nbsp; $array3 = explode(",",$dataFieldName);</p>
<p>&nbsp; foreach($array1 as $k =&gt; $v)<br />&nbsp; {<br />&nbsp; &nbsp;if($v==1)<br />&nbsp; &nbsp;{<br />&nbsp; &nbsp;&nbsp;$name = $array2[$k];<br />&nbsp; &nbsp;&nbsp;$value = $$name;<br />&nbsp; &nbsp;&nbsp;if($value!="")<br />&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; $query .= " and $name like '%$value%'";<br />&nbsp; &nbsp;}<br />&nbsp; }<br />}<br />&nbsp; $txconn=mssql_connect($MSSQL_TX_SERVER,$MSSQL_TX_USER,$MSSQL_TX_PASS); <br />&nbsp; mssql_select_db($MSSQL_TX_DB,$txconn); <br />&nbsp; if($act=="count")<br />&nbsp; {<br />&nbsp; $cursor = mssql_query($query);<br />&nbsp;if($ROW=mssql_fetch_array($cursor))<br />&nbsp;&nbsp;&nbsp; $COUNT=$ROW[0];<br />&nbsp;echo $COUNT;<br />&nbsp;exit;<br />}</p>
<p>$cursor = mssql_query($query);<br />$COUNT=0;<br />$dataField_arr = explode(",",$dataField);<br />$dataFieldName_arr = explode(",",$dataFieldName);<br />while($ROW=mssql_fetch_array($cursor))<br />{<br />&nbsp; $COUNT++;<br />&nbsp;&nbsp; if($COUNT%2==1)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $TableLine="TableLine1";<br />&nbsp;&nbsp; else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $TableLine="TableLine2";&nbsp;<br />&nbsp;&nbsp; foreach($dataField_arr as $k=&gt; $v)<br />&nbsp;&nbsp; {<br />&nbsp;&nbsp; &nbsp; if($v=="") continue;<br />&nbsp;&nbsp; &nbsp; if($COUNT==1)<br />&nbsp;&nbsp; &nbsp; {<br />&nbsp;&nbsp; &nbsp; &nbsp; if($k==0)<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $thead.='&lt;table class="TableList" align="center" width="90%"&gt;&lt;tr class="TableHeader"&gt;';<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $thead.='&lt;td nowrap align="center"&gt;'.$dataFieldName_arr[$k].'&lt;/td&gt;';<br />&nbsp;&nbsp; &nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp; if($k==0)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $tbody.='&lt;tr class="'.$TableLine.'"&gt;'; <br />&nbsp;&nbsp;&nbsp;&nbsp; $tbody.='&lt;td nowrap align="center"&gt;'.$ROW[$v].'&lt;/td&gt;';<br />&nbsp;&nbsp; }<br />&nbsp;&nbsp; <br />&nbsp;&nbsp; if($COUNT==1) $thead.='&lt;td nowrap align="center"&gt;操作&lt;/td&gt;&lt;/tr&gt;';<br />&nbsp;&nbsp; $tbody.='&lt;td nowrap align="center"&gt; &lt;a href="#" class="orgAdd" onclick="addData(this)"&gt;添加&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;';<br />}<br />$tbody.="&lt;/table&gt;";<br />echo $thead.$tbody;<br /></p><img src ="http://www.blogjava.net/gdufo/aggbug/405786.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdufo/" target="_blank">gdufo</a> 2013-10-30 11:03 <a href="http://www.blogjava.net/gdufo/archive/2013/10/30/405786.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>