永続サブスクリプションの変更の結果
アプリケーションが既存の永続サブスクリプションに接続するが、既存のサブスクリプションを作成する際に 使用されたパラメーターと異なるパラメーターが指定される場合、 サブスクリプションは削除され、新規パラメーターで再作成されます。永続サブスクリプションは、アクティブなコンシューマーを持たない場合にのみ、この方法で変更することができます。
基本的な事例では、常にアクティブなコンシューマーが 1 つだけあるため、 アプリケーションは他のサブスクライバーに影響を与えることなく永続サブスクリプションを変更することができます。 ただし、複製されたサブスクリプションの場合、状態はより複雑です。
複製された永続サブスクリプションは複数のアクティブ・サブスクライバーを持ち、
通常これらは特定のアプリケーションの複製です。
- 複製されたメッセージ駆動型 Bean (MDB) アプリケーションの場合、サブスクライバーは常に サブスクリプション上でアクティブであるため、管理者はサブスクリプションを変更する前に、 MDB アプリケーションのすべてのインスタンスを停止する必要があります。(MDB アプリケーション・ インスタンスが一度に 1 つずつリサイクルされる場合、既存のコンシューマーがある ため、個々のインスタンスは変更済みプロパティーを使用して接続を試行する際にスローされます。)
- 複製された EJB アプリケーションの場合、管理者は次の問題を回避するために、サブスクリプションが変更される前に、 EJB アプリケーションのすべてのインスタンスが停止されることを確認する必要があります。 エンタープライズ Bean は、比較的に短い時間に、永続サブスクリプションのアクティブ・サブスクライバーを持ちます。 EJB アプリケーション・インスタンスが個々にリサイクルされる場合、アプリケーションの異なるインスタンスに、サブスクリプション構成の異なるビューが含まれる期間があります。これによってサブスクリプションが削除および再作成され、その結果メッセージが失われる場合があります。サブスクリプションの削除および再作成は、新しい定義がインスタンス全体で一定になるまで複数回実行できます。
注: WAS_HOME/temp ディレクトリー内の server_name-durableSubscriptions.ser ファイルは、メッセージ駆動型 Bean の永続サブスクリプションを追跡するために、メッセージング・サービスが使用します。メッセージ駆動型 Bean を含むアプリケーションをアンインストールすると、このファイルは、永続サブスクリプションのアンサブスクライブに使用されます。WAS_HOME/temp ディレクトリー、またはその中の他のファイルを削除する必要がある場合、このファイルを保存していることを確認してください。