<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feed.hashei.me/styles/temp01.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link href="http://feed.hashei.me" type="application/rss+xml" rel="self"></atom:link><fs:self_link href="http://feed.feedsky.com/hashei" type="application/rss+xml"></fs:self_link><lastBuildDate>Tue, 10 Jan 2012 17:59:00 GMT</lastBuildDate><title>聚沙成塔-小哈的记事薄</title><description>一个系统工程师的絮叨</description><image><url>http://www.feedsky.com/feed/hashei/sc/gif</url><title>聚沙成塔-小哈的记事薄</title><link>http://www.hashei.me</link></image><link>http://www.hashei.me</link><sy:updatePeriod>hourly</sy:updatePeriod><sy:updateFrequency>1</sy:updateFrequency><language>en</language><pubDate>Tue, 10 Jan 2012 18:03:42 GMT</pubDate><item><title>人生的必经之路</title><link>http://item.feedsky.com/~feedsky/hashei/~7441427/595355192/4178920/1/item.html</link><content:encoded>&lt;p&gt;今天看了《那些年，我们一起追女孩》，趁着“余音绕梁”，记录一下观后感。&lt;/p&gt;
&lt;p&gt;故事梗概不用再复述，剧情其实很简单，就是九把刀的个人自传，但是一个自传能引起观众的共鸣并叫好——至少我是——是因为他拍出了那些年，我们都曾有过的青春岁月。&lt;/p&gt;
&lt;p&gt;开头的一段，柯景腾被安排坐在沈佳宜前接受“帮教”，这个情节大陆学生也都经历过。不过因为初中阶段我还算一个好学生，属于被老师安排帮教别人的那部分，所以这一段倒也没有什么大的感触。最初产生共鸣的，是沈佳宜扎了马尾辫走过操场，五个男生都觉得沈佳宜对自己有意思的感叹这一情节。虽然有故意制造喜剧的因素在内，但耳边却响起了这么一段歌词“为什么我总觉得你好像其实在注视着我”，明明自己喜欢别人，却觉得别人的一言一行其实是为你做的，这事儿，有过经历的人怕不难体会。之后接着黄舒骏的一首《恋爱症候群》听的人不由会心一笑。&lt;/p&gt;
&lt;blockquote&gt;&lt;li&gt;一般发病後的初期反应会开始改变一些生活习性 &lt;/li&gt;
&lt;li&gt;洗澡洗得特别乾净 刷牙刷得特别用力 半夜突然爬起来弹钢琴 &lt;/li&gt;
&lt;li&gt;有人每天站在阳台对路人傻笑 有人突然疯疯癫癫 突然很安静 &lt;/li&gt;
&lt;li&gt;有人一脸痴呆 对着镜子咬着指甲打喷嚏 有人对着小狗骂三字经 &lt;/li&gt;
&lt;li&gt;女人突然改变发型 男人开始每天练着哑铃 &lt;/li&gt;
&lt;li&gt;食欲不振歇斯底里四肢萎缩神经过敏发抖抽筋都出现在这时期 &lt;/li&gt;
&lt;/blockquote&gt;
&lt;p&gt;如果在这里结束，两人走在一起的话就是童话般美好的故事了，不过这是一篇自传，就注定不会那么一帆风顺。表白未遂的那一段，我觉得很真实。男生平时大大咧咧，脑袋大条一点多的是，可是在喜欢的人面前总是会很敏感“爱一个人常常很小心，仿佛手中捧着水晶”。所以沈佳宜说出“其实我没你想的那么好，也许你只是喜欢想象的我，你好好想想到底喜不喜欢我，都没有好好考虑就回答”的时候，柯景腾疑惑了，“明明站在你的面前，还是害怕这是一场梦”。在戏外的我们心里都在说好傻，这连考验都算不上，就是个试探，抑或说是欲迎还拒。可是那时候的男生哪知道这时要跟上“我喜欢的不是完美的你，而是在家邋遢、有起床气的真实的你”。&lt;/p&gt;
&lt;p&gt;因为彼此都是第一次，所以他们的感情在第一次遇到矛盾的时候就断了，不是心灰意冷的破灭，而是硬生生的断开了。沈佳宜在雨里哭骂大笨蛋的时候，你我都知道“大笨蛋”指的什么，但是自尊心受到打击的柯景腾那时以为的是比幼稚更重的伤害。第一次恋爱是单纯的，所以过于脆弱，没有经历住风雨。沈佳宜和阿和在奶茶店，看到一对闹矛盾的情侣最终拥抱在一起的时候，脸上露出的笑容有羡慕，也有祝福。而柯景腾当然也不会忘了沈佳宜，所以台湾921大地震，第一个想到的就是打给她，当然这时候两人之间更多的是友谊。&lt;/p&gt;
&lt;p&gt;婚礼上，柯景腾心里说出“看到喜欢的女生有人疼爱，心里会是真正的祝福”，故事在这里结束那也算是一个happy ending。可惜导演要把最残酷的一面放给你们看，“如果柯景腾向我表白，我会很高兴的”，“好，在一起”。这两句话不知道看得多少男生会肝肠寸断，心痛不已。所以在平行的另一个世界中，柯景腾蹲在沈佳宜面前，向她道歉“对不起，是我太幼稚了”，地震的时候沈佳宜也在焦急的搜索信号，婚礼上深情相拥的是他们俩，可惜现实不是。&lt;/p&gt;
&lt;p&gt;历史是由一连串的偶然事件组成，这些偶然最后形成一个结果，像蝴蝶扇动的翅膀，这些无法确定的因素共同导致一个结果。无所谓对错，发生了的都叫做必然。而过程当中，任何一项的改变，都可能形成别样的结局。所以初恋失败的人不必痛苦，因为获得了人生中最纯真的经历。而再次投入感情的男女也不用怀疑对方的体贴，动听的话是不是锻炼出来的花言巧语，这是在体会了失去的痛苦后，为了不失去现在的你而做出的改变。联想起前几天看的《失恋33天》，黄小仙说她知道了，她的任性，嘴如尖刀不饶人破坏了陆涛心中的美好形象，以后再也不会了。这种改变应该就是恋爱所得到的经验吧。&lt;/p&gt;
&lt;p&gt;最后从我个人的角度说一下柯景腾那场格斗比赛的意义。从进化心理学的角度分析，一场战斗，是男性的本能，竞争、追求层级。好莱坞的电影中，有多少是关于拳击的？《愤怒的公牛》、《洛奇》、《搏击俱乐部》，女生也许对这项运动无感，但男生肯定是热血沸腾的。从文艺的角度分析，这场战斗是柯景腾实现自己从小的梦想，在心爱的人面前把纸上的李小龙真真切切付诸现实，是一场宣告男孩进化成男人的仪式。所以他说这是对于他十分重要的东西，不过可惜的是仅仅对于他而言。&lt;/p&gt;
&lt;hr /&gt;&lt;small&gt;  Copyright &amp;copy; 2008 This feed is for personal, non-commercial use only&lt;br /&gt;
&lt;a href=www.hashei.com &gt;聚沙成塔-小哈的记事薄&lt;/a&gt; by hashei 
如果喜欢，欢迎订阅&lt;a href=feed.hashei.com &gt;feed.hashei.com&lt;/a&gt;&lt;br /&gt;
Digital Fingerprint:
 10f920a9f2bae51c3c73c4f5fb50a949&lt;/small&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/595355192/hashei/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/hashei/~7441427/595355192/4178920/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://www.hashei.me/2012/01/%e4%ba%ba%e7%94%9f%e7%9a%84%e5%bf%85%e7%bb%8f%e4%b9%8b%e8%b7%af.html/feed</wfw:commentRss><slash:comments>0</slash:comments><description>今天看了《那些年，我们一起追女孩》，趁着“余音绕梁”，记录一下观后感。
故事梗概不用再复述，剧情其实很简单，就是九把刀的个人自传，但是一个自传能引起观众的共鸣并叫好——至少我是——是因为他拍出了那些年，我们都曾有过的青春岁月。
开头的一段，柯景腾被安排坐在沈佳宜前接受“帮教”，这个情节大陆学生也都经历过。不过因为初中阶段我还算一个好学生，属于被老师安排帮教别人的那部分，所以这一段倒也没有什么大的感触。最初产生共鸣的，是沈佳宜扎了马尾辫走过操场，五个男生都觉得沈佳宜对自己有意思的感叹这一情节。虽然有故意制造喜剧的因素在内，但耳边却响起了这么一段歌词“为什么我总觉得你好像其实在注视着我”，明明自己喜欢别人，却觉得别人的一言一行其实是为你做的，这事儿，有过经历的人怕不难体会。之后接着黄舒骏的一首《恋爱症候群》听的人不由会心一笑。
一般发病後的初期反应会开始改变一些生活习性 
洗澡洗得特别乾净 刷牙刷得特别用力 半夜突然爬起来弹钢琴 
有人每天站在阳台对路人傻笑 有人突然疯疯癫癫 突然很安静 
有人一脸痴呆 对着镜子咬着指甲打喷嚏 有人对着小狗骂三字经 
女人突然改变发型 男人开始每天练着哑铃 
食欲不振歇斯底里四肢萎缩神经过敏发抖抽筋都出现在这时期 

如果在这里结束，两人走在一起的话就是童话般美好的故事了，不过这是一篇自传，就注定不会那么一帆风顺。表白未遂的那一段，我觉得很真实。男生平时大大咧咧，脑袋大条一点多的是，可是在喜欢的人面前总是会很敏感“爱一个人常常很小心，仿佛手中捧着水晶”。所以沈佳宜说出“其实我没你想的那么好，也许你只是喜欢想象的我，你好好想想到底喜不喜欢我，都没有好好考虑就回答”的时候，柯景腾疑惑了，“明明站在你的面前，还是害怕这是一场梦”。在戏外的我们心里都在说好傻，这连考验都算不上，就是个试探，抑或说是欲迎还拒。可是那时候的男生哪知道这时要跟上“我喜欢的不是完美的你，而是在家邋遢、有起床气的真实的你”。
因为彼此都是第一次，所以他们的感情在第一次遇到矛盾的时候就断了，不是心灰意冷的破灭，而是硬生生的断开了。沈佳宜在雨里哭骂大笨蛋的时候，你我都知道“大笨蛋”指的什么，但是自尊心受到打击的柯景腾那时以为的是比幼稚更重的伤害。第一次恋爱是单纯的，所以过于脆弱，没有经历住风雨。沈佳宜和阿和在奶茶店，看到一对闹矛盾的情侣最终拥抱在一起的时候，脸上露出的笑容有羡慕，也有祝福。而柯景腾当然也不会忘了沈佳宜，所以台湾921大地震，第一个想到的就是打给她，当然这时候两人之间更多的是友谊。
婚礼上，柯景腾心里说出“看到喜欢的女生有人疼爱，心里会是真正的祝福”，故事在这里结束那也算是一个happy ending。可惜导演要把最残酷的一面放给你们看，“如果柯景腾向我表白，我会很高兴的”，“好，在一起”。这两句话不知道看得多少男生会肝肠寸断，心痛不已。所以在平行的另一个世界中，柯景腾蹲在沈佳宜面前，向她道歉“对不起，是我太幼稚了”，地震的时候沈佳宜也在焦急的搜索信号，婚礼上深情相拥的是他们俩，可惜现实不是。
历史是由一连串的偶然事件组成，这些偶然最后形成一个结果，像蝴蝶扇动的翅膀，这些无法确定的因素共同导致一个结果。无所谓对错，发生了的都叫做必然。而过程当中，任何一项的改变，都可能形成别样的结局。所以初恋失败的人不必痛苦，因为获得了人生中最纯真的经历。而再次投入感情的男女也不用怀疑对方的体贴，动听的话是不是锻炼出来的花言巧语，这是在体会了失去的痛苦后，为了不失去现在的你而做出的改变。联想起前几天看的《失恋33天》，黄小仙说她知道了，她的任性，嘴如尖刀不饶人破坏了陆涛心中的美好形象，以后再也不会了。这种改变应该就是恋爱所得到的经验吧。
最后从我个人的角度说一下柯景腾那场格斗比赛的意义。从进化心理学的角度分析，一场战斗，是男性的本能，竞争、追求层级。好莱坞的电影中，有多少是关于拳击的？《愤怒的公牛》、《洛奇》、《搏击俱乐部》，女生也许对这项运动无感，但男生肯定是热血沸腾的。从文艺的角度分析，这场战斗是柯景腾实现自己从小的梦想，在心爱的人面前把纸上的李小龙真真切切付诸现实，是一场宣告男孩进化成男人的仪式。所以他说这是对于他十分重要的东西，不过可惜的是仅仅对于他而言。
  Copyright &amp;#169; 2008 This feed is for personal, non-commercial use only
聚沙成塔-小哈的记事薄 by hashei 
如果喜欢，欢迎订阅feed.hashei.com
Digital Fingerprint:
 10f920a9f2bae51c3c73c4f5fb50a949&lt;img src=&quot;http://www1.feedsky.com/t1/595355192/hashei/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/hashei/~7441427/595355192/4178920/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>那些年</category><category>生活感想</category><category>沈佳宜</category><pubDate>Wed, 11 Jan 2012 01:59:00 +0800</pubDate><author>hashei</author><comments>http://www.hashei.me/2012/01/%e4%ba%ba%e7%94%9f%e7%9a%84%e5%bf%85%e7%bb%8f%e4%b9%8b%e8%b7%af.html#comments</comments><guid isPermaLink="false">http://www.hashei.me/2012/01/%e4%ba%ba%e7%94%9f%e7%9a%84%e5%bf%85%e7%bb%8f%e4%b9%8b%e8%b7%af.html</guid><dc:creator>hashei</dc:creator><fs:srclink>http://www.hashei.me/2012/01/%e4%ba%ba%e7%94%9f%e7%9a%84%e5%bf%85%e7%bb%8f%e4%b9%8b%e8%b7%af.html</fs:srclink><fs:srcfeed>http://www.hashei.me/feed</fs:srcfeed><fs:itemid>feedsky/hashei/~7441427/595355192/4178920</fs:itemid></item><item><title>tuxedo11g MP 模式配置</title><link>http://item.feedsky.com/~feedsky/hashei/~7441427/595355193/4178920/1/item.html</link><content:encoded>&lt;p&gt;随着一些项目对实时交易处理量和响应时间的要求较高，最近两月接触了交易中间件的安装配置。上一会写了CICS的相关内容，这次整理一下oracle tuxedo的内容。tuxedo 11g在系统架构和基础配置文件上和之前的版本没什么区别。下文内容为整理而得，较中文网络其它的文章，多了多域间网关对的配置，这一点在MP模式下还是较为有用的。&lt;/p&gt;
&lt;h4&gt;Tuxedo架构图&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;http://hashei.me/wp-content/uploads/2011/12/1.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;tuxedo架构图&quot; border=&quot;0&quot; alt=&quot;tuxedo架构图&quot; src=&quot;http://hashei.me/wp-content/uploads/2011/12/1_thumb.png&quot; width=&quot;644&quot; height=&quot;293&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/p&gt;
&lt;p&gt;说明：域（DOMAIN）&lt;/p&gt;
&lt;p&gt;域是具有相同功能或结构的应用系统的集合。应用系统可以有多台服务器组成。Tuxedo的域特性把客户/服务器模型扩展到多个独立自治的应用系统。一个域既可以是一组Tuxedo的应用程序，也可以是一组运行在另一个非Tuxedo环境中的应用程序。Tuxedo的每个域独立完成域内的操作，域间操作由域网关完成。&lt;/p&gt;
&lt;p&gt;比较重要的进程为&lt;/p&gt;
&lt;p&gt;1、BBL(Bulletin Board Liaison)，主要对公告板等进行管理，包含了一个公告牌的本地拷贝和本地服务器上应用的状态。&lt;/p&gt;
&lt;p&gt;Bulletin Board（BB，公告板）：Tuxedo把系统的配置信息保存在一个共享内存中，该共享内存称为公告板。&lt;/p&gt;
&lt;p&gt;2、DBBL(Distinguished Bulletin Board Liaison)，TUXEDO用于多服务器配置各个服务器之间的协调工作，&lt;strong&gt;只有当TUXEDO配置为MP方式时才需要用到DBBL&lt;/strong&gt;。DBBL与BBL协同，保证所有的公告牌内容的一致性。&lt;/p&gt;
&lt;p&gt;3、WSL：WorkStation Listener，Tuxedo系统自带的一个Server，它侦听一个指定的端口，WSC最初与该Server建立连接。&lt;/p&gt;
&lt;p&gt;4、WSH：WorkStation Handler Server ，Tuxedo系统自带的一个Server，由它处理WSC与Tuxedo Server之间的通信。&lt;/p&gt;
&lt;p&gt;5、BRIDGE，不同的服务器之间通过BRIDGE进程进行通讯，该BRIDGE的侦听IP地址及端口 在NADDR中指定。如果是在UNIX下要指定该BRIDGE所用的网络设备，如果是在NT下则不要。&lt;/p&gt;
&lt;p&gt;6、DMADM，域间通信的进程：管理域的server,在运行时管理BDMCONFIG,对已登记的gateway group提供支持,在tuxedo系统中,只能有一个DMADM进程,且不能对它采用MSSQ,不能有REPLYQ&lt;/p&gt;
&lt;p&gt;7、GWADM，管理DOMAIN的域网关进程（在/DOMAIN中是GWTDOMAIN）的SERVER，在运行时可以对某一组域网关（Domain Gateway Group）进行管理。主要从DMADM那里取得域的配置信息,并对域网管进程及跨越域的全局事务的LOG文件进行管理&lt;/p&gt;
&lt;p&gt;8、GWTDOMAIN，处理DOMAIN之间的互操作,使本地域和调用远程域可以互相调用彼此的service,其中GMADM和GWTDOMAIN&lt;strong&gt;必须&lt;/strong&gt;在一个组中,一个tuxedo应用&lt;strong&gt;可以有多个&lt;/strong&gt;GWADM,GWTDOMAIN对,一个组&lt;strong&gt;只能&lt;/strong&gt;有一个GMADM,GWTDOMAIN对,但一个tuxedo应用&lt;strong&gt;只能有&lt;/strong&gt;一个DMADM, DMADM可以在任何一个组中,一个本地域可以和&lt;strong&gt;多个&lt;/strong&gt;远程域实现互操作。&lt;/p&gt;
&lt;p&gt;9、tlisten，是TUXEDO自带的管理程序，在MP模式下，完成主机之间的初始化通讯，如非MASTER机从MASTER机中下载tuxconfig配置文件。&lt;/p&gt;
&lt;p&gt;tlisten的启动办法:tlisten –l //NLSADDR&lt;/p&gt;
&lt;p&gt;以上几点概念清楚后，就可以尝试配置一个简单的tuxedo环境了。&lt;/p&gt;
&lt;p&gt; &lt;span id=&quot;more-1168&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h4&gt;官方的小写变大写例子&lt;/h4&gt;
&lt;div&gt;
&lt;pre&gt;Example:
#       APPDIR=&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;/usr/tuxedo/simpapp&lt;/span&gt;&amp;quot;
#       TUXCONFIG=&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;/usr/tuxedo/simpapp/tuxconfig&lt;/span&gt;&amp;quot;
#       TUXDIR=&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;/usr/tuxedo&lt;/span&gt;&amp;quot;

