JVMJ9VM011W Unable to load piAgent: 指定されたモジュールが見つかりません。

プロジェクトで,RAD上のWASが突然起動しなくなるという事象があるので,解決策を簡単にまとめておく.これまで約3年間,Web基盤チームを担当してきたけど,この事象に遭遇したのは計3回だけなので,ほとんど起きない事象だと思う.

ちなみに,IBM的にも既知の事象らしく,以下のTechnoteで解決策まで提示されている.

IBM Cannot launch the WebSphere Application Server v6.x in profiling mode because WebSphere Application Server fails to load piAgent module - United States

事象の確認

この事象に合致している場合,RAD上のWASの native_stderr.log に以下のようなログが出力されているので,それで判別できる.

JVMJ9VM011W Unable to load piAgent: 指定されたモジュールが見つかりません。 Java 仮想マシンを作成できませんでした。

解決策

原因としては,piAgent.dll が見つからないということなので,piAgent.dll を含んだディレクトリを環境変数Pathに含めてあげるのが解決策となる.

ただし,piAgent.dll を <SDPShared>/plugins ディレクトリ直下で検索すると,ファイルが複数見つかる場合があるので,その場合はタイムスタンプが1番新しいものを選択する.自分の環境(RAD V7.0.0.8)だとこんな感じ.

C:\Program Files\IBM\SDP70Shared\plugins\org.eclipse.hyades.execution.win32.x84_4.2.4.v200806081100

ただ,通常なら個別に環境変数なんて追加しなくても良いのに,なんでこの事象に合致した場合だけ追加しなければいけないのかと思う.あくまでこれは暫定対応で,個別に環境変数を追加しなくてもWASを起動できるように戻す対応が根本対応だと思う.とは言え,開発者の手を止めるわけにはいかないし,この解決策の実施負荷も低いため,プロジェクト的にはこれで問題ないかな.