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 - Clientadministration » SQL Anywhere-Clients für MobiLink » Ereignis-Hooks für SQL Anywhere-Clients

 

sp_hook_dbmlsync_abort

Verwenden Sie diese gespeicherte Prozedur, um den Synchronisationsprozess abzubrechen.

Zeilen in der Tabelle #hook_dict

Name

Wert

Beschreibung

abort synchronization (in|out)

true | false

Wenn Sie diese Zeile in der Tabelle #hook_dict auf true einstellen, wird dbmlsync sofort nach dem Ereignis beendet.

publication_n (in)

Publikation

Die synchronisierten Publikationen, wobei n eine Ganzzahl ist. Es gibt einen publication_n-Eintrag für jede Publikation im Upload. Die Nummerierung von n beginnt bei Null.

MobiLink user (in)

MobiLink-Benutzername

Der MobiLink-Benutzer, für den Sie synchronisieren

exit code (in|out)

Nummer

Wenn 'abort synchronization' auf TRUE gesetzt ist, können Sie diesen Wert verwenden, um den Beendigungscode für die abgebrochene Synchronisation zu definieren. 0 gibt an, dass die Synchronisation erfolgreich war. Jede andere Zahl gibt an, dass die Synchronisation fehlgeschlagen ist.

script version (in|out)

Skriptversionsname

Die MobiLink-Skriptversion, die für die Synchronisation verwendet werden soll

Bemerkungen

Wenn eine Prozedur dieses Namens vorhanden ist, wird sie beim dbmlsync-Start und dann nach jeder Synchronisationsverzögerung aufgerufen, die von sp_hook_dbmlsync_delay verursacht wird.

Wenn der Hook einen Abbruch verlangt, indem der Wert "abort synchronization" auf TRUE gesetzt ist, wird der Beendigungscode an den Hook sp_hook_dbmlsync_process_exit_code übergeben. Wenn kein Hook sp_hook_dbmlsync_process_exit_code definiert ist, wird der Beendigungscode als Beendigungscode für das Programm benutzt.

Die Aktionen dieser Prozedur werden sofort nach ihrer Ausführung festgeschrieben.

Siehe auch
Beispiele

Die folgende Prozedur verhindert die Synchronisation während der planmäßig täglich zwischen 19:00 und 20:00 Uhr durchgeführten Wartung.

CREATE PROCEDURE sp_hook_dbmlsync_abort()
BEGIN
  DECLARE down_time_start TIME;
  DECLARE is_down_time VARCHAR(128);
  SET down_time_start='19:00';
  IF datediff( hour,down_time_start,now(*) ) < 1
  THEN
    set is_down_time='true';
  ELSE
    SET is_down_time='false';
  END IF;
  UPDATE #hook_dict
  SET value = is_down_time
  WHERE name = 'abort synchronization'
END;

Sie haben einen abort-Hook, der die Synchronisation aus einem von zwei Gründen abbrechen kann. Einer der Gründe ist der normale Abschluss der Synchronisation, und Sie wollen, dass dbmlsync den Beendigungscode 0 hat. Der andere Grund gibt eine Fehlerursache an, und daher soll dbmlsync einen von Null verschiedenen Code ausgeben. Sie könnten dies mit einem sp_hook_dbmlsync_abort-Hook erreichen, der wie folgt definiert ist.

BEGIN
   IF [condition that defines the normal abort case] THEN
      UPDATE #hook_dict SET value =  '0'
   WHERE name = 'exit code';
      UPDATE #hook_dict SET value =  'TRUE'
   WHERE name = 'abort synchronization';
   ELSEIF [condition that defines the error abort case] THEN
      UPDATE #hook_dict SET value =  '1'
   WHERE name = 'exit code';
      UPDATE #hook_dict SET value =  'TRUE'
   WHERE name = 'abort synchronization';
   END IF;
END;