ナビゲーションをスキップ

WebLogic Server コマンド リファレンス

  前 次 前/次ボタンと目次ボタンとの区切り線 目次  

コマンドライン ユーティリティを使用した WebLogic Server ドメインのコンフィグレーション

WebLogic Server には、ドメイン、サーバ、およびリソースの作成を自動化するためのコマンドライン ユーティリティがいくつか用意されています。以下の節では、シェル スクリプトと weblogic.Serverweblogic.Admin、および weblogic.Deployer コマンドを組み合わせて一般的なコンフィグレーション タスクを自動化する方法について説明します。

上記以外にも、WebLogic Server ドメインのコンフィグレーションを自動化するテクニックがあります。WebLogic Server Template Builder または Ant を使用する以下のいずれかのテクニックから、自分が慣れ親しんでいる方法を使用します。

 


コマンドライン ユーティリティを使用した MedRec ドメインの複製 : 主要手順

サンプル Korn シェル スクリプト」では、MedRec ドメインを複製して少しだけ修正するためのサンプル スクリプトを示します。

ドメイン (MedRec サンプル ドメインなど) を作成およびコンフィグレーションするには、シェル スクリプトを使用して次の手順に従います。

  1. 必要な環境変数を設定します。
  2. 環境の設定」を参照してください。

  3. java weblogic.Server コマンドを使用して骨組みドメインを作成します。
  4. ドメインの作成」を参照してください。

  5. 骨組みドメインの Administration Server がその起動サイクルを完了したら、管理 MBean をインスタンス化する一連の weblogic.Admin コマンドを呼び出してこのドメインのリソースをコンフィグレーションします。以下を参照してください。
  6. WebLogic Server の MBean については、『WebLogic JMX Service プログラマーズ ガイド』の「WebLogic JMX サービスの概要」を参照してください。

  7. 複数の weblogic.Deployer コマンドを呼び出して J2EE モジュール (EJB やエンタープライズ アプリケーションなど) をデプロイします。
  8. アプリケーションのデプロイメント」を参照してください。

環境の設定

すべての WebLogic Server コマンドでは、環境の PATH 変数に SDK が指定され、CLASSPATH 変数に一連の WebLogic Server クラスが指定されている必要があります。

次のスクリプトを使用して、SDK を PATH 変数に追加し、WebLogic Server クラスを CLASSPATH 変数に追加します。

WL_HOME\server\bin\setWLSEnv.cmd (Windows の場合)
WL_HOME/server/bin/setWLSEnv.sh (UNIX の場合)

JDBC リソースを使用してデータベースに接続する場合、データベース ベンダの要件に従って環境を変更します。通常、そのためには、ドライバ クラスを CLASSPATH 変数に追加し、ベンダ固有のディレクトリを PATH 変数に追加します。SDK を PATH 変数に追加し、WebLogic Server クラスを CLASSPATH 変数に追加するだけでなく、サンプル Pointbase データベースで必要な環境を設定するには、次のスクリプトを呼び出します。

WL_HOME\samples\domains\medrec\setMedRecEnv.cmd (Windows の場合)
WL_HOME/samples/domains/medrec/setMedRecEnv.sh (UNIX の場合)

ドメインの作成

mymedrec というドメインと、ポート 8001 でリスンする myMedRecServer という管理サーバを作成するには、次の手順に従います。

  1. mymedrec という空のディレクトリを作成します。
  2. 空のディレクトリに移動して、次のコマンドを入力します。
  3. java -Dweblogic.management.username=weblogic
    -Dweblogic.management.password=weblogic
    -Dweblogic.Domain=mymedrec
    -Dweblogic.Name=myMedRecServer
    -Dweblogic.ListenPort=8001
    -Dweblogic.management.GenerateDefaultConfig=true
    weblogic.Server

    config.xml ファイルが存在しないディレクトリ内の weblogic.Server クラスを呼び出した場合、WebLogic Server はドメインと管理サーバを作成して起動します。「デフォルト動作」を参照してください。

    注意 :

JDBC リソースの作成

コード リスト  2-1 のコマンドは、JDBC リソースを mymedrec ドメインに作成します。.

コード リスト 2-1JDBC リソースの作成

# アプリケーション用の JDBC 接続プールを作成する
CREATE_POOL myMedRecPoolXA
driver="com.pointbase.xa.xaDataSource",
url=jdbc:pointbase:server://localhost:9093/demo,
props=user=medrec;password=medrec;
DatabaseName=jdbc:pointbase:server://localhost:9093/demo,maxCapacity=10
# トランザクション データ ソースを作成する
CREATE -mbean mymedrec:Name=MedRecTxDataSource,Type=JDBCTxDataSource
# トランザクション データ ソースをコンフィグレーションする
SET -mbean mymedrec:Name=MedRecTxDataSource,Type=JDBCTxDataSource
-property JNDIName "MedRecTxDataSource"
SET -mbean mymedrec:Name=MedRecTxDataSource,Type=JDBCTxDataSource 
-property PoolName "myMedRecPoolXA"
# JMS JDBC ストア用の別の JDBC 接続プールを作成する
CREATE_POOL myMedRecPool driver="com.pointbase.jdbc.jdbcUniversalDriver",
url=jdbc:pointbase:server://localhost:9093/demo,
props=user=medrec;password=medrec,
DatabaseName=jdbc:pointbase:server://localhost:9093/demo,maxCapacity=10

weblogic.Admin BATCHUPDATE コマンドを呼び出すと、コード リスト  2-1 のコマンドは以下のことを行います (「BATCHUPDATE」を参照)。

  1. JDBC 接続プールを作成し、WebLogic Server がインストールする MedRec サンプル PointBase データベースに接続できるようにコンフィグレーションします。
  2. データベースの名前は demo、リスン ポートは 9093 です。

    CREATE_POOL コマンドは、JDBCConnectionPool タイプの MBean を作成します。このオブジェクト名は mymedrec:Name=myMedRecPoolXA,Type=JDBCConnectionPool です。

    詳細については、次を参照してください。

  3. JDBCTxDataSourceMBean 管理 MBean をインスタンス化して、JDBC トランザクション データ ソースを作成します。
  4. CREATE -mbean コマンドは、MBean を作成して MBean の WebLogicObjectName を指定します。このオブジェクト名の要素は次のとおりです。

  5. インスタンス化した JDBCTxDataSourceMBean の属性を設定することによって、トランザクション データ ソースをコンフィグレーションします。
  6. JDBCTxDataSourceMBean のすべての属性と有効値については、「Javadoc」を参照してください。

  7. XA ドライバの代わりに汎用ドライバを使用する別の JDBC 接続プールを作成します。この接続プールは、JMS リソースによって使用されます。これらのリソースは XA ドライバをサポートしません。

サンプル コマンドを使用する

JDBC リソースを mymedrec ドメインに作成するには、次の手順に従います。

  1. コード リスト  2-1 のコマンドをコピーし、空のテキスト ファイルに貼り付けます。
  2. コマンド プロンプト (シェル) を開いて、WL_HOMEcommon¥bin¥startPointBase.sh を呼び出します。
  3. このスクリプトによって、mymedrec ドメインが使用する PointBase データベースが起動します。

  4. mymedrec ドメインの管理サーバをまだ起動していない場合は、次の手順に従います。
    1. ドメインの作成」で作成した mymedrec ディレクトリに移動します。
    2. 以下のいずれかのスクリプトを呼び出します。
    3. WL_HOME\samples\domains\medrec\setMedRecEnv.cmd (Windows の場合)
      WL_HOME/samples/domains/medrec/setMedRecEnv.sh (UNIX の場合)

    4. 次のコマンドを入力します。
    5. java -Dweblogic.management.username=weblogic
      -Dweblogic.management.password=weblogic
      -Dweblogic.Name=myMedRecServer
      -Dweblogic.ListenPort=8001
      weblogic.Server

  5. 別のコマンド プロンプト (シェル) を開いて、次の手順に従います。
    1. WL_HOME\samples\domains\medrec\setMedRecEnv.cmd または setMedRecEnv.sh を呼び出します。
    2. 次のコマンドを呼び出します。
    3. java weblogic.Admin -url localhost:7001 -username weblogic -password weblogic BATCHUPDATE -batchFile c:¥myfile -batchCmdVerbose

      c:\myfile は、コード リスト 2-1 のコマンドを含むテキスト ファイルの名前です。

      BATCHUPDATE」を参照してください。

JMS リソースの作成

コード リスト  2-2 のコマンドは、JMS リソースを mymedrec ドメインに作成します。.

コード リスト 2-2JMS リソースの作成

