ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebLogic Scripting Tool ガイド
11g リリース 1 (10.3.1)
B55524-01
 

目次
目次

戻る
戻る
 
次へ
次へ
 

2 WebLogic Scripting Tool の使用

WebLogic Scripting Tool (WLST) は、WebLogic Server ドメインの作成、管理、およびモニタに使用できるコマンドライン スクリプト環境です。この環境は、Java のスクリプト インタプリタである Jython に基づいています。WLST では、ローカル変数、条件変数、フロー制御文など、標準の Jython 機能に加え、WebLogic Server に固有の一連のスクリプト機能 (コマンド) を使用できます。WebLogic のスクリプト言語は、Jython の言語構文に従って個々のニーズに合わせて拡張できます。http://www.jython.org を参照してください。

以下の節では、WebLogic Scripting Tool について説明します。

WLST オンラインまたはオフラインの使用

WLST は、WebLogic Server Administration Console に相当するコマンドライン (WLST オンライン) として、またはコンフィグレーション ウィザードに相当するコマンドライン (WLST オフライン) として使用できます。WebLogic Server Administration Console については、Oracle Fusion Middleware Oracle WebLogic Server の Administration Console オンライン ヘルプを参照してください。コンフィグレーション ウィザードの詳細については、『Oracle Fusion Middleware コンフィグレーション ウィザードを使用したドメインの作成』を参照してください。

WLST オンラインの使用

WLST を使用して実行中の管理サーバに接続し、アクティブなドメインのコンフィグレーションの管理、ドメイン内のリソースに関するパフォーマンス データの参照、またはセキュリティ データの管理 (ユーザの追加、削除など) を実行できます。WLST を使用して管理対象サーバにも接続できますが、管理対象サーバのコンフィグレーション データは変更できません。

WLST オンラインは Java Management Extensions (JMX) クライアントです。WLST オンラインでは、基底のリソース用に管理インタフェースを提供する Java オブジェクトである、管理対象 Bean (MBean) のサーバのメモリ内コレクションと対話します。WebLogic Server MBean については、『Oracle Fusion Middleware Oracle WebLogic Server JMX によるカスタム管理ユーティリティの開発』の「WebLogic Server MBean について」を参照してください。

WLST オフラインの使用

WLST を使用すると、実行中の WebLogic Server インスタンスに接続せずに、ドメイン テンプレートの作成、既存のテンプレートに基づいた新しいドメインの作成、または既存のアクティブでないドメインの拡張を実行できます。WLST オフラインでは、ドメイン内のリソースに関するパフォーマンス データを参照したり、セキュリティ データを変更 (ユーザの追加、削除など) したりすることはできません。

WLST オフラインでは、Template Builder を使用して作成したドメイン テンプレート JAR 内、またはドメインの config ディレクトリ内に永続化されているコンフィグレーション データへの読み書きアクセスが可能です。詳細については、「コンフィグレーション階層情報の参照 (オフライン)」を参照してください。

WLST オフラインを使用する場合、コンフィグレーション データの変更に関する次の制限に注意してください。

  • アクティブなドメインのコンフィグレーションを管理する際には WLST オフラインを使用しないことが推奨されます。オフラインによる編集は、実行中のサーバによって無視されるので、WLST オンラインや WebLogic Server Administration Console などの JMX クライアントによって上書きされる場合があります。

  • WebLogic Server のデフォルト値のほとんどは、パフォーマンスを最適化するため、ドメインのコンフィグレーション ファイルには保持されていません。この最適化が原因で、WLST オフラインでは管理オブジェクトを表示できない場合があります (WebLogic Server では対応する XML 要素をドメインのコンフィグレーション ファイルに書き込んでいないため)。たとえば、ドメインがアクティブであるときにドメインのロギングのデフォルト重大度を変更しなかった場合、WLST オフラインではドメインの Log 管理オブジェクトは表示されません。

    WLST オフラインで表示されない管理オブジェクトの属性のデフォルト値を変更する場合、最初に create コマンドを使用して管理オブジェクトを作成する必要があります。次に、cd を使用して管理オブジェクトに移動し、属性値を変更します。『Oracle Fusion Middleware WebLogic Scripting Tool コマンド リファレンス』の「create」を参照してください。

対話モード、スクリプト モード、および組み込みモード

WLST コマンドは、次の任意の方法で呼び出すことができます。

対話モード

コマンドを入力すると応答がコマンドライン プロンプトに表示される対話モードは、スクリプトを構築する前にツールについて学習したり、コマンド構文を試作したり、コンフィグレーション オプションを確認したりするのに役立ちます。対話形式による WLST の使用は、特にコンフィグレーションに重大な変更を加えた後、即座にフィードバックを取得するのに有用です。WLST スクリプト シェルは、WebLogic Server のインスタンスとの永続的な接続を維持します。

WLST では、WLST セッション期間に入力されるすべてのコマンドをファイルに書き込むことができます。このファイルは、編集して、WLST スクリプトとして実行できます。詳細については、『Oracle Fusion Middleware WebLogic Scripting Tool コマンド リファレンス』の「startRecording」および「stopRecording」を参照してください。

スクリプト モード

スクリプトは、シェル スクリプトと同様に、ユーザからの入力を必要とすることなく WLST コマンドのシーケンスを呼び出します。スクリプトには、WLST コマンドが拡張子 .py の付いたテキスト ファイル (たとえば、filename.py) として含まれます。スクリプトを実行するには、スクリプト ファイルを Jython コマンドと共に使用します。

