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