# JMS 接続ファクトリを作成する
CREATE -mbean mymedrec:Name=MedRecQueueFactory,Type=JMSConnectionFactory
# JMS 接続ファクトリをコンフィグレーションする
SET -mbean mymedrec:Name=MedRecQueueFactory,Type=JMSConnectionFactory
-property JNDIName "jms/MedRecQueueConnectionFactory"
SET -mbean mymedrec:Name=MedRecQueueFactory,Type=JMSConnectionFactory 
-property XAServerEnabled "true"
#
# JMS JDBC ストアを作成およびコンフィグレーションする
CREATE -mbean mymedrec:Name=MedRecJDBCStore,Type=JMSJDBCStore
SET -mbean mymedrec:Name=MedRecJDBCStore,Type=JMSJDBCStore 
-property ConnectionPool "mymedrec:Name=myMedRecPool,Type=JDBCConnectionPool"
SET -mbean mymedrec:Name=MedRecJDBCStore,Type=JMSJDBCStore 
-property PrefixName "MedRec"
# JMS サーバを作成およびコンフィグレーションする
CREATE -mbean mymedrec:Name=MedRecJMSServer,Type=JMSServer
SET -mbean mymedrec:Name=MedRecJMSServer,Type=JMSServer 
-property Store "mymedrec:Name=MedRecJDBCStore,Type=JMSJDBCStore"
# キューを作成およびコンフィグレーションする
CREATE -mbean
mymedrec:JMSServer=MedRecJMSServer,Name=RegistrationQueue,Type=JMSQueue
SET -mbean 
mymedrec:JMSServer=MedRecJMSServer,Name=RegistrationQueue,Type=JMSQueue
-property JNDIName "jms/REGISTRATION_MDB_QUEUE"
# 別のキューを作成およびコンフィグレーションする
CREATE -mbean mymedrec:JMSServer=MedRecJMSServer,Name=MailQueue,Type=JMSQueue
SET -mbean mymedrec:JMSServer=MedRecJMSServer,Name=MailQueue,Type=JMSQueue 
-property JNDIName "jms/MAIL_MDB_QUEUE"
# 別のキューを作成およびコンフィグレーションする
CREATE -mbean mymedrec:JMSServer=MedRecJMSServer,Name=XMLQueue,Type=JMSQueue
SET -mbean mymedrec:JMSServer=MedRecJMSServer,Name=XMLQueue,Type=JMSQueue 
-property JNDIName "jms/XML_UPLOAD_MDB_QUEUE"

weblogic.Admin BATCHUPDATE コマンドを呼び出すと、これらのコマンドは以下のことを行います (「BATCHUPDATE」を参照)。

  1. JMSConnectionFactoryMBean をインスタンス化することによって JMS 接続ファクトリを作成します。
  2. CREATE -mbean コマンドは、MBean を作成して MBean の WebLogicObjectName を指定します。 (『WebLogic JMX Service プログラマーズ ガイド』の「JMS コンフィグレーションのネームスペース」を参照)。このオブジェクト名の要素は次のとおりです。

  3. インスタンス化した JMSConnectionFactory の属性を設定することによって、JMS 接続ファクトリをコンフィグレーションします。
  4. SET コマンドで、次の引数を指定します。

  5. JMSJDBCStoreMBean をインスタンス化してその値を設定することによって、JDBC を使用する JMS ストアを作成およびコンフィグレーションします。
  6. ConnectionPool 属性の値を設定するコマンドによって、JDBC 接続プールの WebLogicObjectName が指定されます。これは、JMSJDBCStoreMBean Javadoc で、ConnectionPool 属性が JDBCConnectionPoolMBean のオブジェクト名でなければならないと指示されているからです。

    public void setConnectionPool(JDBCConnectionPoolMBean connectionPool)

  7. JMSServerMBean をインスタンス化してその値を設定することによって、JMS サーバを作成およびコンフィグレーションします。
  8. Store 属性の値を設定するコマンドによって、JMS ストアの WebLogicObjectName が指定されます。これは、JMSServerMBean Javadoc で、Store 属性が JMSStoreMBean のオブジェクト名でなければならないと指示されているからです。

    public void setStore(JMSStoreMBean store)

    JMSJDBCStore は、JMSStoreMBean のサブタイプです。

  9. JMSQueueMBean タイプの 3 つの MBean をインスタンス化してその値を設定することによって、3 つの JMS キューを作成およびコンフィグレーションします。
  10. キューの名前は、RegistrationQueueMailQueue、および XMLQueue です。

    JMSQueueMBean のすべての属性と有効値については、「Javadoc」 を参照してください。

メール リソースの作成

コード リスト  2-3 のコマンドは、MailSessionMBean を作成およびコンフィグレーションすることによって mymedrec ドメインの MedRec アプリケーションに電子メール機能を追加します。これらのコマンドをテキスト ファイルに保存して、それらを weblogic.Admin BATCHUPDATE コマンドで呼び出すことができます (「BATCHUPDATE」を参照)。

注意 : MailSessionMBean のすべての属性と有効値については、「Javadoc」 を参照してください。WebLogic Server メール サービスの詳細については、Administration Console オンライン ヘルプの「メール」を参照してください。

コード リスト 2-3メール リソースの作成

CREATE -mbean mymedrec:Name=MedicalRecordsMailSession,Type=MailSession
SET -mbean mymedrec:Name=MedicalRecordsMailSession,Type=MailSession 
-property JNDIName "mail/MedRecMailSession"
SET -mbean mymedrec:Name=MedicalRecordsMailSession,Type=MailSession 
-property Properties "mail.user=joe;mail.host=mail.mycompany.com"

管理対象サーバの作成とコンフィグレーション

プロダクション環境では、アプリケーションとリソースをホストする管理対象サーバを 1 つまたは複数作成してください。 管理サーバは、ドメインをコンフィグレーションおよび管理するためにだけ使用します。

コード リスト  2-4 のコマンドは、管理対象サーバを mymedrec ドメインに作成しコンフィグレーションします。

コード リスト 2-4管理対象サーバの作成とコンフィグレーション

# サーバを作成およびコンフィグレーションする
CREATE -mbean mymedrec:Name=MedRecServer1,Type=Server
SET -mbean mymedrec:Name=MedRecServer1,Type=Server 
-property ListenPort "8011"
# リソースを myMedRecServer1 に割り当てる
SET -mbean mymedrec:Name=MedRecPoolXA,Type=JDBCConnectionPool
-property Targets "mymedrec:Name=myMedRecServer1,Type=Server"
SET -mbean mymedrec:Name=MedRecTxDataSource,Type=JDBCTxDataSource 
-property Targets "mymedrec:Name=myMedRecServer1,Type=Server"
SET -mbean mymedrec:Name=myMedRecPoolXA,Type=JDBCConnectionPool 
-property Targets "mymedrec:Name=myMedRecServer1,Type=Server"
SET -mbean mymedrec:Name=MedRecQueueFactory,Type=JMSConnectionFactory 
-property Targets "mymedrec:Name=myMedRecServer1,Type=Server"
SET -mbean mymedrec:Name=MedRecJMSServer,Type=JMSServer 
-property Targets "mymedrec:Name=myMedRecServer1,Type=Server"
SET -mbean mymedrec:Name=MedicalRecordsMailSession,Type=MailSession 
-property Targets "mymedrec:Name=myMedRecServer1,Type=Server"

weblogic.Admin BATCHUPDATE コマンドを呼び出すと、これらのコマンドは以下のことを行います (「BATCHUPDATE」を参照)。

  1. ServerMBean をインスタンス化することによって myMedRecServer1 というサーバ インスタンスを作成します。
  2. CREATE -mbean コマンドは、MBean を作成して MBean の WebLogicObjectName を指定します

  3. myMedRecServer1 の ServerMBeanListenPort 属性を設定することによって、myMedRecServer1 がポート 8011 でリスンするようにコンフィグレーションします。
  4. リソースの MBean の Targets 属性を設定することによって、それらのリソースを myMedRecServer1 管理対象サーバで使用できるようにします。
  5. たとえば、myMedRecPoolXA JDBC 接続プールを myMedRecServer1 で使用できるようにするには、myMedRecPoolXA の JDBCConnectionPoolMBeanTargets 属性を設定します。JDBCConnectionPoolMBean Javadoc では、Targets 属性は ServerMBean タイプのオブジェクト名でなければならないと指示されています。

    public void setTargets(TargetMBean[] Targets)

    ServerMBean は、TargetMBean のサブタイプです。「weblogic.Admin コマンドを使用したリソースの割り当て」を参照してください。

マシンとノード マネージャ プロパティのコンフィグレーション

コード リスト  2-5 のコマンドは、マシンおよびノード マネージャ プロパティを mymedrec ドメインにコンフィグレーションします。

これは複数のサーバ インスタンスを含むドメインに対する一般的なタスクです。サーバのマシンおよびノード マネージャ プロパティをコンフィグレーションすることで、ノード マネージャからサーバを起動および管理できるようになります。『WebLogic Server のコンフィグレーションと管理』の「ノード マネージャの概要」を参照してください。

