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) » QAnywhere » QAnywhere-Clientanwendungen schreiben » QAnywhere-API initialisieren

 

SQL-Anwendungen initialisieren

Mit QAnywhere SQL können Sie in SQL viele der Messagingfunktionen der QAnywhere .NET-, C++- und Java-APIs durchführen. Zu diesen Funktionen gehören: Nachrichten erstellen, Nachrichteneigenschaften und Inhalte festlegen oder abrufen, Nachrichten senden und empfangen, Nachrichtensynchronisation auslösen sowie Nachrichtenspeichereigenschaften festlegen und abrufen.

Nachrichten, die mit QAnywhere SQL erstellt wurden, können auch von Clients empfangen werden, die mit den Programmierschnittstellen erstellt wurden. Wenn Sie einen JMS-Konnektor auf Ihrem Server konfiguriert haben, können die Nachrichten auch von JMS-Clients empfangen werden. QAnywhere SQL kann darüber hinaus auch verwendet werden, um Nachrichten zu erhalten, die mit QAnywhere .NET-, C++-, Java-APIs oder JMS-Clients generiert wurden.

QAnywhere SQL-Messaging arbeitet parallel mit Benutzertransaktionen. Das bedeutet, dass beim Festschreiben einer Transaktion alle QAnywhere-Vorgänge für diese Verbindung festgeschrieben werden.

Weitere Hinweise finden Sie unter QAnywhere-Clientanwendungen schreiben.

Berechtigungen

Nur Benutzer mit DBA-Rechten haben die automatische Berechtigung, die gespeicherten Prozeduren von QAnywhere auszuführen. Um einem Benutzer Berechtigungen zu erteilen, muss ein Benutzer mit DBA-Rechten die Prozedur ml_qa_grant_messaging_permissions aufrufen.

Weitere Hinweise finden Sie unter ml_qa_grant_messaging_permissions.

Bestätigungsmodi

Die QAnywhere SQL-API unterstützt die Modi IMPLICIT_ACKNOWLEDGEMENT oder EXPLICIT_ACKNOWLEDGEMENT nicht. Die Nachrichtenverarbeitung über die SQL-API ist transaktional.

Beispiel

Im folgenden Beispiel wird ein Trigger für eine Bestandstabelle erstellt. Der Trigger sendet eine Nachricht, wenn der Bestand für einen Artikel unter einen bestimmten Schwellenwert sinkt. Die Nachricht wird gesendet, nachdem die Transaktion, die den Trigger aufgerufen hat, festgeschrieben wurde. Sollte die Transaktion zurückgesetzt werden, wird die Nachricht nicht gesendet.

CREATE TRIGGER inventory_trigger AFTER UPDATE ON inventory
REFERENCING old AS oldinv new AS newinv
FOR EACH ROW
begin
   DECLARE msgid VARCHAR(128);
   IF oldinv.quantity > newinv.quantity AND newinv.quantity < 10 THEN
      -- Create the message
      SET msgid = ml_qa_createmessage();
      -- Set the message content
      CALL ml_qa_settextcontent( msgid,
         'Inventory of item ' || newinv.itemname
            || ' has fallen to only ' || newinv.quantity );
      -- Make the message high priority
      CALL ml_qa_setpriority( msgid, 9 );
      -- Set a message subject
      CALL ml_qa_setstringproperty( msgid,
         'tm_Subject', 'Inventory low!' );
      -- Send the message to the inventoryManager queue
      CALL ml_qa_putmessage( msgid,
         'inventoryManager' );
   end if;
end
Siehe auch