Um Informationen über Konnektoren zu erhalten, schreiben Sie eine spezielle Servermanagement-Anforderung, die als Clientstatus-Anforderung bezeichnet wird. Sie enthält ein <ClientStatusRequest>-Tag, das ein oder mehrere <request>-Tags mit den erforderlichen Informationen für die Registrierung der Anforderung umschließt.
Ihre Clientstatus-Anforderung kann Berichte über Konnektoren auf unterschiedliche Arten ermitteln:
Durchführung einer einmaligen Anforderung
Registrierung eines Listeners für Statusänderungen, damit ein Bericht gesendet wird, wenn sich der Status eines Konnektors ändert
Registrierung eines Fehler-Listeners, damit ein Bericht gesendet wird, wenn im Konnektor ein Fehler auftritt
Außerdem können Sie einen Bericht planen, der zu bestimmten Zeitpunkten oder in festgelegten Intervallen gesendet wird.
Informationen zu Konnektoren erhalten Sie mithilfe von <ClientStatusRequest>.
Eine Clientstatus-Anforderung besteht aus einem oder mehreren <request>-Tags, die alle erforderlichen Informationen für die Registrierung der Anforderung umschließen.
<ClientStatusRequest>-Subtag | Beschreibung |
---|---|
<request> | Gruppiert Informationen in Anforderungen |
Verwenden Sie innerhalb der <request>-Tags ein optionales <replyAddr>-Tag, um die Antwortadresse für jeden Bericht festzulegen, der als Ergebnis dieser Anforderung erstellt wird. Wenn dieses Tag ausgelassen wird, ist die Standard-Antwortadresse des Berichts die Antwortadresse der ursprünglichen Nachricht.
Mit einer optionalen <requestId> legen Sie ein Label für die Anforderung fest, das in jedem Bericht enthalten ist. Wenn Sie mehrere Anforderungen registrieren bzw. löschen oder ändern, können Sie mit der ID unterscheiden, welche Berichte von einer bestimmten Anforderung generiert wurden.
Um eine Liste von Konnektoren für die Anforderung anzugeben, verwenden Sie ein oder mehrere <client>-Tags jeweils mit einer Konnektoradresse. Bei einer einmaligen Anforderung sind alle Konnektoren im Bericht enthalten. Bei einer Ereignis-Listener-Anforderung beobachtet der Server jeden dieser Konnektoren.
Um festzulegen, dass Ereignisdetails während eines Serverausfalls dauerhaft gespeichert werden sollen, verwenden Sie das <persistent>-Tag. Dieses Tag benötigt keine Daten und kann die Form <persistent/> oder <persistent></persistent> haben.
Optional können Sie eine Liste von Ereignissen angeben, indem Sie ein oder mehrere <onEvent>-Tags mit einem Ereignistyp pro Tag angeben. Wenn diese Tags ausgelassen werden, erstellt die Clientstatus-Anforderung eine einmalige Anforderung. Anderenfalls registriert die Clientstatus-Anforderung Ereignis-Listener für die angegebenen Ereignisse.
<request>-Subtags für Clientstatus-Anforderungen | Beschreibung |
---|---|
<client> | Sie können ein oder mehrere <client>-Tags mit einer Konnektoradresse pro Tag einbeziehen. Bei einer einmaligen Anforderung sind alle aufgelisteten Konnektoren im Bericht enthalten. Bei einer Ereignis-Listener-Anforderung beobachtet der Server jeden dieser Konnektoren. |
<onEvent> | Gibt die Ereignisse an, bei deren Eintritt der Server Berichte erstellen soll. Sie können ein oder mehrere <onEvent>-Tags einfügen, wobei pro Tag ein Ereignistyp erfasst wird. Wenn diese Tags ausgelassen werden, erstellt die Clientstatus-Anforderung eine einmalige Anforderung. Andernfalls wird die Clientstatus-Anforderung verwendet, um Listener für die angegebenen Ereignisse zu registrieren. |
<persistent> | Gibt an, dass die Detailinformationen in dieser Clientstatus-Anforderung in der Serverdatenbank dauerhaft festgelegt werden sollen. |
<replyAddr> | Gibt die Antwortadresse für alle Berichte an, die aufgrund dieser Anforderung generiert werden. Wenn dieses Tag ausgelassen wird, ist die Standard-Antwortadresse des Berichts die Antwortadresse der ursprünglichen Nachricht. |
<requestId> | Ein Label für den Bericht. Dieser Wert wird als Label für die Anforderung verwendet und ist in jedem der aufgrund dieser Anforderung generierten Berichte enthalten. So können Sie unterscheiden, welche Berichte von einer bestimmten Anforderung generiert wurden, wenn mehrere Anforderungen registriert sind. Außerdem können Sie offene Anforderungen löschen oder ändern. |
<schedule> | Weitere Hinweise finden Sie unter Übergeordnete Tags für Servermanagement-Anforderungen. |
Sie erstellen eine einmalige Anforderungen, wenn Sie die <onEvent>- und <schedule>-Tags in der Clientstatus-Anforderung auslassen. In diesem Fall wird ein einzelner Bericht generiert, der die aktuellen Statusinformationen für jeden in der Clientstatus-Anforderung angegebenen Konnektor enthält.
Die nachfolgende XML-Nachricht enthält kein <onEvent>- oder <schedule>-Tag und ist daher ein Beispiel für eine einmalige Anforderung. Sie generiert einen einzelnen Bericht mit aktuellen Statusinformationen für jeden im <ClientStatusRequest>-Tag enthaltenen Konnektor.
<?xml version="1.0" encoding="UTF-8"?> <actions> <ClientStatusRequest> <request> <replyAddr>ianywhere.connector.beajms\q11</replyAddr> <requestId>myOneTimeRequest</requestId> <client>ianywhere.server</client> <client>ianywhere.connector.beajms</client> </request> </ClientStatusRequest> </actions> |
Um Ereignisse anzugeben, für die der QAnywhere-Server Statusberichte erstellen soll, verwenden Sie in Ihrer Clientstatus-Anforderung <onEvent>-Tags. Im Gegensatz zu einmaligen Anforderungen reagiert der Server nicht sofort auf die Anforderung, sondern wartet auf den Eintritt von Ereignissen. Jedes Mal, wenn eines dieser Ereignisse eintritt, wird ein Bericht mit Informationen über den Konnektor gesendet, der das Ereignis bewirkt hat.
Die nachfolgenden Ereignisse werden für ereignisbezogene Anforderungen unterstützt:
Ereignis | Eintritt |
---|---|
open | Ein geschlossener Konnektor wird geöffnet. |
close | Ein zuvor geöffneter oder pausierender Konnektor wird geschlossen. |
statusChange | Der Status des Konnektors wird geändert. Der Status kann "offen" und "geschlossen" sein. |
error | Ein unerwarteter Fehler wird vom Konnektor ausgegeben. |
fatalError | Ein nicht behandelter schwerwiegender Fehler wird vom Konnektor ausgegeben. |
none | Dies kommt nie vor. Damit werden alle vorherigen Ereignisüberwachungen aus dem Konnektor entfernt. |
Im folgenden Beispiel wird dem Konnektor ianywhere.connector.beajms\q11 ein Statusbericht geschickt, wenn der Serverkonnektor seinen Status ändert oder einen Fehler generiert.
<?xml version="1.0" encoding="UTF-8"?> <actions> <ClientStatusRequest> <request> <replyAddr>ianywhere.connector.beajms\q11</replyAddr> <requestId>myEventRequest</requestId> <client>ianywhere.server</client> <onEvent>statusChange</onEvent> <onEvent>error</onEvent> </request> </ClientStatusRequest> </actions> |
Jede Antwortadresse kann ihre eigene Gruppe von Ereignis-Listenern für eine beliebige Anzahl von Konnektoren enthalten, einschließlich des Serverkonnektors. Wenn ein Ereignis-Listener einem Konnektor hinzugefügt wird, stört dies keine anderen Ereignis-Listener im Server (außer demjenigen, der dadurch ersetzt wird).
Wenn Sie einen Ereignis-Listener einem Konnektor hinzufügen, für den bereits ein Ereignis-Listener mit einer identischen Antwortadresse registriert ist, wird der alte Listener durch den neuen ersetzt. Beispiel: Wenn ein statusChange-Listener für den Konnektor abc unter der Adresse x/y registriert ist und Sie einen Fehler-Listener für abc unter der Adresse x/y registrieren, antwortet abc nicht mehr auf statusChange-Ereignisse.
Wenn Sie mehrere Ereignisse für dieselbe Adresse registrieren möchten, müssen Sie eine Einzelanforderung mit mehreren <onEvent>-Tags erstellen.
Wenn ein Ereignis-Listener für einen Konnektor unter einer Adresse registriert ist, können Sie den Ereignis-Listener entfernen, indem Sie eine andere Clientstatus-Anforderung an derselben Adresse mit dem Ereignis "none" registrieren.
Im folgenden Beispiel werden alle Ereignis-Listener für den Serverkonnektor entfernt, der unter der Adresse ianywhere.connector.beajms\q11 registriert ist:
<?xml version="1.0" encoding="UTF-8"?> <actions> <ClientStatusRequest> <request> <replyAddr>ianywhere.connector.beajms\q11</replyAddr> <client>ianywhere.server</client> <onEvent>none</onEvent> </request> </ClientStatusRequest> </actions> |
Um anzugeben, dass die Details einer Anforderung in der Tabelle der allgemeinen Eigenschaften im Nachrichtenspeicher gespeichert werden (wo sie nach einem Serverneustart automatisch wiederhergestellt werden können), fügen Sie den <persistent>-Tag in eine Clientstatus-Anforderung ein. Die Dauerhaftigkeit kann mit geplanten Ereignissen und Ereignis-Listenern, nicht aber mit einmaligen Anforderungen verwendet werden. Die Regeln für das Hinzufügen und Entfernen von dauerhaften Anforderungen sind den Regeln für reguläre Anforderungen ähnlich, allerdings können geplante Ereignisse und Ereignis-Listener nicht getrennt hinzugefügt werden. Stattdessen muss der Client alle Ereignis-Listener und Zeitpläne für eine bestimmte Konnektor/Antwortadresse-Kombination in derselben Anforderung angeben, wenn eine dauerhafte Anforderung hinzugefügt wird.
Im folgenden Beispiel wird der Ereignis-Listener und der Zeitplan zu ianywhere.connector.myConnector hinzugefügt, und der Konnektor wird dauerhaft gemacht. Außerdem werden vorherige dauerhafte Anforderungen von dieser Konnektor/Antwortadresse-Kombination überschrieben. Ein Bericht wird alle halben Stunden sowie dann gesendet, wenn eine Konnektor-Statusänderung auftritt.
<?xml version="1.0" encoding="UTF-8"?> <actions> <ClientStatusRequest> <request> <replyAddr>ianywhere.connector.beajms\q11</replyAddr> <client>ianywhere.connector.myConnector</client> <onEvent>statusChange</onEvent> <schedule> <everyminute>30</everyminute> </schedule> <persistent/> </request> </ClientStatusRequest> </actions> |
Wenn ein Konnektor geschlossen wird, bleiben alle Ereignis-Listener, die unter seiner Adresse registriert wurden, auf dem Server dauerhaft gespeichert, bis der Server heruntergefahren wird. Wenn der Konnektor wieder geöffnet wird, werden alle gespeicherten Ereignis-Listener wieder aktiv.
Ein Konnektor kann 2 Status haben:
running Der Konnektor akzeptiert und verarbeitet ankommende und ausgehende Nachrichten. Dieser Status wird in der Konnektoreigenschaft ianywhere.connector.state=1 dargestellt.
not running Der Konnektor akzeptiert und verarbeitet ankommende und ausgehende Nachrichten nicht. Dieser Status wird in der Konnektoreigenschaft ianywhere.connector.state=2 dargestellt. Wenn sich der Konnektorstatus in "running" ändert, wird der Konnektor komplett neu initialisiert.
Weitere Informationen zum Ändern des Konnektorstatus finden Sie unter Konnektoren ändern.
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |