Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » MobiLink - Serverinitiierte Synchronisation » MobiLink-Server-Einstellungen für serverinitiierte Synchronisation » Notifier-Ereignisse » Asynchrone Ereignisse

 

confirmation_handler-Ereignis

Konfigurieren Sie dieses Ereignis für die Verarbeitung von Informationen zur Zustellungsbestätigung, die von Listenern gesendet wurden. Wenn der Statusparameter 0 zurückgibt, wurde die durch request_id identifizierte Push-Anforderung erfolgreich vom Listener (identifiziert durch den Parameter remote_device) empfangen.

Mit dem Parameter request_option können Sie eine Aktion als Reaktion auf die Zustellungsbestätigung initiieren. Wenn request_option gleich 0 ist, führt das confirmation_handler-Ereignis standardmäßig diese Aktion aus. Das Ereignis request_delete wird ausgeführt, um die ursprüngliche Push-Anforderung zu löschen. Wenn das Gerät, das die Zustellungsbestätigung sendet, nicht mit dem Gerät übereinstimmt, das durch request_id identifiziert wird, wird standardmäßig die ursprüngliche Push-Anforderung über ein sekundäres Gateway gesendet.

Hinweis

Mit der dblsn-Option -x können Listener Informationen zur Zustellungsbestätigung senden. Verwenden Sie die dblsn-Option -ni, wenn Sie die Zustellungsbestätigung wünschen, aber kein IP-Tracking. Weitere Hinweise finden Sie unter Listener-Optionen für Windows.

Hinweis

Dieses Ereignis erfordert eine Systemprozedur. Es ist nicht möglich, dieses Ereignis direkt mithilfe der Sybase Central-Methode zu konfigurieren. Weitere Hinweise finden Sie unter MobiLink-Server-Einstellungen für serverinitiierte Synchronisation.

Die folgenden Parameter können mit dem confirmation_handler-Ereignis erfasst werden:

Skriptparameter Typ Beschreibung
request_option (out) Integer

Regelt, wie der Notifier die Anforderung verarbeitet, nachdem der Handler zurückgegeben wurde. Die folgenden Werte können zurückgegeben werden:

  • 0: Standardmäßige Notifier-Aktion basierend auf dem Wert des Statusparameters. Wenn der Status darauf hinweist, dass es sich bei dem antwortenden Gerät um das Zielgerät handelt, löscht der Notifier die Anforderung. Andernfalls versucht der Notifier eine Zustellung über ein sekundäres Gateway.
  • 1: Nichts tun.
  • 2: Notifier.request_delete ausführen.
  • 3: Zustellung über ein sekundäres Gateway versuchen.
status (in) Integer

Ein Überblick über die Situation. Der Status kann während der Entwicklung verwendet werden, um Probleme wie beispielsweise falsche Filter und Handler-Attribute zu identifizieren. Die folgenden Werte können zurückgegeben werden:

  • 0: Empfangen und bestätigt.
  • -2: Richtige Antwortquelle, Nachricht wurde jedoch zurückgewiesen.
  • -3: Richtige Antwortquelle, Nachricht wurde akzeptiert, aber Aktion ist fehlgeschlagen.
  • -4: Falsche Antwortquelle, Nachricht wurde akzeptiert.
  • -5: Falsche Antwortquelle, Nachricht wurde zurückgewiesen.
  • -6: Falsche Antwortquelle. Die Nachricht wurde akzeptiert und die Aktion war erfolgreich.
  • -7: Falsche Antwortquelle. Die Nachricht wurde akzeptiert, aber die Aktion ist fehlgeschlagen.
request_id (in) Integer Die Anforderungs-ID. Das request_cursor-Ereignis muss eine Spalte für die Anforderungs-ID enthalten, um das confirmation_handler-Ereignis zu verwenden.
remote_code (in) Integer

Das vom entfernten Listener berichtete Ergebnis. Die folgenden Werte können zurückgegeben werden:

  • 1: Nachricht akzeptiert.
  • 2: Nachricht zurückgewiesen.
  • 3: Nachricht akzeptiert und Aktion erfolgreich.
  • 4: Nachricht akzeptiert und Aktion fehlgeschlagen.
remote_device (in) Varchar Der Gerätename des antwortenden Listeners.
remote_mluser (in) Varchar Der MobiLink-Benutzername des antwortenden Listeners.
remote_action_return (in) Varchar Der Rückgabecode der entfernten Aktion.
remote_action (in) Varchar Reserviert für den Aktionsbefehl.
gateway (in) Varchar Das der Anforderung zugeordnete Gateway.
address (in) Varchar Die der Anforderung zugeordnete Adresse.
subject (in) Varchar Der der Anforderung zugeordnete Betreff.
content (in) Varchar Der der Anforderung zugeordnete Inhalt.
Siehe auch
Beispiel

Im folgenden Beispiel erstellen Sie die Tabelle CustomConfirmation und protokollieren dann Bestätigungen mit der gespeicherten Prozedur CustomConfirmationHandler. Der Ausgabeparameter request_option beträgt immer 0. Daher wird die Notifier-Standardverarbeitung verwendet.

CREATE TABLE CustomConfirmation(
    error_code   integer,
    request_id   integer,
    remote_code   integer,
    remote_device  varchar(128),
    remote_mluser  varchar(128),
    remote_action_return varchar(128),
    remote_action  varchar(128),
    gateway   varchar(255),
    address   varchar(255),
    subject   varchar(255),
    content   varchar(255),
    occurAt   timestamp not null default timestamp
)

CREATE PROCEDURE CustomConfirmationHandler(
    out @request_option integer,
    in @error_code  integer,
    in @request_id  integer,
    in @remote_code  integer,
    in @remote_device  varchar(128),
    in @remote_mluser  varchar(128),
    in @remote_action_return varchar(128),
    in @remote_action  varchar(128),
    in @gateway   varchar(255),
    in @address   varchar(255),
    in @subject   varchar(255),
    in @content   varchar(255)
)

BEGIN
    INSERT INTO CustomConfirmation( 
        error_code,
        request_id,
        remote_code,
        remote_device,
        remote_mluser,
        remote_action_return,
        remote_action,
        gateway,
        address,
        subject,
        content)
    VALUES (
        @error_code,
        @request_id,
        @remote_code,
        @remote_device,
        @remote_mluser,
        @remote_action_return,
        @remote_action,
        @gateway,
        @address,
        @subject,
        @content
    );
    SET @request_option = 0;
END

Mit dem folgenden Befehl können Sie die gespeicherte Prozedur ml_add_property mit einer konsolidierten SQL Anywhere-Datenbank verwenden:

call ml_add_property( 
    'SIS',
    'Notifier(myNotifier)',
    'confirmation_handler',
    'call CustomConfirmation(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)');

Alternativ dazu können Sie dieses Ereignis aufrufen, indem Sie einer Notifier-Konfigurationsdatei folgende Zeile hinzufügen:

Notifier(myNotifier).confirmation_handler = call CustomConfirmation(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)

Führen Sie die Datei mit der mlsrv11-Option -notifier aus. Weitere Hinweise zum Konfigurieren einer Notifier-Konfigurationsdatei finden Sie unter Serverseitige Einstellungen mit der Notifier-Konfigurationsdatei konfigurieren.