ORCA の起動スクリプトである /etc/init.d/jma-receipt では,panda/sbin/monitor にオプション -wfcwait 10 をつけて起動するようになっている。Ubuntu 8.04 + OpenVZ の仮想環境にインストールした ORCA では,10のままだと,激しく WFC connection retry を出した後 error socket で落ちて Stop system を出し,その後,おもむろに wfc がスタートするが,すぐに receive stop signal と言い残して終了してしまい,そのままでは ORCA が立ち上がらなかった。
ログ内容
Aug 19 20:08:05 orca panda/monitor[384]: Start system
Aug 19 20:08:06 orca panda/aps-orca02[389]: OpenCOBOL handlerClass invoke.
Aug 19 20:08:06 orca panda/aps-orca02[389]: WFC connection retry
Aug 19 20:08:06 orca panda/aps-orca03[390]: OpenCOBOL handlerClass invoke.
Aug 19 20:08:06 orca panda/aps-orca03[390]: WFC connection retry
・
・延々と続く
・
Aug 19 20:08:15 orca panda/aps-orca108[420]: WFC connection retry
Aug 19 20:08:15 orca panda/aps-orca00[387]: error socket
Aug 19 20:08:15 orca panda/monitor[384]: process down pid = 387(1) Command =[/usr/lib/panda/sbin/aps]
Aug 19 20:08:15 orca panda/monitor[384]: Stop system
Aug 19 20:08:16 orca panda/wfc[385]: wfc server start
Aug 19 20:08:16 orca panda/wfc[385]: receive stop signal
Aug 19 20:08:17 orca panda/wfc[385]: wfc server end
そこで,-wfcwait を1にしたところ,正常に立ち上がった。-wfcwait 10 は debian woody 時代に
加えられている。なぜ加えられたのか記載がないが,monitor.c のソースを見ると,wfcwait は遅い CPU 対策のようだ。syslog をみて,WFC connection retry が異常にたくさん出ているようなら,wfcwait は 1 や 0 でいいかもしれない。1 だと WFC connection retry の行数が著しく減少する。0 にすると,WFC connection retry が出なくなる。少し retry させるくらいの設定の方が,通信が確実につながるのだろうか?