Transaktionaler Objektexperte

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Menü Datei

Datei > Neu > Weitere...

Verwenden Sie den Transaktionalen Objektexperten zum Erstellen eines Server-Objekts, das unter MTS oder COM+ ausführbar ist. Transaktionale Objekte werden in verteilten Anwendungen eingesetzt, um die speziellen Dienste von MTS oder COM+ für die Ressourcenverwaltung, die Transaktionsunterstützung oder die Sicherheit nutzen zu können.

Element Beschreibung

Name der CoClass

Geben Sie den Namen des Objekts ein, das implementiert werden soll. Der Experte erzeugt ein Interface mit diesem Namen und einem vorangestellten ‘I’ sowie eine Implementierungsklasse mit diesem Namen und einem vorangestellten ‘T’.

Threading-Modell

Wählen Sie hier das Threading-Modell aus, um festzulegen, wie MTS oder COM die Aufrufe des Interface des transaktionalen Objekts serialisiert. Das gewählte Threading-Modell bestimmt, wie das Objekt registriert wird. Sie müssen sicherstellen, dass die Objektimplementierung dem gewählten Modell entspricht. Die Werte für das Threading-Modell werden weiter unten beschrieben.

Transaktionsmodell

Legt das Transaktionsattribut fest, das bei der Registrierung Ihrem Objekt zugewiesen wird. Die möglichen Werte werden weiter unten beschrieben.

Ereignisunterstützung generieren



Das Kombinationsfeld Threading-Modell kann die folgenden Werte enthalten:

Modell Beschreibung

Einfach

Der Quelltext verfügt über keine Thread-Unterstützung. Es kann immer nur ein Client-Thread behandelt werden.

Apartment

Unter COM+ greift auf jedes von einem Client instantiierte Objekt immer nur ein Thread zu. Sie müssen Schutzmaßnahmen implementieren, die verhindern, dass mehrere Threads auf den globalen Speicher zugreifen. Objekte können aber sicher auf ihre eigenen Instanzdaten (Eigenschaften und Elemente) zugreifen. Unter MTS verwenden alle Client-Aufrufe den Thread, in dem das Objekt erstellt wurde.

Beides

Wie Apartment, mit der Ausnahme, dass Callbacks an Clients auch serialisiert werden.

Neutral

Mehrer Clients können das Objekt gleichzeitig in verschiedenen Threads aufrufen, aber COM stellt sicher, dass die Aufrufe nicht miteinander in Konflikt geraten. Sie müssen Thread-Konflikte verhindern, die globale Daten und Instanzdaten betreffen, auf die von mehreren Methoden zugegriffen wird. Dieses Modell sollte nicht bei Objekten mit Benutzeroberflächen verwendet werden. Das Modell steht nur unter COM+ zur Verfügung. Es wird unter COM auf das Apartment-Modell abgebildet.



Anmerkung:  Die Serialisierung der Objektaufrufe hängt auch von der Art und Weise ab, in der das Objekt an Aktivitäten beteiligt ist. Unter MTS werden Objekte immer durch die aktuelle Aktivität synchronisiert. Die entsprechenden Einstellungen können in der Registerkarte COM+ des Typbibliothekseditors oder mit dem Komponentenmanager von COM+ vorgenommen werden.

Das Kombinationsfeld Transaktionsmodell kann die folgenden Werte enthalten:

Wert Bedeutung

Transaktion erforderlich

Das Objekt muss in einer Transaktion ausgeführt werden. Wenn ein neues Objekt erstellt wird, erbt sein Objektkontext die Transaktion vom Kontext des Client. Verfügt der Client nicht über einen Transaktionskontext, wird automatisch ein neuer erzeugt.

Neue Transaktion erforderlich

Das Objekt muss in einer eigenen Transaktion ausgeführt werden. Beim Erstellen eines neuen Objekts wird automatisch auch ein neuer Transaktionskontext erstellt. Dies erfolgt unabhängig davon, ob der Client über eine Transaktion verfügt. Das Objekt kann niemals in der Transaktion seines Clients ausgeführt werden. Stattdessen werden vom System stets unabhängige Transaktionen für die neuen Objekte erstellt.

Unterstützt Transaktionen

Das Objekt kann in den Transaktionen seines Clients ausgeführt werden. Wenn ein neues Objekt erstellt wird, erbt sein Objektkontext die Transaktion vom Kontext des Client, falls vorhanden. Ansonsten wird das Objekt nicht in einer Transaktion erstellt.

Unterstützt keine Transaktionen

Unter MTS verhält sich diese Einstellung wie Ignoriert Transaktionen unter COM+ (siehe weiter unten). Unter COM+ kann das Objekt in dem Kontext einer Transaktion überhaupt nicht ausgeführt werden. Wenn der Client über eine Transaktion verfügt, schlagen Versuche, das Objekt zu erstellen, fehl.

Ignoriert Transaktionen

Das Objekt wird nicht in einer Transaktion ausgeführt. Wenn ein neues Objekt erstellt wird, wird sein Objektkontext ohne Transaktion erzeugt. Dabei spielt es keine Rolle, ob sein Client eine Transaktion besitzt. Dieses Modell wird unter MTS nicht unterstützt.