Auswirkungen beim Ändern permanenter Subskriptionen
Wenn eine Anwendung eine Verbindung zu einer vorhandenen permanenten Subskription herstellt, aber andere Parameter als die angibt, die für das Erstellen der Subskription verwendet wurden, wird die Subskription gelöscht und anschließend mit den neuen Parametern erstellt. Eine permanente Subskription kann auf diese Weise nur geändert werden, wenn sie keine aktiven Konsumenten hat.
Im Regelfall ist zu einer Zeit nur ein Konsument aktiv. Deshalb kann die Anwendung die permanente Subskription ändern, ohne anderen Subskribenten dadurch zu beeinflussen. Bei geklonten Subskriptionen ist die Lage komplizierter.
Eine geklonte permanente Subskription hat mehrere aktive Subskribenten, die in der Regel Klone einer bestimmten Anwendung sind.
- Bei geklonten MDB-Anwendungen sind die Subskribenten in der Subskription immer aktiv. Deshalb muss der Administrator alle Instanzen der MDB-Anwendung stoppen, bevor die Subskription geändert werden kann. (Wenn die MDB-Anwendungsinstanzen nacheinander neu gestartet werden, wird jede einzelne Instanz abgewiesen, wenn sie versucht, mit den geänderten Eigenschaften eine Verbindung herzustellen, weil Konsumenten vorhanden sind.)
- Bei geklonten EJB-Anwendungen muss der Administrator alle Instanzen der EJB-Anwendung stoppen, damit die Subskription geändert und das folgende Problem vermieden werden kann. Enterprise-Beans haben nur für eine relativ kurze Zeit aktive Subskribenten für eine permanente Subskription. Wenn die EJB-Anwendungsinstanzen einzeln gestoppt und erneut gestartet werden, gibt es einen Zeitraum, in dem verschiedene Instanzen der Anwendung verschiedene Ansichten der Subskriptionskonfiguration haben. Dies führt dazu, dass die Subskription gelöscht und erneut erstellt wird, was einen Verlust von Nachrichten nach sich ziehen kann. Subskriptionen können mehrfach gelöscht und erneut erstellt werden, bis die neue Definition in allen Instanzen konstant ist.
Anmerkung: Die Datei Servername-durableSubscriptions.ser
im Verzeichnis WAS_HOME/temp wird vom Messaging-Service verwendet,
um permanente Subskriptionen für nachrichtengesteuerte Beans zu verfolgen. Wenn Sie eine Anwendung deinstallieren,
die eine nachrichtengesteuerte Bean enthält, wird diese Datei verwendet, um die Subskription der permanenten Subskription zurückzunehmen. Wenn Sie das Verzeichnis WAS_HOME/temp oder in diesem
Verzeichnis enthaltene Dateien löschen müssen, stellen Sie sicher, dass diese Datei beibehalten wird.