&amp;lt;machine name&amp;gt; LMID=simple #machine name需要修改为自己的主机名
#Example:
#beatux     LMID=simple
*GROUPS
GROUP1
    LMID=simple GRPNO=1 OPENINFO=NONE
*SERVERS
DEFAULT:
        CLOPT=&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;-A&lt;/span&gt;&amp;quot;
simpserv    SRVGRP=GROUP1 SRVID=1
*SERVICES
TOUPPER&lt;/pre&gt;
&lt;/div&gt;
&lt;h4&gt;配置文件的各个部分&lt;/h4&gt;
&lt;p&gt;1、RESOURCES：设置域范围参数（必须）&lt;/p&gt;
&lt;p&gt;RESOURCES小节是一个必须存在的小节，并且必须是配置文件中的第一个小节。本节包括如下信息：&lt;/p&gt;
&lt;p&gt;• 共享内存的地址（IPCKEY）&lt;br /&gt;
  &lt;br /&gt;• 启动和关闭服务程序的管理点（MASTER） &lt;/p&gt;
&lt;p&gt;• 访问应用的用户控制（UID、GID和PERM） &lt;/p&gt;
&lt;p&gt;• 本应用的安全级别（SECURITY、AUTHSVC） &lt;/p&gt;
&lt;p&gt;• 应用中各进程的IPC限制，服务器进程的数量，以及提供的服务数（MAXACCESSERS、MAXSERVERS、MAXSERVICES） &lt;/p&gt;
&lt;p&gt;• 应用结构（MODEL），表明是单机器应用还是多机器应用 &lt;/p&gt;
&lt;p&gt;• 是否使用服务器负载均衡（LDBAL） &lt;/p&gt;
&lt;p&gt;• 缓冲区类型和子类型的最大数目（MAXBUFTYPE、MAXBUFSTYPE） &lt;/p&gt;
&lt;p&gt;• 公告牌健全扫描（sanity scans）的时间间隔（SCANUNIT、SANITYSCAN） &lt;/p&gt;
&lt;p&gt;• 服务请求的超时值（BLOCKTIME） &lt;/p&gt;
&lt;p&gt;• 并发会话最大数目（MAXCONV） &lt;/p&gt;
&lt;p&gt;• 主动通知方法（NOTIFY、USIGNAL）&lt;/p&gt;
&lt;p&gt;2、MACHINES：配置机器（必须）&lt;/p&gt;
&lt;p&gt;应用中的每个机器必须在配置文件的MACHINES小节中有一个入口项，并且该小节必须是配置文件的第二个小节。MACHINES小节中包含应用中每个机器的如下信息：&lt;/p&gt;
&lt;p&gt;• 机器地址到逻辑标识（LMID）的映射&lt;br /&gt;
  &lt;br /&gt;• 配置文件的位置（TUXCONFIG） &lt;/p&gt;
&lt;p&gt;• BEA TUXEDO软件的安装位置（TUXDIR） &lt;/p&gt;
&lt;p&gt;• 应用服务器的位置（APPDIR） &lt;/p&gt;
&lt;p&gt;• 应用日志文件的位置（ULOGPFX） &lt;/p&gt;
&lt;p&gt;• 环境文件的位置（ENVFILE）&lt;/p&gt;
&lt;p&gt;MACHINES小节中必需的几个参数是LMID、TUXCONFIG、TUXDIR和APPDIR&lt;/p&gt;
&lt;p&gt;3、GROUPS：配置组信息（必须） &lt;/p&gt;
&lt;p&gt;通过GROUPS小节可以指定从逻辑上分组的服务器集，这些服务器组以后可被用来访问资源管理器（resource managers）,并且便于服务器组迁移。配置文件的GROUPS小节包含对服务器组的定义。&lt;strong&gt;你必须为有应用服务器运行其上的机器定义至少一个服务器组&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;对于无事务、非分布式系统，组非常简单，只需定义组名到组号的基本映射及各组的逻辑机器即可。此外还有更多灵活选项以支持分布式的带事务的系统。&lt;/p&gt;
&lt;p&gt;组名是GROUPS小节入口项的基础，它是一个字母数字混合名称，通过它来识别一个组。&lt;strong&gt;一个组必须有一个唯一的组号（GRPNO），并且必须位于一个逻辑机器（LMID）上&lt;/strong&gt;，LMID也是必须的。&lt;/p&gt;
&lt;p&gt;4、SERVERS：配置服务器（可选）&lt;/p&gt;
&lt;p&gt;配置文件的SERVERS小节包含某个服务器进程的信息。虽然本小节并非必需，但是一个配置文件中没有本小节的应用将没有应用服务器，因此将没有实际功能。本小节的每个入口项代表一个要在应用中被启动的服务器进程，包含如下信息：&lt;/p&gt;
&lt;p&gt;• 一个服务器名称、组别以及数字标识（SRVGRP、SRVID）&lt;br /&gt;
  &lt;br /&gt;• 命令行选项（CLOPT） &lt;/p&gt;
&lt;p&gt;• 执行服务器启动顺序和启动个数的参数（SEQUENCE、MIN、MAX） &lt;/p&gt;
&lt;p&gt;• 一个服务器专用的环境文件（ENVFILE） &lt;/p&gt;
&lt;p&gt;• 与服务器队列有关的信息（RQADDR、RQPERM、REPLYQ、RPPERM） &lt;/p&gt;
&lt;p&gt;• 重启动信息（RESTART、RCMD、MAXGEN、GRACE） &lt;/p&gt;
&lt;p&gt;• 服务器被指定为一个会话服务器（CONV） &lt;/p&gt;
&lt;p&gt;• 重载系统范围的共享内存访问设置（SYSTEM_ACCESS）&lt;/p&gt;
&lt;p&gt;5、SERVICES：配置服务（可选）&lt;/p&gt;
&lt;p&gt;通过配置文件中的SERVICES小节可以指定BEA TUXEDO服务的信息。这些信息对于无事务、非分布式应用相对简单。SERVICES小节包含下面一些信息：&lt;br /&gt;
  &lt;br /&gt;• 负载均衡信息（SRVGRP） &lt;/p&gt;
&lt;p&gt;• 给服务赋予优先级 &lt;/p&gt;
&lt;p&gt;• 为不同的服务器组指定不同的服务参数 &lt;/p&gt;
&lt;p&gt;• 缓冲区类型检查信息（BUFTYPE）&lt;/p&gt;
&lt;p&gt;6、ROUTING：配置路由（可选）&lt;/p&gt;
&lt;p&gt;UBBCONFIG文件的ROUTING小节允许对在SERVICES小节中命名的路由标准（routing criteria）进行全面的定义（针对BEA TUXEDO数据依赖性路由）。&lt;/p&gt;
&lt;p&gt;7、NETGROUPS/NETWORK：配置网络信息&lt;/p&gt;
&lt;p&gt;UBBCONFIG文件的NETGROUPS小节描述在在局域网环境下应用可用的网络组。对于网络组的个数没有限制，每个网络组可能被分配一对机器。一个网络组不同网络成员之间采用的通讯方法由优先级机制（NETPRIO）决定。 &lt;/p&gt;
&lt;p&gt;每个LMID都必须是缺省网络组（DEFAULTNET）的成员，这个组的网络组号（即NETGRPNO）必须为零。不过可以更改DEFAULTNET的缺省优先级。&lt;/p&gt;
&lt;p&gt;#NADDR指定网络连接的接入点。 &lt;/p&gt;
&lt;p&gt;#NLSADDR则指定tlisten的接入点。 &lt;/p&gt;
&lt;p&gt;#BRIDGE则指TCP连接所用的设备文件。&lt;/p&gt;
&lt;h4&gt;MP的例子&lt;/h4&gt;
&lt;p&gt;下面这个是实际用到的例子，group、servers、services和GWTDOMAIN都是分布在两台机器上。&lt;/p&gt;
&lt;div&gt;
&lt;pre&gt;#ident	&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;@(#) apps/simpapp/ubbSITE1	$Revision: 1.3 $&lt;/span&gt;&amp;quot;

#Skeleton UBBCONFIG file &lt;span style=&quot;color: #0000ff&quot;&gt;for&lt;/span&gt; the TUXEDO SITE1 Application.
#Replace the &amp;lt;bracketed&amp;gt; items with the appropriate values.

*RESOURCES
IPCKEY		230399

DOMAINID	domainID
MASTER		SITE1,SITE2
MAXACCESSERS 100
MAXSERVERS	60
MAXSERVICES	60
&lt;strong&gt;&lt;font color=&quot;#ff0000&quot;&gt;MODEL		MP&lt;/font&gt;&lt;/strong&gt;
&lt;strong&gt;&lt;font color=&quot;#ff0000&quot;&gt;OPTIONS		LAN&lt;/font&gt;&lt;/strong&gt;
LDBAL		Y

*MACHINES
&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;machine name1&lt;/span&gt;&amp;quot; LMID=SITE1
		APPDIR=&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;C:\installroot&lt;/span&gt;&amp;quot;
		TUXCONFIG=&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;C:\installroot\tuxconfig&lt;/span&gt;&amp;quot;
		TUXDIR=&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;C:\installroot\oracle\tuxedo11gR1&lt;/span&gt;&amp;quot;
		MAXWSCLIENTS=20

&amp;quot;&lt;font color=&quot;#8b0000&quot;&gt;machine name2&lt;/font&gt;&amp;quot; LMID=SITE2
		APPDIR=&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;c:\installroot&lt;/span&gt;&amp;quot;
		TUXCONFIG=&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;c:\installroot\tuxconfig&lt;/span&gt;&amp;quot;
		TUXDIR=&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;C:\installroot\oracle\tuxedo11gR1&lt;/span&gt;&amp;quot;
		MAXWSCLIENTS=20

*NETWORK
SITE1
		NADDR=&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;//IP1:9991&lt;/span&gt;&amp;quot;
		NLSADDR=&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;//IP1:9999&lt;/span&gt;&amp;quot;

SITE2
		NADDR=&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;//IP2:9991&lt;/span&gt;&amp;quot;
		NLSADDR=&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;//IP2:9999&lt;/span&gt;&amp;quot;

*GROUPS
BSGRP1   LMID=SITE1 GRPNO=1
WSGRP1   LMID=SITE1 GRPNO=2
LDMGRP  LMID=SITE1 GRPNO=3
LGWGRP1 LMID=SITE1 GRPNO=4
JSLGRP1  LMID=SITE1 GRPNO = 5
JREPGRP1 LMID=SITE1 GRPNO = 6

BSGRP2   LMID=SITE2 GRPNO=10
WSGRP2   LMID=SITE2 GRPNO=20
LDMGRP2  LMID=SITE2 GRPNO=30
LGWGRP2 LMID=SITE2 GRPNO=40
JSLGRP2  LMID=SITE2 GRPNO = 50
JREPGRP2 LMID=SITE2 GRPNO = 60

*SERVERS
DEFAULT:
		CLOPT=&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;-A&lt;/span&gt;&amp;quot;
yktfront SRVGRP=BSGRP1 SRVID=51
	CLOPT=&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;-A -- -ws C:installroot\wsclient &lt;a href=&quot;http://ip:port/webservice/services/CommWebService&quot;&gt;http://ip:port/webservice/services/CommWebService&lt;/a&gt; -cics WZMIB cicsuser cicsuser&lt;/span&gt;&amp;quot;
		CLOPT=&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;-A&lt;/span&gt;&amp;quot;
yktfront SRVGRP=BSGRP2 SRVID=52
	CLOPT=&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;-A -- -ws c:installroot\wsclient &lt;a href=&quot;http://IP:port/webservice/services/CommWebService&quot;&gt;http://IP:port/webservice/services/CommWebService&lt;/a&gt; -cics WZMIB cicsuser cicsuser&lt;/span&gt;&amp;quot;

WSL
	SRVID=61
	SRVGRP=WSGRP1
	RESTART=Y
	MAXGEN=10
	GRACE=3600
	CLOPT=&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;-A -- -n //IP1:5000 -m 2 -M 10 -x 5 -c 1024 -w WSH&lt;/span&gt;&amp;quot;

WSL
	SRVID=62
	SRVGRP=WSGRP2
	RESTART=Y
	MAXGEN=10
	GRACE=3600
	CLOPT=&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;-A -- -n //IP2:5000 -m 2 -M 10 -x 5 -c 1024 -w WSH&lt;/span&gt;&amp;quot;

JSL SRVGRP=JSLGRP1 SRVID=63 CLOPT=&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;-A -- -n //IP1:6000 -M 10 -x 10 -m 2&lt;/span&gt;&amp;quot;
JREPSVR SRVGRP=JREPGRP1 SRVID=64	CLOPT=&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;-A -- -W -P C:\installroot\jrepository&lt;/span&gt;&amp;quot;	

JSL SRVGRP=JSLGRP2 SRVID=65 CLOPT=&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;-A -- -n //IP2:6000 -M 10 -x 10 -m 2&lt;/span&gt;&amp;quot;
JREPSVR SRVGRP=JREPGRP2 SRVID=66	CLOPT=&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;-A -- &lt;strong&gt;&lt;font color=&quot;#ff0000&quot;&gt;这里没有-W参数&lt;/font&gt;&lt;/strong&gt;-P C:\installroot\jrepository&lt;/span&gt;&amp;quot;

DMADM	SRVGRP=LDMGRP	SRVID=71 REPLYQ=N
GWADM	SRVGRP=LGWGRP1	SRVID=72 REPLYQ=N
GWTDOMAIN SRVGRP=LGWGRP1 SRVID=73 REPLYQ=Y
GWADM	SRVGRP=LGWGRP2	SRVID=75 REPLYQ=N
GWTDOMAIN SRVGRP=LGWGRP2 SRVID=76 REPLYQ=Y

*SERVICES
serviceProduct&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;要点如红色加粗部分，另外DMADM只能有一个，上面概念里也说了。&lt;/p&gt;
&lt;h4&gt;DM config配置&lt;/h4&gt;
&lt;p&gt;要域间调用，还需要DM配置&lt;/p&gt;
&lt;div&gt;
&lt;pre&gt;*DM_LOCAL
#####一般建议将ACCESSPOINTID配置成与前面的名字相同,不是必须的
#####另外,主动连接端建议开启onstartup连接策略
#####为了让两个DOMAIN之间通讯，DOMAIN名字必须一一对应，所以配置时，名字需要全局考虑，避免重名
DOM1	GWGRP=LGWGRP1	TYPE=TDOMAIN	ACCESSPOINTID=&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;DOM1&lt;/span&gt;&amp;quot; BLOCKTIME=30	CONNECTION_POLICY=ON_STARTUP
DOM2	GWGRP=LGWGRP2	TYPE=TDOMAIN	ACCESSPOINTID=&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;DOM2&lt;/span&gt;&amp;quot; BLOCKTIME=30	CONNECTION_POLICY=ON_STARTUP
#############################################################################################

*DM_REMOTE
WZYKT	TYPE=TDOMAIN	DOMAINID=&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;WZYKT&lt;/span&gt;&amp;quot;

*DM_TDOMAIN
YKTDOM73	NWADDR=&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;//IP1:9990&lt;/span&gt;&amp;quot;
YKTDOM74	NWADDR=&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;//IP2:9990&lt;/span&gt;&amp;quot;
WZYKT	NWADDR=&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;//IP REMOTE:9990&lt;/span&gt;&amp;quot; CONNECTION_POLICY=ON_STARTUP

*DM_EXPORT
serviceProduct 	LDOM=DOM1	RNAME=&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;自定义名称，如abc123&lt;/span&gt;&amp;quot;
#####  以下信息必须添加,否则WZYKT只能通过DOM1访问abc123服务  ######
serviceProduct	LDOM=DOM2	RNAME=&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;abc123&lt;/span&gt;&amp;quot;
#########################################################################

