![]() |
![]() |
|
|
| |
WebLogic JMS アプリケーションの移行
以降の節では、WebLogic JMS アプリケーションを移行する方法について説明します。
JavaSoft JMS 仕様バージョン 1.0.2 および JMS API - Errata に従って既存の機能が変更されました。移行手順を開始する前に、次の表で変更点を確認してください。
次の表に、WebLogic Server バージョン 5.1 の既存の機能の変更点を示します。また、その結果としてコードを変更する必要がある場合は、そのコードも併せて示します。バージョン 1.0.2 の変更履歴に関する情報については、JavaSoft JMS 仕様バージョン 1.0.2 の第 11 章「Change History」を参照してください。
カテゴリ |
説明 |
コードの変更点 |
---|---|---|
接続ファクトリ |
2 つのデフォルト接続ファクトリは非推奨になっている。該当するファクトリの JNDI 名は次のとおり。 下位互換性のために、これら 2 つの接続ファクトリの JNDI 名はこのリリースでも定義されており、サポート対象。 WebLogic JMS 6.x では、1 つのデフォルト接続ファクトリが定義されている。このファクトリは JNDI 名 注意: デフォルトの接続ファクトリを使用する場合は、接続ファクトリがデプロイされる可能性のある WebLogic Server を限定できない。特定の WebLogic Server を対象にする場合は、新しい接続ファクトリを作成し、適切な WebLogic Server の対象を指定する。 |
新しいデフォルトまたはユーザ定義の接続ファクトリ クラスを使用するために、非推奨のクラスを使用している既存のコードを変更することが望ましい。 例として、デフォルトのキュー接続ファクトリを使用して次の定数を指定した場合を示す。
この場合、新しいユーザ定義の接続ファクトリを使用するためには定数を次のように変更する。
旧バージョンとの下位互換性を保つためには、接続ファクトリのコンフィグレーション時に [メッセージの短縮を許可] チェック ボックスおよび [ユーザ トランザクションを有効化] チェック ボックスをオンにする必要がある。 接続ファクトリの定義の詳細については、Administration Console オンライン ヘルプの「JMS 接続ファクトリ」を参照。 |
特定の WebLogic Server でデフォルト接続ファクトリをインスタンス化するには、WebLogic Server のコンフィグレーション時に [デフォルト JMS 接続ファクトリを有効化] チェックボックスをオンにする。 |
変更不要。コンフィグレーションで必要とされる。詳細については、Administration Console オンライン ヘルプの「JMS サーバ」を参照。 |
|
接続 |
接続を閉じると、未処理の同期呼び出しと非同期リスナの処理が完了するまで呼び出しがブロックされる。 |
変更不要。 |
セッション |
セッションを閉じると、未処理の同期呼び出しおよび非同期リスナの処理が完了するまで、呼び出しがブロックされる。 |
変更不要。 |
メッセージ コンシューマ |
1 つのセッションで 1 つのトピックに対して複数のトピック サブスクライバが定義されている場合、各コンシューマはメッセージのコピーを受信する。 |
変更不要。 |
メッセージ コンシューマをクローズすると、メソッド呼び出しが完了し、未処理の同期アプリケーションがすべてキャンセルされるまで、呼び出しはブロックされる。 |
変更不要。 |
|
JMS 仕様に準拠するために、接続ファクトリのコンフィグレーション時に [メッセージの短縮を許可] チェック ボックスをオンにしない限り、アプリケーションは、 |
変更不要。コンフィグレーションで必要とされる。詳細については、Administration Console オンライン ヘルプの「JMS 接続ファクトリ」を参照。 |
|
メッセージ ヘッダ フィールド |
|
5.1 以前の
6.1 の
|
送り先 |
|
例として、動的にキューを作成するために次のメソッドを使用する場合を示す。
キューを動的に作成するには、
JMSHelper クラス メソッドの使い方のサンプル JMSHelper クラスの詳細については、 送り先の動的作成を参照。 |
一時的な送り先を作成する場合は、一時的なテンプレートを指定する必要がある。 |
変更不要。コンフィグレーションで必要とされる。詳細については、Administration Console オンライン ヘルプの「JMS テンプレート」を参照。 |
|
その一時的な送り先のメッセージ コンシューマを作成するには、接続のオーナであることが必要。 |
一時的な送り先にメッセージ コンシューマを作成する場合は、自分が接続のオーナであることを確認する。 |
|
恒久サブスクライバ |
恒久サブスクライバ用に JDBC テーブルを手動で作成する必要はない。自動的に作成される。 |
変更不要。 |
恒久サブスクライバは必要な数だけ作成可能。 |
変更不要。 |
|
client ID をプログラムで定義する場合は、接続を作成した直後に定義する必要がある。それ以外の場合、例外が送出され、その接続では他の JMS 呼び出しができなくなる。 |
|
|
セッション プール |
セッション プール ファクトリ、セッション プール、参照される接続ファクトリ、参照される送り先、関連する接続コンシューマは、すべて同じ JMS サーバを対象にする必要がある。 |
全オブジェクトが同じ JMS サーバを対象としていることを確認すること。 |
WebLogic JMS バージョン 5.1 の Javadoc の一部として提供されていた |
使用している場合は、これらのオブジェクトへの参照をクライアント アプリケーションから削除すること。 |
|
トランザクション |
JMS と EJB のデータベース呼び出しを同じトランザクション内で組み合わせて使用するには、2 フェーズ コミット(2PC)が必要である。WebLogic Server の以前のリリースでは、同じデータベース接続プールを使用すれば、この 2 つを組み合わせて使用することができた。 |
変更不要。 |
受信キュー メッセージを回復またはロールバックすると、キューにある全コンシューマに対してそのメッセージが使用可能になる。WebLogic Server の以前のリリースでは、ロールバックされたメッセージは、そのメッセージをロールバックしたセッションでのみ(そのセッションが終了するまで)使用可能だった。 |
変更不要。 |
次の表に、WebLogic Server バージョン 6.0 の既存の機能の変更点を示します。また、その結果としてコードを変更する必要がある場合は、そのコードも併せて示します。バージョン 1.0.2 の変更履歴に関する情報については、JavaSoft JMS 仕様バージョン 1.0.2 の第 11 章「Change History」を参照してください。
カテゴリ |
説明 |
コードの変更点 |
---|---|---|
接続ファクトリ |
Administration Console の [確認応答ポリシー] 属性の新しいデフォルト値 [ 接続ファクトリのメッセージの確認応答ポリシーとしては、非トランザクション セッションに
メッセージの確認応答モードの詳細については、 非トランザクション セッションを参照。 注意: メッセージ駆動型 Bean(MDB)で使用される接続ファクトリでは、[確認応答ポリシー] フィールドを常に [ |
確認応答メソッドを呼び出すメッセージ以前の受信メッセージを確認応答する場合は、Administration Console の [JMS 接続ファクトリ] タブで、デフォルトの [確認応答ポリシー] 設定を [ |
送り先 |
WLS バージョン 6.0 では、ソフトウェアで大文字と小文字を区別しなかったが、JMS マニュアルは、 |
変更不要。コンフィグレーションで必要とされる。詳細については、Administration Console オンライン ヘルプの「JMS テンプレート」を参照。 |
セッション プール |
WebLogic Server 6.0 SP2 以降の したがって、
|
|
WebLogic Server 6.1 では、JavaSoft JMS 仕様バージョン 1.0.2 および最新の JMS API - Errata がサポートされています。既存の JMS アプリケーションを使用するには、WebLogic Server のバージョンを確認してから、この節で説明されている適切な移行手順を実行する必要があります。
始める前に
移行手順を開始する前に、以下のリストをチェックして、現在の WebServer JMS のバージョンで移行がサポートされているかどうか、およびそのバージョンに特殊な移行ルールが適用されているかどうかを確認する必要があります。
All
] は JavaSoft JMS 仕様の変更に従った回避策です。詳細については、
6.0 と 6.1 の既存の機能の変更点を参照してください。
4.5 および 5.1 アプリケーションのバージョン 6.x への移行手順
WebLogic JMS 6.x アプリケーションを使用するには、その前に WebLogic Server バージョン 4.5 および 5.1 のコンフィグレーション データとメッセージ データを次の手順で移行する必要があります。
警告: メッセージの処理中に WebLogic Server の旧バージョンを突然停止すると、移行の際に問題が発生することがあります。旧バージョンのサーバをシャットダウンし、WebLogic Server バージョン 6.x に移行する前に、処理が非アクティブになっている必要があります。
コンフィグレーションの移行時に、以下のデフォルト キュー接続ファクトリおよびデフォルト トピック接続ファクトリが有効になります。
javax.jms.QueueConnectionFactory
javax.jms.TopicConnectionFactory
weblogic.jms.ConnectionFactory
最初の 2 つの接続ファクトリは非推奨になっていますが、下位互換性のためにこのリリースでも定義されており、使用できます。新しいデフォルト接続ファクトリの詳細については、 5.1 と 6.0 の既存の機能の変更点の表を参照してください。
JMS の管理者は、コンフィグレーションの変換結果を見直して、アプリケーションのニーズが満たされているかどうかを確認する必要があります。この場合、バージョン 5.1 と同様に、JMS 属性はすべて単一のノードにマップされます。
注意: バージョン 6.0 以降では、JMS キューはコンフィグレーション時に定義され、データベース テーブル内には保存されません。メッセージ データと恒久サブスクリプションは、2 つの JDBC テーブルまたはファイル システムのディレクトリに格納されます。
新しい JDBC データベース ストアが必要に応じて自動移行中に作成されます。
移行中には、既存のデータベース情報と新しいデータベース情報がディスク上に併存するため、2 倍のディスク スペースが必要になります。移行が完了したら、 JDBC データベース ストアの削除の説明に従って古い JDBC データベース ストアを削除できます。
注意: 何らかの理由で自動移行が失敗した場合、自動移行は次に WebLogic Server が起動したときに再試行されます。
6.0 アプリケーションの 6.1 への移行手順
WebLogic JMS 6.x アプリケーションを使用するには、その前に WebLogic Server バージョン 6.0 のコンフィグレーション データとメッセージ データを次の手順で移行する必要があります。
警告: メッセージの処理中に WebLogic Server の旧バージョンを突然停止すると、移行の際に問題が発生することがあります。旧バージョンのサーバをシャットダウンし、WebLogic Server バージョン 6.x に移行する前に、処理が非アクティブになっている必要があります。
警告: バージョン 6.1 の WebLogic Server を起動する前に、バージョン 6.0 のストアをバックアップします。これは、バージョン 6.0 のサーバでは 6.1 のストアを使用できないためです。使用すると、データが破損するおそれがあります。
移行が完了したら、
JDBC データベース ユーティリティの説明に従って、utils.Schema
ユーティリティで古い JDBC データベース テーブルを削除する必要があります。
移行中に、ローカル作業ディレクトリで DDL ファイルが生成および保存されます。DDL ファイルには、drop_<
jmsServerName
>_oldtables.ddl
という名前が付けられます。<
jmsServerName
>
は JMS サーバ名を示します。JDBC データベース ストアを削除するには、utils.Schema
ユーティリティでこの DDL ファイルを引数として指定します。
たとえば、MyJMSServer という JMS サーバから古い JDBC データベース ストアを削除するには、次のコマンドを実行します。
java utils.Schema jdbc:weblogic:oracle weblogic.jdbc.oci.Driver -s server -u
user1 -p foobar -verbose drop_MyJMSServer_oldtables.ddl
utils.Schema
ユーティリティの詳細については、
JDBC データベース ユーティリティを参照してください。
![]() |
![]() |
![]() |