DB2 NetSearchExtender(NSE)をインストールしたら必ずすること!!
NSEをインストールしたら必ずtmpwatchの動作を変えてください。
ぶっちゃけ、以下のようにしておけばNSE的には安心です。
# ll /etc/cron.daily/tmpwatch -rwxr-xr-x 1 root root 286 8月 14 2004 /etc/cron.daily/tmpwatch # chmod 644 /etc/cron.daily/tmpwatch # ll /etc/cron.daily/tmpwatch -rw-r--r-- 1 root root 286 8月 14 2004 /etc/cron.daily/tmpwatch
なぜこんなことをするかというと、
/tmpにNSEが動作するために非常に重要なファイルが存在するのですが
(なぜ/tmpなのかが不明で変更も・・らしい)
これらのファイルをtmpwatchが消してしまうのが原因です。
そのため
/etc/cron.daily/tmpwatch の動作をとめてしまう
か、
/etc/cron.daily/tmpwatch で該当ファイルは削除しない対応
を入れないといけません。
該当ファイルは
http://www-06.ibm.com/jp/domino01/mkt/cnpages1.nsf/page/default-00042FCA
にあるように
/tmp配下 <instance_owner>TEXT.0000.LATCH <instance_owner>TEXT.0000 <instance_owner>CACHE.0000 <instance_owner>SCHEDULER.LATCH <instance_owner>DEMON.SEM <instance_owner>DEMON:MEM
これらのファイルになります。
手元の環境では/tmpにはこんなファイルがあります。
-rw------- 1 db2inst1 db2grp1 0 4月 20 10:19 DB2INST1.CACHE.0000 -rw------- 1 db2inst1 db2grp1 0 4月 20 10:19 DB2INST1.DEMON.MEM -rw------- 1 db2inst1 db2grp1 0 4月 20 10:19 DB2INST1.DEMON.SEM -rw------- 1 db2inst1 db2grp1 0 4月 20 10:19 DB2INST1.SCHEDULER.LATCH -rw------- 1 db2inst1 db2grp1 0 4月 20 10:19 DB2INST1.TEXT.0000 -rw------- 1 db2inst1 db2grp1 0 4月 20 10:19 DB2INST1.TEXT.0000.LATCH
自分はめんどっちかったので
/etc/cron.daily/tmpwatch の実行属性をはずして対応しています。
「/tmpはtmpだ!tmpwatch は必要だ!」という方は
これらのファイルを消さないように対応しましょう!
で、この対応をしないと何が起きるかというと
いきなり突然NSEでの全文検索が出来なくなります・・・
db2 => SELECT * FROM table WHERE CONTAINS(table.data, ' "キーワード" ') = 1 1 ----------- SQL0443N Routine "TEXTSEARCH_8K64" (specific name "CTE21") has returned an error SQLSTATE with diagnostic text "CTE0184 No db2text start command was issued. ". SQLSTATE=38784
ということで SQL0443N が出たら/tmp内に必要なファイルがあるかを確かめて見ましょう。
※DB2 9.5のNSEでも起こる現象ですので・・
IBMにも詳細が出ていますのであわせて・・
http://www-06.ibm.com/jp/domino01/mkt/cnpages1.nsf/page/default-00042FCA