2009年11月7日星期六

V$PROCESS 参数过小导致tuxedo服务xa_open returned XAER_RMERR错误

问题现象:
tuxedo 启动多个服务,一部分服务启动成功,一部分启动失败。

关键词:
tpopen TPERMERR xa_open returned XAER_RMERR
ORA-12520: TNS:listener could not find available handler for requested
type of server

调查发现
tuxlog中 FOO_SOMSERICE01 启动成功, FOO_SOMESERVICE02 启动失败, 日志如下

161610.foobar!FOO_SOMESERVICE01.16772.1.0: 11-07-2009: Tuxedo Version
9.1, 64-bit
161610.foobar!FOO_SOMESERVICE01.16772.1.0: LIBTUX_CAT:262: INFO:
Standard main starting
161610.foobar!FOO_SOMESERVICE02.16775.1.0: 11-07-2009: Tuxedo Version
9.1, 64-bit
161610.foobar!FOO_SOMESERVICE02.16775.1.0: LIBTUX_CAT:262: INFO:
Standard main starting
161610.foobar!FOO_SOMESERVICE02.16778.1.0: 11-07-2009: Tuxedo Version
9.1, 64-bit
161610.foobar!FOO_SOMESERVICE02.16778.1.0: LIBTUX_CAT:262: INFO:
Standard main starting
161610.foobar!FOO_SOMESERVICE02.16778.1.0: LIBTUX_CAT:466: ERROR:
tpopen TPERMERR xa_open returned XAER_RMERR
161610.foobar!FOO_SOMESERVICE02.16778.1.0: tpopen failed
161610.foobar!FOO_SOMESERVICE02.16778.1.0: LIBTUX_CAT:250: ERROR:
tpsvrinit() failed
161610.foobar!tmboot.16684.1.-2: 11-07-2009: Tuxedo Version 9.1, 64-bit
161610.foobar!tmboot.16684.1.-2: CMDTUX_CAT:825: ERROR: Process
FOO_SOMESERVICE02 at TUXNODENAME failed with /T tperrno (TPERMERR -
resource manager error)

调查 ~/bin下面的xa_NULLmmddyyyy.trc 格式的当期文件发现:

161610.16778.0:
ORA-12520: TNS:listener could not find available handler for requested
type of server

161610.16778.0:
xaolgn_help: XAER_RMERR; OCIServerAttach failed. ORA-12520.

ORACLE XA: Version 10.2.0.1.0. RM name = 'Oracle_XA'.

由此确定,应该是oracle 用户设置的 V$PROCESS参数过小的原因导致 无法连接更多。

select count(1) from V$PROCESS;

结论:

用以下语句修改数据库的processes值
alter system set processes=500 scope=spfile

(由于processes是静态参数,scope只能为spfile,在v$sgastate条件为'procesees'中可以看到会每个process会点4个字节),
重新启动数据库使新改的processes生效

2009年11月5日星期四

Sun Studio C++ - -lCrun -lCstd option with cc and ld issues

Question: sun studio, tuxedo 的server编译 和c++有关库时出现如下引用的错误
经查和两个编译器标志有关,根据sun c++ user guide 可以得到如下结论:

1. Never use "ld" to make shared library.
2. Have the shared library dependet on run time lib and standard lib.

CC -G -o libmylib.so -Kpic mysource.cpp -lCrun -lCstd
cc -o myprg source.c -L. -lmylib

