![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[IBM i]](../images/iseries.gif)
wsadmin スクリプトによるデプロイされたターゲットへのアプリケーションのロードの使用不可化
AdminConfig オブジェクトとスクリプトを使用して、デプロイされた ターゲットへのアプリケーションのロードを使用不可にできます。
このタスクについて
以下の例では、AdminConfig オブジェクトを使用して、デプロイされた ターゲットへのアプリケーションのロードを使用不可にしています。
手順
- wsadmin スクリプト・ツールを開始します。
- アプリケーションのデプロイメント・オブジェクトを取得して、それを deployments 変数に割り当てます。例えば、次のようになります。
- Jacl を使用:
set deployments [$AdminConfig getid /Deployment:myApp/]
- Jython を使用:
deployments = AdminConfig.getid("/Deployment:myApp/")
表 1. getid Deployment コマンド・エレメント. getid コマンドを実行して、デプロイメント・オブジェクトを取得します。 エレメント 説明 set Jacl コマンドです。 deployments 変数名です。 $ 変数名を値で置換する Jacl 演算子です。 AdminConfig WebSphere® Application Server の構成を表すオブジェクトです。 getid AdminConfig コマンドです。 Deployment 属性です。 myApp アプリケーション名の値です。 トラブルの回避 (Avoid trouble): Jython スクリプト言語を使用している場合は、アプリケーション名内のスペース文字に関する注を必ずお読みください。gotcha
出力例:myApp(cells/mycell/applications/myApp.ear/deployments/myApp|deployment.xml#Deployment_1)
- アプリケーション内でのターゲット・マッピングを取得して、targetMappings 変数に割り当てます。例えば、次のようになります。
- Jacl を使用:
set deploymentObj1 [$AdminConfig showAttribute $deployments deployedObject] set targetMap1 [lindex [$AdminConfig showAttribute $deploymentObj1 targetMappings] 0]
出力例:(cells/mycell/applications/ivtApp.ear/deployments/ivtApp|deployment.xml#DeploymentTargetMapping_1)
- Jython を使用:
deploymentObj1 = AdminConfig.showAttribute(deployments, 'deployedObject') targetMap1 = AdminConfig.showAttribute(deploymentObj1, 'targetMappings') targetMap1 = targetMap1[1:len(targetMap1)-1].split(" ") print targetMap1
トラブルの回避 (Avoid trouble): スクリプトを使用してアプリケーション内のターゲット・マッピングを取 得し、次に、それらの値を targetMappings 変数に割り当てようとするときには、アプリケーションの名前にスペースが入る場合やブランクになる場合に注意する必要があります。 このような場合、Jython の例で示しているように、ブランクやスペース文字が現れる位置を補正する必要があります。この調整を行わないと、エラーが発生する場合があります。以下のシナリオを考えてみます。
- deployment.xml ファイル内に DeploymentTargetMapping 値がただ 1 つだけ存在する場合は、targetMappings 値をスペースまたは line.separator エントリーで分割することができます。
line.separator エントリーの構文は、「IVT Application」のように、アプリケーション名がスペースを含むときに機能します。
以下に例を示します。
またはtargetMap1 = targetMap1[1:len(targetMap1)-1].split(" ")
targetMap1 = targetMap1[1:len(targetMap1)-1].split(java.lang.System.getProperty("line.separator"))
- deployment.xml ファイル内に DeploymentTargetMapping の値が複数存在する場合は、targetMappings の値をスペースで区切ります。
ただし、アプリケーション名またはデプロイメント・ターゲット・ストリングにスペース文字が入っているときには、必要に応じて "¥"" および " " も使用しなければなりません。
以下に例を示します。
targetMap1 = targetMap1[1:len(targetMap1)-1].split(" ")
出力例:['(cells/mycell/applications/ivtApp.ear/deployments/ivtApp|deployment.xml#DeploymentTargetMapping_1)']
- deployment.xml ファイル内に DeploymentTargetMapping 値がただ 1 つだけ存在する場合は、targetMappings 値をスペースまたは line.separator エントリーで分割することができます。
line.separator エントリーの構文は、「IVT Application」のように、アプリケーション名がスペースを含むときに機能します。
以下に例を示します。
表 2. showAttribute コマンド・エレメント. showAttribute コマンドを実行して、ターゲット・マッピングを割り当てます。 エレメント 説明 set Jacl コマンドです。 deploymentObj1 変数名です。 $ 変数名を値で置換する Jacl 演算子です。 AdminConfig WebSphere Application Server の構成を表すオブジェクトです。 showAttribute AdminConfig コマンドです。 deployments ステップ 1 で指定したデプロイメント・オブジェクトの ID を評価します。 deployedObject 属性です。 targetMap1 変数名です。 targetMappings 属性です。 lindex Jacl コマンドです。 print Jython コマンドです。 - 以下のように、デプロイされた各ターゲットへのアプリケーショ
ンのロードを使用不能にします。
- Jacl を使用:
foreach tm $targetMap1 {$AdminConfig modify $tm {{enable false}}}
- Jython を使用:
for targetMapping in targetMap1: AdminConfig.modify(targetMapping, [["enable", "false"]])
- 構成の変更を保存します。 以下のコマンド例を使用して、構成変更を保存します。
AdminConfig.save()
- ノードを同期します (Network Deployment 環境の場合のみ)。 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_appload
ファイル名:txml_appload.html