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

事象説明

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

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

    HP-UX
    /sbin/init.d/WebOTXinit<バージョン番号> start
    
    Linux

    SysVinitの場合:

    /etc/init.d/WebOTXinit<バージョン番号> start
    

    systemdの場合:

    systemctl start WebOTXinit<バージョン番号>
    

    「<バージョン番号>」の箇所には、バージョンに応じた数値が入ります。例えば、「V10.1」であれば「101」という数値が入ります。

    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<バージョン番号>は変更しないようにしてください。


関連情報