WLST スクリプトを使用すると、次のようなことができます。

  • WebLogic Server コンフィグレーションおよびアプリケーション デプロイメントの自動化

  • トポロジの複数ノードに渡って、反復的に同じコンフィグレーション設定を適用

  • 対話モードでは制限されている、ループ、フロー制御コンストラクト、条件文、変数評価などのスクリプト言語機能を利用

  • スクリプトをさまざまな時点で実行されるようスケジューリング

  • 反復的なタスクや複雑なプロシージャの自動化

  • 手を使わずにデータ センタでアプリケーションをコンフィグレーション

WebLogic Server でインストールされるサンプル スクリプトについては、「WLST サンプル スクリプト」を参照してください。

組み込みモード

組み込みモードでは、Java コード内で WLST インタプリタをインスタンス化し、それを使って WLST コマンドおよびスクリプトを実行します。対話モードおよびスクリプト モードで使用する WLST コマンドおよび変数はすべて、組み込みモードで実行可能です。

コード リスト 2-1 は、WLST インタプリタをインスタンス化し、それを使用して実行中のサーバに接続し、2 つのサーバを作成し、それらをクラスタに割り当てる方法を示します。

コード リスト 2-1 Java クラスからの WLST の実行

package wlst;
import java.util.*;
import weblogic.management.scripting.utils.WLSTInterpreter;
import org.python.util.InteractiveInterpreter;
/**
 * WLST を実行中のサーバに接続し、2 つのサーバを作成し、それらを新しく
 * 作成されたクラスタに割り当てて終了する、単純な組み込み WLST 例。
 * <p>Title: EmbeddedWLST.java</p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: Oracle</p>
 */
public class EmbeddedWLST 
{
  static InteractiveInterpreter interpreter = null;
  EmbeddedWLST() {
    interpreter = new WLSTInterpreter();
  }
private static void connect() {
    StringBuffer buffer = new StringBuffer();
    buffer.append("connect('weblogic','welcome1')"); 
    interpreter.exec(buffer.toString());
  }
private static void createServers() {
    StringBuffer buf = new StringBuffer();
    buf.append(startTransaction());
    buf.append("man1=create('msEmbedded1','Server')\n");
    buf.append("man2=create('msEmbedded2','Server')\n");
    buf.append("clus=create('clusterEmbedded','Cluster')\n");
    buf.append("man1.setListenPort(8001)\n");
    buf.append("man2.setListenPort(9001)\n");
    buf.append("man1.setCluster(clus)\n");
    buf.append("man2.setCluster(clus)\n");
    buf.append(endTransaction());
    buf.append("print 'Script ran successfully ...' \n");
    interpreter.exec(buf.toString());
  }
private static String startTransaction() {
    StringBuffer buf = new StringBuffer();
    buf.append("edit()\n");
    buf.append("startEdit()\n");
    return buf.toString();
  }
private static String endTransaction() {
    StringBuffer buf = new StringBuffer();
    buf.append("save()\n");
    buf.append("activate(block='true')\n");
    return buf.toString();
  }
  public static void main(String[] args) {
    new EmbeddedWLST();
    connect();
    createServers();
  }
}

WLST のセキュリティ

WLST では、WebLogic Security フレームワークを使用して、認可されていないユーザがドメインを変更したり、暗号化されたデータを参照することを防止しています。以下の節では、WLST のセキュリティ要件を満たすために行なう必要のある操作について説明します。

WLST 接続の保護

WLST を使用して WebLogic Server インスタンスに接続する場合、サーバ インスタンスには管理ポートを介して接続することが推奨されます。管理ポートは、ドメイン内のすべての WebLogic Server インスタンスが管理トラフィック用に使用できる特別で安全なポートです。

このポートはデフォルトで有効ではありませんが、プロダクション環境では有効にすることをお勧めします。アプリケーションのトラフィックと管理トラフィックを分離することによって、重要な管理操作 (サーバの起動と停止、サーバのコンフィグレーションの変更、およびアプリケーションのデプロイ) が、同じネットワーク接続上に存在する大量のアプリケーション トラフィックと競合することがなくなります。

管理ポートでは、すべての通信が SSL を使用して保護される必要があります。デフォルトでは、ドメイン内のすべてのサーバで、SSL 用のデモ用証明書ファイルが使用されますが、これらの証明書はプロダクション環境には適しません。

管理ポートのコンフィグレーションについては、『Oracle Fusion Middleware Oracle WebLogic Server サーバ環境のコンフィグレーション』の「管理ポートと管理チャネル」を参照してください。

コンフィグレーション データへのアクセスの保護

Weblogic Server ドメインは、ドメイン ディレクトリに保存される一群の XML ドキュメントにコンフィグレーション データを格納します。たとえば、これらのコンフィグレーション ドキュメントには、ドメイン内のデプロイされたリソース、リスン アドレス、および名前が記述されます。ドメイン内の 1 つまたは複数のサーバが実行されている場合、各サーバ インスタンスでは、コンフィグレーション データのメモリ内表現が、一群の管理対象 Bean (MBean) として維持されます。

独自のセキュリティ対策を使用し、認可されたユーザのみがファイル システムを介してドメインのコンフィグレーション ファイルにアクセスできるようにする必要があります。ファイル システムを介してドメインのコンフィグレーション ファイルにアクセスすることを認可されたユーザであれば、テキスト エディタ、WLST オフライン、またはその他のツールを使用してコンフィグレーション ファイルを編集できます。

WLST オンラインからのアクセスの保護

WLST を使用して WebLogic Server の実行中のインスタンスに接続する場合、アクティブな WebLogic セキュリティ レルムで定義されているユーザの資格 (ユーザ名およびパスワード) を提供する必要があります。接続後は、一群のセキュリティ ポリシーによって、表示または変更できるコンフィグレーション属性が決まります (『Oracle Fusion Middleware Oracle WebLogic Server MBean Reference』の「Default Security Policies for MBeans」を参照)。