*DM_IMPORT
YSCENTER	RDOM=WZYKT LDOM=DOM1 RNAME=&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;YSCENTER&lt;/span&gt;&amp;quot;
#####  以下信息必须添加,否则只有DOM1才能访问到WZYKT上的YSCENTER服务  ######
YSCENTER	RDOM=WZYKT LDOM=DOM2 RNAME=&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;YSCENTER&lt;/span&gt;&amp;quot;
###############################################################################&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h4&gt;编译文件，启动操作&lt;/h4&gt;
&lt;p&gt;在SITE1上执行tmloadcf ubbconfig命令&lt;/p&gt;
&lt;p&gt;在SITE1和2上执行dmloadcf dmconfig命令&lt;/p&gt;
&lt;p&gt;确定SITE1、2上tlisten已经监听9999端口，否则tlisten –l //NLSADDR：port&lt;/p&gt;
&lt;p&gt;确定两个config目录下tlisten.pw里密码相同，否则用tlistenpw命令添加一条&lt;/p&gt;
&lt;h4&gt;最后&lt;/h4&gt;
&lt;p&gt;其它深入部分以后遇到了再写&lt;/p&gt;
&lt;hr /&gt;&lt;small&gt;  Copyright &amp;copy; 2008 This feed is for personal, non-commercial use only&lt;br /&gt;
&lt;a href=www.hashei.com &gt;聚沙成塔-小哈的记事薄&lt;/a&gt; by hashei 
如果喜欢，欢迎订阅&lt;a href=feed.hashei.com &gt;feed.hashei.com&lt;/a&gt;&lt;br /&gt;
Digital Fingerprint:
 10f920a9f2bae51c3c73c4f5fb50a949&lt;/small&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/595355193/hashei/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/hashei/~7441427/595355193/4178920/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://www.hashei.me/2011/12/tuxedo_mp_configuration.html/feed</wfw:commentRss><slash:comments>1</slash:comments><description>随着一些项目对实时交易处理量和响应时间的要求较高，最近两月接触了交易中间件的安装配置。上一会写了CICS的相关内容，这次整理一下oracle tuxedo的内容。tuxedo 11g在系统架构和基础配置文件上和之前的版本没什么区别。下文内容为整理而得，较中文网络其它的文章，多了多域间网关对的配置，这一点在MP模式下还是较为有用的。
Tuxedo架构图


说明：域（DOMAIN）
域是具有相同功能或结构的应用系统的集合。应用系统可以有多台服务器组成。Tuxedo的域特性把客户/服务器模型扩展到多个独立自治的应用系统。一个域既可以是一组Tuxedo的应用程序，也可以是一组运行在另一个非Tuxedo环境中的应用程序。Tuxedo的每个域独立完成域内的操作，域间操作由域网关完成。
比较重要的进程为
1、BBL(Bulletin Board Liaison)，主要对公告板等进行管理，包含了一个公告牌的本地拷贝和本地服务器上应用的状态。
Bulletin Board（BB，公告板）：Tuxedo把系统的配置信息保存在一个共享内存中，该共享内存称为公告板。
2、DBBL(Distinguished Bulletin Board Liaison)，TUXEDO用于多服务器配置各个服务器之间的协调工作，只有当TUXEDO配置为MP方式时才需要用到DBBL。DBBL与BBL协同，保证所有的公告牌内容的一致性。
3、WSL：WorkStation Listener，Tuxedo系统自带的一个Server，它侦听一个指定的端口，WSC最初与该Server建立连接。
4、WSH：WorkStation Handler Server ，Tuxedo系统自带的一个Server，由它处理WSC与Tuxedo Server之间的通信。
5、BRIDGE，不同的服务器之间通过BRIDGE进程进行通讯，该BRIDGE的侦听IP地址及端口 在NADDR中指定。如果是在UNIX下要指定该BRIDGE所用的网络设备，如果是在NT下则不要。
6、DMADM，域间通信的进程：管理域的server,在运行时管理BDMCONFIG,对已登记的gateway group提供支持,在tuxedo系统中,只能有一个DMADM进程,且不能对它采用MSSQ,不能有REPLYQ
7、GWADM，管理DOMAIN的域网关进程（在/DOMAIN中是GWTDOMAIN）的SERVER，在运行时可以对某一组域网关（Domain Gateway Group）进行管理。主要从DMADM那里取得域的配置信息,并对域网管进程及跨越域的全局事务的LOG文件进行管理
8、GWTDOMAIN，处理DOMAIN之间的互操作,使本地域和调用远程域可以互相调用彼此的service,其中GMADM和GWTDOMAIN必须在一个组中,一个tuxedo应用可以有多个GWADM,GWTDOMAIN对,一个组只能有一个GMADM,GWTDOMAIN对,但一个tuxedo应用只能有一个DMADM, DMADM可以在任何一个组中,一个本地域可以和多个远程域实现互操作。
9、tlisten，是TUXEDO自带的管理程序，在MP模式下，完成主机之间的初始化通讯，如非MASTER机从MASTER机中下载tuxconfig配置文件。
tlisten的启动办法:tlisten –l //NLSADDR
以上几点概念清楚后，就可以尝试配置一个简单的tuxedo环境了。
 
官方的小写变大写例子

Example:
#       APPDIR=&amp;#34;/usr/tuxedo/simpapp&amp;#34;
#       TUXCONFIG=&amp;#34;/usr/tuxedo/simpapp/tuxconfig&amp;#34;
#       TUXDIR=&amp;#34;/usr/tuxedo&amp;#34;

&amp;#60;machine name&amp;#62; LMID=simple #machine name需要修改为自己的主机名
#Example:
#beatux     LMID=simple
*GROUPS
GROUP1
    [...]&lt;img src=&quot;http://www1.feedsky.com/t1/595355193/hashei/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/hashei/~7441427/595355193/4178920/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>tuxedo</category><pubDate>Sun, 04 Dec 2011 23:34:00 +0800</pubDate><author>hashei</author><comments>http://www.hashei.me/2011/12/tuxedo_mp_configuration.html#comments</comments><guid isPermaLink="false">http://www.hashei.me/2011/12/tuxedo_mp_configuration.html</guid><dc:creator>hashei</dc:creator><fs:srclink>http://www.hashei.me/2011/12/tuxedo_mp_configuration.html</fs:srclink><fs:srcfeed>http://www.hashei.me/feed</fs:srcfeed><fs:itemid>feedsky/hashei/~7441427/595355193/4178920</fs:itemid></item><item><title>理智与情感（一）</title><link>http://item.feedsky.com/~feedsky/hashei/~7441427/595355194/4178920/1/item.html</link><content:encoded>&lt;p&gt;这个月更新的文章还不少，不过第一篇是10年，这两篇是11年，希望下一篇不要是在方舟上更新的。&lt;/p&gt;
&lt;p&gt;我标题写《理智与情感》，当然不是要向Jane Austen叫板，而是最近几年的人生经历让我感悟到：我们人生所有的烦恼乃至痛苦，都来自于一种矛盾——在需要理智的时候感性，而在需要情感的时候却理性过度。&lt;/p&gt;
&lt;p&gt;首先澄清一点，本人85年生，写人生感悟并不是因为老气横秋，而是因为直到暮年才有自己的心得或许对得起子孙，却断然对不住自己。而他人只能给一些客套的赞美与廉价的鼓励，与大多数困难障碍相比，它们都更加凶险。所以我要在年轻的时候给自己定一个准则，哪怕选了一条充满荆棘的路，也好过原地兜圈子。&lt;/p&gt;
&lt;p&gt;在做一些影响久远的决策前，我们总是显得轻率。我在之前的一篇博客里提到过，我们选择专业、选择职业，很大程度上受当时社会潮流的影响，为了“&lt;a href=&quot;http://www.hashei.me/2010/08/three_idiots.html&quot; target=&quot;_blank&quot;&gt;从这5年后，当你看到你的朋友买车买房时不会诅咒自己&lt;/a&gt;。”。可是拉长到几十年来看，一时的潮流犹如昙花一现。上世纪六七十年代工人最光荣，哪想九十年代成了需要哪里跌倒哪里站起的一批人。八十年代改革春风带起的个体户、乡镇经济，九十年代在港商台商和私营经济的冲击之下，每况愈下，纷纷破产。而那时风光的私营企业，如今不得不面对日益沉重的税收和垄断国企的咄咄逼进。现在毕业生挤破头都想进去的公务员，我小时候看的《故事会》里，总要面对工资打白条的窘境。如果说之前的时代是因为缺乏选择，所以一辈人不得不荣辱与共，那么现在这个选择多元化的日子里，选择一个适合自己的工作就很必要了。而这个需要理智思考的过程，却退位让给了感性选择。&lt;/p&gt;
&lt;p&gt;当今年轻人，除了工作，关心的话题之一必然有房产。无房不成家也好，有房只不过是七十年的租期也罢，你不想关心这个话题，父母、朋友、新闻会把你硬拽进来，最近因为房价下跌而砸开发商售楼部的报道可谓一场悲喜剧。不过这个问题，经历过大风大浪的美国人早就总结给你了——房产买好了是资产，买遭了是负债。就近的香港市场来说，也已历经三次大起大落。所以除非你富二代，除非你是颜回能居陋巷而不改其乐，用房产让自己财富增长是个跨越不过去的难题。可是有多少姻缘因为房产的原因而拆散，又有多少夫妻在坚硬的钢筋水泥的城市里扎不下根来？这是理性让位感性的第二个例子。&lt;/p&gt;
&lt;p&gt;第三个例子，是父母一辈时常叮嘱的“莫谈国事”，可是梁漱溟老生前曾说“中国人是公事没人管，私事人人都来管。只有不知自己自由的人，才会不知道尊重别人的自由；只有不知自己的自由也不知别人自由的人，才会完全冷漠于公干，热衷于私涉。大多数人都懂得并珍视自己的自由时，一个社会才会有宪政制度，有民主政治，有自由与共和精神。”现在网上种种恶性事件，你不去关心，将来总会落到你身边，丧钟是为你我而鸣。但是如何关心又是个大问题，是像《乌合之众》里描写的大众的非理性幻想和群众性癫狂那样，还是独立于大众之外，基于批判性思维来理解和分析？“思想因浅薄而确定，确定导致了专制；思想因深刻而怀疑，怀疑导致了民主”，可惜我也时常因为冲动而放弃了怀疑精神，以致事后看来像个大傻瓜。&lt;/p&gt;
&lt;p&gt;说到冲动，那我时常又嫌自己做的不够，总是差一点不反顾的勇气，让我始终做不成想做的那个自己。面对生活和感情，总是用过于理智的声音来为自己的不作为而开脱。诚然感情不是一帆风顺的，但是担心未曾发生的事不得不令人怀疑是性格悲观还是缺乏自信了。这是感性让位理性的例子。&lt;/p&gt;
&lt;p&gt;如上种种的左右大脑错位，导致了生活中的迷茫、困惑，又进而衍生出了不安全感。所谓不安全感，在我看来就是缺乏确定性。我们在一个陌生的地点，不知道这是哪里、举目无亲、不知道怎么回到自己熟悉的地方，会十分害怕。同理在人生的道路上，不知道过去的日子是怎么过去的，不知道现在在做什么，不清楚将来会怎么样，就产生了极大的不安全感。&lt;/p&gt;
&lt;p&gt;以上唠叨了那么多是为什么要写《理智与情感》，对这些问题的解答其实很简单，要找到自己的准则，也就是形成自己的人生观、价值观。你肯定想这不是说了等于没说么？我们成长过程中确实是会灌很多心灵鸡汤，学校、家庭也灌输了很多，但是这些都没有经过自己的思考，有些还是互相矛盾的，有些知道不错但做起来十分痛苦。所以唯有坦然的面对自己，和心灵对话，找到适合自己的，逻辑自洽的三观。&lt;/p&gt;
&lt;p&gt;这个话题会是一个长篇，接下来几篇会详细写写我总结的思考。这篇的最后附上雨果的一段话，也是我所希望达到的境界：生活，就是理解。生活，就是面对现实微笑，就是越过障碍注视将来。生活，就是自身有一架天平，在那上面衡量善恶。生活，就是有正义感，有真理，有理智，就是忠矢不渝、诚实不欺、表里如一、心智纯正、并对权利义务同等重视。生活，就是知道自己的价值、自己所能做到的与自己应该做到的。&lt;/p&gt;
&lt;hr /&gt;&lt;small&gt;  Copyright &amp;copy; 2008 This feed is for personal, non-commercial use only&lt;br /&gt;
&lt;a href=www.hashei.com &gt;聚沙成塔-小哈的记事薄&lt;/a&gt; by hashei 
如果喜欢，欢迎订阅&lt;a href=feed.hashei.com &gt;feed.hashei.com&lt;/a&gt;&lt;br /&gt;
Digital Fingerprint:
 10f920a9f2bae51c3c73c4f5fb50a949&lt;/small&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/595355194/hashei/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/hashei/~7441427/595355194/4178920/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://www.hashei.me/2011/11/sense_and_sensibility_one.html/feed</wfw:commentRss><slash:comments>1</slash:comments><description>这个月更新的文章还不少，不过第一篇是10年，这两篇是11年，希望下一篇不要是在方舟上更新的。
我标题写《理智与情感》，当然不是要向Jane Austen叫板，而是最近几年的人生经历让我感悟到：我们人生所有的烦恼乃至痛苦，都来自于一种矛盾——在需要理智的时候感性，而在需要情感的时候却理性过度。
首先澄清一点，本人85年生，写人生感悟并不是因为老气横秋，而是因为直到暮年才有自己的心得或许对得起子孙，却断然对不住自己。而他人只能给一些客套的赞美与廉价的鼓励，与大多数困难障碍相比，它们都更加凶险。所以我要在年轻的时候给自己定一个准则，哪怕选了一条充满荆棘的路，也好过原地兜圈子。
在做一些影响久远的决策前，我们总是显得轻率。我在之前的一篇博客里提到过，我们选择专业、选择职业，很大程度上受当时社会潮流的影响，为了“从这5年后，当你看到你的朋友买车买房时不会诅咒自己。”。可是拉长到几十年来看，一时的潮流犹如昙花一现。上世纪六七十年代工人最光荣，哪想九十年代成了需要哪里跌倒哪里站起的一批人。八十年代改革春风带起的个体户、乡镇经济，九十年代在港商台商和私营经济的冲击之下，每况愈下，纷纷破产。而那时风光的私营企业，如今不得不面对日益沉重的税收和垄断国企的咄咄逼进。现在毕业生挤破头都想进去的公务员，我小时候看的《故事会》里，总要面对工资打白条的窘境。如果说之前的时代是因为缺乏选择，所以一辈人不得不荣辱与共，那么现在这个选择多元化的日子里，选择一个适合自己的工作就很必要了。而这个需要理智思考的过程，却退位让给了感性选择。
当今年轻人，除了工作，关心的话题之一必然有房产。无房不成家也好，有房只不过是七十年的租期也罢，你不想关心这个话题，父母、朋友、新闻会把你硬拽进来，最近因为房价下跌而砸开发商售楼部的报道可谓一场悲喜剧。不过这个问题，经历过大风大浪的美国人早就总结给你了——房产买好了是资产，买遭了是负债。就近的香港市场来说，也已历经三次大起大落。所以除非你富二代，除非你是颜回能居陋巷而不改其乐，用房产让自己财富增长是个跨越不过去的难题。可是有多少姻缘因为房产的原因而拆散，又有多少夫妻在坚硬的钢筋水泥的城市里扎不下根来？这是理性让位感性的第二个例子。
第三个例子，是父母一辈时常叮嘱的“莫谈国事”，可是梁漱溟老生前曾说“中国人是公事没人管，私事人人都来管。只有不知自己自由的人，才会不知道尊重别人的自由；只有不知自己的自由也不知别人自由的人，才会完全冷漠于公干，热衷于私涉。大多数人都懂得并珍视自己的自由时，一个社会才会有宪政制度，有民主政治，有自由与共和精神。”现在网上种种恶性事件，你不去关心，将来总会落到你身边，丧钟是为你我而鸣。但是如何关心又是个大问题，是像《乌合之众》里描写的大众的非理性幻想和群众性癫狂那样，还是独立于大众之外，基于批判性思维来理解和分析？“思想因浅薄而确定，确定导致了专制；思想因深刻而怀疑，怀疑导致了民主”，可惜我也时常因为冲动而放弃了怀疑精神，以致事后看来像个大傻瓜。
说到冲动，那我时常又嫌自己做的不够，总是差一点不反顾的勇气，让我始终做不成想做的那个自己。面对生活和感情，总是用过于理智的声音来为自己的不作为而开脱。诚然感情不是一帆风顺的，但是担心未曾发生的事不得不令人怀疑是性格悲观还是缺乏自信了。这是感性让位理性的例子。
如上种种的左右大脑错位，导致了生活中的迷茫、困惑，又进而衍生出了不安全感。所谓不安全感，在我看来就是缺乏确定性。我们在一个陌生的地点，不知道这是哪里、举目无亲、不知道怎么回到自己熟悉的地方，会十分害怕。同理在人生的道路上，不知道过去的日子是怎么过去的，不知道现在在做什么，不清楚将来会怎么样，就产生了极大的不安全感。
以上唠叨了那么多是为什么要写《理智与情感》，对这些问题的解答其实很简单，要找到自己的准则，也就是形成自己的人生观、价值观。你肯定想这不是说了等于没说么？我们成长过程中确实是会灌很多心灵鸡汤，学校、家庭也灌输了很多，但是这些都没有经过自己的思考，有些还是互相矛盾的，有些知道不错但做起来十分痛苦。所以唯有坦然的面对自己，和心灵对话，找到适合自己的，逻辑自洽的三观。
这个话题会是一个长篇，接下来几篇会详细写写我总结的思考。这篇的最后附上雨果的一段话，也是我所希望达到的境界：生活，就是理解。生活，就是面对现实微笑，就是越过障碍注视将来。生活，就是自身有一架天平，在那上面衡量善恶。生活，就是有正义感，有真理，有理智，就是忠矢不渝、诚实不欺、表里如一、心智纯正、并对权利义务同等重视。生活，就是知道自己的价值、自己所能做到的与自己应该做到的。
  Copyright &amp;#169; 2008 This feed is for personal, non-commercial use only
聚沙成塔-小哈的记事薄 by hashei 
如果喜欢，欢迎订阅feed.hashei.com
Digital Fingerprint:
 10f920a9f2bae51c3c73c4f5fb50a949&lt;img src=&quot;http://www1.feedsky.com/t1/595355194/hashei/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/hashei/~7441427/595355194/4178920/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>生活感想</category><category>理智与情感</category><pubDate>Mon, 14 Nov 2011 23:37:00 +0800</pubDate><author>hashei</author><comments>http://www.hashei.me/2011/11/sense_and_sensibility_one.html#comments</comments><guid isPermaLink="false">http://www.hashei.me/2011/11/sense_and_sensibility_one.html</guid><dc:creator>hashei</dc:creator><fs:srclink>http://www.hashei.me/2011/11/sense_and_sensibility_one.html</fs:srclink><fs:srcfeed>http://www.hashei.me/feed</fs:srcfeed><fs:itemid>feedsky/hashei/~7441427/595355194/4178920</fs:itemid></item><item><title>CICS7.1安装与配置步骤</title><link>http://item.feedsky.com/~feedsky/hashei/~7441427/595355195/4178920/1/item.html</link><content:encoded>&lt;p&gt;今年国庆扬州之行在AIX6上安装CICS7.1，耗费一周精力仍旧错误百出，最后依靠这篇步骤完成成功。贴出来让有需要的人也少走弯路吧&lt;/p&gt;
