管理ポートを有効にする。

管理サーバへのアクセスを特定のポートかつ、SSLでのみ接続可能にするために、管理ポートを有効にする。
http://edocs.beasys.co.jp/e-docs/wls/docs81/adminguide/network.html#1158445


余裕!と思ってたら、はまったので、めも。


最初の設定は以下のとおり。

管理サーバ
  非SSLポート:  7100
  SSLポート:    無効
管理対象サーバ
  非SSLポート:  7101
  SSLポート:    無効

ちなみに、管理サーバと管理対象サーバは、同じマシン上にある。


この状態に対して、管理コンソールから管理ポートを有効にする設定を行う。
管理ポートは、7900。
変更後、管理サーバ再起動。


続けて、管理対象サーバを再起動。
(管理ポートを有効にしたので、weblogic.management.serverに指定するURLは、https://<管理サーバのIP>:<管理ポート>になっている。)

"$JAVA_HOME/bin/java" ${JAVA_VM} ${MEM_ARGS} ${JAVA_OPTIONS}     \
  -Dweblogic.Name=${SERVER_NAME}                                 \
  -Dweblogic.management.username=${WLS_USER}                     \
  -Dweblogic.management.password=${WLS_PW}                       \
  -Dweblogic.management.server=https://xxx.xxx.xxx.xxx:7900      \
  -Djava.security.policy="${WL_HOME}/server/lib/weblogic.policy" \
   weblogic.Server &

起動、おっけー。
と思ったら以下のエラーが出て起動しない。。orz

***************************************************************************
The WebLogic Server did not start up properly.
Exception raised: 'weblogic.management.configuration.ConfigurationException: [Configuration Management:150019]管理サーバ (https://XXX.XXX.XXX.XXX:7900) にアクセスするために指定されたアドレスが、期待どおりリモート アドレスにではなく管理対象サーバのローカル アドレス (XXX.XXX.XXX.XXX:7900) に解決されます。あるいは、ドメイン管理ポートを設定している場合には、ローカルの管理対象サーバのポートがすでに使用中の可能性があります。コンフィグレーションを確認して問題を解決してください。 - with nested exception:
[javax.naming.NoInitialContextException: JNDI subsystem is not ready for use ]'
Reason: weblogic.management.configuration.ConfigurationException: [Configuration Management:150019]管理サーバ (https://XXX.XXX.XXX.XXX:7900) にアクセスするために指定されたアドレスが、期待どおりリモート アドレスにではなく管理対象サーバのローカル アドレス (XXX.XXX.XXX.XXX:7900) に解決されます。あるいは、ドメイン管理ポートを設定している場合には、ローカルの管理対象サーバのポートがすでに使用中の可能性があります。コンフィグレーションを確認して問題を解決してください。 - with nested exception:
[javax.naming.NoInitialContextException: JNDI subsystem is not ready for use ]
***************************************************************************

メッセージの意味が分からず、数時間うろうろしたけど、どうやら。

同じマシン上に管理サーバと管理対象サーバがあったら。
管理対象サーバにも専用の管理ポートを設定してあげなくちゃいけない。


そうしないと、管理対象サーバはデフォルトで設定している管理ポート(この場合だと7900)をリスンしようとする。
しかし、デフォルトの管理ポートは既に管理サーバがリスンしているため、管理対象サーバではリスンできずに起動が失敗する。

ということらしい。


管理ポートをリスンするのは管理サーバだけだと思っていたのが、そもそもはまった原因。
管理対象サーバも管理ポートをリスンするのね。。


ちなみに、設定は管理コンソールだと、サーバの[コンフィグレーション]->[一般]->[詳細オプション]->[ローカル管理ポートの有効化] で行う。
今回は、ここに7901を設定。


この後、管理対象サーバを起動したらつつがなく起動した。
はぁ。。


起動後、WebLogicのマニュアルを見直していたら、


ドメイン全体の管理ポートを使用するドメイン内の同じコンピュータ上で複数のサーバ インスタンスが動作する場合は、以下のいずれかを行う必要がある。
・それらのサーバ インスタンスをマルチホームマシンでホストし、各サーバ インスタンスにユニークなリスン アドレスを割り当てる。
・・・

どうやら、これが、今回の件の説明だったらしい。
分かりにくいよ、これ。
1回読んでたんだけど、関係ないと思って飛ばしてたもん。