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) » SQL Anywhere Server - Programmierung » Einführung in die Programmierung mit SQL Anywhere » Dreischichtige Datenverarbeitung und verteilte Transaktionen » EAServer mit SQL Anywhere verwenden

 

Komponenten-Transaktionsattribut festlegen

Im EAServer können Sie eine Komponente implementieren, die Vorgänge mit mehr als einer Datenbank ausführt. Sie weisen dieser Komponente ein Transaktionsattribut zu, das festlegt, wie sie an Transaktionen teilnimmt. Das Transaktionsattribut kann die folgenden Werte annehmen:

  • Nicht unterstützt   Die Methoden der Komponente werden nie als Teil einer Transaktion ausgeführt. Wird die Komponente von einer anderen Komponente aktiviert, die innerhalb einer Transaktion ausgeführt wird, dann wird die Arbeit der neuen Instanz außerhalb der vorhandenen Transaktion ausgeführt. Dies ist die Standardeinstellung.

  • Unterstützt Transaktion   Die Komponente kann im Kontext einer Transaktion ausgeführt werden. Eine Verbindung ist jedoch nicht erforderlich, um die Methoden der Komponente auszuführen. Wenn die Komponente direkt von einem Basis-Clienten instanziert wird, beginnt EAServer keine Transaktion. Wenn Komponente A von Komponente B instanziert und Komponente B innerhalb einer Transaktion ausgeführt wird, führt das System die Komponente A in derselben Transaktion aus.

  • Erfordert Transaktion   Die Komponente wird immer in einer Transaktion ausgeführt. Wenn die Komponente direkt von einem Basis-Client instanziert wird, beginnt eine neue Transaktion. Wenn Komponente A von Komponente B aktiviert wird und B innerhalb einer Transaktion ausgeführt wird, führt das System A innerhalb derselben Transaktion aus, wenn B nicht in einer Transaktion ausgeführt wird, führt das System A in einer neuen Transaktion aus.

  • Erfordert neue Transaktion   Wenn die Komponente instanziert wird, beginnt eine neue Transaktion. Wenn Komponente A von Komponente B aktiviert wird und B innerhalb einer Transaktion ausgeführt wird, beginnt A einen neue Transaktion, die unabhängig ist vom Ergebnis der Transaktion B, wenn B nicht in einer Transaktion ausgeführt wird, führt das System A in einer neuen Transaktion aus.

In der Beispielanwendung Sybase Virtual University, die mit EAServer als SVU-Paket geliefert wird, führt die enroll-Methode der SVUEnrollment-Komponente zwei separate Vorgänge aus (reserviert einen Platz in einem Kurs, fakturiert den Studenten für den Kurs). Diese beiden Vorgänge müssen als Einzel-Transaktionen behandelt werden.

Microsoft Transaction Server bietet dieselbe Gruppe von Attributwerten.

♦  So wird das Transaktionsattribut einer Komponente festgelegt
  1. Ermitteln Sie die Position der Komponente im Jaguar Manager.

    Wenn Sie die Komponente SVUEnrollment in der Jaguar-Beispielanwendung suchen möchten, stellen Sie eine Verbindung zum Jaguar-Server her. Öffnen Sie den Ordner Pakete und anschließend das SVU-Paket. Die Komponenten im Paket werden im rechten Fensterausschnitt aufgeführt.

  2. Legen Sie das Transaktionsattribut für die Komponente fest.

    Klicken Sie mit der rechten Maustaste auf die Komponente und wählen Sie Komponenten-Eigenschaften. Öffnen Sie das Register Transaktion und wählen Sie den Wert für das Transaktionsattribut aus der Liste. Klicken Sie auf OK, damit der Vorgang abgeschlossen wird.

    Die Komponente SVUEnrollment ist bereits als Erfordert Transaktion markiert.

Wenn das Komponenten-Transaktionsattribut festgelegt ist, können Sie SQL Anywhere-Vorgänge von der Komponente aus ausführen und sicher sein, dass die Transaktion auf der Ebene ausgeführt wird, die Sie angegeben haben.