TP モニタプロセス起動失敗(共有メモリ不正)

事象説明

    UNIXにおいて、WebOTXの起動中に以下のコマンド(*)を実行した場合、TPモニタ・マネージャが状態不正となり異常終了します。

    (*)以下のコマンドはWebOTXのインストールが正常終了した時、およびサーバマシンの起動時に自動で実行されるようになります。

    HP-UXの場合:
    /sbin/init.d/WebOTXinit start
    
    Linuxの場合:
    /etc/init.d/WebOTXinit start
    

    TPモニタ・マネージャが起動に失敗するとプロセスグループが起動しないため、クライアントからサーバアプリケーションへの呼び出しが失敗し、クライアントにはエラーが返却されます。

状況の確認方法

    TPモニタの起動に失敗した場合、統合運用管理ツールからTPシステムを確認すると、停止状態になっています。また、TPモニタが起動失敗したという事象については、以下に説明するイベントログ・syslogから確認することが可能です。

      OTX01180012:監視対象は起動していません。:domain1:category=monitor,type=alive-check-monitor,server=server,name=tpsystem-state
      

    共有メモリが作成されていない状態でWebOTXを起動した場合、syslogに以下のようなエラーメッセージが出力されます。

      WebOTX_AS[20238]: WOMutex::Create(line:159) can't get GlobalLock. mutex = refmng_mutex_MySystem, e.m_file = , e.m_nLine = 197, m_dwErrono = 2
      WebOTX_AS[20238]: WOMutex::Create(line:159) can't get GlobalLock. mutex = oms_mutex_MySystem, e.m_file = , e.m_nLine = 197, m_dwErrono = 2
      WebOTX_AS[23219]: E:1:TPS15-01018 Users Exit2 function error end. FunctionName=[TpmStartExit2],RetCode=[-1].
      WebOTX_AS[23219]: W:4:TPS15-01102 TP monitor abnormal end.
      WebOTX_Agent: OTX07200004 TPMonitorManager Lifecycle Startup Error. (com.nec.webotx.enterprise.system.TPMonitorManager)com.nec.webotx.enterprise.TPMonitorManager.TPMonitorManagerException: startSystem timeout :120000
      WebOTX_Agent: OTX01205104: Service [TPMonitorManagerService] cannot be started! : TPMonitorManagerService is not started or fails to start!! (com.nec.webotx.enterprise.system.core)
      

問題の検出方法

    WebOTXinit start を実行すると/opt/WebOTX/Trnsv/conf/CommAPI/lock_ctl 配下に以下の3つの共有メモリファイルが作成されます。

      WO_GL_EVTFILE
      WO_GL_SHMFILE
      WO_GL_SEMFILE

    以下のコマンドで確認可能です。

    ls -l /opt/WebOTX/Trnsv/conf/CommAPI/lock_ctl
    

    これらがないときに上記エラーになります。これらのファイルが削除されてしまったときは、WebOTXinit stopを行って一旦削除状態にし、 WebOTXinit startを実行して共有メモリを作成しなおしてください。

採取資料
復旧方法

    1. 該当ドメインを停止してください。
      otxadmin> stop-domain <ドメイン名>
    2. WebOTX関連プロセスが残っていた場合は、以下のコマンドで終了させてください。
      otxadmin>stop-domain --force <ドメイン名>
    3. WebOTXinit startを実行して共有メモリの作成を行ってください。

    4. ドメインを起動してください。
      otxadmin> start-domain <ドメイン名>

    なお、本shellは通常運用中はマシンの起動時と停止時に自動的に実行されるため、復旧時にのみ手動で実行するようにしてください。

予防のための対策

    WebOTXinitは通常運用中はマシンの起動時と停止時に自動的に実行されるため、復旧時にのみ手動で実行するようにしてください。
    WebOTX関連のスクリプトを自動起動しない設定にする場合も、WebOTXinitは変更しないようにしてください。


関連情報