コード リスト 2-5マシンとノード マネージャ プロパティのコンフィグレーション

# マシンを作成する
CREATE -mbean mymedrec:Name=WLSHost,Type=Machine
SET -mbean mymedrec:Machine=WLSHost,Name=WLSHost,Type=NodeManager  
-property ListenAddress WLSHost -property ListenPort 5560
# マシンをサーバに割り当てる
SET -mbean mymedrec:Name=myMedRecServer1,Type=Server
-property Machine "mymedrec:Name=WLSHost,Type=Machine"

weblogic.Admin BATCHUPDATE コマンドを呼び出すと、これらのコマンドは以下のことを行います (「BATCHUPDATE」を参照)。

  1. MachineMBean をインスタンス化することによってマシンを作成します。
  2. CREATE -mbean コマンドは、MBean を作成して MBean の WebLogicObjectName を指定します (『WebLogic JMX Service プログラマーズ ガイド』の「マシンおよびノード マネージャ コンフィグレーションのネームスペース」を参照)。このオブジェクト名の要素は次のとおりです。

  3. マシンの NodeManagerMBean をコンフィグレーションします。MachineMBean インスタンスを作成するときには、WebLogic Server は NodeManagerMBean を作成してリスン アドレス、リスン ポート、およびセキュリティ情報を指定します。サーバ インスタンスはこの情報を利用して特定のマシンで動作するノード マネージャと通信します。
  4. サンプル コマンドでは、ListenAddress プロパティおよび ListenPort プロパティの非デフォルト値が設定されます。NodeManagerMBean オブジェクト名の要素は次のとおりです。

    NodeManagerMBean のすべての属性と有効値については、「Javadoc」 を参照してください。

  5. myMedRecServer1 の ServerMBeanMachine 属性を設定することによって、myMedRecServer1 にマシンを割り当てます。サーバにマシンを割り当てると、そのマシンのノード マネージャからサーバを起動できるようになります。
  6. ServerMBean Javadoc では、Machine 属性は MachineMBean タイプのオブジェクト名でなければならないと指示されています。

    public void setMachine(MachineMBean machine)

アプリケーションのデプロイメント

コード リスト  2-6weblogic.Deployer コマンドは、サンプル MedRec アプリケーションを mymedrec ドメインにデプロイします。

コード リスト 2-6アプリケーションのデプロイメント

java weblogic.Deployer -url t3://localhost:8001 -username weblogic 
-password weblogic -targets myMedRecServer1 -name MedRecEAR
-deploy D:¥bea¥weblogic81¥samples¥server¥medrec¥dist¥medrecEar
java weblogic.Deployer -url t3://localhost:8001 -username weblogic 
-password weblogic -targets myMedRecServer1 -name PhysicianEAR
-deploy D:¥bea¥weblogic81¥samples¥server¥medrec¥dist¥physicianEar
java weblogic.Deployer -url t3://localhost:8001 -username weblogic 
-password weblogic -targets myMedRecServer1 -name StartupEAR
-deploy D:¥bea¥weblogic81¥samples¥server¥medrec¥dist¥startupEar

注意 :

『WebLogic Server アプリケーションのデプロイメント』の「weblogic.Deployer ユーティリティ」を参照してください。

サンプル Korn シェル スクリプト

この節では、「コマンドライン ユーティリティを使用した MedRec ドメインの複製 : 主要手順」で説明したとおりにドメインを作成およびコンフィグレーションするサンプル Korn シェル スクリプトについて説明します。

サンプル Korn シェル スクリプトを使用するには、次の手順に従います。

  1. コード リスト  2-7CreateDomain.sh という名前のシェル スクリプトとして保存します。
  2. このスクリプトを空のディレクトリに保存することをお勧めします。デフォルトでは、シェル スクリプトによって .¥mymedrec というドメイン ディレクトリが作成されます。つまり、mymedrec ディレクトリは、コマンドを呼び出すディレクトリの子です。

  3. コード リスト  2-8ConfigDomain.txt という名前のテキスト ファイルとして保存して、CreateDomain.sh と同じディレクトリに格納します。
  4. Korn シェルを開き、次のように環境を設定します。
    1. WL_HOME\common\bin\startPointBase.sh を呼び出します。
    2. このスクリプトによって、サンプル ドメインが使用する PointBase データベースが起動します。

    3. WL_HOME\samples\domains\medrec\setMedRecEnv.sh を呼び出します。
    4. このスクリプトによって、必要な WebLogic Server クラスと PointBase クラスが CLASSPATH 変数に追加され、他の必要なプログラムが PATH 変数に追加されます。

  5. CreateDomain.sh を呼び出します。
  6. CreateDomain.sh スクリプトでは、次のことが行われます。

  7. MedRec サンプル アプリケーションをデプロイするには、次の手順に従います。
    1. CreateDomain.sh スクリプトによって作成された mymedrec ディレクトリに移動します。
    2. 次のコマンドを呼び出します。
      java -Dweblogic.Name=myMedRecServer1
      -Dweblogic.management.server=http://localhost:8001 weblogic.Server
      &
    3. myMedRecServer1 インスタンスが起動したら、「アプリケーションのデプロイメント」で説明した weblogic.Deployer コマンドを呼び出します。

コード リスト 2-7MedRec ドメインを再作成するための Korn シェル スクリプト