&lt;p&gt;1. 安装环境&lt;/p&gt;
&lt;p&gt;主机：&lt;/p&gt;
&lt;p&gt;操作系统：AIX6100-06-01-1043，使用异步IO(无需设定，系统自动)&lt;/p&gt;
&lt;p&gt;数据库：Oracle11.2.0.2（单机版本），安装constant client 32bit（复制为lib32目录）&lt;/p&gt;
&lt;p&gt;编译器：XLC10.1&lt;/p&gt;
&lt;p&gt;2. 创建cics、cicsterm和cicssm组，创建cics用户和cicssm用户添加至cics（primary group）、cicsterm和cicssm组，采用本地认证，Soft FILE size核soft CORE file size的参数值设置-1（unlimited）。&lt;/p&gt;
&lt;p&gt;3. 如果数据库是Oracle10.2.0.1，则执行这个步骤：将root用户和cics用户添加到dba组。Oracle10.2.0.1安装完成后安装目录下的子目录的属性大都为750，库文件属性为640，导致cics用户无法访问Oracle的库文件。并且这些目录文件的属性和用户的umask设置没有关系。&lt;/p&gt;
&lt;p&gt;4. 创建/var/cics_servers、/var/cics_regions文件系统并且mount，修改属性为cics:cics。&lt;/p&gt;
&lt;p&gt;5. 将root添加至cics与cicsterm组并且是组的管理员，并将环境变量加入其profile文件（程序安装时自动添加到/etc/profile文件）。&lt;/p&gt;
&lt;p&gt;export LANG=en_US&lt;/p&gt;
&lt;p&gt;export PATH=$PATH:/usr/lpp/cics/bin:/usr/lpp/cicssm/bin&lt;/p&gt;
&lt;p&gt;export LIBPATH=$LIBPATH:/usr/lpp/cics/lib:/usr/lpp/cicssm/lib&lt;/p&gt;
&lt;p&gt;export NLSPATH=/usr/lpp/cics/msg/%L/%N:/usr/lpp/cics/msg/C/%N:/usr/lpp/cicssm/msg/en_US/%N:/usr/lib/nls/msg/%L/%N&lt;/p&gt;
&lt;p&gt;6. 安装gsk（在CICS光盘的/gskit/gskta.rte）&lt;/p&gt;
&lt;p&gt;7. 安装CICS，执行./TXSeriesV71-AIX.bin -i console&lt;/p&gt;
&lt;p&gt;ü 选择安装时的语言环境&lt;/p&gt;
&lt;p&gt;ü “产品简介”&lt;/p&gt;
&lt;p&gt;ü 如果已经安装了6.X版本，确认升级到7.1版本&lt;/p&gt;
&lt;p&gt;ü 接受软件协议，开始安装。确认/usr文件系统有足够的空间&lt;/p&gt;
&lt;p&gt;ü 安装完成后可以选择察看“安装选择摘要”，确认安装&lt;/p&gt;
&lt;p&gt;ü 安装完成后，可以选择察看readme文件以及安装日志（install_location/logs）。如果安装失败，在/tmp中创建日志文件&lt;/p&gt;
&lt;p&gt;ü 不创建缺省的CICS region以及SFS server&lt;/p&gt;
&lt;p&gt;8. 安装CICS7.1.0.2升级补丁，方法和安装CICS7.1类似。&lt;/p&gt;
&lt;p&gt;9. 创建SFS_SERV用户，并添加至cics、cicsterm和cicssm组。这个用户名称是系统保留的SFS服务器的short name，SFS服务器根据short name名称定位使用的SFS存储。&lt;/p&gt;
&lt;p&gt;10. 创建sfs_SFS_SERV与log_SFS_SERV逻辑卷（注：SFS服务器数据卷与日志卷名的格式为sfs_&lt;i&gt;sfsUserName&lt;/i&gt;、log_&lt;i&gt; sfsUserName&lt;/i&gt;，其中sfsUserName为前面步骤创建的用户名），并输入&lt;b&gt;chown &lt;/b&gt;SFS_SERV&lt;b&gt;:cics /dev/*sfs_&lt;/b&gt;SFS_SERV&lt;b&gt; /dev/*log_&lt;/b&gt;SFS_SERV命令更改其属主。sfs_&lt;i&gt;sfsUserName&lt;/i&gt;和log_&lt;i&gt; sfsUserName&lt;/i&gt;大小为1G。&lt;/p&gt;
&lt;p&gt;11. 输入&lt;b&gt;/usr/lpp/cics/bin/cicsdefaultservers&lt;/b&gt;命令自动创建缺省的SFS服务器资源定义文件。&lt;/p&gt;
&lt;p&gt;12. 输入&lt;b&gt;cicssfscreate -v /.:/cics/sfs/&lt;i&gt;sfsServerName&lt;/i&gt;&lt;/b&gt;，并将前面步骤创建的SFS_SERV用户的Home目录更改为/var/cics_servers/SSD/cics/sfs/&lt;i&gt;sfsServerName&lt;/i&gt;，其中sfsServerName为本步中所创建的SFS服务器名。&lt;/p&gt;
&lt;p&gt;13. 输入&lt;b&gt;/usr/lpp/cics/bin/cicssfs –v /.:/cics/sfs/&lt;i&gt;sfsServerName&lt;/i&gt; StartType=cold&lt;/b&gt;命令冷启动SFS Server，并输入&lt;b&gt;/usr/lpp/cics/bin/sfsadmin list lvols -server /.:/cics/sfs/&lt;i&gt;sfsServerName&lt;/i&gt;&lt;/b&gt;命令来验证SFS Server是否已正确启动。如果SFS Server正常运行，那么命令输出将显示为SFS创建的数据卷的名称。如果要重建SFS Server，先停止原来的服务再删除。冷启动SFS会消除在SFS数据逻辑卷上的文件。&lt;/p&gt;
&lt;p&gt;14. 通过&lt;b&gt;cicsdefault -r &lt;i&gt;cicsRegionName&lt;/i&gt;&lt;/b&gt;命令创建CICS Region。如果是重建的话，首先通过ps –ef | grep cics找到所有的遗留进程，杀死这些遗留进程后再执行。&lt;/p&gt;
&lt;p&gt;15. 输入&lt;b&gt;/usr/lpp/cics/bin/cicsupdate -c rd -r &lt;i&gt;cicsRegionName&lt;/i&gt; DefaultFileServer=/.:/cics/sfs/&lt;i&gt;sfsServerName&lt;/i&gt;&lt;/b&gt;命令，将CICS Region的 DefaultFileServer 属性更改为 SFS Server的全限定名。&lt;/p&gt;
&lt;p&gt;16. 输入&lt;b&gt;cicsadd –c ld –r &lt;i&gt;cicsRegionName&lt;/i&gt; &lt;i&gt;LDName&lt;/i&gt; TCPService=’&lt;i&gt;serviceNa&lt;/i&gt;’&lt;/b&gt;命令添加配置一个新的LD，并在/etc/services文件中增加相应servieName的设置，只要增加TCP端口，缺省为1435。&lt;/p&gt;
&lt;p&gt;17. 创建Switch Load File，配置XAD，连接数据库。&lt;/p&gt;
&lt;p&gt;ü 保证已安装支持版本的C编译器&lt;/p&gt;
&lt;p&gt;ü 保证已安装Oracle客户端与proc编译器&lt;/p&gt;
&lt;p&gt;ü 保证操作系统中已设置ORACLE_HOME（对应于本地客户端软件）环境变量的值，并已完成TNS的配置，可通过sqlplus连接至Oracle数据库；&lt;/p&gt;
&lt;p&gt;ü 将/usr/lpp/cics/examples/RM_support/Oracle下的oracle1pc.pc与oracle1pc.mk文件复制至/var/cics_regions/&lt;i&gt;cicsRegionName&lt;/i&gt;/bin目录下；&lt;/p&gt;
&lt;p&gt;ü 在该目录下根据Oracle版本通过&lt;b&gt;make –f oracle1pc.mk &lt;i&gt;oracleversion&lt;/i&gt;&lt;/b&gt;命令生成和数据库的链接程序（Swith Load File）——oracle1pc。&lt;/p&gt;
&lt;p&gt;ü 输入&lt;b&gt;cicsadd –c xad –r &lt;i&gt;cicsRegionName&lt;/i&gt; &lt;i&gt;XADName&lt;/i&gt; SwitchLoadFile=’&lt;i&gt;fileName&lt;/i&gt;’ XAOpen=’Oracle_XA+Acc=P/&lt;i&gt;oracleUserName&lt;/i&gt;/&lt;i&gt;oracleUserPassword&lt;/i&gt;+SqlNet=&lt;i&gt;oracleTNSName&lt;/i&gt;+SesTm=35+LogDir=/tmp+DbgFl=1’&lt;/b&gt;命令添加配置一个新的XAD。&lt;/p&gt;
&lt;p&gt;ü 赋予用户权限，grant select on dba_pending_transactions to &lt;i&gt;oracleUserName&lt;/i&gt;;&lt;/p&gt;
&lt;p&gt;18. 在/var/cics_regions/&lt;i&gt;cicsRegionName&lt;/i&gt;&lt;b&gt;/&lt;/b&gt;environment文件中，根据数据库的配置情况设置ORACLE_SID（对应于目标数据库）、ORACLE_HOME（对应于本地客户端软件）、NLS_LANG环境变量的值，也可以设置CICS_XP_RECV_TIMEOUT的值。&lt;/p&gt;
&lt;p&gt;19. 通过&lt;b&gt;/usr/lpp/cics/bin/cicscp –v start region &lt;i&gt;cicsRegionName&lt;/i&gt; StartType=cold&lt;/b&gt;命令冷启动Region，并通过&lt;b&gt;/usr/lpp/cics/bin/cicstail –r &lt;i&gt;cicsRegionName&lt;/i&gt;&lt;/b&gt;命令来验证CICS是否已成功启动。&lt;/p&gt;
&lt;p&gt;20. 一些命令&lt;/p&gt;
&lt;p&gt;mkgroup -&amp;#8217;A&amp;#8217; id=&amp;#8217;400&amp;#8242; cics&lt;/p&gt;
&lt;p&gt;mkgroup -&amp;#8217;A&amp;#8217; id=&amp;#8217;401&amp;#8242; cicsterm&lt;/p&gt;
&lt;p&gt;mkgroup -&amp;#8217;A&amp;#8217; id=&amp;#8217;402&amp;#8242; cicssm&lt;/p&gt;
&lt;p&gt;mkuser id=&amp;#8217;400&amp;#8242; pgrp=&amp;#8217;cics&amp;#8217; groups=&amp;#8217;cicsterm,cicssm&amp;#8217; cics&lt;/p&gt;
&lt;p&gt;mkuser id=&amp;#8217;401&amp;#8242; pgrp=&amp;#8217;cics&amp;#8217; groups=&amp;#8217;cicsterm,cicssm&amp;#8217; cicssm&lt;/p&gt;
&lt;p&gt;chuser fsize=&amp;#8217;-1&amp;#8242; core=&amp;#8217;-1&amp;#8242; cics&lt;/p&gt;
&lt;p&gt;chuser fsize=&amp;#8217;-1&amp;#8242; core=&amp;#8217;-1&amp;#8242; cicssm&lt;/p&gt;
&lt;p&gt;chgroup users=&amp;#8217;oracle,root,cics&amp;#8217; dba&lt;/p&gt;
&lt;p&gt;mklv -t jfs2 -y lvcicssfs -c 2 rootvg 8&lt;/p&gt;
&lt;p&gt;mklv -t jfs2 -y lvcicsreg -c 2 rootvg 8&lt;/p&gt;
&lt;p&gt;crfs -v jfs2 -d&amp;#8217;lvcicssfs&amp;#8217; -m&amp;#8217;/var/cics_servers&amp;#8217; -A yes -p rw -a agblksize=&amp;#8217;4096&amp;#8242;&lt;/p&gt;
&lt;p&gt;crfs -v jfs2 -d&amp;#8217;lvcicsreg&amp;#8217; -m&amp;#8217;/var/cics_regions&amp;#8217; -A yes -p rw -a agblksize=&amp;#8217;4096&amp;#8242;&lt;/p&gt;
&lt;p&gt;mount /var/cics_servers&lt;/p&gt;
&lt;p&gt;mount /var/cics_regions&lt;/p&gt;
&lt;p&gt;df -k &lt;/p&gt;
&lt;p&gt;chown cics:cics /var/cics_servers&lt;/p&gt;
&lt;p&gt;chown cics:cics /var/cics_regions&lt;/p&gt;
&lt;p&gt;chgroup users=&amp;#8217;cics,cicssm,root&amp;#8217; cics &lt;/p&gt;
&lt;p&gt;chgroup users=&amp;#8217;cics,cicssm,root&amp;#8217; cicsterm&lt;/p&gt;
&lt;p&gt;export LANG=en_US&lt;/p&gt;
&lt;p&gt;export PATH=$PATH:/usr/lpp/cics/bin:/usr/lpp/cicssm/bin&lt;/p&gt;
&lt;p&gt;export LIBPATH=$LIBPATH:/usr/lpp/cics/lib:/usr/lpp/cicssm/lib&lt;/p&gt;
&lt;p&gt;export NLSPATH=/usr/lpp/cics/msg/%L/%N:/usr/lpp/cics/msg/C/%N:/usr/lpp/cicssm/msg/en_US/%N:/usr/lib/nls/msg/%L/%N&lt;/p&gt;
&lt;p&gt;export PATH=$PATH:/usr/vac/bin:/usr/vacpp/bin&lt;/p&gt;
&lt;p&gt;mkuser id=&amp;#8217;402&amp;#8242; pgrp=&amp;#8217;cics&amp;#8217; groups=&amp;#8217;cicsterm,cicssm&amp;#8217; SFS_SERV&lt;/p&gt;
&lt;p&gt;mklv -t raw -y sfs_SFS_SERV -c 2 rootvg 8&lt;/p&gt;
&lt;p&gt;mklv -t raw -y log_SFS_SERV -c 2 rootvg 8&lt;/p&gt;
&lt;p&gt;chown SFS_SERV:cics /dev/*sfs_SFS_SERV /dev/*log_SFS_SERV&lt;/p&gt;
&lt;p&gt;/usr/lpp/cics/bin/cicsdefaultservers&lt;/p&gt;
&lt;p&gt;cicssfscreate -v /.:/cics/sfs/&lt;i&gt;sfsServerName&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;chuser home=&amp;#8217;/var/cics_servers/SSD/cics/sfs/&lt;i&gt;sfsServerName&lt;/i&gt;&amp;#8216; SFS_SERV&lt;/p&gt;
&lt;p&gt;chown SFS_SERV:cics /var/cics_servers/SSD/cics/sfs/&lt;i&gt;sfsServerName&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;/usr/lpp/cics/bin/cicssfs -v /.:/cics/sfs/&lt;i&gt;sfsServerName&lt;/i&gt; StartType=cold&lt;/p&gt;
&lt;p&gt;/usr/lpp/encina/bin/sfsadmin list lvols -server /.:/cics/sfs/&lt;i&gt;sfsServerName&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;cicsdefault -r test&lt;/p&gt;
&lt;p&gt;cicsupdate -c rd -r test DefaultFileServer=/.:/cics/sfs/&lt;i&gt;sfsServerName&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;cicsadd -c ld -r test ldtest TCPService=&amp;#8217;ldtest&amp;#8217;&lt;/p&gt;
&lt;hr /&gt;&lt;h2&gt;Related posts:&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://www.hashei.me/2009/04/patch-install-for-was.html&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link: Websphere入门篇（二）-为WAS打上补丁&quot;&gt;Websphere入门篇（二）-为WAS打上补丁&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.hashei.me/2009/08/cr370915_in_weblogic10-3_and_jdk1-6.html&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link: Weblogic10.3.0在AIX6.1、JDK1.6下挂起解决方法&quot;&gt;Weblogic10.3.0在AIX6.1、JDK1.6下挂起解决方法&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.hashei.me/2009/08/install-weblogic-as-service-and-recovery-password.html&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link: 注册Weblogic9为Windows服务及外一篇&quot;&gt;注册Weblogic9为Windows服务及外一篇&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.hashei.me/2009/12/ibm_support_newsletter_for_websphere_application_server_1219.html&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link: IBM WebSphere最新技术支持信息&quot;&gt;IBM WebSphere最新技术支持信息&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.hashei.me/2009/11/install_db2v9-1.html&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link: AIX环境下安装DB2 9.1及Inforsphere information integrator&quot;&gt;AIX环境下安装DB2 9.1及Inforsphere information integrator&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr /&gt;&lt;small&gt;  Copyright &amp;copy; 2008 This feed is for personal, non-commercial use only&lt;br /&gt;
&lt;a href=www.hashei.com &gt;聚沙成塔-小哈的记事薄&lt;/a&gt; by hashei 
如果喜欢，欢迎订阅&lt;a href=feed.hashei.com &gt;feed.hashei.com&lt;/a&gt;&lt;br /&gt;
Digital Fingerprint:
 10f920a9f2bae51c3c73c4f5fb50a949&lt;/small&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/595355195/hashei/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/hashei/~7441427/595355195/4178920/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://www.hashei.me/2011/11/install-cics7-1-on-aix61.html/feed</wfw:commentRss><slash:comments>1</slash:comments><description>今年国庆扬州之行在AIX6上安装CICS7.1，耗费一周精力仍旧错误百出，最后依靠这篇步骤完成成功。贴出来让有需要的人也少走弯路吧
1. 安装环境
主机：
操作系统：AIX6100-06-01-1043，使用异步IO(无需设定，系统自动)
数据库：Oracle11.2.0.2（单机版本），安装constant client 32bit（复制为lib32目录）
编译器：XLC10.1
2. 创建cics、cicsterm和cicssm组，创建cics用户和cicssm用户添加至cics（primary group）、cicsterm和cicssm组，采用本地认证，Soft FILE size核soft CORE file size的参数值设置-1（unlimited）。
3. 如果数据库是Oracle10.2.0.1，则执行这个步骤：将root用户和cics用户添加到dba组。Oracle10.2.0.1安装完成后安装目录下的子目录的属性大都为750，库文件属性为640，导致cics用户无法访问Oracle的库文件。并且这些目录文件的属性和用户的umask设置没有关系。
4. 创建/var/cics_servers、/var/cics_regions文件系统并且mount，修改属性为cics:cics。
5. 将root添加至cics与cicsterm组并且是组的管理员，并将环境变量加入其profile文件（程序安装时自动添加到/etc/profile文件）。
export LANG=en_US
export PATH=$PATH:/usr/lpp/cics/bin:/usr/lpp/cicssm/bin
export LIBPATH=$LIBPATH:/usr/lpp/cics/lib:/usr/lpp/cicssm/lib
export NLSPATH=/usr/lpp/cics/msg/%L/%N:/usr/lpp/cics/msg/C/%N:/usr/lpp/cicssm/msg/en_US/%N:/usr/lib/nls/msg/%L/%N
6. 安装gsk（在CICS光盘的/gskit/gskta.rte）
7. 安装CICS，执行./TXSeriesV71-AIX.bin -i console
ü 选择安装时的语言环境
ü “产品简介”
ü 如果已经安装了6.X版本，确认升级到7.1版本
ü 接受软件协议，开始安装。确认/usr文件系统有足够的空间
ü 安装完成后可以选择察看“安装选择摘要”，确认安装
ü 安装完成后，可以选择察看readme文件以及安装日志（install_location/logs）。如果安装失败，在/tmp中创建日志文件
ü 不创建缺省的CICS region以及SFS server
8. 安装CICS7.1.0.2升级补丁，方法和安装CICS7.1类似。
9. 创建SFS_SERV用户，并添加至cics、cicsterm和cicssm组。这个用户名称是系统保留的SFS服务器的short name，SFS服务器根据short name名称定位使用的SFS存储。
10. 创建sfs_SFS_SERV与log_SFS_SERV逻辑卷（注：SFS服务器数据卷与日志卷名的格式为sfs_sfsUserName、log_ sfsUserName，其中sfsUserName为前面步骤创建的用户名），并输入chown SFS_SERV:cics /dev/*sfs_SFS_SERV /dev/*log_SFS_SERV命令更改其属主。sfs_sfsUserName和log_ sfsUserName大小为1G。
11. 输入/usr/lpp/cics/bin/cicsdefaultservers命令自动创建缺省的SFS服务器资源定义文件。
12. 输入cicssfscreate -v /.:/cics/sfs/sfsServerName，并将前面步骤创建的SFS_SERV用户的Home目录更改为/var/cics_servers/SSD/cics/sfs/sfsServerName，其中sfsServerName为本步中所创建的SFS服务器名。
13. 输入/usr/lpp/cics/bin/cicssfs –v /.:/cics/sfs/sfsServerName StartType=cold命令冷启动SFS Server，并输入/usr/lpp/cics/bin/sfsadmin list lvols -server /.:/cics/sfs/sfsServerName命令来验证SFS Server是否已正确启动。如果SFS [...]&lt;img src=&quot;http://www1.feedsky.com/t1/595355195/hashei/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/hashei/~7441427/595355195/4178920/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>CICS</category><pubDate>Sun, 13 Nov 2011 19:19:00 +0800</pubDate><author>hashei</author><comments>http://www.hashei.me/2011/11/install-cics7-1-on-aix61.html#comments</comments><guid isPermaLink="false">http://www.hashei.me/2011/11/install-cics7-1-on-aix61.html</guid><dc:creator>hashei</dc:creator><fs:srclink>http://www.hashei.me/2011/11/install-cics7-1-on-aix61.html</fs:srclink><fs:srcfeed>http://www.hashei.me/feed</fs:srcfeed><fs:itemid>feedsky/hashei/~7441427/595355195/4178920</fs:itemid></item><item><title>又见OutOfMemory——一次内存溢出故障诊断全过程</title><link>http://item.feedsky.com/~feedsky/hashei/~7441427/595355196/4178920/1/item.html</link><content:encoded>&lt;p&gt;这是一个几月前的案例，问题比较典型，在分析和事后学习的过程中让我对本地内存溢出有了一定的了解。在此和大家分享。&lt;/p&gt;
&lt;p&gt;先说一下背景，应用环境是AIX5.3+WebSphere6.0.2.37。在今年的一季度曾发生过几次OOM故障，当时通过几次内存参数优化，最后确定为“-Xgcprolicy:gencon –Xms512m –Xmx1280m –Xmn200m”，此后稳定了半年，直到此次再发生应用宕机。&lt;/p&gt;
&lt;p&gt;赶到现场，发现profiles目录下生成有javacore和heapdump文件，Javacore的第一行“Cause of thread dump : Dump Event &amp;quot;systhrow&amp;quot; (00040000) Detail &amp;quot;java/lang/OutOfMemoryError&amp;quot; received”表明了宕机的原因是OOM，但是令我困惑的是这段内容：&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;0SECTION&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; MEMINFO subcomponent dump routine      &lt;br /&gt;NULL&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; =================================       &lt;br /&gt;1STHEAPFREE&amp;#160;&amp;#160;&amp;#160; Bytes of Heap Space Free: 818cb70       &lt;br /&gt;1STHEAPALLOC&amp;#160;&amp;#160; Bytes of Heap Space Allocated: 20000000 &lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;在分配的512MB（十六进制20000000）的堆空间中，有129MB（818cb70）空闲空间，按理说，这种情况下不该发生OutOfMemory。就算有申请一个大对象，同时JVM堆的新生代由于碎片原因没有连续空间满足要求，那么应该发生堆扩展，所以此次内存溢出不是堆（Heap）溢出，GC日志的分析也支持了这一点。&lt;/p&gt;
&lt;p&gt;既然Javacore无法得到有用信息，我把目光转向了SystemErr.log，在对应日期的地方，我发现了大量如下报错：&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;[8/26/10 14:12:57:860 GMT+08:00] 0000002f SystemErr&amp;#160;&amp;#160;&amp;#160;&amp;#160; R Exception in thread &amp;quot;WebContainer : 1&amp;quot;&lt;font color=&quot;#ff0000&quot;&gt; &lt;/font&gt;&lt;strong&gt;&lt;font color=&quot;#ff0000&quot;&gt;java.lang.RuntimeException: java.lang.OutOfMemoryError: Failed to create a thread: retVal -1073741830, errno 11          &lt;br /&gt;&lt;/font&gt;&lt;/strong&gt;[8/26/10 14:12:57:860 GMT+08:00] 0000002f SystemErr&amp;#160;&amp;#160;&amp;#160;&amp;#160; R&amp;#160;&amp;#160;&amp;#160;&amp;#160; at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:801)       &lt;br /&gt;[8/26/10 14:12:57:860 GMT+08:00] 0000002f SystemErr&amp;#160;&amp;#160;&amp;#160;&amp;#160; R&amp;#160;&amp;#160;&amp;#160;&amp;#160; at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:881)       &lt;br /&gt;[8/26/10 14:12:57:860 GMT+08:00] 0000002f SystemErr&amp;#160;&amp;#160;&amp;#160;&amp;#160; R&amp;#160;&amp;#160;&amp;#160;&amp;#160; at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1497)       &lt;br /&gt;[8/26/10 14:12:57:860 GMT+08:00] 0000002f SystemErr&amp;#160;&amp;#160;&amp;#160;&amp;#160; R Caused by: &lt;strong&gt;&lt;font color=&quot;#ff0000&quot;&gt;java.lang.OutOfMemoryError: Failed to create a thread: retVal -1073741830, errno 11          &lt;br /&gt;&lt;/font&gt;&lt;/strong&gt;&amp;#160;&amp;#160;&amp;#160; at java.lang.Thread.startImpl(Native Method)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; at java.lang.Thread.start(Thread.java:980)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; at com.ibm.ws.util.ThreadPool.addThread(ThreadPool.java:630)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; at com.ibm.ws.util.ThreadPool$3.run(ThreadPool.java:1148)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:63)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; at com.ibm.ws.util.ThreadPool.execute(ThreadPool.java:1146)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; at com.ibm.ws.util.ThreadPool.execute(ThreadPool.java:1040)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; at com.ibm.ws.runtime.WSThreadPool.execute(WSThreadPool.java:151)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; at com.ibm.io.async.ResultHandler.startHandler(ResultHandler.java:248)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:570)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:881)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1497)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;在事后的学习中，我知道“Java.lang.OutOfMemoryError: unable to create native thread” 这样的异常是在说，本地内存耗尽，从而新的线程无法创建。而在当时我第一感觉是操作系统参数设置问题，之前我曾写过一篇由于nofile参数导致Too many open file的故障。于是我运行如下命令&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;#lsattr -El sys0 -a maxuproc      &lt;br /&gt;maxuproc 128 Maximum number of PROCESSES allowed per user True&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ol&gt;然后运行chgsys修改默认的128为1024，这里我犯了一个错误，WebSphere单个Server就是一个Java进程，错误日志里是不能创建一个thread，而非process，与Oracle会创建多个oracle进程不一样。果然两天后又出现了同样的问题。&lt;/ol&gt;
&lt;ol&gt;这一次的SystemErr日志中，除了上述的内容，还多了&lt;/ol&gt;
&lt;blockquote&gt;&lt;p&gt;[8/24/10 9:55:19:813 GMT+08:00] 00000036 SystemErr&amp;#160;&amp;#160;&amp;#160;&amp;#160; R Exception in thread &amp;quot;WebContainer : 4&amp;quot; java.lang.RuntimeException: &lt;strong&gt;&lt;font color=&quot;#ff0000&quot;&gt;java.lang.OutOfMemoryError: Unable to allocate 8192 bytes of direct memory after 5 retries          &lt;br /&gt;&lt;/font&gt;&lt;/strong&gt;[8/24/10 9:55:19:813 GMT+08:00] 00000036 SystemErr&amp;#160;&amp;#160;&amp;#160;&amp;#160; R&amp;#160;&amp;#160;&amp;#160;&amp;#160; at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:801)       &lt;br /&gt;[8/24/10 9:55:19:813 GMT+08:00] 00000036 SystemErr&amp;#160;&amp;#160;&amp;#160;&amp;#160; R&amp;#160;&amp;#160;&amp;#160;&amp;#160; at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:881)       &lt;br /&gt;[8/24/10 9:55:19:813 GMT+08:00] 00000036 SystemErr&amp;#160;&amp;#160;&amp;#160;&amp;#160; R&amp;#160;&amp;#160;&amp;#160;&amp;#160; at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1497)       &lt;br /&gt;[8/24/10 9:55:19:813 GMT+08:00] 00000036 SystemErr&amp;#160;&amp;#160;&amp;#160;&amp;#160; R Caused by: java.lang.OutOfMemoryError: Unable to allocate 8192 bytes of direct memory after 5 retries       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; at &lt;strong&gt;&lt;font color=&quot;#ff0000&quot;&gt;java.nio.DirectByteBuffer&lt;/font&gt;&lt;/strong&gt;.&amp;lt;init&amp;gt;(DirectByteBuffer.java:197)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; at java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:303)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; at com.ibm.ws.buffermgmt.impl.WsByteBufferPoolManagerImpl.allocateBufferDirect(WsByteBufferPoolManagerImpl.java:656)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; at com.ibm.ws.buffermgmt.impl.WsByteBufferPoolManagerImpl.allocateCommon(WsByteBufferPoolManagerImpl.java:570)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; at com.ibm.ws.buffermgmt.impl.WsByteBufferPoolManagerImpl.allocateDirect(WsByteBufferPoolManagerImpl.java:506)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:498)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:881)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1497)       &lt;br /&gt;Caused by: java.lang.OutOfMemoryError       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; at &lt;font color=&quot;#ff0000&quot;&gt;&lt;strong&gt;sun.misc.Unsafe.allocateMemory(Native Method)          &lt;br /&gt;&lt;/strong&gt;&lt;/font&gt;&amp;#160;&amp;#160;&amp;#160; at java.nio.DirectByteBuffer.&amp;lt;init&amp;gt;(DirectByteBuffer.java:184)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;#8230; 7 more&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;我们可以看到是由于DirectByteBuffer无法分配导致的内存溢出，而Native Method指明了这是“本地”的溢出。通过这两个关键字，我查到了IBM的一份BUG记录：&lt;a href=&quot;http://www-01.ibm.com/support/docview.wss?uid=swg1PK31010&quot;&gt;PK31010: OUTOFMEMORYERROR DUE TO DIRECTBYTEBUFFER&lt;/a&gt;，但是我的版本已是最新，无奈继续搜寻。&lt;/p&gt;
&lt;p&gt;在&lt;a href=&quot;http://www-01.ibm.com/support/docview.wss?uid=swg21373312&quot;&gt;Troubleshooting native memory issues&lt;/a&gt;这份文档中，介绍了3种在WebSphere中最常见的导致OOM的原因。其中第二个&lt;b&gt;DirectByteBuffer use&lt;/b&gt;就是我们问题的症结。&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Java 1.4 中添加的新 I/O （NIO） 类引入了一种基于通道和缓冲区来执行 I/O 的新方式。就像 Java 堆上的内存支持 I/O 缓冲区一样，NIO 添加了对直接 ByteBuffer 的支持（使用java.nio.ByteBuffer.allocateDirect（） 方法进行分配），ByteBuffer 受本机内存而不是 Java 堆支持。直接 ByteBuffer 可以直接传递到本机操作系统库函数，以执行 I/O — 这使这些函数在一些场景中要快得多，因为它们可以避免在 Java 堆与本机堆之间复制数据。&lt;/p&gt;
&lt;p&gt;&amp;#160;&amp;#160;&amp;#160; 对于在何处存储直接 ByteBuffer 数据，很容易产生混淆。应用程序仍然在 Java 堆上使用一个对象来编排 I/O 操作，但持有该数据的缓冲区将保存在本机内存中，Java 堆对象仅包含对本机堆缓冲区的引用。非直接 ByteBuffer 将其数据保存在 Java 堆上的 byte[] 数组中。下图展示了直接与非直接 ByteBuffer 对象之间的区别：&lt;/p&gt;
&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 直接与非直接 java.nio.ByteBuffer 的内存拓扑结构&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;ByteBuffer 内存安排&quot; src=&quot;http://java.chinaitlab.com/UploadFiles_8734/200905/20090513103513495.gif&quot; width=&quot;376&quot; height=&quot;482&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;#160;&amp;#160;&amp;#160; 直接 ByteBuffer 对象会自动清理本机缓冲区，但这个过程只能作为 Java 堆 GC 的一部分来执行，因此它们不会自动响应施加在本机堆上的压力。GC 仅在 Java 堆被填满，以至于无法为堆分配请求提供服务时发生，或者在 Java 应用程序中显式请求它发生（不建议采用这种方式，因为这可能导致性能问题）。&lt;/p&gt;
&lt;p&gt;&amp;#160;&amp;#160;&amp;#160; 发生垃圾收集的情形可能是，本机堆被填满，并且一个或多个直接 ByteBuffers 适合于垃圾收集（并且可以被释放来腾出本机堆的空间），但 Java 堆几乎总是空的，所以不会发生垃圾收集。&lt;/p&gt;
&lt;p&gt;摘自&lt;a href=&quot;http://www.ibm.com/developerworks/java/j-nativememory-linux/&quot;&gt;《理解JVM如何使用Windows和Linux上的本机内存》&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;解决此问题的方法，在文档中给出的是&lt;a href=&quot;http://www-01.ibm.com/support/docview.wss?uid=swg21317658&quot;&gt;禁止异步A/O&lt;/a&gt;，通过在Web Container中设置参数来避免上节中所出现的由于Java堆空闲而不发生垃圾回收，导致本地堆撑满的情况。&lt;/p&gt;
&lt;ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Servers -&amp;gt; Application Servers -&amp;gt; &lt;i&gt;serverName&lt;/i&gt; -&amp;gt; Web Container Settings -&amp;gt; Web Container -&amp;gt; Custom Properties:         &lt;br /&gt;Press New:         &lt;br /&gt;Add the following pair: &lt;/p&gt;
&lt;ul&gt;Name: com.ibm.ws.webcontainer.channelwritetype        &lt;br /&gt;Value: sync&lt;/ul&gt;
&lt;p&gt; Press OK, and then save the configuration.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt; 添加此属性后应用又恢复正常，但是原先提高性能的特性反而导致内存溢出，违背了初衷，现在的做法只能算一个妥协。我会继续查找此问题的解决方法，最不济也要有个使用NIO的Best Practice。&lt;/ul&gt;
&lt;p&gt;文档中另两个容易导致本地堆OOM的原因是：&lt;/p&gt;
&lt;p&gt;过大的堆上限&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://hashei.me/wp-content/uploads/2009/05/memory-layout-of-a-vm-in-the-os.jpg&quot;&gt;&lt;img style=&quot;display: inline; margin-left: 0px; margin-right: 0px&quot; border=&quot;0&quot; alt=&quot;Memory layout of a vm in the os&quot; align=&quot;right&quot; src=&quot;http://hashei.me/wp-content/uploads/2009/05/memory-layout-of-a-vm-in-the-os-thumb.jpg&quot; width=&quot;244&quot; height=&quot;202&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;我们知道32位机器单个进程可以访问的内存地址空间为4G，如右图所示，但实际情况下Windows系统由于内核态和用户态的划分，用户态只有2G的空间，Linux和AIX的可用空间大一点，但也在3G左右。，由于JVM实例进程寻址是一定的，所以Heap大小和Native Area此消彼长。而Native Area中有一部分就是供给线程的内存空间。&lt;/p&gt;
&lt;p&gt;“应用程序中的每个线程都需要内存来存储器堆栈（用于在调用函数时持有局部变量并维护状态的内存区域）。每个 Java 线程都需要堆栈空间来运行。根据实现的不同，Java 线程可以分为本机线程和 Java 堆栈。除了堆栈空间，每个线程还需要为线程本地存储（thread-local storage）和内部数据结构提供一些本机内存。堆栈大小因 Java 实现和架构的不同而不同。一些实现支持为 Java 线程指定堆栈大小，其范围通常在 256KB 到 756KB 之间。”&lt;/p&gt;
&lt;p&gt;1.5后一般线程堆栈大小为1M，“对于拥有数百个线程的应用程序来说，线程堆栈的总内存使用量可能非常大。如果运行的应用程序的线程数量比可用于处理它们的处理器数量多，效率通常很低，并且可能导致糟糕的性能和更高的内存占用”（摘自《理解JVM如何使用Windows和Linux上的本机内存》）&lt;/p&gt;
&lt;p&gt;解决此问题的方法：设置恰当的JVM最大堆，32位不要超过1.5G；设置恰当的线程池大小（一般50～100），当线程使用较多时， 使用-Xss256k参数设置线程指定堆栈大小（IBM JDK还可以使用&lt;a href=&quot;http://publib.boulder.ibm.com/infocenter/realtime/v2r0/index.jsp?topic=/com.ibm.softrt.aix32.doc/diag/appendixes/defaults.html&quot;&gt;-Xmso&lt;/a&gt; ××k来设置Stack size for OS Threads 32-bit）；更换64位的JDK。&lt;/p&gt;
&lt;p&gt;第三个原因是&lt;a href=&quot;http://www-01.ibm.com/support/docview.wss?uid=swg21368248&quot;&gt;线程池的TLS泄漏&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;这个现象我倒没见到过，如果你的thread dump里下面三个属性里的值有大于300，那么就要注意了&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&amp;quot;WebContainer : 1003&amp;quot; (TID:0&amp;#215;37D62000     &lt;br /&gt;&amp;quot;Default : 338&amp;quot; (TID:109934D0      &lt;br /&gt;&amp;quot;TCPChannel.DCS : 303&amp;quot; (TID:0&amp;#215;4D720000&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;解决的方法是设置线程池的最小最大值一致。 &lt;/p&gt;
&lt;hr /&gt;&lt;small&gt;  Copyright &amp;copy; 2008 This feed is for personal, non-commercial use only&lt;br /&gt;
&lt;a href=www.hashei.com &gt;聚沙成塔-小哈的记事薄&lt;/a&gt; by hashei 
如果喜欢，欢迎订阅&lt;a href=feed.hashei.com &gt;feed.hashei.com&lt;/a&gt;&lt;br /&gt;
Digital Fingerprint:
 10f920a9f2bae51c3c73c4f5fb50a949&lt;/small&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/595355196/hashei/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/hashei/~7441427/595355196/4178920/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://www.hashei.me/2010/11/directbytebuffer_cause_oom.html/feed</wfw:commentRss><slash:comments>7</slash:comments><description>这是一个几月前的案例，问题比较典型，在分析和事后学习的过程中让我对本地内存溢出有了一定的了解。在此和大家分享。
先说一下背景，应用环境是AIX5.3+WebSphere6.0.2.37。在今年的一季度曾发生过几次OOM故障，当时通过几次内存参数优化，最后确定为“-Xgcprolicy:gencon –Xms512m –Xmx1280m –Xmn200m”，此后稳定了半年，直到此次再发生应用宕机。
赶到现场，发现profiles目录下生成有javacore和heapdump文件，Javacore的第一行“Cause of thread dump : Dump Event &amp;#34;systhrow&amp;#34; (00040000) Detail &amp;#34;java/lang/OutOfMemoryError&amp;#34; received”表明了宕机的原因是OOM，但是令我困惑的是这段内容：
0SECTION&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; MEMINFO subcomponent dump routine      NULL&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; =================================       1STHEAPFREE&amp;#160;&amp;#160;&amp;#160; Bytes of Heap Space Free: 818cb70       1STHEAPALLOC&amp;#160;&amp;#160; Bytes of Heap Space Allocated: 20000000 

在分配的512MB（十六进制20000000）的堆空间中，有129MB（818cb70）空闲空间，按理说，这种情况下不该发生OutOfMemory。就算有申请一个大对象，同时JVM堆的新生代由于碎片原因没有连续空间满足要求，那么应该发生堆扩展，所以此次内存溢出不是堆（Heap）溢出，GC日志的分析也支持了这一点。
既然Javacore无法得到有用信息，我把目光转向了SystemErr.log，在对应日期的地方，我发现了大量如下报错：
[8/26/10 14:12:57:860 GMT+08:00] [...]&lt;img src=&quot;http://www1.feedsky.com/t1/595355196/hashei/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/hashei/~7441427/595355196/4178920/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>DirectByteBuffer</category><category>性能优化</category><category>OutOfMemory</category><category>Websphere系列</category><pubDate>Tue, 09 Nov 2010 21:41:00 +0800</pubDate><author>admin</author><comments>http://www.hashei.me/2010/11/directbytebuffer_cause_oom.html#comments</comments><guid isPermaLink="false">http://www.hashei.me/2010/11/directbytebuffer_cause_oom.html</guid><dc:creator>admin</dc:creator><fs:srclink>http://www.hashei.me/2010/11/directbytebuffer_cause_oom.html</fs:srclink><fs:srcfeed>http://www.hashei.me/feed</fs:srcfeed><fs:itemid>feedsky/hashei/~7441427/595355196/4178920</fs:itemid></item><item><title>总有一些世界观，是傻逼呵呵地矗立在那里的</title><link>http://item.feedsky.com/~feedsky/hashei/~7441427/595355197/4178920/1/item.html</link><content:encoded>&lt;p&gt;上一篇标题是be foolish，这一篇就就要写idiot了。《Three Idiots》，或者又叫《三傻大闹宝莱坞》，让无聊的周末晚上，变得丰富多彩起来。&lt;/p&gt;
&lt;p&gt;这是一部校园青春片，归类在喜剧片里，于是自然的让屏幕前的我乐不可支，但如果仅仅如此，那么它就是美国校园喜剧的翻版，我也不会在这个技术博里分享观看后感受。作为同样经历经济高速发展的邻居——印度，这部电影所探讨的理想与现实、爱情与金钱、注重结果还是过程，深深的感触到了我。&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;噪鹃从来不自己筑巢，他只在别人的巢里下蛋，要孵蛋的时候他们会怎样？他们会把其它的蛋从巢里挤出去，竞争结束了，他们的生命从谋杀开始，这就是大自然——要么竞争，要么死……&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;丛林法则，优胜劣汰，“病毒”的开场白在父母送你去补习班的时候，在你选择大学专业的时候，会听到各种各样类似的版本。在大学里，为了绩点而奋斗，只看为考试而划重点的内容，不是为了知识，而是为了“从这5年后，当你看到你的朋友买车买房时不会诅咒自己。”&lt;/p&gt;
&lt;p&gt;一定要让自己活在“高压锅”里么？某种程度上是的，当你的父母把唯一的空调装在你的房间里让你安心学习，把自己年轻时的遗憾作为目标寄托在你的身上时，当你家里有个生病的父亲、没有嫁妆出嫁的姐姐、以及辛苦照顾这个家的母亲时，我们很难有勇气说出：过自己喜欢过的生活、做自己喜欢做的事，哪怕钱赚的再少只要自己觉得幸福就足够了（这应该就是所谓的责任感使命感吧）。所以我们像男主角的两个朋友，要么生活在“虚伪”里，要么生活在“恐惧”中。&lt;/p&gt;
&lt;p&gt;于是我们一个个的“成功”了，但是“理想”这种东西，要么戒了，要么又作为自己的遗憾，硬加到自己的孩子身上。&lt;/p&gt;
&lt;p&gt;影片中的爱情，则是以一场订婚一场逃婚来演绎，笔墨不多，却同样有内心抉择的痛苦。是嫁给一个生活贴了标签的成功男士，还是去找能让心情像头发一般飘逸起来的男主角？影片中女主当然选择了后者，但面对现实的生活压力，有多少人能无视暂时的闲言碎语，有多少姻缘因为经济的原因而拆散，又有多少夫妻在坚硬的钢筋水泥的城市里扎不下根来。&lt;/p&gt;
&lt;p&gt;所以当影片放到Farhan他爸爸说到：把（电脑）退了，换一部专业摄像机，钱还不够就向我要的时候。放到Raju Rastogi说出“断了两条腿，我才真正站了起来，获得这样的生活态度不容易，我不会放弃”的时候，当病毒主任最终也说出“做你想做的”，并把32年都没送出的太空笔插到Rancho的衣领上时，我再也无法控制自己的眼泪不夺眶而出。&lt;/p&gt;
&lt;p&gt;不过看完片后思及自身，又让我感到另外一种悲哀——我不知道自己除了工作之外，还有什么值得投入精力的爱好，不知道自己真正想要的生活是什么。乔治奥威尔痛苦的是“英国人的［阶级］烙印是打在舌头上的”，“他的一切疙瘩都来自于这个事实：他认为他应该去爱他的同胞，但是他连同他们随便交谈都做不到。”而我则是“认为应该去过自己喜欢的生活，但是却连什么是自己喜欢的都不知道”。长年的填鸭式的教育，父母的期盼，老娘舅里形形色色的人生故事，让我以为生活就是如此。看来我们都需要一个像Rancho这样的朋友，告诉我们世界上还有种不合时宜的世界观，也能通向成功。&lt;/p&gt;
&lt;p&gt;一个没有一出生就背负使命的园丁的儿子很少见，那至少让我们记住这句话“Follow excellence，Success will chase you !&amp;quot;&lt;/p&gt;
&lt;hr /&gt;&lt;h2&gt;Related posts:&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://www.hashei.me/2011/11/sense_and_sensibility_one.html&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link: 理智与情感（一）&quot;&gt;理智与情感（一）&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr /&gt;&lt;small&gt;  Copyright &amp;copy; 2008 This feed is for personal, non-commercial use only&lt;br /&gt;
&lt;a href=www.hashei.com &gt;聚沙成塔-小哈的记事薄&lt;/a&gt; by hashei 
如果喜欢，欢迎订阅&lt;a href=feed.hashei.com &gt;feed.hashei.com&lt;/a&gt;&lt;br /&gt;
Digital Fingerprint:
 10f920a9f2bae51c3c73c4f5fb50a949&lt;/small&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/595355197/hashei/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/hashei/~7441427/595355197/4178920/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://www.hashei.me/2010/08/three_idiots.html/feed</wfw:commentRss><slash:comments>1</slash:comments><description>&lt;Three Idiots&gt;观后感，印度好片，强烈推荐&lt;img src=&quot;http://www1.feedsky.com/t1/595355197/hashei/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/hashei/~7441427/595355197/4178920/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>生活感想</category><category>电影</category><pubDate>Sun, 15 Aug 2010 18:48:00 +0800</pubDate><author>admin</author><comments>http://www.hashei.me/2010/08/three_idiots.html#comments</comments><guid isPermaLink="false">http://www.hashei.me/2010/08/three_idiots.html</guid><dc:creator>admin</dc:creator><fs:srclink>http://www.hashei.me/2010/08/three_idiots.html</fs:srclink><fs:srcfeed>http://www.hashei.me/feed</fs:srcfeed><fs:itemid>feedsky/hashei/~7441427/595355197/4178920</fs:itemid></item><item><title>Stay hungry，Stay foolish</title><link>http://item.feedsky.com/~feedsky/hashei/~7441427/595355198/4178920/1/item.html</link><content:encoded>&lt;p&gt;好久没有更新，离上一篇日志已经2月了，头一个月在专注于复习在职研究生的期末考试，后一月则出差外加偷懒。对留言里提问题的、请求帮忙的朋友说声抱歉了，看来人一旦没有了压力，大脑里的懒惰小人就一定会占到上风。就连写这篇文章，也夹杂着看了《海贼王》第十部剧场版、《lie to me》第15级、常去的博客逛了一圈、开心网转了N个帖子。&lt;/p&gt;
&lt;p&gt;到7月22日，我工作就将整三年。刚工作的时候，都是和Windows AD域、DNS、Exchange、WSUS打交道，感觉熟悉了MCSE的内容，就能解决工作中80%的问题，所以常常不思长进。后来转而学习中间件，用了大半年的时间知道了安装、部署、调优和troubleshooting，每天不紧不慢的看看红皮书、逛逛论坛、做做实验，日子也没什么紧迫感。直到在google reader上订阅了许多牛人的博客，才知道日子混的太多了。&lt;/p&gt;
&lt;p&gt;比如&lt;a href=&quot;http://blog.s135.com/index.php&quot; target=&quot;_blank&quot;&gt;回忆未来——张宴&lt;/a&gt;，和我同龄，经济与贸易专业，却已是金山的系统架构师技术——支持部平台组组长，并出了一本&lt;a href=&quot;http://blog.s135.com/nginx_book/&quot;&gt;《实战Nginx：取代Apache的高性能Web服务器》&lt;/a&gt;，一篇&lt;a href=&quot;http://blog.s135.com/nginx_php_v6/&quot;&gt;Nginx+ PHP（FastCGI）搭建胜过Apache十倍的Web服务器&lt;/a&gt;成为各大linux论坛都转载的文章。&lt;/p&gt;
&lt;p&gt;天分高？未必，&lt;a href=&quot;http://book.douban.com/subject/4006425/&quot; target=&quot;_blank&quot;&gt;《我是一只IT小小鸟》&lt;/a&gt;里没有一个天才的故事，都是我们可以“复制”的经历。唯一的区别，就是他们做到了。豆瓣上的这篇书评我深表赞同。&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 这些优秀的人的一些共同特质：&lt;/p&gt;
&lt;p&gt;1) &amp;lt;读书&amp;gt; 他们都是在学生时代读了很多优秀的书，不管是囫囵吞枣型，还是精读的，大量的读书才有了后来质的飞跃。      &lt;br /&gt;2) &amp;lt;兴趣&amp;gt; 兴趣是最好的老师，这句话深有体会，真是兴趣的驱使，才能发挥一个人最大的潜能。       &lt;br /&gt;3) &amp;lt;专注&amp;gt; 有了兴趣这一强大的推动力，在加上专注这颗金刚钻，再难的瓷器活都可以做到至善至美。       &lt;br /&gt;4) &amp;lt;思考&amp;gt; 他们不论是思考技术问题，还是在人生的方向的把握的思考，都独具深度。       &lt;br /&gt;5) &amp;lt;积累&amp;gt; 他们注重知识很经验的积累，量变导致质变。       &lt;br /&gt;6) &amp;lt;交流&amp;gt; 如果说读书是自我学习实现腾飞的一只翅膀，那么与优秀的人的交流是提升自我的另外一只翅膀。       &lt;br /&gt;7) &amp;lt;分享&amp;gt; 分享是一种突破，没有有效的积淀，就不容易产生有价值的分享。当在前期从周围的环境、资源中不断获取之后提升了自己，这时候就是你该分享你的经验，回报这个环境的时候了。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;于是接下来的日子一直在慢慢督促自己学习这些人。其实我是很幸运的，从事的工作一是适合自己，二也是充满挑战性的，学习的空间很大，而不会是可悲的“虽说有5年工作经验，其实是1年的工作经验然后重复5次”。&lt;/p&gt;
&lt;p&gt;自从接触中间件，然后又做系统验收前的压力测试，不得不学习linux/unix下性能监控和调优的技术，于是看了《linux服务器性能调整》。压力测试结果不满意，于是看了&lt;a href=&quot;http://book.douban.com/subject/3924175/&quot; target=&quot;_blank&quot;&gt;《构建高性能Web站点》&lt;/a&gt;，通过动静分离，至少从前端的角度，尽可能的提升页面展示速度。公网上部署应用，也就有了安全的需求，selinux的原理与配置、log日志的审查，渗透与反渗透的技术也就不得不掌握。运营之后的报告，也提出了监控服务器、分析应用日志的要求，shell编程、sed和awk也不得不提上学习日程。&lt;/p&gt;
&lt;p&gt;做售后工作之余，有时还会接触一些售前上的问题，比如设备的选型，那就牵涉到容量规划，《web容量规划的艺术》使我受益良多，《大话存储－网络存储系统原理精解与最佳实践》是我下一本要看的书，虽然一本书离精通存储产品还很遥远，但至少要从整体上避免整个系统中的短板。&lt;/p&gt;
&lt;p&gt;如此种种衍生出去的学习，正好也印证了about me中的那段话“一点服务器技术、一点操作系统知识、一点数据库概念、一点中间件结构、一点编程能力、一点网络基础、一点存储原理，还要一点IT素质和经验积累。”这些是对系统工程师的要求，但没有人来教你这么多“一点”。如果自己不要求自己，将来面试工作的时候被告知lack of sth的时候一定不好受。&lt;/p&gt;
&lt;p&gt;上面提到的成功特质中，1、2、3、6如果还算基本的话，4、5、7对我来说是难点，也应该是很多人的难点，因为网络上多的是零零碎碎的、重复的知识，系统的全面的极少。而那些写的深入的人，无一不是那个领域的专家。其实现在成为一个专家也并非难事，只要“&lt;a href=&quot;http://book.douban.com/subject/4726323/&quot; target=&quot;_blank&quot;&gt;一万个小时&lt;/a&gt;”就可以了，但事实是我们往往都知道自己的弱点和需要改进的地方，可当没有旁人督促的时候，总是缺乏动力去行动。&lt;/p&gt;
&lt;p&gt;所以如果你看到这篇文章，并且赞同我的内容，又有写博客的习惯，不如交换一下友情链接，互相支持一下，既交个朋友、又多个读者。&lt;/p&gt;
&lt;p&gt;最后用那句著名的“Stay hungry, Stay foolish“自勉。&lt;/p&gt;
&lt;hr /&gt;&lt;small&gt;  Copyright &amp;copy; 2008 This feed is for personal, non-commercial use only&lt;br /&gt;
&lt;a href=www.hashei.com &gt;聚沙成塔-小哈的记事薄&lt;/a&gt; by hashei 
如果喜欢，欢迎订阅&lt;a href=feed.hashei.com &gt;feed.hashei.com&lt;/a&gt;&lt;br /&gt;
Digital Fingerprint:
 10f920a9f2bae51c3c73c4f5fb50a949&lt;/small&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/595355198/hashei/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/hashei/~7441427/595355198/4178920/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://www.hashei.me/2010/07/stay_hungry_stay_foolish.html/feed</wfw:commentRss><slash:comments>4</slash:comments><description>好久没有更新，离上一篇日志已经2月了，头一个月在专注于复习在职研究生的期末考试，后一月则出差外加偷懒。对留言里提问题的、请求帮忙的朋友说声抱歉了，看来人一旦没有了压力，大脑里的懒惰小人就一定会占到上风。就连写这篇文章，也夹杂着看了《海贼王》第十部剧场版、《lie to me》第15级、常去的博客逛了一圈、开心网转了N个帖子。
到7月22日，我工作就将整三年。刚工作的时候，都是和Windows AD域、DNS、Exchange、WSUS打交道，感觉熟悉了MCSE的内容，就能解决工作中80%的问题，所以常常不思长进。后来转而学习中间件，用了大半年的时间知道了安装、部署、调优和troubleshooting，每天不紧不慢的看看红皮书、逛逛论坛、做做实验，日子也没什么紧迫感。直到在google reader上订阅了许多牛人的博客，才知道日子混的太多了。
比如回忆未来——张宴，和我同龄，经济与贸易专业，却已是金山的系统架构师技术——支持部平台组组长，并出了一本《实战Nginx：取代Apache的高性能Web服务器》，一篇Nginx+ PHP（FastCGI）搭建胜过Apache十倍的Web服务器成为各大linux论坛都转载的文章。
天分高？未必，《我是一只IT小小鸟》里没有一个天才的故事，都是我们可以“复制”的经历。唯一的区别，就是他们做到了。豆瓣上的这篇书评我深表赞同。
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 这些优秀的人的一些共同特质：
1) &amp;#60;读书&amp;#62; 他们都是在学生时代读了很多优秀的书，不管是囫囵吞枣型，还是精读的，大量的读书才有了后来质的飞跃。      2) &amp;#60;兴趣&amp;#62; 兴趣是最好的老师，这句话深有体会，真是兴趣的驱使，才能发挥一个人最大的潜能。       3) &amp;#60;专注&amp;#62; 有了兴趣这一强大的推动力，在加上专注这颗金刚钻，再难的瓷器活都可以做到至善至美。       4) &amp;#60;思考&amp;#62; 他们不论是思考技术问题，还是在人生的方向的把握的思考，都独具深度。       5) &amp;#60;积累&amp;#62; 他们注重知识很经验的积累，量变导致质变。       6) &amp;#60;交流&amp;#62; 如果说读书是自我学习实现腾飞的一只翅膀，那么与优秀的人的交流是提升自我的另外一只翅膀。   [...]&lt;img src=&quot;http://www1.feedsky.com/t1/595355198/hashei/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/hashei/~7441427/595355198/4178920/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>生活感想</category><pubDate>Sun, 18 Jul 2010 00:07:00 +0800</pubDate><author>hashei</author><comments>http://www.hashei.me/2010/07/stay_hungry_stay_foolish.html#comments</comments><guid isPermaLink="false">http://www.hashei.me/2010/07/stay_hungry_stay_foolish.html</guid><dc:creator>hashei</dc:creator><fs:srclink>http://www.hashei.me/2010/07/stay_hungry_stay_foolish.html</fs:srclink><fs:srcfeed>http://www.hashei.me/feed</fs:srcfeed><fs:itemid>feedsky/hashei/~7441427/595355198/4178920</fs:itemid></item><item><title>为JVM启用大页面支持</title><link>http://item.feedsky.com/~feedsky/hashei/~7441427/595355199/4178920/1/item.html</link><content:encoded>&lt;p&gt;最近在看《Linux服务器性能调整》，书中第九章-Linux虚存的性能问题中提到了当代计算机体系结构都支持多种页面大小。大型页面可以改善高性能计算及内存密集型应用的性能。回想起之前看IBM developmentworks上介绍websphere调优和oracle weblogic中tuning都提到了这一点，于是想记下一笔，不过网上正好看到ken Wu已经就此总结过了，于是转贴在此。红色部分为我添加的。&lt;/p&gt;
&lt;p&gt;转自 &lt;a href=&quot;http://kenwublog.com/&quot;&gt;Ken Wu`s Blog&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;原文链接 &lt;a href=&quot;http://kenwublog.com/tune-large-page-for-jvm-optimization&quot; target=&quot;_blank&quot;&gt;JVM优化之调整大内存分页(LargePage)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;本文将从内存分页的原理，如何调整分页大小两节内容，向你阐述LargePage对JVM的性能有何提升作用，并在文末点明了大内分页的副作用。OK，让我们开始吧！&lt;/p&gt;
&lt;h4&gt;内存分页大小对性能的提升原理&lt;/h4&gt;
&lt;p&gt;首先，我们需要回顾一小部分计算机组成原理，这对理解大内存分页至于JVM性能的提升是有好处的。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;什么是内存分页？&lt;/strong&gt;    &lt;br /&gt;我们知道，CPU是通过寻址来访问内存的。32位CPU的寻址宽度是 0~0xFFFFFFFF ，计算后得到的大小是4G，也就是说可支持的物理内存最大是4G。&lt;/p&gt;
&lt;p&gt;但在实践过程中，碰到了这样的问题，程序需要使用4G内存，而可用物理内存小于4G，导致程序不得不降低内存占用。   &lt;br /&gt;为了解决此类问题，现代CPU引入了 &lt;a href=&quot;http://baike.baidu.com/view/969924.htm&quot;&gt;MMU&lt;/a&gt;（Memory Management Unit 内存管理单元）。&lt;/p&gt;
&lt;p&gt;MMU 的核心思想是利用虚拟地址替代物理地址，即CPU寻址时使用虚址，由 MMU 负责将虚址映射为物理地址。   &lt;br /&gt;MMU的引入，解决了对物理内存的限制，对程序来说，就像自己在使用4G内存一样。&lt;/p&gt;
&lt;p&gt;内存分页(Paging)是在使用MMU的基础上，提出的一种内存管理机制。它将虚拟地址和物理地址按固定大小（4K）分割成页(page)和页帧(page frame)，并保证页与页帧的大小相同。&lt;/p&gt;
&lt;p&gt;这种机制，从数据结构上，保证了访问内存的高效，并使OS能支持非连续性的内存分配。   &lt;br /&gt;在程序内存不够用时，还可以将不常用的物理内存页转移到其他存储设备上，比如磁盘，这就是大家耳熟能详的虚拟内存。&lt;/p&gt;
&lt;p&gt;在上文中提到，虚拟地址与物理地址需要通过映射，才能使CPU正常工作。   &lt;br /&gt;而映射就需要存储映射表。在现代CPU架构中，映射关系通常被存储在物理内存上一个被称之为页表(page table)的地方。    &lt;br /&gt;如下图：&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://hashei.me/wp-content/uploads/2010/05/28728a1e693e4790ac6098d883472ec3.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;28728a1e-693e-4790-ac60-98d883472ec3&quot; border=&quot;0&quot; alt=&quot;28728a1e-693e-4790-ac60-98d883472ec3&quot; src=&quot;http://hashei.me/wp-content/uploads/2010/05/28728a1e693e4790ac6098d883472ec3_thumb.jpg&quot; width=&quot;531&quot; height=&quot;440&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;从这张图中，可以清晰地看到CPU与页表，物理内存之间的交互关系。&lt;/p&gt;
&lt;p&gt;&lt;font color=&quot;#ff0000&quot;&gt;图中的page table在现代操作系统中由全局目录（PGD）-中间目录（PMD）-页表项（PTE）三层树构成，有时候不同书上图不一样但意思一样，只是画多画少。&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;进一步优化，引入TLB（Translation lookaside buffer，页表寄存器缓冲）     &lt;br /&gt;&lt;/strong&gt;由上一节可知，页表是被存储在内存中的。我们知道CPU通过总线访问内存，肯定慢于直接访问寄存器的。    &lt;br /&gt;为了进一步优化性能，现代CPU架构引入了&lt;a href=&quot;http://baike.baidu.com/view/129737.html?fromTaglist&quot;&gt;TLB&lt;/a&gt;，用来缓存一部分经常访问的页表内容。    &lt;br /&gt;如下图：&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://hashei.me/wp-content/uploads/2010/05/1381be323fea460ca31004fcb15f99e3.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;1381be32-3fea-460c-a310-04fcb15f99e3&quot; border=&quot;0&quot; alt=&quot;1381be32-3fea-460c-a310-04fcb15f99e3&quot; src=&quot;http://hashei.me/wp-content/uploads/2010/05/1381be323fea460ca31004fcb15f99e3_thumb.jpg&quot; width=&quot;559&quot; height=&quot;444&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;对比 9.6 那张图，在中间加入了TLB。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;为什么要支持大内存分页？&lt;/strong&gt;    &lt;br /&gt;TLB是有限的，这点毫无疑问。当超出TLB的存储极限时，就会发生 TLB miss，之后，OS就会命令CPU去访问内存上的页表。如果频繁的出现TLB miss，程序的性能会下降地很快。&lt;/p&gt;
&lt;p&gt;为了让TLB可以存储更多的页地址映射关系，我们的做法是调大内存分页大小。&lt;/p&gt;
&lt;p&gt;如果一个页4M，对比一个页4K，前者可以让TLB多存储1000个页地址映射关系，性能的提升是比较可观的。&lt;/p&gt;
&lt;h4&gt;调整OS和JVM内存分页&lt;/h4&gt;
&lt;p&gt;在Linux和windows下要启用大内存页，有一些限制和设置步骤。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Linux：&lt;/strong&gt;    &lt;br /&gt;限制：需要2.6内核以上或2.4内核已打大内存页补丁。    &lt;br /&gt;确认是否支持，请在终端敲如下命令：&lt;/p&gt;
&lt;p&gt;# cat /proc/meminfo | grep Huge   &lt;br /&gt;HugePages_Total: 0    &lt;br /&gt;HugePages_Free: 0    &lt;br /&gt;Hugepagesize: 2048 kB&lt;/p&gt;
&lt;p&gt;如果有HugePage字样的输出内容，说明你的OS是支持大内存分页的。Hugepagesize就是默认的大内存页size。   &lt;br /&gt;接下来，为了让JVM可以调整大内存页size，需要设置下OS 共享内存段最大值 和 大内存页数量。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;共享内存段最大值&lt;/strong&gt;    &lt;br /&gt;建议这个值大于Java Heap size，这个例子里设置了4G内存。&lt;/p&gt;
&lt;p&gt;# echo 4294967295 &amp;gt; /proc/sys/kernel/shmmax&lt;/p&gt;
&lt;p&gt;&lt;font color=&quot;#ff0000&quot;&gt;注意在32位操作系统上这个值不能超过4GB&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;大内存页数量&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;# echo 154 &amp;gt; /proc/sys/vm/nr_hugepages&lt;/p&gt;
&lt;p&gt;这个值一般是 Java进程占用最大内存/单个页的大小 ，比如java设置 1.5G，单个页 10M，那么数量为&amp;#160; 1536/10 = 154。   &lt;br /&gt;注意：因为proc是内存FS，为了不让你的设置在重启后被冲掉，建议写个脚本放到 init 阶段(rc.local)。&lt;/p&gt;
&lt;p&gt;&lt;font color=&quot;#ff0000&quot;&gt;更简便的方法是&lt;/font&gt; &lt;/p&gt;
&lt;pre&gt;&lt;font color=&quot;#ff0000&quot;&gt;echo &amp;quot;vm.nr_hugepages=154&amp;quot; &amp;gt;&amp;gt; /etc/sysctl.conf&lt;/font&gt;&lt;/pre&gt;
&lt;p&gt;&lt;font color=&quot;#ff0000&quot;&gt;通过下述命令来验证设置是否生效&lt;/font&gt;&lt;/p&gt;
&lt;pre&gt;&lt;font color=&quot;#ff0000&quot;&gt;grep HugePages_Total /proc/meminfo&lt;/font&gt;&lt;/pre&gt;
&lt;p&gt;&lt;font color=&quot;#ff0000&quot;&gt;结果应该是你之前设置的数值154&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&amp;#160;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Windows:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;限制：仅支持 windows server 2003 以上server版本&lt;/p&gt;
&lt;p&gt;操作步骤:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Control Panel -&amp;gt; Administrative Tools -&amp;gt; Local Security Policy&lt;/li&gt;
&lt;li&gt;Local Policies -&amp;gt; User Rights Assignment&lt;/li&gt;
&lt;li&gt;双击 “Lock pages in memory”, 添加用户和组&lt;/li&gt;
&lt;li&gt;重启电脑&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;注意: 需要管理员操作。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;单个页大小调整&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;JVM启用时加参数 -XX:LargePageSizeInBytes=10m&lt;/p&gt;
&lt;p&gt;如果JDK是在1.5 update5以前的，还需要手动加 -XX:+UseLargePages，作用是启用大内存页支持。&lt;/p&gt;
&lt;p&gt;——————————————————————&lt;/p&gt;
&lt;p&gt;其实除了JVM可以使用大页面提高性能，还有一种应用更符合内存密集型的场景，那就是数据库。数据库的调优中很早就有了这部分的建议。详见&lt;/p&gt;
&lt;h4&gt;&lt;a href=&quot;http://www.puschitz.com/TuningLinuxForOracle.shtml#ConfiguringHugePagesInRHEL4&quot; target=&quot;_blank&quot;&gt;Tuning and Optimizing Red Hat Enterprise Linux for Oracle 9i and 10g Databases&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;当中提到&lt;/p&gt;
&lt;p&gt;In order that an Oracle database can use Huge Pages in RHEL 4, you also need to increase the ulimit parameter &amp;quot;&lt;tt&gt;memlock&lt;/tt&gt;&amp;quot; for the &lt;tt&gt;oracle&lt;/tt&gt; user in&lt;tt&gt;/etc/security/limits.conf&lt;/tt&gt; if &amp;quot;max locked memory&amp;quot; is not unlimited or too small, see &lt;tt&gt;ulimit -a&lt;/tt&gt; or &lt;tt&gt;ulimit -l&lt;/tt&gt;. For example:&lt;/p&gt;
&lt;pre&gt;oracle           soft    memlock         1048576
oracle           hard    memlock         1048576&lt;/pre&gt;
&lt;p&gt;The &lt;tt&gt;memlock&lt;/tt&gt; parameter specifies how much memory the &lt;tt&gt;oracle&lt;/tt&gt; user can lock into its address space. Note that Huge Pages are locked in physical memory. The &lt;tt&gt;memlock&lt;/tt&gt; setting is specified in KB and must match the memory size of the number of Huge Pages that Oracle should be able to allocate. So if the Oracle database should be able to use 512 Huge Pages, then &lt;tt&gt;memlock&lt;/tt&gt; must be set to at least &lt;tt&gt;512 * Hugepagesize&lt;/tt&gt;, which is on my system 1048576 KB (512*1024*2). If &lt;tt&gt;memlock&lt;/tt&gt; is too small, then no single Huge Page will be allocated when the Oracle database starts.&lt;/p&gt;
&lt;p&gt;如果limits文件中有相应设置的话，需要检查一下，避免系统没有留出足够的内存（被cache、buffer占用了）&lt;/p&gt;
&lt;p&gt;不过作者也提到了&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;我们生产环境大部分java应用都没调过large page。性能瓶颈也不是在jvm上。&lt;br /&gt;
    &lt;br /&gt;文章里提到的优化，仅仅是实验性质的。&lt;/p&gt;
&lt;p&gt;优化对我们来说，是一个循序渐进的过程。我们追求的是效果明显的优化方案，而不是什么都调优一把。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;按我的经验，这些一般只是锦上添花而已&lt;/p&gt;
&lt;hr /&gt;&lt;h2&gt;Related posts:&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://www.hashei.me/2009/07/enable-ssl-for-ihs.html&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link: WAS启用IHS的SSL&quot;&gt;WAS启用IHS的SSL&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.hashei.me/2009/11/websphere_was_ssl_config.html&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link: WebSphere为应用程序设置访问认证&quot;&gt;WebSphere为应用程序设置访问认证&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.hashei.me/2010/04/%e6%ac%b2%e9%80%9f%e5%88%99%e4%b8%8d%e8%be%be.html&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link: 欲速则不达&quot;&gt;欲速则不达&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.hashei.me/2009/08/jdbc_causes_server_hang.html&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link: JDBC引发的服务器hang解决思路&quot;&gt;JDBC引发的服务器hang解决思路&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr /&gt;&lt;small&gt;  Copyright &amp;copy; 2008 This feed is for personal, non-commercial use only&lt;br /&gt;
&lt;a href=www.hashei.com &gt;聚沙成塔-小哈的记事薄&lt;/a&gt; by hashei 
如果喜欢，欢迎订阅&lt;a href=feed.hashei.com &gt;feed.hashei.com&lt;/a&gt;&lt;br /&gt;
Digital Fingerprint:
 10f920a9f2bae51c3c73c4f5fb50a949&lt;/small&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/595355199/hashei/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/hashei/~7441427/595355199/4178920/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://www.hashei.me/2010/05/enable-lagepages-for-jvm.html/feed</wfw:commentRss><slash:comments>1</slash:comments><description>最近在看《Linux服务器性能调整》，书中第九章-Linux虚存的性能问题中提到了当代计算机体系结构都支持多种页面大小。大型页面可以改善高性能计算及内存密集型应用的性能。回想起之前看IBM developmentworks上介绍websphere调优和oracle weblogic中tuning都提到了这一点，于是想记下一笔，不过网上正好看到ken Wu已经就此总结过了，于是转贴在此。红色部分为我添加的。
转自 Ken Wu`s Blog
原文链接 JVM优化之调整大内存分页(LargePage)
本文将从内存分页的原理，如何调整分页大小两节内容，向你阐述LargePage对JVM的性能有何提升作用，并在文末点明了大内分页的副作用。OK，让我们开始吧！
内存分页大小对性能的提升原理
首先，我们需要回顾一小部分计算机组成原理，这对理解大内存分页至于JVM性能的提升是有好处的。
什么是内存分页？    我们知道，CPU是通过寻址来访问内存的。32位CPU的寻址宽度是 0~0xFFFFFFFF ，计算后得到的大小是4G，也就是说可支持的物理内存最大是4G。
但在实践过程中，碰到了这样的问题，程序需要使用4G内存，而可用物理内存小于4G，导致程序不得不降低内存占用。   为了解决此类问题，现代CPU引入了 MMU（Memory Management Unit 内存管理单元）。
MMU 的核心思想是利用虚拟地址替代物理地址，即CPU寻址时使用虚址，由 MMU 负责将虚址映射为物理地址。   MMU的引入，解决了对物理内存的限制，对程序来说，就像自己在使用4G内存一样。
内存分页(Paging)是在使用MMU的基础上，提出的一种内存管理机制。它将虚拟地址和物理地址按固定大小（4K）分割成页(page)和页帧(page frame)，并保证页与页帧的大小相同。
这种机制，从数据结构上，保证了访问内存的高效，并使OS能支持非连续性的内存分配。   在程序内存不够用时，还可以将不常用的物理内存页转移到其他存储设备上，比如磁盘，这就是大家耳熟能详的虚拟内存。
在上文中提到，虚拟地址与物理地址需要通过映射，才能使CPU正常工作。   而映射就需要存储映射表。在现代CPU架构中，映射关系通常被存储在物理内存上一个被称之为页表(page table)的地方。    如下图：

从这张图中，可以清晰地看到CPU与页表，物理内存之间的交互关系。
图中的page table在现代操作系统中由全局目录（PGD）-中间目录（PMD）-页表项（PTE）三层树构成，有时候不同书上图不一样但意思一样，只是画多画少。
进一步优化，引入TLB（Translation lookaside buffer，页表寄存器缓冲）     由上一节可知，页表是被存储在内存中的。我们知道CPU通过总线访问内存，肯定慢于直接访问寄存器的。    为了进一步优化性能，现代CPU架构引入了TLB，用来缓存一部分经常访问的页表内容。    如下图：

对比 [...]&lt;img src=&quot;http://www1.feedsky.com/t1/595355199/hashei/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/hashei/~7441427/595355199/4178920/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>LargePage</category><category>性能优化</category><category>Unix/Linux</category><category>大页面</category><category>JVM</category><pubDate>Sat, 22 May 2010 23:22:00 +0800</pubDate><author>hashei</author><comments>http://www.hashei.me/2010/05/enable-lagepages-for-jvm.html#comments</comments><guid isPermaLink="false">http://www.hashei.me/2010/05/enable-lagepages-for-jvm.html</guid><dc:creator>hashei</dc:creator><fs:srclink>http://www.hashei.me/2010/05/enable-lagepages-for-jvm.html</fs:srclink><fs:srcfeed>http://www.hashei.me/feed</fs:srcfeed><fs:itemid>feedsky/hashei/~7441427/595355199/4178920</fs:itemid></item><item><title>Linux 性能监控</title><link>http://item.feedsky.com/~feedsky/hashei/~7441427/595355200/4178920/1/item.html</link><content:encoded>&lt;p&gt;我在&lt;a href=&quot;http://www.hashei.me/category/unixlinux&quot; target=&quot;_blank&quot;&gt;Unix/Linux&lt;/a&gt;分类中曾转过《&lt;a href=&quot;http://www.hashei.me/2009/09/linux_system_and_performance_monitoring_summary.html&quot; target=&quot;_blank&quot;&gt;Linux System and Performance Monitoring&lt;/a&gt;》系列的文章，今天又在&lt;a href=&quot;http://www.vpsee.com&quot; target=&quot;_blank&quot;&gt;Vpsee&lt;/a&gt;看到了类似的几篇。内容基本一样，但是排版好许多，最主要是读起来很流畅，一步步的递进很好，没有英文资料翻译过来的那种生硬感，估计是根据那个系列结合自己经验重写过的。&lt;/p&gt;
&lt;p&gt;下午把vpsee逛了圈，感觉是VPS服务商里blog写的最有技术含量的，不仅有linux下的应用、优化，还有架构的分析以及较少看到资料的瘦客户端介绍。还有，我经常逛的&lt;a href=&quot;http://linuxtoy.org/&quot;&gt;LinuxTOY&lt;/a&gt;就是架设在他们的服务器上的。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.vpsee.com/2009/11/linux-system-performance-monitoring-introduction/&quot;&gt;Linux 性能监测：介绍&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.vpsee.com/2009/11/linux-system-performance-monitoring-cpu/&quot;&gt;Linux 性能监测：CPU&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.vpsee.com/2009/11/linux-system-performance-monitoring-memory/&quot;&gt;Linux 性能监测：Memory&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.vpsee.com/2009/11/linux-system-performance-monitoring-io/&quot;&gt;Linux 性能监测：IO&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.vpsee.com/2009/11/linux-system-performance-monitoring-network/&quot; target=&quot;_blank&quot;&gt;Linux 性能监测：Network&lt;/a&gt;&lt;/p&gt;
&lt;hr /&gt;&lt;h2&gt;Related posts:&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://www.hashei.me/2010/04/%e6%ac%b2%e9%80%9f%e5%88%99%e4%b8%8d%e8%be%be.html&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link: 欲速则不达&quot;&gt;欲速则不达&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.hashei.me/2009/09/linux_system_and_performance_monitoring_summary.html&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link: Linux System and Performance Monitoring(总结篇)&quot;&gt;Linux System and Performance Monitoring(总结篇)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.hashei.me/2009/09/linux-system-and-performance-monitoring-cpu.html&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link: Linux System and Performance Monitoring(CPU篇)&quot;&gt;Linux System and Performance Monitoring(CPU篇)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.hashei.me/2010/02/tunning-websphere-application-server-was.html&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link: 软硬兼施 优化 WebSphere Application Server&quot;&gt;软硬兼施 优化 WebSphere Application Server&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.hashei.me/2009/07/java-performance-tuning-resources.html&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link: Java性能优化参考资料&quot;&gt;Java性能优化参考资料&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr /&gt;&lt;small&gt;  Copyright &amp;copy; 2008 This feed is for personal, non-commercial use only&lt;br /&gt;
&lt;a href=www.hashei.com &gt;聚沙成塔-小哈的记事薄&lt;/a&gt; by hashei 
如果喜欢，欢迎订阅&lt;a href=feed.hashei.com &gt;feed.hashei.com&lt;/a&gt;&lt;br /&gt;
Digital Fingerprint:
 10f920a9f2bae51c3c73c4f5fb50a949&lt;/small&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/595355200/hashei/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/hashei/~7441427/595355200/4178920/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://www.hashei.me/2010/05/linux-system-performance-monitoring.html/feed</wfw:commentRss><slash:comments>0</slash:comments><description>我在Unix/Linux分类中曾转过《Linux System and Performance Monitoring》系列的文章，今天又在Vpsee看到了类似的几篇。内容基本一样，但是排版好许多，最主要是读起来很流畅，一步步的递进很好，没有英文资料翻译过来的那种生硬感，估计是根据那个系列结合自己经验重写过的。
下午把vpsee逛了圈，感觉是VPS服务商里blog写的最有技术含量的，不仅有linux下的应用、优化，还有架构的分析以及较少看到资料的瘦客户端介绍。还有，我经常逛的LinuxTOY就是架设在他们的服务器上的。
Linux 性能监测：介绍
Linux 性能监测：CPU
Linux 性能监测：Memory
Linux 性能监测：IO
Linux 性能监测：Network
Related posts:欲速则不达Linux System and Performance Monitoring(总结篇)Linux System and Performance Monitoring(CPU篇)软硬兼施 优化 WebSphere Application ServerJava性能优化参考资料  Copyright &amp;#169; 2008 This feed is for personal, non-commercial use only
聚沙成塔-小哈的记事薄 by hashei 
如果喜欢，欢迎订阅feed.hashei.com
Digital Fingerprint:
 10f920a9f2bae51c3c73c4f5fb50a949&lt;img src=&quot;http://www1.feedsky.com/t1/595355200/hashei/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/hashei/~7441427/595355200/4178920/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>Linux</category><category>每周精华</category><category>性能监控</category><pubDate>Wed, 19 May 2010 16:48:00 +0800</pubDate><author>admin</author><comments>http://www.hashei.me/2010/05/linux-system-performance-monitoring.html#comments</comments><guid isPermaLink="false">http://www.hashei.me/2010/05/linux-system-performance-monitoring.html</guid><dc:creator>admin</dc:creator><fs:srclink>http://www.hashei.me/2010/05/linux-system-performance-monitoring.html</fs:srclink><fs:srcfeed>http://www.hashei.me/feed</fs:srcfeed><fs:itemid>feedsky/hashei/~7441427/595355200/4178920</fs:itemid></item><item><title>WebLogic如何更换64位JDK</title><link>http://item.feedsky.com/~feedsky/hashei/~7441427/595355201/4178920/1/item.html</link><content:encoded>&lt;p&gt;使用32位JDK时，JVM一般设置最大设置为1.7G，而现在服务器普遍内存都很大，当然可以通过多个server建立垂直集群来更好的利用资源，但不妨使用64位JDK。虽然WebLogic可以直接在setDomainEnv里指定JAVA_HOME来更改JDK，但肯定会遇到BEA-000438的错，原因在于缺少对应64位JDK的native io libaray（位于weblogic/server/native）。一种方式是从别处拷贝一份过来，还有一种是下载wls_generic.jar形式的安装文件，而不是已经带有JDK的。然后下载64位JDK安装（&lt;a href=&quot;http://www.oracle.com/technology/software/products/jrockit/index.html&quot; target=&quot;_blank&quot;&gt;Jrockit下载&lt;/a&gt;），用java –jar wls_generic.jar来安装就可以了。&lt;/p&gt;
&lt;p&gt;————————————————————————————&lt;/p&gt;
&lt;p&gt;附一个错误分析，和native libaray相关，但并不是由于64位的关系，而是没有执行权限。&lt;/p&gt;
&lt;p&gt;启动过程中发现 &lt;/p&gt;
&lt;p&gt;&amp;lt;Apr 28, 2010 6:27:15 PM GMT+08:00&amp;gt; &amp;lt;Error&amp;gt; &amp;lt;Socket&amp;gt; &amp;lt;&lt;strong&gt;BEA-000438&lt;/strong&gt;&amp;gt; &amp;lt;&lt;strong&gt;Unable to loa     &lt;br /&gt;d performance pack. Using Java I/O instead&lt;/strong&gt;. Please ensure that a native performa    &lt;br /&gt;nce library is in: &amp;#8216;/opt/java1.5/jre/lib/IA64N:/opt/java1.5/jre/lib/IA64N/server    &lt;br /&gt;:/opt/java1.5/jre/../lib/IA64N::/opt/weblogic/bea/weblogic90/server/native/hpux1    &lt;br /&gt;1/IPF64:/opt/weblogic/bea/weblogic90/server/native/hpux11/PA_RISC:/opt/weblogic/    &lt;br /&gt;bea/weblogic90/server/native/hpux11/PA_RISC/oci920_8:/usr/lib&amp;#8217; &lt;/p&gt;
&lt;p&gt;没有启动native io，导致系统性能低下（这里要注意HP-UX里IA64N下的是32位JDK，IA64W下的才是64位JDK），而且java io配置的值较小，产生如下报错 &lt;/p&gt;
&lt;p&gt;&amp;lt;Apr 28, 2010 6:15:03 PM GMT+08:00&amp;gt; &amp;lt;Warning&amp;gt; &amp;lt;Socket&amp;gt; &amp;lt;&lt;strong&gt;BEA-000402&lt;/strong&gt;&amp;gt; &amp;lt;There are:    &lt;br /&gt;5 active sockets, but the maximum number of socket reader threads allowed by the    &lt;br /&gt; configuration is: 4. You may want to alter your configuration.&amp;gt; &lt;/p&gt;
&lt;p&gt;在应用使用过程中从而出现 &lt;/p&gt;
&lt;p&gt;&amp;lt;Apr 28, 2010 6:14:10 PM GMT+08:00&amp;gt; &amp;lt;Error&amp;gt; &amp;lt;Console&amp;gt; &amp;lt;BEA-240003&amp;gt; &amp;lt;Console enco   &lt;br /&gt;untered the following error javax.servlet.jsp.JspException: Broken pipe (errno:3    &lt;br /&gt;2)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; at com.bea.console.taglib.html.tree.TreeTag.print(TreeTag.java:231)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; at com.bea.console.taglib.html.tree.TreeTag.doEndTag(TreeTag.java:192)&lt;/p&gt;
&lt;p&gt;观察控制台的thread信息&lt;/p&gt;
&lt;p&gt;Self-Tuning Thread Pool&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;Active Execute Threads&amp;#160;&amp;#160;&amp;#160; Execute Thread Total Count&amp;#160;&amp;#160;&amp;#160; Execute Thread Idle Count&amp;#160;&amp;#160;&amp;#160; Queue Length&amp;#160;&amp;#160;&amp;#160; Pending User Request Count&amp;#160;&amp;#160;&amp;#160; Completed Request Count&amp;#160;&amp;#160;&amp;#160; Hogging Thread Count&amp;#160;&amp;#160;&amp;#160; Standby Thread Count&amp;#160;&amp;#160;&amp;#160; Throughput&amp;#160;&amp;#160;&amp;#160; Health    &lt;br /&gt;16&amp;#160;&amp;#160;&amp;#160; 58&amp;#160;&amp;#160;&amp;#160; 15&amp;#160;&amp;#160;&amp;#160; 6048&amp;#160;&amp;#160;&amp;#160; 0&amp;#160;&amp;#160;&amp;#160; 144840&amp;#160;&amp;#160;&amp;#160; 4&amp;#160;&amp;#160;&amp;#160; 38&amp;#160;&amp;#160;&amp;#160; 4.577865205875421&amp;#160;&amp;#160;&amp;#160; OK &lt;/p&gt;
&lt;p&gt;排队的请求数多达6000个，导致了OutOfMemory，在JAVA堆还很空的情况下 &lt;/p&gt;
&lt;p&gt;观察发现/opt/weblogic/bea/weblogic90/server/native/hpux11/IPF32下面和native io相关的libmuxer.so没有执行权限，chmod +x 后再次启动错误信息不再出现 &lt;/p&gt;
&lt;hr /&gt;&lt;h2&gt;Related posts:&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://www.hashei.me/2009/08/install-weblogic-as-service-and-recovery-password.html&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link: 注册Weblogic9为Windows服务及外一篇&quot;&gt;注册Weblogic9为Windows服务及外一篇&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.hashei.me/2009/09/weblogic-cluster-step-by-step.html&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link: WebLogic9和10集群安装配置过程&quot;&gt;WebLogic9和10集群安装配置过程&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.hashei.me/2009/08/cr370915_in_weblogic10-3_and_jdk1-6.html&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link: Weblogic10.3.0在AIX6.1、JDK1.6下挂起解决方法&quot;&gt;Weblogic10.3.0在AIX6.1、JDK1.6下挂起解决方法&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.hashei.me/2009/11/websphere_was_ssl_config.html&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link: WebSphere为应用程序设置访问认证&quot;&gt;WebSphere为应用程序设置访问认证&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.hashei.me/2009/08/serverhang_application_deadlock.html&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link: 应用程序死锁导致服务器挂起的介绍&quot;&gt;应用程序死锁导致服务器挂起的介绍&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr /&gt;&lt;small&gt;  Copyright &amp;copy; 2008 This feed is for personal, non-commercial use only&lt;br /&gt;
&lt;a href=www.hashei.com &gt;聚沙成塔-小哈的记事薄&lt;/a&gt; by hashei 
如果喜欢，欢迎订阅&lt;a href=feed.hashei.com &gt;feed.hashei.com&lt;/a&gt;&lt;br /&gt;
Digital Fingerprint:
 10f920a9f2bae51c3c73c4f5fb50a949&lt;/small&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/595355201/hashei/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/hashei/~7441427/595355201/4178920/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://www.hashei.me/2010/05/weblogic%e5%a6%82%e4%bd%95%e6%9b%b4%e6%8d%a264%e4%bd%8djdk.html/feed</wfw:commentRss><slash:comments>0</slash:comments><description>How_to_use_64bit_jdk_with_weblogic&lt;img src=&quot;http://www1.feedsky.com/t1/595355201/hashei/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/hashei/~7441427/595355201/4178920/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>BEA-000402</category><category>weblogic</category><category>BEA-000438</category><pubDate>Tue, 18 May 2010 16:08:00 +0800</pubDate><author>hashei</author><comments>http://www.hashei.me/2010/05/weblogic%e5%a6%82%e4%bd%95%e6%9b%b4%e6%8d%a264%e4%bd%8djdk.html#comments</comments><guid isPermaLink="false">http://www.hashei.me/2010/05/weblogic%e5%a6%82%e4%bd%95%e6%9b%b4%e6%8d%a264%e4%bd%8djdk.html</guid><dc:creator>hashei</dc:creator><fs:srclink>http://www.hashei.me/2010/05/weblogic%e5%a6%82%e4%bd%95%e6%9b%b4%e6%8d%a264%e4%bd%8djdk.html</fs:srclink><fs:srcfeed>http://www.hashei.me/feed</fs:srcfeed><fs:itemid>feedsky/hashei/~7441427/595355201/4178920</fs:itemid></item></channel></rss>