WLST の connect コマンドを呼び出す場合、次のいずれかの方法でユーザの資格を提供できます。

  • コマンドラインで資格を入力する。この方法は、WLST を対話モードで使用している場合にのみお勧めします。

    次に例を示します。

    connect('weblogic', 'welcome1', 'localhost:7001') 
    

    詳細については、『Oracle Fusion Middleware WebLogic Scripting Tool コマンド リファレンス』の「connect」を参照してください。

  • 資格をコマンドラインで入力してから、storeUserConfig コマンドを使用して、暗号化された形式の資格が格納されたユーザ コンフィグレーション ファイル、およびその資格の復号化に使用されるキー ファイルを作成する。以降の WLST セッション (または WLST スクリプト) では、コマンドラインで資格を入力する代わりに、このファイルの名前を指定します。この方法は、WLST をスクリプト モードで使用している場合にお勧めします。スクリプト モードでは、暗号化されていないユーザの資格がスクリプトに格納されないためです。

    たとえば、ユーザ コンフィグレーション ファイルおよびキー ファイルを作成するには、次のように指定します。

    connect('weblogic', 'welcome1', 'localhost:7001')
    storeUserConfig('c:/myFiles/myuserconfigfile.secure',
     'c:/myFiles/myuserkeyfile.secure') 
    

    ユーザ コンフィグレーション ファイルおよびキー ファイルを使用するには、次のように指定します。

    connect(userConfigFile='c:/myfiles/myuserconfigfile.secure',
    userKeyFile='c:/myfiles/myuserkeyfile.secure')
    

    詳細については、『Oracle Fusion Middleware WebLogic Scripting Tool コマンド リファレンス』の「connect」および「storeUserConfig」を参照してください。

  • ドメインの boot.properties ファイルが格納されているディレクトリから connect コマンドを呼び出す。デフォルトでは、管理サーバを作成すると、WebLogic Server は資格を暗号化し、暗号化した資格を boot.properties ファイルに格納します。ドメイン ディレクトリから WLST を起動した場合にのみ、WLST でこのファイルが使用されます。

    たとえば、ドメインの boot.properties ファイルを削除していない場合、WLST を起動して、connect コマンドを次のように呼び出すことができます。

    c:\mydomain\> java weblogic.WLST
    wls:/offline> connect() 
    

    詳細については、『Oracle Fusion Middleware WebLogic Scripting Tool コマンド リファレンス』の「connect」を参照してください。

暗号化されたコンフィグレーション値の読み書き

WebLogic Server ドメインのコンフィグレーションの一部の属性は、機密データへの権限のないアクセスを防ぐために暗号化されます。たとえば、JDBC データソースで RDBMS への接続に使用されるパスワードは暗号化されます。

属性値は、暗号化された文字列としてドメインのコンフィグレーション ドキュメントに保存されます。この値は、実行中のサーバ インスタンスでは、暗号化されたバイト配列形式の MBean 属性として使用できます。暗号化されている属性は、名前が Encrypted で終わります。たとえば ServerMBean では、IIOP プロトコルを介したアクセスの保護に使用されるパスワードが DefaultIIOPPasswordEncrypted という名前の属性としてエクスポーズされます。

暗号化された属性の読み書きには、以下の形式が推奨されます。

WLST オフラインの場合 :

  • 暗号化された値を書き込むには、暗号化属性の名前および暗号化されていない文字列を set コマンドに渡す。次に例を示します。

  • set('DefaultIIOPPasswordEncrypted', 'mypassword')

    WLST は、この文字列を暗号化し、暗号化された値をドメインのコンフィグレーション ファイルに書き込みます。

    詳細については、『Oracle Fusion Middleware WebLogic Scripting Tool コマンド リファレンス』の「set」を参照してください。

  • WLST オフラインでは、暗号化属性の暗号化されていない値が表示されない。ls コマンドを使用して管理属性を表示すると、WLST オフラインでは、暗号化属性の値としてアスタリスクが返されます。get コマンドを使用すると、WLST オフラインでは、アスタリスクを表すバイト配列が返されます。

    次に ls コマンドを使用した例を示します。

    wls:/offline/wl_server/Server/examplesServer>ls()
    

    returns

    ...
    -rw-   DefaultIIOPPasswordEncrypted              ********
    ... 
    

    次に get コマンドを使用した例を示します。

    wls:/offline/wl_server/Server/examplesServer>get('DefaultIIOPPasswordEncrypted')
    

    returns

    array([42, 42, 42, 42, 42, 42, 42, 42], byte) 
    

    詳細については、『Oracle Fusion Middleware WebLogic Scripting Tool コマンド リファレンス』の「ls」および「get」を参照してください。

WLST オンラインでは、各暗号化属性について、MBean には暗号化されていないバージョンも格納されます。たとえば、ServerMBean には、暗号化された値を格納する DefaultIIOPPasswordEncrypted という名前の属性と、暗号化されていないバージョンの値を格納する DefaultIIOPPassword という名前の属性が格納されます。