buildserver -o foobar_2BitImgLize -f "foobar_2BitImgLize.o
DealWithType0.o DealWithType2.o ADealWith.o TifMake.o ImageSave.o
ComFunction.o NotifyKumi.o
/export/home/tuxedo/version/server/lib/libserver.so
/export/home/tuxedo/version/server/lib/libdb.so
/export/home/foobar/lib/libjpeg.so /export/home/foobar/lib/libini.so
/export/home/foobar/lib/libtiftools.so
/export/home/foobar/lib/libColorConvert.so
/export/home/foobar/lib/libJbig.so /export/home/foobar/lib/libzlib.so
/export/home/foobar/lib/libImageBase.so
/export/home/foobar/lib/libImageApply.so
/export/home/foobar/lib/libEpsMake.so
/export/home/foobar/lib/libbarcode.so
/export/home/foobar/lib/libOMCommon.so
/export/home/foobar/lib/libimagemanage.so" -s "foobar_2BitImgLize" -r
Oracle_XA
Undefined first referenced
symbol in file
__1cG__CrunKpure_error6F_v_ /export/home/foobar/lib/libjpeg.so
__1cDstdMbasic_string4Ccn0ALchar_traits4Cc__n0AJallocator4Cc___2G6Mpkc_r1_
/export/home/foobar/lib/libEpsMake.so
__1cG__CrunIex_alloc6FL_pv_ /export/home/foobar/lib/libjpeg.so
__1cG__CrunIex_throw6Fpvpkn0AQstatic_type_info_pF1_v_v_
/export/home/foobar/lib/libjpeg.so
__1cDstdMbasic_string4Ccn0ALchar_traits4Cc__n0AJallocator4Cc___2G6Mrk1_r1_
/export/home/foobar/lib/libEpsMake.so
__1cDstdTallocator_interface4n0AJallocator4Cc__Cc_Jconstruct6Mpcrkc_v_
/export/home/foobar/lib/libjpeg.so
__1cH__rwstdK__rw_basis4CpcnDstdJallocator4Cc___Edata6kM_1_
/export/home/foobar/lib/libjpeg.so
__1cH__rwstdK__rw_basis4CpInDstdJallocator4Cb___Edata6kM_1_
/export/home/foobar/lib/libtiftools.so
__1cDstdTallocator_interface4n0AJallocator4Cc__Cc_2t6Mrkn0B__v_
/export/home/foobar/lib/libjpeg.so
__1cDstdMbasic_string4Ccn0ALchar_traits4Cc__n0AJallocator4Cc___Edata6kM_pkc_
/export/home/foobar/lib/libEpsMake.so
__1cDstdMbasic_string4Ccn0ALchar_traits4Cc__n0AJallocator4Cc___2T6M_v_
/export/home/foobar/lib/libEpsMake.so
__1cDstdGvector4Cbn0AJallocator4Cb___Ferase6Mn0CIiterator_2_2_
/export/home/foobar/lib/libtiftools.so
__1cDstdGvector4Cbn0AJallocator4Cb___2T6M_v_
/export/home/foobar/lib/libtiftools.so
__1cDstdZ__RTTI__1nDstdJbad_alloc__ /export/home/foobar/lib/libjpeg.so
__1cDstdLchar_traits4Cc_Deof6F_i_ /export/home/foobar/lib/libjpeg.so
__1cDstdGvector4Cbn0AJallocator4Cb___G__copy6Mn0COconst_iterator_2n0CIiterator__3_
/export/home/foobar/lib/libtiftools.so
__1cH__rwstdK__rw_basis4CpInDstdJallocator4Cb___2t6Mirkn0C__v_
/export/home/foobar/lib/libtiftools.so
__1cDstdJbad_alloc2t6M_v_ /export/home/foobar/lib/libjpeg.so
__1cDstdGvector4Cbn0AJallocator4Cb___Jreference2v6kM_b_
/export/home/foobar/lib/libtiftools.so
__1cG__CrunKvector_des6FpvLLpF1_v_v_ /export/home/foobar/lib/libImageApply.so
__1cDstdM__initialize4CL_6FrTA1_v_ /export/home/foobar/lib/libtiftools.so
__1cG__CrunKvector_con6FpvLLpF1_vp2_v_ /export/home/foobar/lib/libImageApply.so
__1cDstdGvector4Cbn0AJallocator4Cb___Iiterator2d6kM2_l_
/export/home/foobar/lib/libtiftools.so
__1cDstdGvector4Cbn0AJallocator4Cb___Iiterator2s6kMl_2_
/export/home/foobar/lib/libtiftools.so
__1cDstdGvector4Cbn0AJallocator4Cb___Dend6M_n0CIiterator__
/export/home/foobar/lib/libtiftools.so
__1cH__rwstdL__construct4CcCc_6FpTArkTB_v_ /export/home/foobar/lib/libjpeg.so
__1cDstdJallocator4Cc_2t6M_v_ /export/home/foobar/lib/libjpeg.so
__1cDstdJallocator4Cb_2t6M_v_ /export/home/foobar/lib/libtiftools.so
__1cDstdGvector4Cbn0AJallocator4Cb___Iiterator2t6M_v_
/export/home/foobar/lib/libtiftools.so
__1cDstdTallocator_interface4n0AJallocator4Cc__Cc_Iallocate6MLpc_2_
/export/home/foobar/lib/libjpeg.so
__1cDstdGvector4Cbn0AJallocator4Cb___Iiterator2e6kMrk2_b_
/export/home/foobar/lib/libtiftools.so
__1cG__CrunGex_get6F_pv_ /export/home/foobar/lib/libtiftools.so
__1cDstdGvector4Cbn0AJallocator4Cb___Iiterator2i6Mi_2_
/export/home/foobar/lib/libtiftools.so
__1cDstdGvector4Cbn0AJallocator4Cb___Iiterator2I6M_r2_
/export/home/foobar/lib/libtiftools.so
__1c2n6FLpv_0_ /export/home/foobar/lib/libjpeg.so
__1cDstdJexceptionG__vtbl_ /export/home/foobar/lib/libjpeg.so
__1cDstdJbad_allocG__vtbl_ /export/home/foobar/lib/libjpeg.so
__1cDstdTallocator_interface4n0AJallocator4Cc__Cc_Kdeallocate6MpcL_v_
/export/home/foobar/lib/libjpeg.so
__1cH__rwstdK__rw_basis4CpcnDstdJallocator4Cc___2G6Mrk1_3_
/export/home/foobar/lib/libjpeg.so
__1cG__CrunMex_rethrow_q6F_v_ /export/home/foobar/lib/libjpeg.so
__1cDstdGvector4Cbn0AJallocator4Cb___Jreference2G6Mb_r2_
/export/home/foobar/lib/libtiftools.so
__1cDstdGvector4Cbn0AJallocator4Cb___M__insert_aux6Mn0CIiterator_b_v_
/export/home/foobar/lib/libtiftools.so
__1cDstdGvector4Cbn0AJallocator4Cb___Iiterator2p6kM_n0CJreference__
/export/home/foobar/lib/libtiftools.so
__1cG__CrunSregister_exit_code6FpG_v_v_
/export/home/foobar/lib/libColorConvert.so
__1cG__CrunHex_skip6F_b_ /export/home/foobar/lib/libjpeg.so
__1cDstdMbasic_string4Ccn0ALchar_traits4Cc__n0AJallocator4Cc___2t6Mrkn0C__v_
/export/home/foobar/lib/libEpsMake.so
__1cDstdbArandfoobar_access_iterator_tag2t6M_v_
/export/home/foobar/lib/libtiftools.so
__1cG__CrunIex_clean6F_v_ /export/home/foobar/lib/libjpeg.so
__1cG__CrunKex_rethrow6F_v_ /export/home/foobar/lib/libjpeg.so
__1cDstdGvector4Cbn0AJallocator4Cb___Oconst_iterator2t6Mrkn0CIiterator__v_
/export/home/foobar/lib/libtiftools.so
__1cH__rwstdK__rw_basis4CpcnDstdJallocator4Cc___2t6Mirkn0C__v_
/export/home/foobar/lib/libjpeg.so
__1c2k6Fpv0_v_ /export/home/foobar/lib/libImageBase.so
__1cDstdDmax4CL_6FrkTA3_3_ /export/home/foobar/lib/libjpeg.so
__1c2N6FL_pv_ /export/home/foobar/lib/libjpeg.so
__1c2n6FL_pv_ /export/home/foobar/lib/libjpeg.so
__1cDstdGvector4Cbn0AJallocator4Cb___Fbegin6M_n0CIiterator__
/export/home/foobar/lib/libtiftools.so
__1c2K6Fpv_v_ /export/home/foobar/lib/libjpeg.so
__1c2k6Fpv_v_ /export/home/foobar/lib/libjpeg.so
ld: fatal: Symbol referencing errors. No output written to foobar_2BitImgLize
CMDTUX_CAT:1832: ERROR: can't execute cc -xarch=v9 -w -mt
-I$TUXDIR/include -o foobar_2BitImgLize BS-49ea.c -L${TUXDIR}/lib
foobar_2BitImgLize.o DealWithType0.o DealWithType2.o ADealWith.o
TifMake.o ImageSave.o ComFunction.o NotifyKumi.o
/export/home/tuxedo/version/server/lib/libserver.so
/export/home/tuxedo/version/server/lib/libdb.so
/export/home/foobar/lib/libjpeg.so /export/home/foobar/lib/libini.so
/export/home/foobar/lib/libtiftools.so
/export/home/foobar/lib/libColorConvert.so
/export/home/foobar/lib/libJbig.so /export/home/foobar/lib/libzlib.so
/export/home/foobar/lib/libImageBase.so
/export/home/foobar/lib/libImageApply.so
/export/home/foobar/lib/libEpsMake.so
/export/home/foobar/lib/libbarcode.so
/export/home/foobar/lib/libOMCommon.so
/export/home/foobar/lib/libimagemanage.so -ltux -lbuft
-L${ORACLE_HOME}/lib ${ORACLE_HOME}/precomp/lib/cobsqlintf.o -lclntsh
-lm -lnsl -lsocket -lgen -ldl -lfml -lfml32 -lengine -R/usr/lib/lwp
-lpthread -lposix4 -lsocket -lnsl -lm -lnsl -lsocket
*** Error code 1
make: Fatal error: Command failed for target `all'

2009年10月20日星期二

日本互联网舆论和公表事例

川崎市の感染公表遅れ 「ネットのせい」は本当か

日本从事网络舆论操作的公关公司相关资料

日本从事网络舆论操作的公关公司相关资料
http://www.j-cast.com/2006/08/10002482.html

ネット「世論操作」 請け負う会社の正体

ネット上の世論を操作するために「工作員」が暗躍してカキコミをする。こうした仕事を企業から請け負っている会社があるのは間違いないようだ。「ネット風評監視サービス」を売り物にするある会社はJ-CASTニュースの取材に、情報操作のカキコミまで業務としてやっていることを認めた。

「ネット世論操作」の問題は、ボクシングの亀田興毅選手の試合判定を巡ってクローズアップされた。試合を放送したTBSや亀田選手に対するバッシングカキコミが渦巻く中、TBSや亀田選手を擁護するコメントが不自然に並び、「TBSが監視サービス会社A社を使って工作させたのではないか」という疑惑を生んだのだ。もっとも、TBSもA社も関与は認めておらず、真相は藪の中だが、こうした工作をしている会社は間違いなく存在している。


特殊な技術でカキコミを隠すこともできる?
「工作活動」を監視するサイトも登場
「工作活動」を監視するサイトも登場

「ネット風評監視サービス会社」とは何なのか。ある大手新聞はA社を、

「250人が24時間態勢でネットを巡回し、依頼企業の風評や流出情報を監視。掲示板の中傷が過熱した場合には、書き込みで誘導し、悪意を緩和させる措置も取る。企業は情報漏れやうわさを早期に発見し、風評被害を最小限に抑えることができる」

と紹介している。
こうしたサービスは00年頃から増え始め、ネット上の掲示板に誹謗中傷や事実無根の情報を書き込まれた際に、企業イメージの低下を最小限に抑えるため、サービス会社がカキコミを監視し、問題があるカキコミをクライアント企業に通報する、というのが始まりだった。
それが、通報に加え、問題投稿のブロック、サイト管理者への削除依頼、さらには特殊な技術でカキコミを隠したり、過熱した議論を沈静化させるための「火消し」のカキコミまでするようになった。風評被害を感じている企業にとっては有難い存在だが、カキコミは匿名が殆どのため、知らないうちに「情報操作」されていることになる。ユーザーにとっては心底腹の立つ話というわけだ。


一般企業なら、法的に追及するのは難しい

J-CASTニュースでは、こうした情報操作をしているというサービス会社に取材した。どのような手順でやるのかを聞くと、こんな答えが返ってきた。

「まず、問題のサイトを教えていただきまして、困ったカキコミ(Q)に対し、どんな意見(A)をぶつけるかを提示していただければ対応が可能です」

いとも簡単な作業であるかのような話しぶりだった。

法的に問題は無いのか。
法律事務所オーセンスのインターネット犯罪に詳しい酒井将弁護士は、非常に難しい問題だとしながら、こう話す。

「仮に本当の事だとしたら、カキコミが匿名なだけに非常に不当に感じます。しかし、法律的にはどうなのかとなると、カキコミの内容が擁護であるため、誰かを貶めようとか権利侵害しようという意図ではない。一般企業ならば法的に問うのは難しいんです」

カネを使い組織的に動くのは圧力的でイヤラシイ感じだが、ネット上での議論や反論は、企業の情報防衛で、当然の責務、ということだ。ただ、問題なのは報道機関の場合。自分の番組の利益のために世論を懐柔しようとしたとなれば、中立を保たなければならない報道機関として、放送倫理や民放連の規約に引っかかる恐れがあるからだ。

2009年8月16日星期日

张书记,李市长我们爱您



来源网页: http://www.tianshui.com.cn/news/tianshui/2009080515254517826_5.htm

我唯一遗憾的是...

小时候,有一篇爱国主义的课文,内森·黑尔
他有一句名言:
I only regret that I have but one life to lose for my country.


至于我

I only regret that I have but 2 midfingers to show to my country

2009年6月4日星期四

20

黄耀明

在尽力闻着这一扎蔷薇
愿二十年后会让我记起
在尽力成就这一次愉快假期
像二十年前看过的戏
就在烈日下随便盖起了眼皮
愿二十年后会让我记起
别望着前面怕一切就快远离
日夜在成全永远的美
吻过 不会消失的气味
碰过 不苍老的手臂
有过 不再找不到的你
爱过 为了记起
我要去哪里 为最颠覆的一天
证实我有过过去 便有旧怀念
我要到这里 为最深刻的一天
纵是我有过过去 没故事
在尽力明白这一次皱眉
愿二十年后会让我记起
在尽力成就这一晚绝对妩媚
像二十年前揭过的被
吻过 不会消失的气味
碰过 不苍老的手臂
有过 不再找不到的你
爱过 为了记起
我要去哪里 为最颠覆的一天
证实我有过过去 便有旧怀念
我要到这里 为最深刻的一天
纵是我有过过去 没故事
日后静静在床上盖起了眼皮
暴烈或柔弱也让我记起
别望着前面怕一切就快远离
日夜在成全永远的美

2009年5月3日星期日

砖塔

大清道光十五年。乡绅们合议修复这城外2里的木塔,改为砖塔。多方筹措,终于建成。

砖塔挺立到今天,是这座县城不多的古迹。砖塔的2,3,4, 5,6,7 都是捐银造塔者的名字,第五层是袁姓太学士独立捐资所建。

壁画已经斑驳,正楷镌刻在砖石中的考取功名的学生,捐银的老板的名字 还有用粉笔或者黑笔涂上的一个心型的带着20世纪时间戳的两人名字幼稚笔迹 却依然还在。

砖塔无言。逝去的乡绅,学生们无言。

无言,就拉开了过去和现在的等高线。

2009年5月2日星期六

光

在我走过的这些天里,唯一觉得灯光充足的时候, 就是开了浴霸的时候

2009年4月24日星期五

svn导出版本之间差异文件保持目录结构

http://rocksun.cn/export-subversion-files-in-a-range/
Subversion导出修订版本范围中修改过的文件



今天在QQ群中聊到一个问题,就是导出一个修订版本范围中修改过的文件。其实这是一个常见的需求,例如向客户发布一个补丁。如果是程序员,可以运用diff和patch的方法,但是对于没有编程经验的人来说,最好是直接找到需要提交的文件,并覆盖掉原来的文件。

虽然svn本身没有支持这个功能,但是TortoiseSVN却提供了这个支持,台湾一位朋友写了一个图形教程,我整理了一下转载到了Subversion中文站。另外还有一套Java的解决方案,可以看老外的这个介绍。

不过,我觉得上面两个都还不够好,一个不是脚本,另一个则有点麻烦,于是我自己写了一个类似的脚本,使用python编写,现在做一些简要的说明。脚本可以在http://svn-script.googlecode.com/svn/trunk/tools/svnchanged_export.py下载,运行这个脚本需要python的pysvn包,可以从http://pysvn.tigris.org/servlets/ProjectDocumentList?folderID=1768下载合适的Windows版本,下载后直接安装即可。

使用这个脚本的方式也非常简单,我们就可以直接运行:

http://rocksun.cn

python svnchanged_export.py -u username -p password -r 20:HEAD svn://192.168.101.1/lynx/trunk/ xx\yyy

例如上面的命令,用户是username,密码是password,这两个参数可以省略,那样会使用密码缓存或不需要认证。指定的修订版本范围是 20到HEAD,对应的URL是 svn://192.168.101.1/lynx/trunk/。导出的文件存放到xx\yyy,默认是当前目录 “.”。上面的命令执行后,xx\yy目录下就会出现修订版本HEAD(最新)和修订版本20之间发生过修改的文件,这些文件都存放在原来的相对目录中,修订版本都是最新的。这个命令还可以写为:

python svnchanged_export.py -u username -p password -r 20:90 svn://192.168.101.1/lynx/trunk/ xx\yyy

这时,比较的修订版本变成了90,而对应的输出的文件都是修订版本90的文件。

这个脚本还没有经过实践的检验,只在我的windows下验证过,所以请大家小心使用,如果有问题,可以告诉我,我会尽快解决。你也可以直接加入我建立的这个项目,自己去修改这个脚本。说实话,pysvn的接口虽好,但文档奇缺,我用到一个接口,google没有任何结果。

Related posts:

1. Subversion: Export changed Files in a revision range
2. 上传工作拷贝中改变的文件
3. Dreamhost上编译Subversion
4. Windows编译Subversion简要说明
5. 使用svnserve的SASL认证

Posted in subversion. Tagged with export, pysvn, python, range, subversion, TortoiseSVN.
By rocksun
January 6, 2009

8 Responses