web-dev-qa-db-ja.com

WebLogicスタートアップで環境変数を設定する最良の方法

Oracle WebLogicで、コードからアクセスできるように環境変数を設定する最良の方法は何ですか?環境変数を探すWebLogicを実行するサードパーティのアプリがあります。

注:管理対象サーバーはNode Managerを使用して起動します。

管理コンソールの[サーバーの開始]タブなど、ドメイン構成のどこかに設定できるようにしたいのですが、そのための適切な場所がないようです。

それをするために私が見ることができる唯一の方法は

  1. bin/setDomainEnv.shを編集して環境変数をエクスポートします
  2. nodemanager.propertiesStartScriptEnabled=trueに変更します

これにより、NodeManagerは<ms_home>/bin/startManagedWebLogic.shを使用するように強制され、setDomainEnv.shをソースとし、NodeManagerの起動時にそれらが取得されます。しかし、すべてのマシンでこれを行う必要もあります。

これを行うには、Oracleの起動スクリプトをいじくるよりもクリーンな方法があるかどうか疑問に思います。

8
David Hergert

Spring Frameworkのように、一般的なフレームワークが使用されていないことが確実にわかっており、環境変数を厳密に検索するコードがある場合、mustJava予期されるJava $ ==プロセスが開始される前に、通常の構成ファイル以外の環境変数を設定します。 Javaプロセスが開始され、環境変数は読み取り専用であり、そのプロセスの最終

注:システム全体の環境変数が必要な場合は、/ etc/profile、/ etc/bash_profile、/ etc/environmentなどを使用してください。これらのグローバルな場所で変数を設定するには、Node Managerを新しいログインから再起動する必要があります。再起動する必要はありませんが、通常、プロファイル/環境ファイルはログイン時にのみ取得されます。

1つのドメインまたはノード内のアプリの場合、環境変数はサーバーの起動スクリプトに含める必要があります。 setDomainEnv。[sh | cmd]またはstart(Managed)Weblogic。[sh | cmd]の編集は、 WebLogic環境変数の設定。

ただし、アプリがSpringを使用している場合は、システムプロパティと環境変数が組み合わされます。システムプロパティは強く推奨され、維持および制御が容易です。

参照: 設定のベストプラクティスは何ですかJavaシステムプロパティ、-DまたはSystem.setProperty()?

Weblogicドメイン環境変数

システムプロパティと環境変数の両方を設定する場所の1つは、同じWebLogicサーバーのインストールとドメインを共有するすべてのノードまたはサーバーを起動するために使用されるドメイン環境スクリプトを編集することです。内部<weblogic_domain> /bin/setDomainEnv.sh、(setDomainEnv.cmdon windows)、環境変数の場合は、それらを追加するだけ上部近くにコメントを追加して、それらの使用を文書化します。

    export CUSTOM_VAR="test" # UNIX comment to describe environment variable.

システムプロパティの場合は、EXTRA_Java_PROPERTIESの行をファイルの上部近く、WL_HOME定義の近く、ただし関数とコメントの後に追加することにより、すべてのサーバーに追加されるコマンドライン引数を追加できます。

    EXTRA_Java_PROPERTIES="-Denv=TEST"
    export EXTRA_Java_PROPERTIES

    WL_HOME="/appl/Oracle/middleware/wls/12.1.2.0.0/wlserver"
    export WL_HOME

Weblogicノード固有の環境変数

同じNode Managerによって起動されるノードごとに異なる環境変数が必要な場合は、起動スクリプトをもう少しカスタマイズする必要があります。その場合、<weblogic_domain>/bin/startManagedWeblogic。[sh | cmd]し、_export SERVER_NAME_の後にスクリプトロジックを挿入します。これにより、SERVER_NAMEなどに基づいて設定を実行できます。

ヒント:Windows環境変数は、System.getenv(..)では大文字と小文字が区別されません。

11
Jason Alexander