WLST オンラインで暗号化された値を読み書きするには、次のようにします。

  • 暗号化された値を書き込むには、編集セッションを開始する。次に、以下のいずれかを行います。

    • 暗号化されていない属性の名前と、暗号化されていない文字列を set コマンドに渡す。次に例を示します。

    • set('DefaultIIOPPassword', 'mypassword')

    • 暗号化属性の名前と、暗号化されたバイト配列を set コマンドに渡す。暗号化されたバイト配列は、encrypt コマンドを使用して作成できます (『Oracle Fusion Middleware WebLogic Scripting Tool コマンド リファレンス』の「encrypt」を参照)。次に例を示します。

    • set('DefaultIIOPPasswordEncrypted', encrypt('mypassword'))


      注意 :

      暗号化されていない文字列を暗号化属性に渡さないでください。暗号化属性では、渡される値がすでに暗号化されていることを前提としています。

    編集をアクティブ化すると、WebLogic Server によって、暗号化された値がドメインのコンフィグレーション ファイルに書き込まれます。

  • 属性の暗号化された値を読み込むには、暗号化属性の名前を get コマンドに渡す。次に例を示します。

    get('DefaultIIOPPasswordEncrypted')
    

    returns

    array([105, 114, 111, 110, 115, 116, 101, 101, 108], byte) 
    
  • 属性の暗号化されていない値を読み込むには、暗号化されていない属性の名前を get コマンドに渡す。次に例を示します。

    get('DefaultIIOPPassword')
    returns
    mypassword 
    

セキュリティ データへのアクセスの保護

セキュリティ グループ、セキュリティ ロール、および WebLogic Server ユーザのユーザ名およびパスワードは、ドメインの XML コンフィグレーション ドキュメントには格納されません。その代わりに、ドメインでは、認証プロバイダと呼ばれる別のソフトウェア コンポーネントを使用し、セキュリティ データの格納や転送、およびセキュリティ データへのアクセスの提供を行います。認証プロバイダは、さまざまな種類のシステムを使用してセキュリティ データを格納することができます。WebLogic Server でインストールされる認証プロバイダでは、組み込み LDAP サーバが使用されます。

WLST オフラインを使用してドメイン テンプレートを作成する際、WLST では、認証プロバイダのデータ ストアと残りのドメイン ドキュメントがパッケージ化されます。ドメイン テンプレートからドメインを作成すると、新しいドメインは、ドメイン テンプレートから認証プロバイダのデータ ストアの完全なコピーを取得します。

WLST オフラインを使用して認証プロバイダのデータ ストアのデータを変更することはできません。

ただし、WLST オンラインを使用すると、認証プロバイダと対話して、ユーザ、グループおよびロールを追加、削除または変更できます。詳細については、「セキュリティ データの管理 (WLST オンライン)」を参照してください。

対話モードまたはスクリプト モードでの WLST の使用の主な手順

以下の節では、WLST を設定および使用するための手順の概要を示します。

環境の設定

WLST の環境を設定するには、以下の手順に従います。

  1. Oracle Fusion Middleware Oracle WebLogic Server インストール ガイド』の説明に従って、WebLogic Server ソフトウェアをインストールおよびコンフィグレーションします。

  2. WebLogic Server クラスを、CLASSPATH 環境変数に、WL_HOME\server\binPATH 環境変数に追加します。WL_HOME は、WebLogic Server の最上位インストール ディレクトリを表します。

    WL_HOME\server\bin\setWLSEnv スクリプトを使用すると、両方の変数を設定できます。

    Windows の場合は、[スタート] メニューのショートカットで環境変数を設定し、WLST を呼び出します ([Oracle WebLogic|WebLogic Server|Tools|WebLogic Scripting Tool])。

WLST の呼び出し

WLST を呼び出すには、次の構文を使用します (コマンドのオプションについては、表 2-1 を参照)。

java 
   [ -Dweblogic.security.SSL.ignoreHostnameVerification=true
   -Dweblogic.security.TrustKeyStore=DemoTrust ]
   weblogic.WLST 
   [ -loadProperties propertyFilename ]
   [ -skipWLSModuleScanning ]
   [ [-i] filePath.py ] 

表 2-1 WLST のコマンド オプション

オプション 説明
-Dweblogic.security.SSL.
ignoreHostnameVerification=true
-Dweblogic.security.TrustKeyStore=
DemoTrust

SSL リスン ポートを介して WLST を WebLogic Server インスタンスに接続する場合、およびサーバ インスタンスでデモ用の SSL キーおよび証明書を使用している場合は、これらのシステム プロパティを使用する。

-loadProperties propertyFilename

WLST セッションにプロパティをロードする場合はこのオプションを使用する。ここで、propertyFilename は、name=value のペアが格納されたファイルの名前。

Jython モジュールとして WLST をインポートしている場合、このオプションは使用できない (「Jython モジュールとしての WLST のインポート」を参照)。

このコマンドライン オプションを使用する代わりに、loadproperties WLST コマンドを使用できる。『Oracle Fusion Middleware WebLogic Scripting Tool コマンド リファレンス』の「loadProperties」を参照。

-skipWLSModuleScanning

WLS モジュールに対してパッケージのスキャンとキャッシュを省略することによって起動時間を短縮する場合は、このオプションを使用する。

[-i] filePath.py 

WLST スクリプトを実行する場合、このオプションを使用する。ここで、filePath.py は、スクリプトの絶対パスまたは相対パス名。

デフォルトでは、WLST は、スクリプトの実行後に終了 (Java プロセスを停止) する。WLST が終了しないようにするには、-i を含める。

注意 : wlstProfile.py という WLST スクリプトが、WLST を呼び出すディレクトリ内、または user.home (JVM によって決定されるオペレーティング システムのユーザ アカウントのホーム ディレクトリ) 内に存在する場合、WLST によって wlstProfile.py スクリプトが自動的に実行されるため、コマンドラインでこの WLST スクリプト ファイルの名前を指定する必要はない。

このコマンドライン オプションを使用する代わりに、WLST の起動後、次のコマンドを使用できる。

execfile('filePath.py').


Windows の場合は、[スタート] メニューから [Oracle WebLogic|WebLogic Server|Tools|WebLogic Scripting Tool] を選択することでも、WLST を呼び出すことができます。このようにして WLST を呼び出すと、環境変数が自動的に設定されます。


