ASTERIA Warpのフロー実行中に処理が停止しない、などの現象が発生した場合、実行状況を確認するためにjstack情報の取得をお願いすることがあります。
その際、以下の方法で情報を入手してください。
(環境によっては、コマンドプロンプトを管理者モードで起動しないと正常に動作しない場合もあります。)
- JDKを導入する
Oracle社のサイト等からJDKをダウンロードし、現象の発生するサーバー上にインストールします。 - FlowSerivceのPIDを特定する
FlowServiceのPIDを特定します。
いくつか方法があるので、詳しい内容については後述します。 - FlowSerivceの状態を取得する
2で取得したPIDを使用し、下記のjstackコマンドを実行してFlowServiceの状態をファイルに取得します。
Linux環境の場合はexeの拡張子を外してください。
[JDK_INSTALL]/bin/jstack.exe [PID]>[任意のファイル名]
- 3で取得したファイルをご提供ください
■FlowServiceのPIDの特定方法について
- JDKのコマンドを利用して取得する方法
下記のコマンドを実行し、PIDを取得してください。
[JDK_INSTALL]/bin/jps.exe -lm
※[JDK_INSTALL]は、JDKのインストールディレクトリの事を指します。
実行した結果から、以下のように表示されているプロセスがFlowServiceのプロセスとなります。
[PID]の部分に表示される数字が、プロセスIDです。
[PID] com.infoteria.asteria.framework.Main 〜flowservice.ifx
- PsExcecを使用する方法(Warpをサービス起動している場合)
Windows環境にてローカルシステムアカウントでASTERIA Warpをサービス起動している場合は、JDKのバージョンやOSなどの状況によってはJDKのコマンドではPIDを取得できないという事例が報告されています。
その場合は、Microsoft社のサイトよりツールを導入する方法をお試しください。
・PsExecの導入
下記サイトよりPsToolをダウンロードし、展開したPsExec.exeにPathを通します。
https://docs.microsoft.com/en-us/sysinternals/downloads/psexec
・FlowSerivceのPIDを特定
下記のコマンドを実行し。PIDを取得してください。(PsExec経由でJDKのコマンドを実行します。)
PsExec.exe -s "[JDK_INSTALL]\bin\jps.exe" -lm
- WMICを使用する方法
Windows環境にて管理者モードのコマンドプロンプトで下記を実行してください。
WMIC PROCESS WHERE "NAME = 'java.exe' and COMMANDLINE LIKE '%FlowService.ifx%'" GET /FORMAT:LIST | find "ProcessId"
下記のような結果が表示されますが、2行目がFlowServiceのPIDです。
ParentProcessId=7520
ProcessId=13160 - フローを作成してPIDを取得する方法(フローの作成や実行ができる場合に限る)
WarpでPIDを取得するフローを作成し、実行することでPIDを取得します。
詳しい方法は下記のFAQを参照してください。
・FlowServiceのPIDを取得する方法を教えてください