wsadmin スクリプトによるアプリケーションの共有ライブラリーの構成
このタスクでは、AdminConfig オブジェクトを使用して、アプリケーションの共有ライブラリーを構成します。 共有ライブラリーとは、複数のアプリケーションによって使用されるファイルです。 共有ライブラリーを作成して、システム上の重複ライブラリー・ファイルの数を削減します。
始める前に
このタスクを行うには、2 つの方法があります。 このトピックの例では、AdminConfig オブジェクトを使用して、共有ライブラリーを作成および構成します。代わりの方法として、AdminResources スクリプト・ライブラリーの createSharedLibrary スクリプトを使用して、共有ライブラリーを構成することもできます。
スクリプト・ライブラリーは、最も一般的な管理機能を自動化するために、 プロシージャーのセットを提供します。 各スクリプト・プロシージャーを個別に実行するか、いくつかのプロシージャーを結合することで、新規スクリプトを迅速に開発できます。
手順
- wsadmin スクリプト・ツールを開始します。
- 共有ライブラリーを識別し、それを library 変数に割り当てます。例えば次のように、
既存の共有ライブラリーを使用することも、新規ライブラリーを作成することもできます。
- 新規の共有ライブラリーを作成するには、以下のステップを実行する。
- ノードを識別し、それを変数に割り当てる。例えば、以下のようにします。
- Jacl を使用:
set n1 [$AdminConfig getid /Cell:mycell/Node:mynode/]
- Jython を使用:
n1 = AdminConfig.getid('/Cell:mycell/Node:mynode/') print n1
出力例:表 1. getid コマンド・エレメント. getid コマンドを実行して、共有ライブラリーを識別します。 エレメント 説明 set Jacl コマンドです。 n1 変数名です。 $ 変数名を値で置換する Jacl 演算子です。 AdminConfig WebSphere® Application Server の構成を表すオブジェクトです。 getid AdminConfig コマンドです。 Cell オブジェクト・タイプです。 mycell 変更されるオブジェクトの名前です。 Node オブジェクト・タイプです。 mynode 変更されるオブジェクトの名前です。 mynode(cells/mycell/nodes/mynode|node.xml#Node_1)
- このノードで共有ライブラリーを作成する。次の例では、
新規の共有ライブラリーがノードを有効範囲として作成されます。
これを、セルまたはサーバーを有効範囲として使用するように変更できます。
Jacl を使用:
set library [$AdminConfig create Library $n1 {{name mySharedLibrary} {classPath c:/mySharedLibraryClasspath}}]
set library [$AdminConfig create Library $n1 {{name mySharedLibrary} {classPath /mySharedLibraryClasspath}}]
Jython を使用:
library = AdminConfig.create('Library', n1, [['name', 'mySharedLibrary'], ['classPath', 'c:/mySharedLibraryClasspath']]) print library
library = AdminConfig.create('Library', n1, [['name', 'mySharedLibrary'], ['classPath', '/mySharedLibraryClasspath']]) print library
出力例:表 2. create Library コマンド・エレメント. create コマンドを実行して、共有ライブラリーを作成します。 エレメント 説明 set Jacl コマンドです。 library 変数名です。 $ 変数名を値で置換する Jacl 演算子です。 AdminConfig WebSphere Application Server の構成を表すオブジェクトです。 create AdminConfig コマンドです。 Library AdminConfig オブジェクトです。 n1 ステップ 1 で指定したホスト・ノードの ID に評価されます。 name 属性です。 mySharedLibrary 名前属性の値です。 classPath 属性です。 /mySharedLibraryClasspath classPath 属性の値です。 MySharedLibrary(cells/mycell/nodes/mynode|libraries.xml#Library_1)
- ノードを識別し、それを変数に割り当てる。例えば、以下のようにします。
- 既存の共有ライブラリーを使用するには、以下のコマンドを実行する。
- Jacl を使用:
set library [$AdminConfig getid /Library:mySharedLibrary/]
- Jython を使用:
library = AdminConfig.getid('/Library:mySharedLibrary/') print library
出力例:表 3. getid Library コマンド・エレメント. getid コマンドを実行して、共有ライブラリーを識別します。 エレメント 説明 set Jacl コマンドです。 library 変数名です。 $ 変数名を値で置換する Jacl 演算子です。 AdminConfig WebSphere Application Server の構成を表すオブジェクトです。 getid AdminConfig コマンドです。 Library 属性です。 mySharedLibrary Library 属性の値です。 MySharedLibrary(cells/mycell/nodes/mynode|libraries.xml#Library_1)
- 新規の共有ライブラリーを作成するには、以下のステップを実行する。
- アプリケーションのデプロイメント構成オブジェクトを識別して、
deployment 変数に割り当てます。
以下に例を示します。
- Jacl を使用:
set deployment [$AdminConfig getid /Deployment:myApp/]
- Jython を使用:
deployment = AdminConfig.getid('/Deployment:myApp/') print deployment
出力例:表 4. getid Deployment コマンド・エレメント. getid コマンドを実行して、デプロイメント・オブジェクトを識別します。 エレメント 説明 set Jacl コマンドです。 deployment 変数名です。 $ 変数名を値で置換する Jacl 演算子です。 AdminConfig WebSphere Application Server の構成を表すオブジェクトです。 getid AdminConfig コマンドです。 Deployment 属性です。 myApp Deployment 属性の値です。 print Jython コマンドです。 myApp(cells/mycell/applications/myApp.ear/deployments/myApp|deployment.xml#Deployment_1)
- アプリケーション・デプロイメントを検索して appDeploy 変数に割り当てます。
以下に例を示します。
- Jacl を使用:
set appDeploy [$AdminConfig showAttribute $deployment deployedObject]
- Jython を使用:
appDeploy = AdminConfig.showAttribute(deployment, 'deployedObject') print appDeploy
出力例:表 5. showAttribute deployment コマンド・エレメント. showAttribute コマンドを実行して、デプロイ済みオブジェクトを割り当てます。 エレメント 説明 set Jacl コマンドです。 appDeploy 変数名です。 $ 変数名を値で置換する Jacl 演算子です。 AdminConfig WebSphere Application Server の構成を表すオブジェクトです。 showAttribute AdminConfig コマンドです。 deployment ステップ 2 で指定したデプロイメント構成オブジェクトの ID に評価されます。 deployedObject modify オブジェクトの属性です。 print Jython コマンドです。 (cells/mycell/applications/myApp.ear/deployments/myApp|deployment.xml#ApplicationDeployment_1)
- アプリケーション・デプロイメントでクラス・ローダーを識別し、
それを以下のように classLoader 変数に割り当てます。以下に例を示します。
- Jacl を使用:
set classLoad1 [$AdminConfig showAttribute $appDeploy classloader]
- Jython を使用:
classLoad1 = AdminConfig.showAttribute(appDeploy, 'classloader') print classLoad1
出力例:表 6. showAttribute appDeploy コマンド・エレメント. showAttribute コマンドを実行して、クラス・ローダーを割り当てます。 エレメント 説明 set Jacl コマンドです。 classLoad1 変数名です。 $ 変数名を値で置換する Jacl 演算子です。 AdminConfig WebSphere Application Server の構成を表すオブジェクトです。 showAttribute AdminConfig コマンドです。 appDeploy ステップ 3 で指定したアプリケーション・デプロイメントの ID に評価されます。 classLoader modify オブジェクトの属性です。 print Jython コマンドです。 (cells/mycell/applications/myApp.ear/deployments/myApp|deployment.xml#Classloader_1)
- クラス・ローダーを使用して、アプリケーションで共有ライブラリーを関連付けます。
以下に例を示します。
- Jacl を使用:
$AdminConfig create LibraryRef $classLoad1 {{libraryName MyshareLibrary}}
- Jython を使用:
print AdminConfig.create('LibraryRef', classLoad1, [['libraryName', 'MyshareLibrary']])
出力例:表 7. create LibraryRef コマンド・エレメント. create コマンドを実行して、ライブラリー参照を作成します。 エレメント 説明 $ 変数名を値で置換する Jacl 演算子です。 AdminConfig WebSphere Application Server の構成を表すオブジェクトです。 create AdminConfig コマンドです。 LibraryRef AdminConfig オブジェクトです。 classLoad1 ステップ 4 で指定したクラス・ローダーの ID に評価されます。 libraryName 属性です。 MyshareLibrary libraryName 属性の値です。 (cells/mycell/applications/myApp.ear/deployments/myApp|deployment.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_applibrary
ファイル名:txml_applibrary.html