この章では、WebLogic Scripting Tool (WLST)の使用方法について説明します。これは、JMSサーバーおよびJMSシステム・モジュール・リソースの作成と管理に使用できるコマンドライン・スクリプト・インタフェースです。『WebLogic Scripting Toolの理解』のWebLogic Scripting Toolの使用に関する項およびWLSTサンプル・スクリプトに関する項を参照してください。
JMSシステム・モジュールは、config.xml
のjms-system-resource
MBeanで記述します。jms-system-resource
MBeanの基本的なコンポーネントは以下のとおりです。
name
- モジュールの名前。
target
- モジュールをターゲット指定するサーバー、クラスタ、または移行可能ターゲット。
sub-deployment
- JMSシステム・モジュール・リソース(キュー、トピック、接続ファクトリなど)をグループ化し、サーバー・リソース(JMSサーバー・インスタンス、WebLogicサーバー・インスタンス、クラスタなど)にターゲット指定するメカニズム。
descriptor-file-name
- システム・モジュール・ファイルのパスとファイル名。
システム・モジュールのJMSリソースは、weblogic-jmsmd.xml
スキーマに準拠するモジュール記述子ファイル内に配置されます。図7-1のmyModule-jms.xml
というモジュールには、接続ファクトリとキューのJMSシステム・リソース定義が含まれています。sub-deployment-name
要素は、myModule
-jms.xml
ファイル内のJMSリソースをグループ化して、config.xml
内のtargets
にターゲット指定するために使用します。WLSTを使用する場合は、sub-deployment-name
要素の値を指定する必要があります。サブデプロイメントの詳細は、第3章「JMSシステム・モジュールとリソースのサブデプロイメントのターゲット指定」を参照してください。図7-1では、sub-deployment-name
DeployToJMSServer1を使用して、myModule-jms
モジュールの接続ファクトリCConfac
とキューCQueue
のグループ化とターゲット指定をしています。
JMSリソースの使い方の詳細は、第2章「JMS構成リソースとは」を参照してください。
WLSTを使用してJMSシステム・リソースを作成するには、以下のタスクを実行する必要があります。
編集セッションを開始します。
JMSリソース(キュー、トピック、接続ファクトリなど)を含むJMSシステム・モジュールを作成します。
JMSサーバー・リソースを作成します。
編集セッションを確立したら、以下の手順でJMSサーバーとシステム・モジュール・リソースを構成します。
リソースを構成するサーバーのWebLogic Server MBeanオブジェクトを取得します。例:
servermb=getMBean("Servers/examplesServer") if servermb is None: print '@@@ No server MBean found'
システム・リソースを作成します。例:
jmsMySystemResource = create(myJmsSystemResource,"JMSSystemResource")
このシステム・リソースをWebLogic Serverインスタンスにターゲット指定します。例:
jmsMySystemResource.addTarget(servermb)
システム・リソース・オブジェクトを取得します。例:
theJMSResource = jmsMySystemResource.getJMSResource()
モジュールのリソース(キュー、トピック、接続ファクトリなど)を作成します。例:
connfact1 = theJMSResource.createConnectionFactory(factoryName) jmsqueue1 = theJMSResource.createQueue(queueName)
リソース属性を構成します。例:
connfact1.setJNDIName(factoryName) jmsqueue1.setJNDIName(queueName)
システム・リソースのサブデプロイメント名を作成します。「JMSシステム・モジュールとサブデプロイメントの理解」を参照してください。例:
connfact1.setSubDeploymentName('DeployToJMSServer1') jmsqueue1.setSubDeploymentName('DeployToJMSServer1')
JMSサーバーを作成します。例:
jmsserver1mb = create(jmsServerName,'JMSServer')
JMSサーバーのターゲットとしてWebLogic Serverのインスタンスまたはクラスタを指定します。例:
jmsserver1mb.addTarget(servermb)
sub-deployment-name要素に指定した値
を使用して、サブデプロイメント・オブジェクトを作成します。これにより、モジュール内のシステム・リソースが、config.xml
のsub-deployment
要素にグループ化されます。例:
subDep1mb = jmsMySystemResource.createSubDeployment('DeployToJMSServer1')
サブデプロイメントをサーバー・リソース(JMSサーバー・インスタンス、WebLogic Serverインスタンス、クラスタなど)にターゲット指定します。例:
subDep1mb.addTarget(jmsserver1mb)
例7-1 JMSシステム・リソースを作成するWLSTスクリプト
""" This script starts an edit session, creates a JMS Server, targets the jms server to the server WLST is connected to and creates a JMS System module with a jms queue and connection factory. The jms queues and topics are targeted using sub-deployments. """ import sys from java.lang import System print "@@@ Starting the script ..." myJmsSystemResource = "CapiQueue-jms" factoryName = "CConFac" jmsServerName = "myJMSServer" queueName = "CQueue" url = sys.argv[1] usr = sys.argv[2] password = sys.argv[3] connect(usr,password, url) edit() startEdit() //Step 1 servermb=getMBean("Servers/examplesServer") if servermb is None: print '@@@ No server MBean found' else: //Step 2 jmsMySystemResource = create(myJmsSystemResource,"JMSSystemResource") //Step 3 jmsMySystemResource.addTarget(servermb) //Step 4 theJMSResource = jmsMySystemResource.getJMSResource() //Step 5 connfact1 = theJMSResource.createConnectionFactory(factoryName) jmsqueue1 = theJMSResource.createQueue(queueName) //Step 6 connfact1.setJNDIName(factoryName) jmsqueue1.setJNDIName(queueName) //Step 7 jmsqueue1.setSubDeploymentName('DeployToJMSServer1') connfact1.setSubDeploymentName('DeployToJMSServer1') //Step 8 jmsserver1mb = create(jmsServerName,'JMSServer') //Step 9 jmsserver1mb.addTarget(servermb) //Step 10 subDep1mb = jmsMySystemResource.createSubDeployment('DeployToJMSServer1') //Step 11 subDep1mb.addTarget(jmsserver1mb) . . .
MBeanから利用できる適切なメソッドを使用すると、JMSオブジェクトおよび属性を変更したりモニターしたりできます。
set、target、untarget、およびdeleteメソッドを使用してJMSオブジェクトおよび属性を変更できます。
getメソッドを使用してJMS実行時オブジェクトをモニターできます。
詳細は、『WebLogic Scripting Toolの理解』のMBeanのナビゲート(WLSTオンライン)に関する項を参照してください。
この節では、WLSTを使用してJMSサーバーおよびJMSシステム・モジュール・リソースを構成するときのベスト・プラクティスを示します。
MBeanオブジェクトを操作する前に、Null MBeanオブジェクト(サーバー、JMSサーバー、モジュールなど)をトラップします。
サブデプロイメント名は理解しやすい名前にします。たとえば、サブデプロイメント名をDeployToJMSServer1にすると、この名前のすべてのサブデプロイメントがJMSServer1にデプロイされることが分かります。