注意 :

多くの Fusion Middleware コンポーネントには、カスタム WLST コマンドが用意されています。それらのコマンドを使用するには、コンポーネントのインストール先の Oracle ホームから WLST を呼び出す必要があります。『Oracle Fusion Middleware Administrator's Guide』の「Using Custom WLST Commands」を参照してください。

スクリプト モードで WLST を使用するには、次のように指定します。

java weblogic.WLST c:/Oracle/Middleware/wlserver/templates/scripts/wlst/distributeQueues.py

SSL リスン ポートおよびデモ用の証明書を使用する WebLogic Server インスタンス上で WLST スクリプトを実行するには、次のように指定します。

java -Dweblogic.security.SSL.ignoreHostnameVerification=true
-Dweblogic.security.TrustKeyStore=DemoTrust weblogic.WLST
 c:/Oracle/Middleware/wlserver/templates/scripts/wlst/distributeQueues.py 

対話モードで WLST を使用するには、次のように指定します。

java weblogic.WLST 

対話モードで WLST を起動した後で WebLogic Server インスタンスに接続するには、次のように指定します。

wls:/offline> connect('weblogic','welcome1','localhost:7001') 

スクリプトの実行

WLST スクリプトは、以下のようにして実行できます。

  • java weblogic.WLST コマンドにスクリプトを指定する。以下のようにして、スクリプトに絶対パスを指定するか、

    java weblogic.WLST c:/Oracle/Middleware/wlserver/templates/scripts/wlst/distributedQueues.py
    

    あるいは、以下のようにして、WLST を呼び出す前にスクリプトが存在するディレクトリに移動して、コマンドにスクリプト名だけを指定します。

    cd C:/Oracle/Middleware/wlserver_10.3/templates/scripts/wlst
    java weblogic.WLST distributeQueues.py
    
  • WLST を呼び出して (「WLST の呼び出し」を参照)、以下のようにして execfile() コマンドを使用する。

    wls:offline> execfile('c:/Oracle/Middleware/wlserver/templates/scripts/wlst/distributedQueues.py')
    

    注意 :

    パス名にバックスラッシュ (\) を使用する場合、バックスラッシュは特殊文字として認識されるため、エスケープする必要があります。詳細については、「WLST コマンドの構文」を参照してください。

WLST の終了

WLST を終了するには、exit() コマンドを入力します。

wls:/mydomain/serverConfig> exit() 
Exiting WebLogic Scripting Tool ... 
c:\>

WLST コマンドの構文

WLST のコマンドを入力、またはスクリプトに記述する際は、次の構文を使用します。

  • コマンド名および引数では、大文字と小文字を区別する。

  • 引数は一重引用符または二重引用符で囲む。たとえば、'newServer' または "newServer"

  • 文字列にバックスラッシュ文字 (\) を使用する場合は、そのバックスラッシュに別のバックスラッシュを前置するか、小文字の r を文字列全体の先頭に配置する。この \ または r を指定すると、Jython によってバックスラッシュが特殊文字として解釈されなくなります。

    たとえば、バックスラッシュが含まれるファイル パス名を指定する際、次のように指定します。

    readTemplate('c:\\userdomains\\mytemplates\\mytemplate.jar') 
    

    または

    readTemplate(r'c:\userdomains\mytemplates\mytemplate.jar') 
    
  • WLST オフラインを使用している場合、管理オブジェクトの名前において、ピリオド (.)、フォワードスラッシュ (/) またはバックスラッシュ (\) は無効。

    名前の中にフォワードスラッシュ (/) が含まれる管理オブジェクトに対して cd を実行する必要がある場合、そのオブジェクト名を括弧で囲みます。次に例を示します。

    cd('JMSQueue/(jms/REGISTRATION_MDB_QUEUE)')
    

エラーおよびデバッグ出力のファイルへのリダイレクト

WLST の情報、エラー、およびデバッグに関する各メッセージを標準出力からファイルにリダイレクトするには、次のように指定します。

redirect(outputFile,[toStdOut])
stopRedirect()

このコマンドでは、dumpStack() および dumpVariables() コマンドの出力もリダイレクトされます。

たとえば、WLST 出力を、WLST を起動したディレクトリ下の logs/wlst.log ファイルにリダイレクトするには、次のコマンドを指定します。

wls:/mydomain/serverConfig> redirect('./logs/wlst.log') 

詳細については、『Oracle Fusion Middleware WebLogic Scripting Tool コマンド リファレンス』の「redirect」および「stopRedirect」を参照してください。

ヘルプの表示

WLST のコマンドおよび変数に関する情報を表示するには、help コマンドを入力します。

引数なしで help コマンドを指定すると、WLST はコマンドのカテゴリの概要を示します。特定のコマンド、変数、またはコマンド カテゴリの情報を表示するには、help コマンドに対する引数として、その名前を指定します。すべてのオンラインまたはオフライン コマンドの概要をコマンドラインからリスト表示するには、それぞれ以下のコマンドを使用します。

   help('online')
   help('offline')

help コマンドは、クエリをサポートします。たとえば、help('get*') とすると、get で始まるすべてのコマンドについての構文および使い方の情報が表示されます。

たとえば、disconnect コマンドの情報を表示するには、次のコマンドを入力します。

wls:/mydomain/serverConfig> help('disconnect') 

コマンドによって、次のメッセージが返されます。

Description:
Disconnect from a weblogic server instance.
Syntax:
disconnect()
Example:
wls:/mydomain/serverConfig> disconnect() 

Ant からの WLST の実行

