Routing von Ressourcenworkloads
Lesen Sie diesen Artikel um zu erfahren, wie Sie das Routing von Ressourcenworkloads in Ihrer Umgebung aktivieren.
![[z/OS]](../images/ngzos.gif)
- Konfiguration einer alternativen Ressource.
- Konfiguration einer Aktionsbenachrichtigung.
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
Auf verteilten Systemen kann das Ressourcenrouting nur durch Konfiguration einer alternativen Ressource aktiviert werden.
Konfiguration einer alternativen Ressource
Eine Datenquelle und Verbindungsfactory kann automatisch eine Übernahme (Failover) und Zurücksetzung (Failback) ausführen, wenn ein angegebener oder der als Standard festgelegte Fehlerschwellenwert erreicht wird. Bei einer Übernahme (Failover) wechselt die Anwendung von der primären Ressource zur alternativen Ressource. Bei der Zurücksetzung (Failback) wechselt die Anwendung von der alternativen Ressource zurück zur primären Ressource.
Die alternative Ressource wird auf dieselbe Art und Weise erstellt wie andere Verbindungsfactorys und Datenquellen. Die Konfiguration der alternativen Ressource sollte die Konfiguration der primären Ressource spiegeln. Beispielsweise sollten sich die Sicherheitskonfigurationen der alternativen Ressource und der primären Ressource in Bezug auf die Anwendung und die Ressourcen spiegeln, damit die Anwendung und die Datenbank auf die erforderlichen Daten zugreifen können. Nachdem die alternative Ressource erstellt wurde, können Sie die Datenbankwerte ändern, die für die Back-End-Konfiguration der alternativen Ressource erforderlich sind. Wenn die alternative Ressource nicht kompatibel ist, wird die Übernahme wahrscheinlich scheitern. Wenn die Ressourcen nicht kompatibel sind, können folgende Fehler auftreten: Tabellen oder Felder sind nicht vorhanden, ein erwarteter Datensatz ist nicht vorhanden oder es treten unerwartete Ressourcenfehler auf. Vor der Konfiguration der alternativen Ressource für die primäre Datenquelle können Sie die Anwendung testen, indem Sie den JNDI-Namen in der Anwendung vom primären JNDI-Namen in den alternativen JNDI-Namen ändern.
Wenn die primäre Ressource verwendet wird, pausiert die alternative Ressource. Es ist möglich, dass die alternative Ressource vor dem Pausieren verfügbar ist, bevor die primäre Ressource verwendet wird. Die alternative Ressource sollte nicht verwendet werden, bevor sie pausiert, sofern kein besonderer Grund vorliegt, weshalb die alternative Ressource vor der primären Ressource aufgerufen werden sollte. Ein Beispiel für einen solchen besonderen Grund ist das Testen der Anwendung auf Kompatibilität.
Eine alternative Ressource kann nicht als primäre Ressource verwendet werden. Wenn Sie die Übernahmefunktion (Failover) mit nicht relationalen Ressourcenadaptern verwenden, deren Back-Ends ebenfalls die Übernahme unterstützen, müssen Sie sicherstellen, dass für diese Back-Ends die Übernahme nicht konfiguriert ist. Die Übernahme funktioniert mit nicht relationalen Ressourcenadaptern, die über ein Objekt "ManagedConnection" verfügen, das eine Methode "testConnection" implementiert. Die Methode "testConnection" wird verwendet, um mit einem Pingsignal zu prüfen, ob die Verbindung zur alternativen und primären Ressource erfolgreich ist, bevor erneut eine Verbindung zur derzeit verfügbaren Ressource hergestellt wird. Wenn der Ressourcenadapter keine Methode "testConnection" implementiert oder wenn die Methode "testConnection" den Fehler javax.resource.NotSupportedException auslöst, wird die Übernahmefunktion inaktiviert.
Für Ressourcenadapter, die die Anforderung für "testConnection" nicht erfüllen, kann eine partielle Übernahme verwendet werden. Sie müssen mittels MBeans eine manuelle Übernahme auf die primäre Ressource vornehmen, wenn diese verfügbar ist. Die partielle Übernahme kann aktiviert werden, indem die Eigenschaft "enablePartialResourceAdapterFailoverSupport" auf true gesetzt wird.
Es wird empfohlen, die Eignung dieser Funktion mit Ihrer Systemumgebung und Ihren Ressourcen zu testen, bevor Sie die Übernahmeunterstützung aktivieren.
Weitere Informationen zur Verwendung von optimierten lokalen Adaptern finden
Sie im Artikel
"Hohe Verfügbarkeit für optimierte lokale Adapter aktivieren".
MBean-Operationen
- failOverToAlternateResource
Werte: none, hold oder automated. Die Standardeinstellung ist hold ohne automatisierte Zurücksetzung.
Beschreibung: Manuelle Übernahme durch die alternative Ressource. Diese Aktion wird auf der primären Ressource ausgeführt.
- failBackToPrimaryResource
Werte: none, hold oder automated. Die Standardeinstellung ist "automated" mit automatisierter Übernahme.
Beschreibung: Manuelle Zurücksetzung auf die primäre Ressource. Diese Aktion wird auf der primären Ressource ausgeführt.
MBean-Attributeigenschaften
- currentActivePool
Werte: Ein Zeichenfolgewert, der er einen direkten JNDI-Namen enthält.
Beschreibung: Es wird ein primärer oder ein alternativer JNDI-Name zurückgegeben, je nachdem, welcher Name gerade verwendet wird.
- populateAlternateResource
Werte: boolesche Werte
Beschreibung: False - Inaktiviert das Füllen der alternativen Ressource. True - Aktiviert das Füllen der alternativen Ressource. Diese Aktion wird auf der alternativen Ressource ausgeführt.
- resourceFailOver
Werte: boolesche Werte
Beschreibung: False - Inaktiviert die Ressourcenübernahme. True - Aktiviert die Ressourcenübernahme. Diese Aktion wird auf der primären Ressource ausgeführt.
- resourceFailBack
Werte: boolesche Werte
Beschreibung: False - Inaktiviert die Ressourcenzurücksetzung. True - Aktiviert die Ressourcenzurücksetzung. Diese Aktion wird auf der primären Ressource ausgeführt.
![[z/OS]](../images/ngzos.gif)
Manuelles Ressourcenrouting mit dem Befehl modify für Ressourcen, die mit einer alternativen Ressource konfiguriert wurden
Auf der Plattform z/OS können Sie die MBean-Funktionalität teilweise nutzen, indem Sie den Befehl modify verwenden. Der Befehl modify wird verwendet, um die Ressourcenübernahmeunterstützung manuell zu inaktivieren und die Ressourcenübernahmeunterstützung, die Übernahme durch eine konfigurierte alternative Ressource und die Zurücksetzung auf die primäre konfigurierte Ressource, zu aktivieren. Ausführliche Informationen zu diesem Befehl und zu den Übernahmeparametern finden Sie im Artikel Befehl "Modify".
![[z/OS]](../images/ngzos.gif)
Konfiguration einer Aktionsbenachrichtigung
Wenn die Aktionsbenachrichtigung für eine bestimmte Ressource konfiguriert ist und Anforderungen an diese Ressource häufiger fehlschlagen als durch den angegebenen oder als Standard festgelegten Fehlerschwellenwert vorgegeben, erhält die Laufzeit von WebSphere Application Server for z/OS eine Benachrichtigung darüber, dass eine bestimmte Aktion ausgeführt werden muss. Diese Aktion ist ein konfigurierbarer Wert. Die Aktionscodes sind im Inhalt der Eigenschaft "failureNotificationActionCode" definiert, der im Abschnitt "Angepasste Eigenschaften" weiter unten in diesem Artikel aufgeführt ist.
- Aktionscode 1
Aktionscode 1 setzt die Nachrichten BBOJ0130I und BBOJ0131I für eine Hardcopy im Controller ab. Die Nachricht BBOJ0130I wird ausgegeben, wenn die Ressource nicht verfügbar ist, und BBOJ0131I, wenn die Ressource erneut gestartet wurde und verfügbar ist. WebSphere Application Server führt keine weitere automatisierte Aktion aus.
Aktionscode 1 soll für WebSphere-Administratoren eine Benachrichtigung bereitstellen, damit manuelle oder automatisierte Aktionen zur Schadensminderung außerhalb des Anwendungsservers konfiguriert werden können. BBOJ0130I enthält die folgenden Informationen:- Den JNDI-Namen, der die Ressource angibt, die fehlgeschlagen ist.
- Den Namen des Servers, auf dem die Ressource verwendet wurde, die fehlgeschlagen ist.
- Die Aktion, die ausgeführt wurde. Beispiel: NONE, PAUSING LISTENERS
BBOJ0131I enthält die folgenden Informationen:- Den JNDI-Namen, der die Ressource angibt, die erneut gestartet wird.
- Den Namen des Servers, auf dem die Ressource erneut gestartet wird.
- Die Aktion, die ausgeführt wurde. Beispiel: NONE, RESUMING LISTENERS
- Der Grund, aus dem die Aktion ausgeführt wurde: 1: Normale Benachrichtigung über Verfügbarkeit der Servantregion. 2: Unbekannte Ressourcenverfügbarkeit.
- Aktionscode 2
Dieser Aktionscode hält Listener auf dem Server an, auf dem sich die Ressource befindet, für die diese Aktion konfiguriert wurde, und setzt die Ausführung der Listener wieder fort. Serverlistener werden dann angehalten, wenn die Ressource als nicht verfügbar erachtet wird. Die Ausführung der Serverlistener wird fortgesetzt, wenn die Ressource als verfügbar erachtet wird. Bei Kombination mit einem Front-End-Router, der eine hohe Verfügbarkeit unterstützt, z. B. einem Proxy-Server oder einem On-Demand-Router, wird die Arbeit für diesen Server an andere Server im Cluster weitergeleitet. Im Rahmen dieser Aktion werden zwei Informationsnachrichten für eine Hardcopy in der Controller-Region ausgegeben. Die Nachricht BBOJ0130I wird ausgegeben, wenn die Ressource nicht verfügbar ist, und BBOJ0131I, wenn die Ressource erneut gestartet wurde und verfügbar ist.
- Aktionscode 3
Dieser Aktionscode stoppt und startet alle Anwendungen mit lokal installierten Modulen, die diese Ressource verwenden, für die diese Aktion konfiguriert wurde. Anwendungen werden gestoppt, wenn die von ihnen verwendete Ressource als nicht verfügbar erachtet wird. Anwendungen werden gestartet, wenn die von ihnen verwendete Ressource als verfügbar erachtet wird.
Im Rahmen dieser Aktion werden zwei Informationsnachrichten für eine Hardcopy in der Controller-Region ausgegeben. Die Nachricht BBOJ0130I wird ausgegeben, wenn die Ressource nicht verfügbar ist, und BBOJ0131I, wenn die Ressource erneut gestartet wurde und verfügbar ist.Achtung: Die Anwendungen, für die eine Ressourcenreferenz definiert ist, werden nur auf dem Server gestoppt, auf dem der Ressourcenausfall aufgetreten ist. Wenn die Anwendung daher in einem Cluster installiert ist, bleibt sie auf den anderen Servern im Cluster gestartet.Die Nachrichten BBOJ0130I und BBOJ0131I enthalten die folgenden Informationen:
BBOJ0130I:- Den JNDI-Namen, der die Ressource angibt, die fehlgeschlagen ist.
- Den Namen des Servers, auf dem die Ressource verwendet wurde, die fehlgeschlagen ist.
- Die Aktion, die ausgeführt wurde, z. B. NONE, "PAUSING LISTENERS", "STOPPING APPLICATIONS THAT USE THIS RESOURCE"
- Den JNDI-Namen, der die Ressource angibt, die erneut gestartet wird.
- Den Namen des Servers, auf dem die Ressource erneut gestartet wird.
- Die Aktion, die ausgeführt wurde, z. B. NONE, "RESUMING LISTENERS", "STARTING APPLICATIONS THAT USE THIS RESOURCE"
- Der Grund, aus dem die Aktion ausgeführt wurde: 1: Normale Benachrichtigung über Verfügbarkeit der Servantregion. 2: Unbekannte Ressourcenverfügbarkeit.
Angepasste Eigenschaft
Alle Eigenschaften für diese Funktion müssen als neue angepasste Eigenschaften im Verbindungspool für eine bestimmte Datenquelle oder Verbindungsfactory erstellt werden. Navigieren Sie in der Administrationskonsole zu der Datenquelle oder Verbindungsfactory, für die die Benachrichtigung aktiviert ist. Klicken Sie auf den Link Eigenschaften des Verbindungspools. Klicken Sie in der Anzeige mit den Eigenschaften des Pools auf den Link Angepasste Eigenschaften für Verbindungspool. Daraufhin wird die Anzeige Angepasste Eigenschaft für den Ressourcenverbindungspool angezeigt. Klicken Sie auf Neu, um die folgenden angepassten Eigenschaften zu erstellen:
failureNotificationActionCode
Werte: {1,2,3}
Beschreibung: Die Eigenschaft "failureNotificationActionCode" wird verwendet, um die Benachrichtigungsfunktion zu aktivieren. Wenn für diese Eigenschaft keiner der folgenden gültigen ganzzahligen Werte angegeben wird, wird die Benachrichtigungsfunktion inaktiviert:- 1 = Eine Nachricht BBOJ0130I wird in Hardcopy ausgegeben und zeigt an, dass die Ressource nicht verfügbar ist. Wenn die Ressource verfügbar ist, wird eine Nachricht BBOJ0131I in Hardcopy ausgegeben, die angibt, dass die Ressource erneut verfügbar ist.
- 2 = Ein Befehl zum Anhalten der Listener wird an den Server abgesetzt und verhindert, dass der Server neue eingehende Arbeit empfängt. Die Nachricht BBOJ0130I wird ebenfalls ausgegeben und beschreibt die ausgeführte Aktion. Wenn die Ressource verfügbar ist, wird ein Befehl zum Fortsetzen der Listener abgesetzt, damit der Server erneut eingehende Arbeit empfangen kann. Die Nachricht BBOJ0131I wird ausgegeben und beschreibt die ausgeführte Aktion.
- 3 = Alle Anwendungen mit lokal installierten Modulen, die diese Ressource verwenden, werden auf diesem Server gestoppt. Die Nachricht BBOJ0130I wird ebenfalls ausgegeben und beschreibt die ausgeführte Aktion. Wenn die Ressource verfügbar ist, werden diese Anwendungen gestartet. Die Nachricht BBOJ0131I wird ebenfalls ausgegeben und beschreibt die ausgeführte Aktion.
- failureThreshold
Werte: Eine ganze Zahl > 0.
Beschreibung Die Eigenschaft "failureThreshold" wird nur gelesen, wenn für die Eigenschaft "failureNotificationActionCode" oder "alternateResourceJNDIName" ein gültiger Wert angegeben ist. Wenn die Eigenschaft "failureThreshold" nicht festgelegt ist oder eine ungültige Zahl dafür angegeben wurde, wird der Standardwert 5 verwendet. Der für "failureThreshold" angegebene ganzzahlige Wert ist die Anzahl aufeinanderfolgender Ressourcenausnahmen, die für eine bestimmte Ressource auftreten müssen, bevor die Benachrichtigung gesendet wird oder eine Übernahme stattfindet.
Im folgenden Beispiel wird gezeigt, wie dieser Wert verwendet wird: Wenn die Eigenschaft "failureThreshold" für die Datenquelle B auf den Wert 5 gesetzt wird, muss die Datenquelle B beim Versuch, Verbindungen herzustellen, fünf aufeinanderfolgende Ressourcenausnahmen ohne erfolgreiche Verbindungsversuche zwischen diesen Fehlern erhalten, bevor die Benachrichtigung gesendet wird oder eine Ressourcenübernahme stattfinden kann. Nach fünf aufeinanderfolgenden Ressourcenausnahmen wird versucht, die Benachrichtigung zu senden oder eine Übernahme durchzuführen. Wenn in einer Multithreadumgebung der Fehlerschwellenwert erreicht ist, kann es jedoch sein, dass die Benachrichtigung bzw. die Übernahme erst nach weiteren Ressourcenausnahmen erfolgt.Achtung: Ressourcenausnahmezähler werden von den Ressourcen nicht gemeinsam genutzt. Ressourcenausnahmen müssen aufeinanderfolgen, damit der Fehlerschwellenwert erreicht wird.- alternateResourceJNDIName
Werte: Zeichenfolgewert, der er einen direkten JNDI-Namen enthält.
Beschreibung: Eine alternative Verbindungsfactory- oder Datenquellenressource sollte wie die primäre Ressource sein. Legen Sie den JNDI-Namen der alternativen Ressource fest, um die Übernahmefunktion zu aktivieren.
Erweiterte Eigenschaften für die Übernahme
- resourceAvailabilityTestRetryInterval
Werte: Ganzzahliger Wert, Standardwert ist 10.
Beschreibung: Das Testverbindungsintervall beträgt standardmäßig 10 Sekunden. Alle 10 Sekunden versucht der Testverbindungsthread, die primäre Ressource zu testen. Abhängig von den Systemressourcen kann dieser Wert von 1 - MAXINIT Sekunden geändert werden.
- enablePartialResourceAdapterFailoverSupport
Werte: Boolesche Werte, Standardwert ist false.
Beschreibung: Wird der Wert true festgelegt, findet eine Übernahme durch die alternative Ressource statt, die Zurücksetzung auf die primäre Ressource erfolgt jedoch manuell. Diese Eigenschaft kann festgelegt werden, wenn der verwendete Ressourcenadapter die Anforderungen für eine Verbindungsübernahme nicht erfüllt, z. B. weil "testConnection" nicht implementiert ist oder der Ressourcenadapter eine nicht unterstützte Ausnahme auslöst.
- disableResourceFailOver
Werte: Boolesche Werte, Standardwert ist false.
Beschreibung: Wird der Wert true festgelegt, findet keine automatische Übernahme statt.
- disableResourceFailBack
Werte: Boolesche Werte, Standardwert ist false.
Beschreibung: Wird der Wert true festgelegt, findet keine automatische Zurücksetzung statt.
- populateAlternateResource
Werte: Boolesche Werte, Standardwert ist false.
Beschreibung: Wird der Wert true festgelegt, wird die alternative Ressource bis zur maximalen Anzahl Verbindungen mit Verbindungen gefüllt. Es wird versucht, auf der alternativen Ressource die maximale Anzahl Verbindungen aufrechtzuerhalten. Wenn die Datenbank für die alternative Ressource ausfällt, werden die veralteten Verbindungen entfernt und der Thread für das Füllen der Ressource ("populate") füllt die alternative Ressource erneut, wenn die Datenbank wieder verfügbar ist. Mit den MBean-Operationen "disablePopulateAlternateResource" und "enablePopulateAlternateResource" können Sie das Füllen der alternativen Ressource dynamisch aktivieren und inaktivieren.Achtung: Möglicherweise sehen Sie während der Übernahme Leistungssteigerungen, wenn das Füllen der alternativen Ressource aktiviert ist, aber der Aufwand dafür, die alternative Ressource gefüllt zu halten, ist groß. Der größte Aufwand besteht darin, die doppelte Anzahl Verbindungen aufrechtzuerhalten, die normalerweise für eine Datenquelle benötigt werden. Weil Verbindungen große Objekte sind, benötigt das Aufrechterhalten der Verbindungen zusätzliche Speicherressourcen auf dem Server und weitere Ressourcen in der Datenbank.