#!/bin/sh
########################
# 関数の定義 #
########################
# weblogic.Admin のラッパー関数
wladmin()
{
  java weblogic.Admin -username $ADMINUSER -password $ADMINPASS `
-adminurl $ADMINHOST:$ASPORT $*
}
# この関数はサーバの起動を待ち、サーバが実行された場合は
# SERVERSTATE var を "RUNNING" に設定し、それ以外の場合は "SHUTDOWN" に設定する
#
# パラメータ :
# $1 待機間隔 (秒)
# $2 最長待機時間 (秒)
#
WaitForServer()
{
WAIT_INTERVAL=${1:-10}
MAX_WAIT=${2:-120}
CONNECTCMD="wladmin connect 1"
CONNECTRESPONSE=
CONNECTED=
  let total_wait=0
while test "$CONNECTED" != "Connection" && test total_wait -lt MAX_WAIT
do
sleep 10
let "total_wait=$total_wait+$WAIT_INTERVAL"
echo Attempting to connect to server...
CONNECTRESPONSE="\Q$CONNECTCMD\Q"
CONNECTED="\Qecho $CONNECTRESPONSE | cut -d: -f1\Q"
echo "Response to connect command: $CONNECTRESPONSE"
done
  # 呼び出し側が結果をチェックできるようにステータスを設定する
if [ "$CONNECTED" == "Connection" ]; then
SERVERSTATE="RUNNING"
echo Connected to server!
else
SERVERSTATE="SHUTDOWN"
echo Could not connect to server
fi
}
# この関数は新しいドメインを作成し、管理
# サーバを起動する
#
CreateDomain() {
Echo "Starting server $SERVERNAME"
java -Dweblogic.management.GenerateDefaultConfig=true `
-Dweblogic.management.username=${ADMINUSER} `
-Dweblogic.management.password=${ADMINPASS} `
-Dweblogic.Domain=${DOMAIN} `
-Dweblogic.Name=${SERVERNAME} `
-Dweblogic.ListenPort=${ASPORT} `
weblogic.Server > ${SERVERNAME}.out 2>&1 &
  WaitForServer 10 120
}
###########################
# 環境の設定 #
###########################
# このスクリプトの値は
# コマンドラインで指定する値に置き換えること
if [ $# -gt 0 ]; then
echo Setting environment variables $*
export $*
fi
# スクリプト変数を設定する
PROTOCOL=t3
ADMINUSER=${ADMINUSER:-weblogic}
ADMINPASS=${ADMINPASS:-weblogic}
ADMINHOST=${ADMINHOST:-localhost}
ASPORT=${ASPORT:-8001}
DOMAIN=${DOMAIN:-mymedrec}
DOMAINDIR=${DOMAINDIR:-$DOMAIN}
SERVERNAME=${SERVERNAME:-MedRecServer}
# 環境変数が存在するかどうかをチェックする
if [ -z "$WL_HOME" ]; then
echo "Need to set WL_HOME first!"
exit 1
fi
###########################
# 関数の呼び出し #
###########################
# サーバが実行されているかどうかをチェックする
SERVERSTATE="" # Wait 関数の結果をリセット
WaitForServer 5 5
if [ "$SERVERSTATE" == "RUNNING" ]; then
echo "Server is already running on port $ASPORT!"
exit 1
fi
# ドメイン ディレクトリを作成する
mkdir ${DOMAINDIR}
status=$?
if [ $status != 0 ]; then
echo "Could not create domain directory ${DOMAINDIR}"
exit 1
fi
# ドメイン ディレクトリに移動してドメインを作成する
startDir=\Qpwd\Q
cd ${DOMAINDIR}
CreateDomain
# 開始場所に戻る
cd $startDir
# weblogic.Admin BATCHUPDATE コマンドを使用してリソースをコンフィグレーションする
wladmin BATCHUPDATE -batchFile ConfigDomain.txt -batchCMDVerbose `
-continueOnError

コード リスト  2-8 のコマンドを ConfigDomain.txt という名前のテキスト ファイルに保存して、コード リスト  2-7weblogic.Admin BATCHUPDATE コマンドで呼び出すことができます。コマンドがそれぞれ別の行に 1 行で記述されていることを確認します。たとえば、"CREATE_POOL myMedRecPoolXA
driver="com.pointbase.xa.xaDataSource",
url=jdbc:pointbase:server://localhost:9093/demo,
props=user=medrec;password=medrec;
DatabaseName=jdbc:pointbase:server://localhost:9093/demo,maxCapacity=10" は 1 行で記述する必要があります。

コード リスト 2-8BATCHUPDATE コマンドの入力

# weblogic.Admin BATCHUPDATE 用のコマンド
############################
# JDBC リソースの作成 #
############################
# アプリケーション用の JDBC 接続プールを作成する
CREATE_POOL myMedRecPoolXA
driver="com.pointbase.xa.xaDataSource",
url=jdbc:pointbase:server://localhost:9093/demo,
props=user=medrec;password=medrec;
DatabaseName=jdbc:pointbase:server://localhost:9093/demo,maxCapacity=10
# トランザクション データ ソースを作成する
CREATE -mbean mymedrec:Name=MedRecTxDataSource,Type=JDBCTxDataSource
# トランザクション データ ソースをコンフィグレーションする
SET -mbean mymedrec:Name=MedRecTxDataSource,Type=JDBCTxDataSource
-property JNDIName "MedRecTxDataSource"
SET -mbean mymedrec:Name=MedRecTxDataSource,Type=JDBCTxDataSource 
-property PoolName "myMedRecPoolXA"
# JMS JDBC ストア用の別の JDBC 接続プールを作成する
CREATE_POOL myMedRecPool driver="com.pointbase.jdbc.jdbcUniversalDriver",
url=jdbc:pointbase:server://localhost:9093/demo,
props=user=medrec;password=medrec,
DatabaseName=jdbc:pointbase:server://localhost:9093/demomaxCapacity=10
############################
# JMS リソースの作成 #
############################
# JMS 接続ファクトリを作成する
CREATE -mbean mymedrec:Name=MedRecQueueFactory,Type=JMSConnectionFactory
# JMS 接続ファクトリをコンフィグレーションする
SET -mbean mymedrec:Name=MedRecQueueFactory,Type=JMSConnectionFactory
-property JNDIName "jms/MedRecQueueConnectionFactory"
SET -mbean mymedrec:Name=MedRecQueueFactory,Type=JMSConnectionFactory 
-property XAServerEnabled "true"
#
# JMS JDBC ストアを作成およびコンフィグレーションする
CREATE -mbean mymedrec:Name=MedRecJDBCStore,Type=JMSJDBCStore
SET -mbean mymedrec:Name=MedRecJDBCStore,Type=JMSJDBCStore 
-property ConnectionPool "mymedrec:Name=myMedRecPool,Type=JDBCConnectionPool"
SET -mbean mymedrec:Name=MedRecJDBCStore,Type=JMSJDBCStore 
-property PrefixName "MedRec"
# JMS サーバを作成およびコンフィグレーションする
CREATE -mbean mymedrec:Name=MedRecJMSServer,Type=JMSServer
SET -mbean mymedrec:Name=MedRecJMSServer,Type=JMSServer 
-property Store "mymedrec:Name=MedRecJDBCStore,Type=JMSJDBCStore"
# キューを作成およびコンフィグレーションする
CREATE -mbean
mymedrec:JMSServer=MedRecJMSServer,Name=RegistrationQueue,Type=JMSQueue
SET -mbean 
mymedrec:JMSServer=MedRecJMSServer,Name=RegistrationQueue,Type=JMSQueue
-property JNDIName "jms/REGISTRATION_MDB_QUEUE"
# 別のキューを作成およびコンフィグレーションする
CREATE -mbean mymedrec:JMSServer=MedRecJMSServer,Name=MailQueue,Type=JMSQueue
SET -mbean mymedrec:JMSServer=MedRecJMSServer,Name=MailQueue,Type=JMSQueue 
-property JNDIName "jms/MAIL_MDB_QUEUE"
# 別のキューを作成およびコンフィグレーションする
CREATE -mbean mymedrec:JMSServer=MedRecJMSServer,Name=XMLQueue,Type=JMSQueue
SET -mbean mymedrec:JMSServer=MedRecJMSServer,Name=XMLQueue,Type=JMSQueue 
-property JNDIName "jms/XML_UPLOAD_MDB_QUEUE"
############################
# メール リソースの作成 #
############################
CREATE -mbean mymedrec:Name=MedicalRecordsMailSession,Type=MailSession
SET -mbean mymedrec:Name=MedicalRecordsMailSession,Type=MailSession 
-property JNDIName "mail/MedRecMailSession"
SET -mbean mymedrec:Name=MedicalRecordsMailSession,Type=MailSession 
-property Properties "mail.user=joe;mail.host=mail.mycompany.com"
#############################################
# 管理対象サーバの作成とコンフィグレーション #
#############################################
# サーバを作成およびコンフィグレーションする
CREATE -mbean mymedrec:Name=myMedRecServer1,Type=Server
SET -mbean mymedrec:Name=myMedRecServer1,Type=Server 
-property ListenPort "8011"
# リソースを myMedRecServer1 に割り当てる
SET -mbean mymedrec:Name=myMedRecPool,Type=JDBCConnectionPool
-property Targets "mymedrec:Name=myMedRecServer1,Type=Server"
SET -mbean mymedrec:Name=MedRecTxDataSource,Type=JDBCTxDataSource 
-property Targets "mymedrec:Name=myMedRecServer1,Type=Server"
SET -mbean mymedrec:Name=myMedRecPoolXA,Type=JDBCConnectionPool 
-property Targets "mymedrec:Name=myMedRecServer1,Type=Server"
SET -mbean mymedrec:Name=MedRecQueueFactory,Type=JMSConnectionFactory 
-property Targets "mymedrec:Name=myMedRecServer1,Type=Server"
SET -mbean mymedrec:Name=MedRecJMSServer,Type=JMSServer 
-property Targets "mymedrec:Name=myMedRecServer1,Type=Server"
SET -mbean mymedrec:Name=MedicalRecordsMailSession,Type=MailSession 
-property Targets "mymedrec:Name=myMedRecServer1,Type=Server"
##############################################
# マシンとノード マネージャ プロパティのコンフィグレーション #
##############################################
# マシンを作成する
CREATE -mbean mymedrec:Name=WLSHost,Type=Machine
SET -mbean mymedrec:Machine=WLSHost,Name=WLSHost,Type=NodeManager  
-property ListenAddress WLSHost -property ListenPort 5560
# マシンをサーバに割り当てる
SET -mbean mymedrec:Name=myMedRecServer1,Type=Server
-property Machine "mymedrec:Name=WLSHost,Type=Machine"

 


weblogic.Admin コマンドを使用したユーザとグループの管理

WebLogic Security サービスでは、認証プロバイダはユーザまたはシステム プロセスの身元を証明するソフトウェア コンポーネントです。認証プロバイダでは、ID 情報を記憶したり、転送したり、その情報が必要な場合にシステムのさまざまなコンポーネントで利用できるようにしたりします。セキュリティ レルムは、さまざまな種類の認証プロパティを使用して異なるユーザおよびグループのセットを管理できます。『WebLogic Security サービスの開発』の「認証プロバイダ」を参照してください。

weblogic.Admin ユーティリティを使用すると、次のタイプの認証プロバイダの操作を呼び出すことができます。

以下の節では、weblogic.Admin ユーティリティを使用してユーザとグループを管理するための基本タスクについて説明します。

AuthenticationProvider と任意 MBean がサポートするその他のタスクについては、weblogic.management.security.authentication パッケージの 「Javadoc」 を参照してください。

AuthenticationProvider MBean のオブジェクト名の検索

認証プロバイダの操作を呼び出すには、そのプロバイダの AuthenticationProviderMBean のオブジェクト名を指定する必要があります。

WebLogic 認証プロバイダのオブジェクト名は、
Security:Name=realmNameDefaultAuthenticator です。

ここで、realmName はセキュリティ レルムの名前です。たとえば、Security:Name=myrealmDefaultAuthenticator です。

LDAP 認証プロバイダのオブジェクト名は
Security:Name=realmNameLDAPAuthenticator です。

独自の認証プロバイダを作成する場合、次のような規約に従ってください。

Security:Name=realmNameAuthenticatorName

Administration Console を使用して認証プロバイダをレルムに追加する場合、AuthenticationProviderMBean 名は上記の推奨規約に従います。

AuthenticationProviderMBean のオブジェクト名を検証するには、weblogic.Admin QUERY コマンドを使用します。「QUERY」を参照してください。

ユーザの作成

ユーザを作成するには、UserEditorMBean.createUser メソッドを呼び出します。このメソッドは、セキュリティ レルムの AuthenticationProvider MBean によって拡張されます。createUser メソッドの 「Javadoc」 を参照してください。

このメソッドでは、次の 3 つの入力パラメータが必要です。

username password user-description

パラメータはスペースで区切ります。パラメータにスペースが含まれる場合、そのパラメータを引用符で囲みます。

次の例では、WebLogic 認証プロバイダの createUser が呼び出されます。

java weblogic.Admin -adminurl localhost:8001 -username weblogic -password
weblogic invoke -mbean Security:Name=myrealmDefaultAuthenticator
-method createUser my-user1 mypassword "my user"

コマンドが成功すると、標準出力に OK が出力されます。

グループへのユーザの追加

ユーザをグループに追加するには、GroupEditorMBean.addMemberToGroup メソッドを呼び出します。このメソッドは、セキュリティ レルムの AuthenticationProvider MBean によって拡張されます。addMemberToGroup メソッドの 「Javadoc」 を参照してください。

このメソッドでは、次の 2 つの入力パラメータが必要です。

groupname username

次の例では、WebLogic 認証プロバイダの addMemberToGroup が呼び出されます。

java weblogic.Admin -adminurl localhost:8001 -username weblogic -password
weblogic invoke -mbean Security:Name=myrealmDefaultAuthenticator
-method addMemberToGroup Administrators my-user1

コマンドが成功すると、標準出力に OK が出力されます。

ユーザがグループのメンバーであるかどうかの検証

ユーザがグループのメンバーであるかどうかを検証するには、GroupEditorMBean.isMember メソッドを呼び出します。このメソッドは、セキュリティ レルムの AuthenticationProvider MBean によって拡張されます。isMember メソッドの 「Javadoc」 を参照してください。

このメソッドでは、次の 3 つの入力パラメータが必要です。

groupname username boolean

boolean は、子グループ内を検索するかどうかを指定します。true を指定した場合、指定したグループまたはその子グループにメンバーが属していれば true が返されます。

次の例では、WebLogic 認証プロバイダの isMember が呼び出されます。

java weblogic.Admin -adminurl localhost:8001 -username weblogic -password
weblogic invoke -mbean Security:Name=myrealmDefaultAuthenticator
-method isMember Administrators weblogic true

ユーザがグループのメンバーである場合、標準出力に true が出力されます。

ユーザが所属するグループのリスト表示

ユーザまたはグループが含まれるグループのリストを表示するには、MemberGroupListerMBean.listMemberGroups メソッドを呼び出します。このメソッドは、セキュリティ レルムの AuthenticationProvider MBean によって拡張されます。listMemberGroups メソッドの 「Javadoc」 を参照してください。

このメソッドでは、次の入力パラメータが必要です。

memberUserOrGroupName

memberUserOrGroupName は既存のユーザまたはグループの名前を指定します。

次の例では、WebLogic 認証プロバイダの listMemberGroups が呼び出されます。

java weblogic.Admin -adminurl localhost:8001 -username weblogic -password
weblogic invoke -mbean Security:Name=myrealmDefaultAuthenticator
-method listMemberGroups my-user1

このメソッドは、名前のリストを参照するカーソルを返します。weblogic.management.utils.NameLister.haveCurrentgetCurrentName、および advance の各メソッドは、返されたリスト内で繰り返し実行され、現在のカーソル位置が指し示す名前を取得します。weblogic.management.utils.NameLister インタフェースの 「Javadoc」 を参照してください。

LDAP サーバにおけるグループ メンバシップの検索の制限

グループ メンバシップの再帰的検索を無制限に行うと、かなりの時間がかかり、パフォーマンスのボトルネックを引き起こす可能性があります。グループ メンバシップの検索の深さを制御するには、WebLogic 認証プロバイダ、LDAP 認証プロバイダ、または AuthenticationProvider インタフェースを実装するその他の認証プロバイダに対して、GroupMembershipSearching の値を設定できます。

グループ検索を制限するには、WebLogic 認証プロバイダまたは LDAP 認証プロバイダの GroupMembershipSearching の値を limited に設定します。GroupMembershipSearching 属性には以下の値があります。

unlimited limited

limited は、コマンドが、ネストされたグループ階層の 1 つまたは複数のレベル内で検索するかどうかを指定します。制限された検索を指定する場合は、MaxGroupMembershipSearchLevel 属性を指定する必要があります。デフォルトは無制限の検索です。

MaxGroupMembershipSearchLevel 属性では、検索するグループ メンバシップのレベル数を指定します。有効な値は 0 および正の整数です。0 を指定すると、コマンドは直接のグループ メンバシップ内だけを検索します。正の整数は検索するレベルの数を指定します。

たとえば、グループ A のメンバシップを検索する場合、0 はグループ A の直接のメンバーのみが検出されることを表します。グループ B がグループ A のメンバーである場合、この検索ではグループ B のメンバーは検出されません。属性を 1 に設定する場合、グループ A のメンバシップを検索すると、グループ A の直接のメンバーと、グループ A の直接のメンバーになっているグループのすべてのメンバーが返されます。グループ B がグループ A のメンバーである場合、グループ B のメンバーもこの検索で見つかります。ただし、グループ C がグループ B のメンバーである場合、この検索ではグループ C のメンバーは検出されません。

GroupMembershipSearching および MaxGroupMembershipSearchLevel の 「Javadoc」 を参照してください。

次の例では、WebLogic 認証プロバイダの GroupMembershipSearching プロパティが取得されます。

java weblogic.Admin -adminurl localhost:7001 -username weblogic -password weblogic get -mbean Security:Name=myrealmDefaultAuthenticator -pretty -property GroupMembershipSearching -commotype

セキュリティ レルムのユーザとグループのリスト表示

ユーザ名またはグループ名のリストを確認するには、AuthenticationProvider インタフェースを介して使用できる一連のメソッドを呼び出します。

例 : ユーザをリスト表示するための Korn シェル スクリプト

コード リスト  2-9 の Korn シェル スクリプトは、セキュリティ レルムから最大 10 個のユーザ名を取得します。

コード リスト 2-9すべてのユーザをリスト表示するための Korn シェル スクリプト

#!/bin/ksh
HOST=localhost
PORT=8001
USER=weblogic
PASS=weblogic
PROTOCOL= # 空白、t3、t3s、http、https など
if [ -z "$PROTOCOL" ]; then
   URL=$HOST:$PORT
else
   URL=$PROTOCOL://$HOST:$PORT
fi
Cursor=$(java weblogic.Admin -adminurl $URL -username $USER `
         -password $PASS invoke `
         -mbean Security:Name=myrealmDefaultAuthenticator `
         -method listUsers \* 10)
haveCurrent="true"
while [[ "$haveCurrent" = "true" ]]; do
    haveCurrent=$(java weblogic.Admin -adminurl $URL `
     -username $USER -password $PASS invoke `
     -mbean Security:Name=myrealmDefaultAuthenticator `
     -method haveCurrent $Cursor)
    if [[ "$haveCurrent" = "true" ]]; then
       Username=$(java weblogic.Admin -adminurl $URL `
            -username $USER -password $PASS invoke `
            -mbean Security:Name=myrealmDefaultAuthenticator `
            -method getCurrentName $Cursor)
        print $Username
        java weblogic.Admin -adminurl $URL -username $USER `
            -password $PASS invoke `
            -mbean Security:Name=myrealmDefaultAuthenticator `
            -method advance $Cursor
    else
       print "No more names in list."
       java weblogic.Admin -adminurl $URL -username $USER `
           -password $PASS invoke `
           -mbean Security:Name=myrealmDefaultAuthenticator `
           -method close $Cursor
      return
    fi
done

コード リスト  2-9 のスクリプトをテキスト ファイルに保存して、Korn シェルから呼び出すことができます。このスクリプトを呼び出すと、スクリプトは以下のことを行います。

  1. UserReaderMBean.listUsers メソッドを呼び出し、返されたカーソルを変数に代入します。
  2. 認証プロバイダはこれらの MBean を拡張するので、スクリプトはセキュリティ レルムの AuthenticationProvider MBean のメソッドを呼び出します。

  3. 以下のことを行うループを作成します。
    1. カーソル変数に対して weblogic.management.utils.NameLister.haveCurrent メソッドを呼び出して、現在のカーソル位置が名前を指し示しているかどうかを調べます。
    2. カーソルが名前を指し示している場合、haveCurrent は標準出力に true を出力します。

    3. haveCurrenttrue を出力すると、weblogic.management.utils.NameLister.getCurrentName メソッドが呼び出されます。
    4. getCurrentName メソッドは、カーソルが指し示す名前を出力します。

    5. カーソル変数に対して weblogic.management.utils.NameLister.advance メソッドを呼び出します。これにより、カーソルがリスト内の次の名前を指し示します。
  4. カーソル変数に対して weblogic.management.utils.NameLister.close メソッドを呼び出して、リストの代わりに保持されていたサーバ側リソースを解放します。

パスワードの変更

ユーザのパスワードを変更するには、UserPasswordEditorMBean.changeUserPassword メソッドを呼び出します。このメソッドは、セキュリティ レルムの AuthenticationProvider MBean によって拡張されます。changeUserPassword メソッドの 「Javadoc」 を参照してください。

このメソッドでは、次の 3 つの入力パラメータが必要です。

username old-password new-password

次の例では、WebLogic 認証プロバイダの changeUserPassword が呼び出されます。

java weblogic.Admin -adminurl localhost:8001 -username weblogic -password
weblogic invoke -mbean Security:Name=myrealmDefaultAuthenticator
-method changeUserPassword my-user1 mypassword my!password

コマンドが成功すると、標準出力に OK が出力されます。

セキュリティ レルムでのユーザ アカウントの保護

WebLogic Server には、ユーザ アカウントを侵入者から保護するための属性セットが用意されています。デフォルトでは、これらの属性は最高の保護レベルに設定されています。このユーザ アカウントの保護レベルを下げることもできます。たとえば、アカウントがロックされるまでの無効なログイン試行回数を増やしたり、ユーザ アカウントがロックされるまでの無効なログイン試行期間を延ばしたり、ユーザ アカウントのロック時間を変更したりできます。

AuthenticationProvider MBean は、ユーザ アカウントを保護するためにメソッドを拡張しません。代わりに、UserLockoutManagerMBean を取得してそのメソッドを呼び出します。UserLockoutManagerMBean メソッドの 「Javadoc」 を参照してください。

以下のタスクでは、UserLockoutManagerMBean メソッドを呼び出す例を示します。

連続する無効なログイン試行回数の設定

次のコマンドでは、ユーザ アカウントがロックされるまでの連続する無効なログイン試行回数が設定されます。

  1. ドメインの UserLockoutManagerMBean オブジェクト名を調べるには、次のコマンドを入力します。
  2. java weblogic.Admin -adminurl localhost:8001 -username weblogic -password weblogic QUERY -pretty -pattern Security:*

    コマンドが成功すると、次のような出力 (一部省略) が返されます。

    .
    .
    .
    ---------------------------
    MBeanName: "Security:Name=myrealmUserLockoutManager"
    InvalidLoginAttemptsTotalCount: 0
    InvalidLoginUsersHighCount: 0
    LockedUsersCurrentCount: 0
    LockoutCacheSize: 5
    LockoutDuration: 30
    LockoutEnabled: true
    LockoutGCThreshold: 400
    LockoutResetDuration: 5
    LockoutThreshold: 5
    .
    .
    .

  3. LockoutThreshold 属性の値を設定するには、次のコマンドを入力します。
  4. java weblogic.Admin -adminurl localhost:8001 -username weblogic
    -password weblogic set -mbean Security:Name=myrealmUserLockoutManager
    -property LockoutThreshold 3

    コマンドが成功すると、標準出力に OK が出力されます。

MBean 属性の値の設定に関する詳細については、「WebLogic Server MBean を管理するためのコマンド」を参照してください。

ユーザ アカウントのロック解除

次のコマンドでは、ユーザ アカウントのロックが解除されます。

java weblogic.Admin -adminurl localhost:8001 -username weblogic
-password weblogic invoke -mbean Security:Name=myrealmUserLockoutManager
-method clearLockout my-user1

コマンドが成功すると、標準出力に OK が出力されます。

 


weblogic.Admin コマンドを使用したリソースの割り当て

WebLogic Server ドメインでは、多くのリソースはドメイン レベルで定義されてから、それらを使用するサーバ インスタンスまたはクラスタに割り当てられます。たとえば、JDBC 接続プールはドメインレベルのリソースであり、多くのサーバまたはクラスタに割り当てることができます。これに対して、Web サービスやネットワーク チャネルなどのリソースは、サーバ インスタンスのレベルで定義されます。これらのリソースはすでにサーバの子リソースであり、他のサーバ インスタンスと共有できないので、割り当ては行われません。

注意 : J2EE モジュール (エンタープライズ アプリケーション、Web アプリケーション、EJB など) を割り当てる代わりに、weblogic.Deployer ユーティリティを使用してそれらをデプロイすることをお勧めします。『WebLogic Server アプリケーションのデプロイメント』の「weblogic.Deployer ユーティリティ」を参照してください。

リソースをサーバまたはクラスタに割り当てるには、次の手順に従います。

  1. リソースの割り当て先のサーバまたはクラスタのオブジェクト名を調べます。
  2. 割り当てるリソースのオブジェクト名を調べるには、次のコマンドを入力します。
  3. java weblogic.Admin -adminurl adminListenAddress:ListenPort
    -username
    username -password password
    GET -type
    resource-MBean-type -property Targets

    ここで、adminListenAddress:ListenPort はドメインの管理サーバのリスン アドレスとリスン ポートで、resource-MBean-type は MBean タイプの名前です (表 2-1 を参照)。

    たとえば、次のコマンドでは、ドメイン内のすべての JDBC 接続プールの JDBCConnectionPool 管理 MBean が返されます。出力には、MyPool 接続プールのオブジェクト名が含まれ、すでにリソースに割り当てられているサーバまたはクラスが示されます。

    java weblogic.Admin -adminurl localhost:8001
    -username weblogic -password weblogic
    GET -type JDBCConnectionPool
    -property Targets

    medrec サンプル ドメインでは、このコマンドによって次の結果が返されます。この結果から、MedRecPool-Oracle がサーバとクラスタに割り当てられていないことが分かります。

    MBeanName: "medrec:Name=MedRecPool-Oracle,Type=JDBCConnectionPool"
    Targets:
    ---------------------------
    MBeanName: "medrec:Name=MedRecPool-PointBase,Type=JDBCConnectionPool"
    Targets: MedRecServer

  4. リソースをサーバまたはクラスタに割り当てるためのコマンドは、リソースのタイプによって異なります。

表  2-1 に、割り当てることができるすべてのリソース タイプと、各リソースをサーバ MS1 とクラスタ MedRecCluster に割り当てるためのサンプル weblogic.Admin コマンドを示します。

表 2-1 リソース MBean

リソース タイプ

サーバへの割り当て

クラスタへの割り当て

ClusterMBean

SET -mbean
"medrec:Name=MS1,
Type=Server
-property Cluster
"medrec:Name=MedRecCluste
r,Type=Cluster"

非適用

DomainLogFilterMBean

SET -mbean
"medrec:Name=MS1,
Type=Server"
-property DomainLogFilter
"medrec:Name=MyDomainLogF
ilter,
Type=DomainLogFilter"

非適用

ForeignJMSServerMBean

INVOKE -mbean
"medrec:Name=MyForeign
JMSServer,Type=ForeignJMS
Server"
-method addTarget
"medrec:Name=MS1,Type=Ser
ver"

INVOKE -mbean
"medrec:Name=MyForeign
JMSServer,Type=ForeignJMS
Server"
-method addTarget
"medrec:Name=MedRecCluste
r,Type=Cluster"

JDBCConnectionPoolMBean

INVOKE -mbean "medrec:Name=MedRecPool,
Type=JDBCConnectionPool"
-method addTarget
"medrec:Name=MS1,
Type=Server"

INVOKE -mbean "medrec:Name=MedRecPool,
Type=JDBCConnectionPool"
-method addTarget
"medrec:Name=MedRecCluste
r,Type=Cluster"

JDBCDataSourceMBean

INVOKE -mbean
"medrec:Name=MyDataSource
,Type=JDBCDataSource
-method addTarget
"medrec:Name=MS1
,Type=Server"

INVOKE -mbean
"medrec:Name=MyDataSource
,Type=JDBCDataSource
-method addTarget
"medrec:Name=MedRecCluste
r,Type=Cluster"

JDBCMultiPoolMBean

INVOKE -mbean "medrec:Name=MyMultiPool,
Type=JDBCMultiPool"
-method addTarget
"medrec:Name=MS1,
Type=Server"

INVOKE -mbean "medrec:Name=MyMultiPool,
Type=JDBCMultiPool"
-method addTarget
"medrec:Name=MedRecCluste
r,Type=Cluster"

JDBCTxDataSourceMBean

INVOKE -mbean
"medrec:Name=MedRecTxData
Source,Type=JDBCTxDataSou
rce -method addTarget
"medrec:Name=MS1
,Type=Server"

INVOKE -mbean
"medrec:Name=MedRecTxData
Source,Type=JDBCTxDataSou
rce -method addTarget
"medrec:Name=MedRecCluste
r,Type=Cluster"

JMSConnectionFactoryMBean

INVOKE -mbean
"medrec:Name=jms/MedRecQu
eueConnectionFactory,Type
=JMSConnectionFactory"
-method addTarget
"medrec:Name=MS1,Type=Ser
ver"

INVOKE -mbean
"medrec:Name=jms/MedRecQu
eueConnectionFactory,Type
=JMSConnectionFactory"
-method addTarget
"medrec:Name=MedRecCluste
r,Type=Cluster"

JMSDistributedQueueMBean

非適用

MBean の Members 属性で個々のサーバ インスタンスを指定できるが、Targets 属性で指定できるのはクラスタのみ。

INVOKE -mbean
"medrec:
Name=myDistributedQueue,
Type=JMSDistributedQueue"
-method addTarget
"medrec:Name=MedRecCluste
r,Type=Cluster"

JMSDistributedTopicMBean

非適用

MBean の Members 属性で個々のサーバ インスタンスを指定できるが、Targets 属性で指定できるのはクラスタのみ。

INVOKE -mbean
"medrec:
Name=myDistributedTopic,
Type=JMSDistributedTopic"
-method addTarget
"medrec:Name=MedRecCluste
r,Type=Cluster"

JMSServerMBean

SET -mbean
"medrec:Name=MedRecJMSSer
ver,Type=JMSServer"
-property Targets
"medrec:Name=MS1,Type=Ser
ver"

非適用

MailSessionMBean

INVOKE -mbean
"medrec:Name=mail/MedRecM
ailSession,
Type=MailSession"
-method addTarget
"medrec:Name=MS1,
Type=Server"

INVOKE -mbean
"medrec:Name=mail/MedRecM
ailSession,
Type=MailSession"
-method addTarget
"medrec:Name=MedRecCluste
r,Type=Cluster"

MachineMBean
および関連する NodeManagerMBean

SET -mbean
"mymedrec:Name=MS1,
Type=Server"
-property Machine
"mymedrec:Name=WLSHost,
Type=Machine"

非適用

MessagingBridgeMBean

INVOKE -mbean
"medrec:Name=MyMessaging
Bridge,Type=MessagingBrid
ge"
-method addTarget
"medrec:Name=MS1,
Type=Server"

INVOKE -mbean
"medrec:Name=MyMessaging
Bridge,Type=MessagingBrid
ge"
-method addTarget
"medrec:Name=MedRecCluste
r,Type=Cluster"

ShutdownClassMBean

INVOKE -mbean
"mymedrec:Name=MyShutdown
Class,Type=ShutdownClass"
-method addTarget
"mymedrec:Name=MS1,
Type=Server"

INVOKE -mbean
"mymedrec:Name=MyShutdown
Class,Type=ShutdownClass"
-method addTarget
"mymedrec:Name=MedRecClus
ter,Type=Cluster"

StartupClassMBean

INVOKE -mbean
"mymedrec:Name=MyStartup
Class,Type=StartupClass"
-method addTarget
"mymedrec:Name=MS1,
Type=Server"

INVOKE -mbean
"mymedrec:Name=MyStartupClass,Type=StartupClass"
-method addTarget
"mymedrec:Name=MedRecClus
ter,Type=Cluster"

VirtualHostMBean

INVOKE -mbean
"medrec:
Name=myVirtualHost,
Type=VirtualHost"
-method addTarget
"medrec:Name=MS1,
Type=Server"

INVOKE -mbean
"medrec:
Name=myVirtualHost,
Type=VirtualHost"
-method addTarget
"medrec:Name=MedRecCluste
r,Type=Cluster"

WTCServerMBean

INVOKE -mbean
"medrec:
Name=myWTC Server,
Type=WTCServer"
-method addTarget
"medrec:Name=MS1,
Type=Server"

非適用

XMLRegistry

SET -mbean
"medrec:Name=MS1,
Type=Server"
-property XMLRegistry
"medrec:Name=MyXMLRegistr
y,Type=XMLRegistry"

非適用

 


weblogic.Admin コマンドを使用した WebLogic SNMP エージェントのコンフィグレーション

WebLogic Server では Simple Network Management Protocol (SNMP) を使用して、企業全体の管理システムとの通信を実現できます。WebLogic の管理データを収集して SNMP の通信モジュール (トラップ通知) に変換し、サードパーティ SNMP 管理システムにトラップ通知を転送する WebLogic Server サブシステムを、WebLogic SNMP エージェントと呼びます。WebLogic Server での SNMP の使い方については、『WebLogic SNMP 管理ガイド』を参照してください。

コード リスト  2-10 のコマンドは、WebLogic SNMP エージェントを有効にし、通知 (トラップ) を SNMP マネージャ ソフトウェアに送信するように WebLogic SNMP エージェントをコンフィグレーションします。

コード リスト 2-10WebLogic SNMP エージェントをコンフィグレーションするためのコマンド

## SNMPAgent を有効にし、ポートを選択する
set -type SNMPAgent -property Enabled true -property SNMPPort 161
## エージェントが生成するトラップを送信する SNMPTrapDestination を作成する
create -mbean medrec:Name=myManager,SNMPAgent=medrec,Type=SNMPTrapDestination
## トラップ送り先のポートを選択する
set -mbean medrec:Name=myManager,SNMPAgent=medrec,Type=SNMPTrapDestination
-property Port 165
## SNMPAttributeChange を作成し、必要なプロパティを設定する
create -mbean
medrec:Name=myAttrChange,SNMPAgent=medrec,Type=SNMPAttributeChange
set -type SNMPAttributeChange -property AttributeMBeanType ServerRuntime
-property AttributeName State -property EnabledServers
medrec:Name=MedRecServer,Type=Server
## SNMPGaugeMonitor を作成し、必要なプロパティを設定する
create -mbean medrec:Name=myGauge,SNMPAgent=medrec,Type=SNMPGaugeMonitor
set -type SNMPGaugeMonitor -property MonitoredMBeanType ExecuteQueueRuntime
-property MonitoredAttributeName ExecuteThreadCurrentIdleCount
-property EnabledServers medrec:Name=MedRecServer,Type=Server
-property PollingInterval 20 -property ThresholdHigh 3 -property ThresholdLow 1
## SNMPStringMonitor を作成し、必要なプロパティを設定する
create -mbean medrec:Name=myString,SNMPAgent=medrec,Type=SNMPStringMonitor
set -type SNMPStringMonitor -property MonitoredMBeanType Server 
-property MonitoredAttributeName StartupMode -property EnabledServers
medrec:Name=MedRecServer,Type=Server -property NotifyMatch true
-property StringToCompare RUNNING -property PollingInterval 20
## SNMPCounterMonitor を作成し、必要なプロパティを設定する
create -mbean medrec:Name=myCounter,SNMPAgent=medrec,Type=SNMPCounterMonitor
set -type SNMPCounterMonitor -property MonitoredAttributeName
ServicedRequestTotalCount -property MonitoredMBeanType ExecuteQueueRuntime
-property EnabledServers medrec:Name=MedRecServer,Type=Server -property Modulus
10 -property Offset 3 -property Threshold 3 -property PollingInterval 20

weblogic.Admin BATCHUPDATE コマンドを呼び出すと、これらのコマンドは以下のことを行います (「BATCHUPDATE」を参照)。

サンプル コマンドを使用する

WebLogic SNMP エージェントをコンフィグレーションするには、次の手順に従います。

  1. 次のスクリプトを実行して MedRec ドメインと管理サーバを起動します。
    WL_HOME\samples\domains\medrec\startMedRecServer (Windows の場合)
    WL_HOME/samples/domains/medrec/startMedRecServer.sh (UNIX の場合)
  2. WL_HOME は WebLogic Server のインストール ディレクトリです。

  3. コマンド シェルで、次のコマンドを入力します。
    WL_HOME\server\bin\setWLSEnv.cmd (Windows の場合)
    WL_HOME/server/bin/setWLSEnv.sh (UNIX の場合)
  4. コード リスト  2-10 のコマンドをコピーし、空のテキスト ファイルに貼り付けます。コマンドがそれぞれ別の行に 1 行で記述されていることを確認します。たとえば、「create -mbean medrec:Name=myManager,SNMPAgent=medrec,Type=SNMPTrapDestination」は 1 行で記述されていなければなりません。
  5. テキスト ファイルを保存します。
  6. コマンド シェルで、次のコマンドを入力します。
    java weblogic.Admin -url localhost:8001 -username weblogic -password weblogic BATCHUPDATE -batchFile filename -continueonerror -batchCmdVerbose
  7. filename は、手順 4 で作成したファイルの名前です。

    注意 : 上記のコマンドでは、MedRecServer と BATCHUPDATE コマンドが同じ Windows コンピュータ上で実行されており、サーバのリスン ポートが 8001 であるものと想定されています。それ以外のリスン アドレスまたはリスン ポートを指定した場合は、-url 引数を使用してアドレスおよびリスン ポートを指定します。

    BATCHUPDATE コマンドは、正常に実行されたコマンドごとに OK を返します。

WebLogic SNMP エージェントが正常にコンフィグレーションされたことを確認するには、次の手順に従います。

  1. 管理サーバを再起動します。
  2. コマンド シェルで、次のコマンドを入力します。
    WL_HOME\server\bin\setWLSEnv.cmd (Windows の場合)
    WL_HOME/server/bin/setWLSEnv.sh (UNIX の場合)
  3. 同じコマンド シェルで、次のコマンドを入力します。
    java snmptrapd -p 165
  4. このコマンドによって、ポート 165 で SNMP トラップをリスンするデーモンが起動されます。MedRecServer 上の WebLogic SNMP エージェントが、定義したトラップ送り先にトラップを送信するにつれて、トラップ デーモンは各トラップを標準出力に出力します。

    snmptrapd コマンドの詳細については、「snmptrapd」を参照してください。

 


weblogic.Admin コマンドを使用した単純なクラスタの作成

weblogic.Admin BATCHUPDATE コマンドは、テキスト ファイルに指定した、一連の weblogic.Admin コマンドを実行します。この節では、BATCHUPDATE を使用して単純なサンプル クラスタを作成する方法について説明します。このサンプル クラスタでは、管理サーバが実行されるのと同じ WebLogic Server ホスト上で、すべてのサーバ インスタンスが実行されます。

クラスタをインスタンス化する前に、WebLogic Server ライセンスにクラスタ ライセンスを含める必要があります。クラスタ ライセンスの入手方法については、BEA 販売代理店にお問い合わせください。クラスタの作成の詳細については、『WebLogic Server クラスタ ユーザーズ ガイド』の「WebLogic クラスタの設定」を参照してください。

BATCHUPDATE を使用して MedRec ドメインに単純なクラスタを作成するには、次の手順に従います。

  1. MedRec ドメインと管理サーバを起動します。たとえば、コマンド シェルを開いて、次のスクリプトを実行します。
    WL_HOME\samples\domains\medrec\startMedRecServer (Windows の場合)
    WL_HOME/samples/domains/medrec/startMedRecServer.sh (UNIX の場合)
  2. WL_HOME は WebLogic Server のインストール ディレクトリです。

  3. コマンド シェルで、次のコマンドを入力します。
    WL_HOME\server\bin\setWLSEnv.cmd (Windows の場合)
    WL_HOME/server/bin/setWLSEnv.sh (UNIX の場合)
  4. コード リスト  2-11 のコマンドをコピーし、空のテキスト ファイルに貼り付けます。コマンドがそれぞれ別の行に 1 行で記述されていることを確認します。たとえば、「SET -mbean MedRec:Type=WebServer,Name=MedRecMS1,Server=MedRecMS1 -property LoggingEnabled true」は 1 行で記述されていなければなりません。
  5. テキスト ファイルを保存します。
  6. テキスト ファイルに貼り付けたコマンドを次のように編集します。
  7. コマンド シェルで、次のコマンドを入力します。
    java weblogic.Admin -url localhost:8001 -username weblogic -password weblogic BATCHUPDATE -batchFile filename -continueonerror -batchCmdVerbose
  8. filename は、手順 4 で作成したファイルの名前です。

    注意 : 上記のコマンドでは、MedRecServer と BATCHUPDATE コマンドが同じ Windows コンピュータ上で実行されており、サーバのリスン ポートが 8001 であるものと想定されています。それ以外のリスン アドレスまたはリスン ポートを指定した場合は、-url 引数を使用してアドレスおよびリスン ポートを指定します。

    BATCHUPDATE コマンドは、正常に実行されたコマンドごとに OK を返します。

クラスタが正常に作成されたことを確認するには、Administration Console を参照します。Administration Console の左ペインで [クラスタ] フォルダを開き、MedRecCluster というクラスタが存在し、そのクラスタには 2 つのサーバ インスタンス (MedRecMS1 と MedRecMS2) が含まれていることを確認します。また、それらのサーバが、コード リスト  2-11 のコマンド CREATE -mbean MedRec:Type=Machine,Name=calamine で作成されるマシンに割り当てられていることも確認してください。

コード リスト 2-11クラスタを作成するための BATCHUPDATE コマンド

# サーバ インスタンスを作成する
CREATE -mbean medrec:Type=Server,Name=MedRecMS1
CREATE -mbean medrec:Type=Server,Name=MedRecMS2
# サーバをコンフィグレーションする
SET -mbean medrec:Type=Server,Name=MedRecMS1 -property ListenPort 7777
SET -mbean medrec:Type=WebServer,Name=MedRecMS1,Server=MedRecMS1 -property LoggingEnabled true
SET -mbean medrec:Type=Server,Name=MedRecMS2 -property ListenPort 7778
SET -mbean medrec:Type=WebServer,Name=MedRecMS2,Server=MedRecMS2 -property LoggingEnabled true
# クラスタを作成およびコンフィグレーションする
CREATE -mbean medrec:Type=Cluster,Name=MedRecCluster
SET -mbean medrec:Type=Cluster,Name=MedRecCluster -property MulticastAddress 239.0.0.32
SET -mbean medrec:Type=Server,Name=MedRecMS1 -property Cluster medrec:Name=MedRecCluster,Type=Cluster
SET -mbean medrec:Type=Server,Name=MedRecMS2 -property Cluster medrec:Name=MedRecCluster,Type=Cluster
# クラスタにリソースをデプロイする。
# MedRec ドメインには、一連の JDBC 接続プールとデータ ソースが用意されている。
# それらを新しいクラスタ内のすべてのサーバにデプロイする必要がある
SET -mbean medrec:Name=MedRecPool-PointBase,Type=JDBCConnectionPool -property Targets medrec:Name=MedRecCluster,Type=Cluster
SET -mbean medrec:Name=MedRecTxDataSource,Type=JDBCTxDataSource -property Targets medrec:Name=MedRecCluster,Type=Cluster
SET -mbean medrec:Name=jms/MedRecQueueConnectionFactory,Type=JMSConnectionFactory
-property Targets medrec:Name=MedRecCluster,Type=Cluster
# マシンとノード マネージャをコンフィグレーションする
CREATE -mbean medrec:Type=Machine,Name=calamine
CREATE -mbean medrec:Type=NodeManager,Name=calamine
SET -mbean medrec:Type=Server,Name=MedRecMS1 -property Machine medrec:Name=calamine,Type=Machine
SET -mbean medrec:Type=Server,Name=MedRecMS2 -property Machine medrec:Name=calamine,Type=Machine
# Server MBean を作成すると、ServerStart MBean も作成される。
# ServerStart MBean ではサーバがノード マネージャによって起動されるようコンフィグレーションする。次のコマンドは、
# ServerStart MBean に値を設定する
SET -mbean medrec:Name=MedRecMS1,Server=MedRecMS1,Type=ServerStart -property Username weblogic
SET -mbean medrec:Name=MedRecMS1,Server=MedRecMS1,Type=ServerStart -property Password weblogic
SET -mbean medrec:Name=MedRecMS2,Server=MedRecMS2,Type=ServerStart -property Username weblogic
SET -mbean medrec:Type=ServerStart,Name=MedRecMS2,Server=MedRecMS2 -property Password weblogic

単純なクラスタにおけるアプリケーションのデプロイメントとサーバの起動

クラスタを作成したら、Administration Console または weblogic.Deployer ユーティリティを使用してクラスタにアプリケーションをデプロイできます。詳細については、『WebLogic Server アプリケーションのデプロイメント』の「デプロイメント ツールのリファレンス」、および Administration Console オンライン ヘルプの「アプリケーションおよびモジュールのデプロイメント」を参照してください。

コード リスト  2-11 のコマンドは、MedRecMS1 と MedRecMS2 の各サーバ インスタンスをノード マネージャで起動できるようにしています。管理対象サーバをノード マネージャで起動するための設定については、『WebLogic Server のコンフィグレーションと管理』の以下の節を参照してください。

 

フッタのナビゲーションのスキップ  ページの先頭 前 次