スクリプトによる共有ライブラリーの構成
スクリプトを使用して、アプリケーション・サーバーの共有ライブラリーを構成できます。 共有ライブラリーとは、複数のアプリケーションによって使用されるファイルです。 共有ライブラリーを作成して、システム上の重複ライブラリー・ファイルの数を削減します。
始める前に
このタスクを行うには、2 つの方法があります。 このトピックの例では、AdminConfig オブジェクトを使用して、共有ライブラリーを作成および構成します。代わりの方法として、AdminResources スクリプト・ライブラリーの createSharedLibrary スクリプトを使用して、共有ライブラリーを構成することもできます。
スクリプト・ライブラリーは、最も一般的な管理機能を自動化するために、 プロシージャーのセットを提供します。 各スクリプト・プロシージャーを個別に実行するか、いくつかのプロシージャーを結合することで、新規スクリプトを迅速に開発できます。
手順
- wsadmin スクリプト・ツールを開始します。
- サーバーを識別し、それを server 変数に割り当てます。
以下に例を示します。
Jacl を使用:
set serv [$AdminConfig getid /Cell:mycell/Node:mynode/Server:server1/]
- Jython の使用:
serv = AdminConfig.getid('/Cell:mycell/Node:mynode/Server:server1/') print serv
表 1. getid コマンド・エレメント. 以下の表で、getid コマンドの各エレメントについて説明します。 エレメント 説明 set Jacl コマンドです。 serv 変数名です。 $ 変数名を値で置換する Jacl 演算子です。 AdminConfig WebSphere® Application Server の構成を表すオブジェクトです。 getid AdminConfig コマンドです。 セル 属性です。 mycell 属性の値です。 ノード 属性です。 mynode 属性の値です。 サーバー 属性です。 server1 属性の値です。 出力例:server1(cells/mycell/nodes/mynode/servers/server1|server.xml#Server_1)
- このサーバーで共有ライブラリーを作成します。
Jacl または Jython を使用して共有ライブラリーを作成する方法 の例は次のとおりです。
Jacl を使用:
$AdminConfig create Library $serv {{name mySharedLibrary} {classPath c:/mySharedLibraryClasspath}}
$AdminConfig create Library $serv {{name mySharedLibrary} {classPath /mySharedLibraryClasspath}}
$AdminConfig create Library $serv {{name mySharedLibrary} {classPath /home/myProfile/mySharedLibraryClasspath}}
Jython を使用:
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath', 'c:/mySharedLibraryClasspath']])
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath', '/mySharedLibraryClasspath']])
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath', 'home/myProfile/mySharedLibraryClasspath']])
トラブルの回避 (Avoid trouble):
- Jython を使用していて、クラスパスにスペースが含まれていない場合は、セミコロン (;) またはスペースを分離文字として使用することができます。
以下に例を示します。
orAdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath','test1.jar;test2.jar;test3.jar']])
AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath','test1.jar test2.jar test3.jar']])
- Jacl を使用し、クラスパスに 1 つ以上のスペースが
含まれる場合は、クラスパスを中括弧または引用符で囲む必要があります。以下に例を示します。
または$AdminConfig create Library $serv {{name mySharedLibrary} {classPath {c:/Program Files/JDBC Driver/test.jar}}}
$AdminConfig create Library $serv {{name mySharedLibrary} {classPath "c:/Program Files/JDBC Driver/test.jar"}}
- Jython を使用していて、クラスパスに 1 つ以上のスペースが含まれている場合は、セミコロン (;) を分離文字として使用する必要があります。
以下に例を示します。
またはパスが 1 つしかない場合:AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath','c:/Program Files/JDBC Driver/test.jar;a.jar']])
AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath','test1.jar test2.jar test3.jar']])
- Jython を使用し、クラスパスに 1 つ以上のスペースが
含まれる場合は、クラスパスを中括弧または引用符で囲む必要があります。以下に例を示します。
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], [['classPath', 'c:/Program Files/JDBC Driver/test.jar']]])
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], [['classPath', '/Program Files/JDBC Driver/test.jar']]])
orprint AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], [['classPath', 'home/myProfile/Program Files/JDBC Driver/test.jar']]])
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath', "'c:/Program Files/JDBC Driver/test.jar'"]])
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath', "'/Program Files/JDBC Driver/test.jar'"]])
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath', "'home/myProfile/Program Files/JDBC Driver/test.jar'"]])
- Jython を使用し、クラスパスに複数のパスが含まれている場合、
リスト構文を使用するか、または、セミコロンで区切られたストリング構文
を使用して、複数のクラスパスを指定することができます。
リスト構文を使用:
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], [classPath [test1.jar test2.jar test3.jar]]]')
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath [test1.jar test2.jar test3.jar]]]')
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath [test1.jar test2.jar test3.jar]]]')
セミコロンで区切られたストリング構文を使用:
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], [classPath,'test1.jar;test2.jar;test3.jar']])
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], [classPath,'test1.jar;test2.jar;test3.jar']])
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], [classPath,'test1.jar;test2.jar;test3.jar']])
- Jython を使用し、クラスパスに複数のパスが含まれていて、
それらのクラスパスの 1 つが 1 つ以上のスペースを含んでいる場合、
スペースを含んでいるパスのストリングを引用符で囲みます。以下に例を示します。
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], [classPath [test1.jar "C:/Program Files/JDBC Driver/test.jar" test3.jar]]]')
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath [test1.jar "C:/Program Files/JDBC Driver/test.jar" test3.jar]]]')
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath [test1.jar "C:/Program Files/JDBC Driver/test.jar" test3.jar]]]')
表 2. create Library コマンド・エレメント. 以下の表で、create Library コマンドの各エレメントについて説明します。 エレメント 説明 $ 変数名を値で置換する Jacl 演算子です。 AdminConfig WebSphere Application Server の構成を表すオブジェクトです。 作成 AdminConfig コマンドです。 ライブラリー 属性です。 serv ステップ 1 で指定したサーバーの ID を評価します。 name 属性です。 mySharedLibrary name 属性の値です。 classPath 属性です。 /mySharedLibraryClasspath classpath 属性の値です。 print Jython コマンドです。 出力例:MysharedLibrary(cells/mycell/nodes/mynode/servers/server1|libraries.xml#Library_1)
- アプリケーション・サーバーをそのサーバーから識別し、
それを appServer 変数に割り当てます。以下に例を示します。
Jacl を使用:
set appServer [$AdminConfig list ApplicationServer $serv]
- Jython の使用:
appServer = AdminConfig.list('ApplicationServer', serv) print appServer
表 3. list コマンド・エレメント. 以下の表で、create list コマンドの各エレメントについて説明します。 エレメント 説明 set Jacl コマンドです。 appServer 変数名です。 $ 変数名を値で置換する Jacl 演算子です。 AdminConfig WebSphere Application Server の構成を表すオブジェクトです。 list AdminConfig コマンドです。 ApplicationServer 属性です。 serv ステップ 1 で指定したサーバーの ID を評価します。 print Jython コマンドです。 出力例:server1(cells/mycell/nodes/mynode/servers/server1|server.xml#ApplicationServer_1
- アプリケーション・サーバーでクラス・ローダーを識別し、それを classLoader 変数に割り当てます。以下に例を示します。
- サーバーに関連付けられた既存のクラス・ローダーを使用する場合、
以下のコマンドは 1 番目のクラス・ローダーを使用します。
Jacl を使用:
set classLoad [$AdminConfig showAttribute $appServer classloaders] set classLoader1 [lindex $classLoad 0]
- Jython の使用:
classLoad = AdminConfig.showAttribute(appServer, 'classloaders') cleanClassLoaders = classLoad[1:len(classLoad)-1] classLoader1 = cleanClassLoaders.split(' ')[0]
表 4. showAttribute コマンド・エレメント. 以下の表で、showAttribute コマンドの各エレメントについて説明します。 エレメント 説明 set Jacl コマンドです。 classLoad, classLoader1 変数名です。 $ 変数名を値で置換する Jacl 演算子です。 AdminConfig WebSphere Application Server の構成を表すオブジェクトです。 showAttribute AdminConfig コマンドです。 appServer ステップ 3 で指定したアプリケーション・サーバーの ID を評価します。 classloaders 属性です。 print Jython コマンドです。 - 新規クラス・ローダーを作成するには、以下のコマンドを実行します。
Jacl を使用:
set classLoader1 [$AdminConfig create Classloader $appServer {{mode PARENT_FIRST}}]
- Jython の使用:
classLoader1 = AdminConfig.create('Classloader', appServer, [['mode', 'PARENT_FIRST']])
表 5. create Classloader コマンド・エレメント. 以下の表で、create Classloader コマンドの各エレメントについて説明します。 エレメント 説明 set Jacl コマンドです。 classLoader1 変数名です。 $ 変数名を値で置換する Jacl 演算子です。 AdminConfig WebSphere Application Server の構成を表すオブジェクトです。 作成 AdminConfig コマンドです。 Classloader 属性です。 appServer ステップ 3 で指定したアプリケーション・サーバーの ID を評価します。 モード 属性です。 PARENT_FIRST 属性の値です。 print Jython コマンドです。 出力例:(cells/mycell/nodes/mynode/servers/server1|server.xml#Classloader_1)
- サーバーに関連付けられた既存のクラス・ローダーを使用する場合、
以下のコマンドは 1 番目のクラス・ローダーを使用します。
- 作成した共有ライブラリーをクラス・ローダーを介してアプリケーション・サーバーに関連付けます。
以下に例を示します。
Jacl を使用:
$AdminConfig create LibraryRef $classLoader1 {{libraryName MyshareLibrary}}
- Jython の使用:
print AdminConfig.create('LibraryRef', classLoader1, [['libraryName', 'MyshareLibrary']])
表 6. create LibraryRef コマンド・エレメント. 以下の表で、create LibraryRef コマンドの各エレメントについて説明します。 エレメント 説明 $ 変数名を値で置換する Jacl 演算子です。 AdminConfig WebSphere Application Server の構成を表すオブジェクトです。 作成 AdminConfig コマンドです。 LibraryRef 属性です。 classLoader1 ステップ 4 で指定したクラス・ローダーの ID を評価します。 libraryName 属性です。 MyshareLibrary 属性の値です。 print Jython コマンドです。 出力例:(cells/mycell/nodes/mynode/servers/server1|server.xml#LibraryRef_1)
- 構成の変更を保存します。 以下のコマンド例を使用して、構成変更を保存します。
AdminConfig.save()
- ノードを同期化します。 AdminNodeManagement スクリプト・ライブラリーの syncActiveNode または syncNode スクリプトを使用して、 構成変更をノード (複数可) に伝搬します。
- syncActiveNodes スクリプトを使用して、以下の例に示すように、変更をセルの各ノードに
伝搬します。
AdminNodeManagement.syncActiveNodes()
- syncNode スクリプトを使用して、以下の例に示すように、変更を特定のノードに
伝搬します。
AdminNodeManagement.syncNode("myNode")
- syncActiveNodes スクリプトを使用して、以下の例に示すように、変更をセルの各ノードに
伝搬します。
関連タスク:


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=txml_library
ファイル名:txml_library.html