WebLogic Server では、Ant ビルド ファイルから WLST スクリプトを呼び出すカスタム Ant タスク wlst を使用できます。WLST スクリプト ファイル (.py) を作成し、このタスクを使用してスクリプト ファイルを呼び出すことができます。または、WLST スクリプトをこのタスク内のネストした要素に作成できます。

Ant の詳細については、『Apache Ant 1.7.1 Manual』(http://ant.apache.org/manual/) を参照してください。

wlst タスクは、WebLogic Server にインストールされているバージョンの Ant であらかじめ定義されています。このバージョンの Ant を現在のビルド環境に追加するには、次のスクリプトを実行します。

WL_HOME\server\bin\setWLSEnv.cmd (または、UNIX では setWLSEnv.sh)

ここで、WL_HOME は、WebLogic Server のインストール先ディレクトリです。

独自にインストールした Ant で wlst タスクを使用する場合は、ビルド ファイルに次のタスク定義を追加します。

<taskdef name="wlst" 
   classname="weblogic.ant.taskdefs.management.WLSTTask" /> 

パラメータ

表 2-2 に、<wlst> 要素の属性として指定する wlst タスクのパラメータを示します。

表 2-2 wlst のパラメータ

属性 説明 必須/省略可能

properties="propsFile"

WLST スクリプト内で参照できる名前と値のペアを含むプロパティ ファイルの名前と場所。

省略可能

fileName="fileName"

実行する WLST スクリプト ファイルの名前と場所。指定された WLST スクリプト ファイルが存在しない場合、このタスクは失敗する。

ネストした <script> が使用されていない場合、必須。

arguments="arglist"

スクリプトに渡す引数のリスト。これらの引数には、sys.argv 変数を使用してアクセス可能。

省略可能

failOnError="value"

このタスクが失敗した場合に、Ant のビルドが失敗するかどうかを指定するブール値。

省略可能。デフォルトは true

executeScriptBeforeFile="value"

fileName 属性で指定されるスクリプト ファイルの前に、ネストした <script> 要素のスクリプトをこのタスクで呼び出すかどうかを指定するブール値。この属性のデフォルトは、埋め込まれたスクリプトが先に呼び出されることを指定する true

省略可能。デフォルトは true

debug="value"

このタスクの実行時にデバッグ文を出力するかどうかを指定するブール値。

省略可能。デフォルトは false

replaceProperties="value"

指定した WLST スクリプトで Ant プロパティを展開するかどうかを指定するブール値。

省略可能。デフォルトは true


ネストした要素として指定するパラメータ

以下の節では、<wlst> 要素のネストした要素として指定する wlst タスクのパラメータについて説明します。

script

WLST スクリプトを格納します。この要素は、スクリプト ファイルの名前を付けるのに fileName 属性を使用しない場合に必要です。

classpath

クラスパスに追加するクラスを指定します。この要素は、クラスパスにまだ存在しないクラスがスクリプトで必要な場合に使用します。

この要素は、標準の Ant classpath 要素です。クラスパスに追加するディレクトリおよびファイルを指定するネスト要素、またはビルド ファイルの任意の場所で定義した path 要素への参照を指定できます。『Apache Ant 1.7.1 Manual』の「Path-like Structures」(http://ant.apache.org/manual/using.html#path) を参照してください。

以下の節では、createServerloop、および error ターゲットの例を示します。

例 1

次の例では、createServer ターゲットが、以下の処理を行います。

  • タスクのクラスパスにクラスを追加する。

  • ネストした script 要素のスクリプトを実行する。このスクリプトは、ドメインの管理サーバ (t3://localhost:7001) に接続する (executeScriptBeforeFiletrue に設定されているため、指定した WLST スクリプト ファイルよりも先に呼び出される)。

  • fileName 属性で指定したスクリプト ファイル myscript.py を実行する。スクリプト ファイルは、Ant を起動したディレクトリにある。このようなファイルを使用して、編集セッションの開始、新しいサーバの作成、コンフィグレーションの変更の保存およびアクティブ化を実行可能。

  • スクリプトに渡される 3 つの引数を定義。これらの引数には、sys.argv 変数を使用してアクセス可能。

  • wlst Ant タスクの実行が失敗しても、failOnError="false" 設定に従って実行を続行。

  • デバッグを無効化。

    <target name="configServer"> 
       <wlst debug="false" failOnError="false" executeScriptBeforeFile="true"  
        fileName="./myscript.py"> 
           <classpath>
             <pathelement location="${my.classpath.dir}"/>
           </classpath>
           <script>
             connect('weblogic','welcome1','t3://localhost:7001') 
         </script> 
       </wlst> 
    </target> 
    

例 2

次の例では、loop ターゲットが、以下の処理を行います。

  • パスの参照を使用して、タスクのクラスパスにクラスを追加する。

  • Ant を起動したディレクトリにある WLST スクリプト ファイル myscript.py を実行する (executeScriptBeforeFilefalse に設定されているため、WLST スクリプト ファイルが、埋め込まれたスクリプトよりも先に実行される)。

  • 埋め込まれたスクリプトを実行して t3://localhost:7001 のサーバに接続し、ドメイン内のサーバのリストにアクセスしてそれを出力する。

  • wlst タスクの実行が失敗すると、failOnError="true" 設定に従ってビルドの失敗をもたらす。

  • デバッグを有効化。

    <path id="my.classpath">
        <pathelement location="${my.classpath.dir}"/>
    </path>
    <target name="loop"> 
      <wlst debug="true" executeScriptBeforeFile="false" 
        fileName="./myscript.py" failOnError="true"> 
        <classpath>
            <pathelement location="${my.classpath.dir}"/>
        </classpath>
        <script replaceProperties="true">
           print 'In the target loop' 
           connect('${admin.user}','${admin.password}','t3://localhost:7001') 
           svrs = cmo.getServers() 
           print 'Servers in the domain are' 
           for x in svrs: print x.getName()
        </script>
      </wlst> 
    </target> 
    

例 3

次の例では、error ターゲットが、以下の処理を行います。

  • 埋め込まれたスクリプトを実行して変数 thisWillCauseNameError を出力。

  • thisWillCauseNameError 変数が存在せず、wlst Ant タスクの実行が失敗しても、failOnError="false" 設定に従って実行を続行。

  • デバッグを有効化。

    <target name="error"> 
       <wlst debug="true" failOnError="false"> 
          <script>print thisWillCauseNameError</script> 
       </wlst> 
    </target>
    

Jython モジュールとしての WLST のインポート

上級ユーザは、WLST を Jython モジュールとして WebLogic Server からインポートできます。WLST のインポート後は、それを他の Jython モジュールと共に使用し、Jython 構文で直接 Jython コマンドを呼び出せます。

主な手順としては、WLST 定義およびメソッド宣言の .py ファイルへの変換、Jython モジュールへの WLST ファイルのインポート、インポートされたファイルからの WLST の参照などです。

Jython モジュールとして WLST をインポートするには、次の手順に従います。

  1. WLST を呼び出します。

    c:\>java weblogic.WLST 
    wls:/(offline)> 
    
  2. WLST の定義およびメソッド宣言を .py ファイルに変換するには、writeIniFile コマンドを使用します。

    wls:/(offline)> writeIniFile("wl.py") 
    The Ini file is successfully written to wl.py
    wls:/(offline)> 
    
  3. 新しいコマンド シェルを開き、次のコマンドを入力して、Jython を直接呼び出します。

    c:\>java org.python.util.jython 
    

    Jython パッケージ マネージャが、クラスパス内の JAR ファイルを処理します。Jython プロンプトが表示されます。

    >>>
    
  4. Jython の import コマンドを使用して、Jython モジュールに WLST モジュールをインポートします。

    >>>import wl 
    
  5. これで、WLST メソッドをモジュール内で使用できるようになりました。たとえば、WLST をサーバ インスタンスに接続するには、次のように指定します。

    wl.connect('username','password') 
    .... 
    

    注意 :

    WLST を Jython モジュールとして使用する場合、ブロック引数を持つすべての WLST コマンドで、ブロックは常に true に設定され、コマンドが完了するまで WLST がユーザの対話をブロックすることが指定されます。『Oracle Fusion Middleware WebLogic Scripting Tool コマンド リファレンス』の「WLST コマンドおよび変数リファレンス」を参照してください。

    記録されたスクリプトを Jython インタプリタで直接実行する場合、ブール値 true および false によってエラーが発生する場合があります。記録されたスクリプトを Jython インタプリタで実行する前に、スクリプトに対して次のいずれかの変更を行ってください。

    • スクリプトに次の 2 行を追加して true および false 値を定義する。

    • true=1
      false=0
      
    • true および false 値を、wl.true および wl.false に変更する。ここで、wl はインポート元の名前です。


WLST のカスタマイズ

デフォルトでは WL_HOME/common/wlst にある WLST ホーム ディレクトリを使用して、WLST をカスタマイズできます。WL_HOME は、WebLogic Server の最上位インストール ディレクトリを表します。WLST ホーム ディレクトリ内で定義されている Python スクリプトはすべて、WLST 起動時にインポートされます。


注意 :

デフォルトの WLST ホーム ディレクトリは、コマンドライン上で次の引数を渡すことで、カスタマイズできます。
-Dweblogic.wlstHome=<another-directory>

次の表では、WLST をカスタマイズする方法について説明します。

表 2-3 WLST のカスタマイズ

カスタマイズ対象 作業内容 サンプル スクリプトの場所

WLST コマンド

新しいコマンドを定義する Python スクリプトを作成し、そのファイルを WL_HOME/common/wlst にコピーする。

sample.py サンプル スクリプト


ライブラリ内の WLST コマンド

新しいコマンドを定義する Python スクリプトを作成し、そのファイルを WL_HOME/common/wlst/lib にコピーする。

このディレクトリ内のスクリプトが、Jython ライブラリとしてインポートされる。

wlstLibSample.py サンプル スクリプト


Jython モジュールとしての WLST コマンド

新しいコマンドを定義する Python スクリプトを作成し、そのファイルを WL_HOME/common/wlst/modules にコピーする。

このスクリプトは、「Jython モジュールとしての WLST のインポート」で説明したとおり、他の Jython モジュールにインポートできる。

WL_HOME/common/wlst/modules/wlstModule.py

Jython 2.2.1 で利用できるすべての Jython モジュールが格納されている、JAR ファイル jython-modules.jar も、このディレクトリ内で利用可能である。

カスタム WLST コマンドの統合ヘルプ

リソース バンドル内に各コマンド グループおよびコマンドのヘルプ テキストを定義する。

addHelpCommandGroup を使用して、help() コマンドで表示されるコマンド グループのリストにコマンド グループを追加する。

addHelpCommand を使用して、help('commandGroup') コマンドで表示されるコマンドのリストにコマンドを追加する。

通常、カスタム コマンドの定義が格納されている .py ファイルから addHelpCommandGroup および addHelpCommand を呼び出します。

詳細については、「カスタム コマンドの統合ヘルプの追加」を参照。

該当なし


カスタム コマンドの統合ヘルプの追加

WLST をカスタマイズして、定義したカスタム WLST コマンドの統合ヘルプを追加できます。統合ヘルプを追加するには、リソース バンドル内に各コマンド グループおよびコマンドのヘルプ テキストを定義します。定義したファイルは、クラスまたはプロパティ リソース ファイルのいずれかになります。複数のコマンド グループのヘルプを同じリソース バンドルに定義できます。


注意 :

リソース バンドルは、クラスパスに指定されている必要があります。

リソース バンドルには、コマンド グループごとに次のエントリが格納されます。

<commandGroup>_ShortDescription=\
     <short description of command group>
<commandGroup>_Description=\
     \n<description of command group>
]

たとえば、次の行では、コマンド グループ navigate の短い説明と説明が定義されています。

navigate_ShortDescription=\
     Lists commands for navigating the hierarchy of beans.
navigate_Description=\
     \n Navigates the hierarchy of beans and controls the prompt display. \n

help() コマンドを入力してコマンド グループのリストを表示すると、次のようにリスト内に navigate の ShortDescription が表示されます。

wls:/offline>help()
WLST is a command line scripting tool to configure and administer a WebLogic Server. Try:
     help('all')        List all WLST commands available.
     help('browser')    List commands for browsing the hierarchy.
     help('navigate')   List commands for navigating the bean hierarchy.

help('navigate') コマンドを入力すると、次のようにグループのコマンド リストの上に Description が表示されます。

wls:/offline> help('navigate')
Navigates the hierarchy of beans and controls the prompt display.
     help('mycd')     Navigate the hierarchy of beans.
     help('myprmpt')  Toggle the display of path information at the prompt.

リソース バンドルには、標準パターンを使用したコマンドのヘルプ テキスト エントリも格納されます。以下のように、コマンド名ごとにいくつかのエントリがあります。

<commandName>_ShortDescription
<commandName>_Description
<commandName>_Example
<commandName>_Syntax

次の行では、mycd コマンドのヘルプが定義されています。

mycd_ShortDescription=\
     Navigate the hierarchy of beans.

mycd_Description=\
     \nNavigate the hierarchy of configuration or runtime beans. This \
     \ncommand uses a model that is similar to navigating a file system \
     \nin a Windows or UNIX command shell. For example, to navigate back \
     \nto a parent configuration or runtime bean, enter mycd(".."). The \
     \ncharacter string .. (dot-dot) refers to the directory immediately \
     \nabove the current directory. To get back to the root configuration \
     \nbean after navigating to a configuration or runtime bean that is \
     \ndeep in the hierarchy, enter mycd("/"). \

mycd_Example=\
     wls:/mydomain/serverConfig> mycd('Servers')\n\
     wls:/mydomain/serverConfig/Servers> mycd('myserver)\n\
     wls:/mydomain/serverConfig/Servers/myserver>mycd('../..')\n\
     wls:/mydomain/serverConfig>

mycd_syntax=\
     mycd(mbeanName)
     \n- mbeanName = Path to the configuration or runtime bean in the namespace.\
     \n

help('commandGroup') コマンドを入力してグループのすべてのコマンドをリストすると、コマンド名の右側に、次のように ShortDescription が表示されます。

wls:/offline> help('navigate')
Navigates the hierarchy of beans and controls the prompt display.
   help('mycd')     Navigate the hierarchy of beans.
   help('myprmpt')  Toggle the display of path information at the prompt.     

help('commandName') コマンドを入力すると、「説明」、「例」、および「構文」が表示されます。

wls:/offline> help('mycd')

説明 :

Navigate the hierarchy of configuration or runtime beans. This
command uses a model that is similar to navigating a file system
in a Windows or UNIX command shell. For example, to navigate back
to a parent configuration or runtime bean, enter mycd(".."). The
character string .. (dot-dot) refers to the directory immediately
above the current directory. To get back to the root configuration
bean after navigating to a configuration or runtime bean that is
deep in the hierarchy, enter mycd("/").

構文 :
mycd(mbeanName)
- mbeanName = Path to the configuration or runtime bean in the namespace.

例 :

wls:/mydomaina/serverConfig> mycd('Servers')\n\
wls:/mydomain/serverConfig/Servers> mycd('myserver)\n\
wls:/mydomain/serverConfig/Servers/myserver>mycd('../..')\n\
wls:/mydomain/serverConfig>

リソース バンドルにヘルプ テキストを定義したら、addHelpCommandGroup を使用して、コマンド グループ名を help() コマンドで出力されるコマンド グループのリストに追加します。addHelpCommand を使用して、グループ内の各コマンドを help('commandGroup') コマンドで表示されるコマンドのリストに追加します。『Oracle Fusion Middleware WebLogic Scripting Tool コマンド リファレンス』の「addHelpCommandGroup」および「addHelpCommand」を参照してください。

ResourceBundle およびローカライゼーションについては、http://java.sun.com/javase/6/docs/api/java/util/ResourceBundle.html を参照してください。

sample.py サンプル スクリプト

以下のサンプル スクリプトは、新しい WLST コマンドを定義する方法を示しています。

def wlstHomeSample():
     print 'Sample wlst home command'

このスクリプト内で wlstHomeSample() コマンドが定義され、このコマンドが次のように String を出力します。

wls:/(offline)> wlstHomeSample()
Sample wlst home command

wlstLibSample.py サンプル スクリプト

以下のサンプル スクリプトは、階層化された製品および ISV が独自のネームスペース内の wlst にコマンドを追加できる、WLST lib ディレクトリの使用法を示しています。このスクリプトの構造は、前節の例と同様です。唯一の違いは、WL_HOME/common/wlst ディレクトリではなく、WL_HOME/common/wlst/lib ディレクトリに格納される点です。

def wlstExampleCmd():
     print 'Example command'

このスクリプト内で wlstExampleCmd() コマンドが定義され、このコマンドが次のように String を出力します。

wls:/(offline)>wlstLibSample.wlstExampleCmd()
Example command