modifySIBJMSActivationSpec コマンド
modifySIBJMSActivationSpec コマンドを使用して、特定の有効範囲内のデフォルト・メッセージング・プロバイダーの JMS アクティベーション・スペックのプロパティーを変更します。
コマンドを実行するには、wsadmin スクリプト・クライアントの AdminTask オブジェクトを使用します。
wsadmin スクリプト・クライアントは Qshell から実行されます。.
詳しくは、wsadmin スクリプトを使用した WebSphere スクリプトを実行するための Qshell の構成.
- Jython で使用可能なサービス統合バス JMS コマンドのリストと、各コマンドの簡単な説明を見るには、wsadmin プロンプトで以下のコマンドを入力します。
print AdminTask.help('SIBJMSAdminCommands')
- 特定のコマンドの概要ヘルプの場合は、wsadmin プロンプトで以下のコマンドを入力します。
print AdminTask.help('command_name')
AdminConfig.save()
目的
このコマンドは、JMS アクティベーション・スペックのプロパティーを変更します。
ターゲット・オブジェクト
JMS アクティベーション・スペックの変更対象となる、デフォルト・メッセージング・プロバイダーの有効範囲。
必須パラメーター
なし。
オプション・パラメーター
- -name
- このアクティベーション・スペックに割り当てられている管理名。
- -jndiName
- このアクティベーション・スペックに関連するメッセージ駆動型 Bean のバインディングで指定される JNDI 名。
- -description
- アクティベーション・スペックの説明 (オプション)。
- -destinationType
- このパラメーターは、メッセージ駆動型 Bean が JMS キューを使用しているのか JMS トピックを使用しているのかを判断するために使用します。
以下の値のいずれかを選択します。
- キュー
- メッセージ駆動型 Bean は JMS キューを使用します。JMS キューの JNDI 名は、「宛先 JNDI 名」プロパティーで指定されます。
- トピック
- メッセージ駆動型 Bean は、JMS トピックを使用します。JMS トピックの JNDI 名は「宛先 JNDI 名」プロパティーで指定されます。
- -destinationJndiName
- メッセージ駆動型 Bean が使用する 宛先の JMS キューまたはトピックの JNDI 名。
- -destinationLookup
- メッセージ駆動型 Bean が使用する 宛先の JMS キューまたはトピックの JNDI 名。宛先の JNDI 名および宛先のルックアップ名のパラメーターは、宛先の JNDI 名を構成内に保存するという同じ目的に使用します。この 2 つのフィールドの両方が必要なわけではありませんが、必ず、どちらか 1 つに値を指定する必要があります。destinationLookup パラメーターと destinationJndiName パラメーターの両方に値を指定した場合は、destinationLookup パラメーターのほうが destinationJndiName パラメーターより優先されます。
- -connectionFactoryLookup
- 接続ファクトリー・ルックアップの JNDI 名。
- -messageSelector
- string
- -busName
- 接続先となるサービス統合バス の名前を入力します。これは、「-destinationJndiName」プロパティーによって識別される宛先が定義されているバスの名前である必要があります。
- -acknowledgeMode
- 確認モードは、メッセージ駆動型 Bean が受け取ったメッセージがどのように応答されるかを示します。以下の値のいずれかを選択します。
- 自動応答
- セッションは、自動的にメッセージの配信に応答します。
- 重複可能な自動応答
- セッションではメッセージ配信の応答に時間を要し、これによってパフォーマンスが向上する可能性がありますが、メッセージ駆動型 Bean がメッセージを複数回受け取る場合があります。
- -target
- -targetType
- -target プロパティーで指定されたターゲット・タイプ。
以下の値のいずれかを選択します。
- バス・メンバー名
- バス・メンバーの名前。このオプションは、指定されたバス・メンバー (アプリケーション・サーバーまたはサーバー・クラスター) によってホスティングされているアクティブなメッセージング・エンジンを検索します。
- カスタム・メッセージング・エンジン・グループ名
- (自己宣言クラスターを形成している) メッセージング・エンジンのカスタム・グループの名前。このオプションは、指定されたカスタム・グループに登録したアクティブなメッセージング・エンジンを検索します。
- メッセージング・エンジン名
- メッセージング・エンジンの名前。このオプションは、指定されたメッセージング・エンジンにアクセスするために使用できる有効なエンドポイントを検索します。
- -targetSignificance
- 以下の値のいずれかを選択します。
- 優先
- メッセージング・エンジンは、ターゲット・グループから選択することを推奨します。ターゲット・グループ内のメッセージング・エンジンが使用可能である場合は、これを選択します。 ターゲット・グループ内のメッセージング・エンジンを使用できない場合、このターゲット・グループの外部のメッセージング・エンジンが同じサービス統合バスで使用可能であれば、これを選択します。
- 必須
- メッセージング・エンジンは、ターゲット・グループから選択する必要があります。ターゲット・グループ内のメッセージング・エンジンが使用可能である場合は、これを選択します。 ターゲット・グループ内のメッセージング・エンジンを使用できない場合、接続プロセスは失敗します。
- -targetTransportChain
選択したメッセージング・エンジンがアプリケーションと同じサーバーにある場合は、直接プロセス内接続が実行され、このトランスポート・チェーン・プロパティーは無視されます。
トランスポート・チェーンは、サーバー内で動作するネットワーク・プロトコル・スタックを 表します。ユーザーが指定する名前は 、パネルにリストされているメッセージング・エンジンのホストとなるサーバーで使用可能なトランスポート・チェーンのいずれかである必要があります。 以下のトランスポート・チェーンが提供されていますが、このパネル上で独自のトランスポート・チェーンを定義することができます。- InboundBasicMessaging
- 標準の TCP/IP 接続 (JFAP-TCP/IP) を使用するコネクション指向プロトコルです。これには、2 フェーズのトランザクション (リモート XA) フローのサポートが含まれているため、クライアント・システムまたはサーバー・システム上で実行されているメッセージ・プロデューサーまたはコンシューマーは、そのクライアント・システムまたはサーバー・システムで管理されているグローバル・トランザクションに参加できます。 XA フローには、あるサーバーで実行されているアプリケーションから 2 番目のサーバー上のメッセージング・エンジンへのアクセスをサポートする、という特有の使い方があります。これは、最初のサーバーが適切なメッセージング・エンジンを持っていない可能性があるためです。 リモート XA フローを使用した場合、そのアプリケーションからトランザクション・コーディネーターがローカルで使用可能になっている必要があります。
- InboundSecureMessaging
- これは、SSL でラップされた InboundBasicMessaging プロトコルです。
- -providerEndPoints
- host_name:port_number:chain_name という構文を持ち、ブートストラップ・サーバーに接続するために使用される、コンマで区切られたエンドポイントのトリプレットのリスト。例えば、Merlin:7276:BootstrapBasicMessaging,Gandalf:5557:BootstrapSecureMessaging のようにします。
プロバイダー・エンドポイントが使用されるのは、 指定されたバスがローカル・セルで見つからなかった場合のみです。MDB アプリケーションは、まずローカル・セル内の指定されたバスへの接続を試みます。 このバスに接続できないと、リモート・セルからのメッセージを消費でき るようにするために、アプリケーションはプロバイダー・エンドポイントを使用します。
ホスト名が指定されない場合は、localhost がデフォルト値として使用されます。
ポート番号が指定されない場合は、7276 がデフォルト値として使用されます。
プロトコルが指定されない場合は、BootstrapBasicMessaging などの定義済みのチェーンがデフォルト値として使用されます。
- -authenticationAlias
-
Java™ Platform, Enterprise Edition (Java EE) コネクター・アーキテクチャー (JCA) 認証別名は、JMS プロバイダーへの新規接続の作成を認証するために使用するユーザー ID とパスワードを指定します。
- -maxBatchSize
- 単一のメッセージ駆動型 Bean インスタンスに 逐次的に配信される単一バッチのメッセージの最大数。メッセージのバッチ処理により、特に 応答モードを 「重複可能な自動応答」に設定して使用する場合、パフォーマンスを向上させることができます。 メッセージの順序付けを複数回の配信の失敗に渡って保持する必要がある場合、 バッチ・サイズを 1 に設定します。
- -maxConcurrency
-
この数値が大きくなるとパフォーマンスが向上しますが、一度に使用されるスレッド数が増える場合があります。メッセージの順序付けを複数回の配信の失敗に渡って保持する必要がある場合は、 最大並行エンドポイント数を 1 に設定します。 メッセージの順序付けは、メッセージ駆動型 Bean の消費元の宛先が分割宛先でない場合のみ適用されます。 分割宛先は、クラスター内のワークロード共有シナリオで使用されます。
- -subscriptionDurability
- 特定の永続サブスクリプションについてコンシューマーを持つことができるのは、 通常、一度に 1 つのアプリケーションだけです。このプロパティーにより、この動作をオーバーライドしたり、1 つの永続サブスクリプションで複数の同時コンシューマーを保持したりすることが可能になります。以下の値のいずれかを選択します。
- 永続
- メッセージ駆動型 Bean が使用可能でない場合、メッセージング・プロバイダーはメッセージを保管し、メッセージ駆動型 Bean が再度使用可能になるとメッセージを配信します。
- 非永続
- メッセージ駆動型 Bean が使用可能でない場合、メッセージング・プロバイダーはメッセージを保管および再配信しません。
- -subscriptionName
-
各 JMS 永続サブスクリプションは、サブスクリプション名 (このプロパティーで指定される) によって識別されます。 また、JMS 接続にはクライアント ID (「クライアント ID」プロパティーで指定されます) が関連付けられています。これは、クライアントの JMS プロバイダーが保守している (永続サブスクリプションの) メッセージのリストに、接続とそのオブジェクトを関連付けるために使用されます。
このサブスクリプション名は、所定のクライアント ID 内で固有のものである必要があります。
- -clientId
-
指定された値は、クライアント (メッセージ駆動型 Bean) に対して固有の ID です。このクライアント ID は、メッセージング・プロバイダーがクライアント用に保持している (永続サブスクリプションの) メッセージのリストに、クライアント接続を関連付けるために使用されます。 クライアントが一度使用不可になった後に再び使用可能になる場合、メッセージング・プロバイダーは クライアント ID を使用して、保管されたメッセージを正しいクライアントに再配信します。
- -durableSubscriptionHome
-
管理者は、このメッセージング・エンジンの公開ポイントを介して、 永続サブスクリプションのランタイム状態を管理することができます。
- -shareDurableSubscriptions
特定の永続サブスクリプションに対して TopicSubscriber を持つことができるのは、通常、一度に 1 つのセッションだけです。このプロパティーによって、この動作をオーバーライドしたり、1 つの 永続サブスクリプションが複数の同時コンシューマー (サーバー・クラスター内の各アプリケーション・サーバー上に 1 つずつ) を持つことが可能になります。
以下の値のいずれかを選択します。- クラスター
- 接続がサーバー・クラスター内から確立される場合、永続サブスクリプションの共有を許可します。
- 常に共有
- 接続全体で永続サブスクリプションが共有できます。
- 共有しない
- 接続で永続サブスクリプションの共有はできません。
- -shareDataSourceWithCmp
True | False
このオプションは、コンテナー管理パーシスタンス (CMP) Entity Bean を使用可能にして、メッセージング・エンジンのデータ・ストアが使用するデータベース接続を共有できるようにするタスクの一部として使用します。これによって、メッセージ・スループット全体のパフォーマンスが 15% 向上すると推定されますが、メッセージング・エンジンを含むアプリケーション・サーバーに接続された Entity Bean にしか使用できません。 このオプションは、 データ・ストアとしてファイル・ストアを使用するメッセージング・エンジンには 使用できません。
このオプションの使用について詳しくは、CMP エンティティー Bean およびメッセージング・エンジン・データ・ストアの使用可能化によるデータベース接続の共有を参照してください。
- -readAhead
コンシューマーに割り当てられているメッセージは、サーバー上でロックされており、その宛先の他のコンシューマーは、それらのメッセージを使用することはできません。 コンシューマーに割り当てられているが、そのコンシューマーがクローズされるまで使用されなかったメッセージは、 クローズ後にサーバー上でアンロックされるため、他のコンシューマーがそれらを受信することができます。
JMS 宛先の「Read ahead」プロパティーを設定することにより、個々の JMS 宛先でこのプロパティーをオーバーライドすることができます。
以下の値のいずれかを選択します。- 使用可能
- メッセージング・プロバイダーは、事前にメッセージをコンシューマーに割り当てます。これにより、コンシューマーの要求に応えるためにかかる時間が改善されます。
- 使用不可
- メッセージング・プロバイダーは、事前にメッセージをコンシューマーに割り当てません。
- デフォルト
- メッセージ・プロバイダーは、非永続サブスクリプションおよび非共有永続サブスクリプションにおいて、事前にメッセージをコンシューマーに割り当てます。つまり、先読み最適化は、単一コンシューマーのみがある可能性がある場合に限ってオンになります。
- -forwarderDoesNotModifyPayloadAfterSet
- true | false (デフォルトは false)
- 初めにこのアクティベーション・スペックを使用して受信したメッセージを再送するアプリケーションは、次のルールに従っていなければなりません。
- アプリケーションは、 メッセージにまだデータ・オブジェクトが設定されていない場合に限り、JMS オブジェクト・メッセージ内のデータ・オブジェクトを置き換えることができます。 アプリケーションは、 メッセージにデータ・オブジェクトが設定された後で、そのデータ・オブジェクトを変更したり置き換えたりすることはありません。
- アプリケーションは、JMS バイト・メッセージ内のバイト配列を置き換えることはありますが、 使用するのは writeBytes(byte[]) の単一呼び出しのみで、 メッセージにまだバイト配列が設定されていない場合に限ります。 アプリケーションは、 メッセージにバイト配列が設定された後で、そのバイト配列を変更したり置き換えたりすることはありません。
- -consumerDoesNotModifyPayloadAfterGet
- true | false (デフォルトは false)
- メッセージの受信にこのアクティベーション・スペックを使用するアプリケーションは、次のルールに従っていなければなりません。 アプリケーションは、JMS オブジェクト・メッセージから取得したデータ・オブジェクトは変更しません。 このデータ・オブジェクトは読み取り専用として取り扱われます。
- -alwaysActivateAllMDBs
- True | False
このプロパティーが使用されるのは、ターゲット・バスのメンバーであるサーバーで MDB アプリケーションが実行されている場合のみです。 ターゲット・バスのメンバーではないサーバーで MDB が実行されている場合は、このプロパティーは使用されません。
ターゲット・バスのメンバーであるサーバーで MDB アプリケーションが実行されている場合、 そのサーバーが実行中のメッセージング・エンジンもホストしているかどうかに関係なく、 このオプションを有効にすることで MDB アプリケーションはメッセージを処理できるようになります。 このオプションが有効ではない場合、ローカルで ME が実行されていないサーバー上の MDB アプリケーションはメッセージを処理しません。
MDB アプリケーションがクラスター・バス・メンバーに接続されている場合、 このオプションを使用して、次の追加構成のいずれかを行うこともできます。- クラスター内の処理能力を十分に利用するために、クラスター内のすべてのサーバーが MDB アプリケーションからのメッセージを受信できます。
- メッセージが順次処理されるように、一度に 1 つのサーバーのみが MDB アプリケーションからのメッセージを受信できます。
詳しくは、メッセージ駆動型 Bean がクラスター内で接続する方法を参照してください。
- -retryInterval
- -userName
- 使用する Java 2 コネクター・セキュリティーのユーザー ID。
- -password
- 使用する Java 2 コネクター・セキュリティーのパスワード。
- -WAS_EndpointInitialState
- このプロパティーは、エンドポイントが登録時にアクティブになるかどうかを決定します。
このプロパティーをアクティブに設定すると、メッセージ駆動型 Bean がアクティベーション・スペックを使用して宛先に接続し次第、JMS 宛先からメッセージのコンシュームが開始されます。
このパラメーターの値は ACTIVE または INACTIVE である必要があります。
例
- 以下は、Jython を使用したアクティベーション・スペックの変更例です。
wsadmin>AdminTask.modifySIBJMSActivationSpec("myjmsas(cells/ 9994GKCNode01Cell/nodes/ 9994GKCNode01|resources.xml#J2CActivationSpec_1098726667851)", ["-jndiName", "jms/jmsas4q1", "-description", "JMS activation specification for myqueue1", "-destinationJndiName", "jms/myqueue1"]) "myjmsas(cells/9994GKCNode01Cell/nodes/9994GKCNode01|resources.xml# J2CActivation Spec_1098726667851)"
- 以下は、Jacl を使用したアクティベーション・スペックの変更例です。
wsadmin>$AdminTask modifySIBJMSActivationSpec myjmsas(cells/9994GKCNode01Cell/nodes/9994GKCNode01|resources.xml# J2CActivationSpec_1098726667851) {-jndiName jms/jmsas4q1 -description "JMS activation specification for myqueue1" -destinationJndiName jms/myqueue1} myjmsas(cells/9994GKCNode01Cell/nodes/9994GKCNode01|resources.xml# J2CActivation Spec_1098726667851)
- 以下は、Jython を使用し、WAS_EndpointInitialState オプション・パラメーターをアクティブにした、アクティベーション・スペックの変更例です。
wsadmin>attrs = "[[name "WAS_EndpointInitialState"] [required "false"] [type "java.lang.String"] [value "ACTIVE"]]" wsadmin>AdminConfig.getid("/Node:myNode01") "myNode01(cells/myCell01/nodes/myNode01|node.xml#Node_1)" wsadmin>AdminTask.listSIBJMSActivationSpecs("myNode01(cells/myCell01/nodes/myNode01|node.xml#Node_1)") "newas(cells/myCell01/nodes/myNode01|resources.xml#J2CActivationSpec_1298546034140)" wsadmin>AdminConfig.create("J2EEResourceProperty", "testas(cells/myCell01/nodes/myNode01|resources.xml#J2CActivationSpec_1298546034140)", attrs) "WAS_EndpointInitialState(cells/myCell01/nodes/myNode01|resources.xml#J2EEResourceProperty_1298546239332)"