Verteilte Transaktion

Hallo,

ich möchte zwei Programme dieselbe Datenbank-Transaktion benutzen lassen. Wie könnte man das realisieren?
Ich benutze Oracle 9i und C++.

Gruss
lutz

Hallo,

so etwas tut man nicht.

(Es geht, wenn du über einen Applikationsserver gehst und der die Transaktion ausführt und du dann das Ergebnis wieder ausgibst. Aber ich bin mir sicher, dú meinst etwas anderes)

Gruß

Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Einen Applikationsserver wie jboss?
Dann klingt es sehr gut.
Wie würde das ablaufen?
Was müsste man machen?

Gruss,
lutz

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo an dieser Stelle.

Einen Applikationsserver wie jboss?

Der basiert auf Java, nicht auf C++

Dann klingt es sehr gut.
Wie würde das ablaufen?
Was müsste man machen?

Welche Transaktion(en) sollen denn durchgeführt werden ?
Es wäre ja wohl sinnlos, zweimal ein- und dieselbe Tabelle löschen zu lassen :wink:

mfg M.L.

Hallo an dieser Stelle.

Hallo!

Einen Applikationsserver wie jboss?

Der basiert auf Java, nicht auf C++

Java ist mir auch nicht unbekannt.
Wenn das nur mit einem Applikationsserver geht, dann stelle ich mich auf Java um.

Gruss,
lutz

Hallo,

beschreib doch einfach mal genauer, was du machen willst.

Gruß

Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Ich stelle mir folgendes vor:
Zwei Programme, die prinzipiell über sämtliche Funktionalität verfügen um eine Aufgabe komplett auszuführen.
Dann soll es im Vorfeld eine Art Verhandlung geben aufgrund dessen die Teilaufgaben auf beide Programme verteilt werden.
Hierfür müssen sie aber, so wie ich es mir vorstelle, an derselben Datenbank-Transaktion teilnehmen, da Zwischenergebnisse in die DB geschrieben werden sollen. Die veränderten Tabellen sollen aber auch schon zugänglich sein bevor ein Commit erfolgt ist. Das geht nur wenn man dieselbe Transaktion benutzt.

Gruss
lutz

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Ich glaube ihr habt so wenig Ahnung wie ich. :wink:
Nichts für Ungut. Muss man ja nicht wissen.
Aber man sollte auch nicht so tun als wüsste man was.

Gruss
lutz

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Woraus leitest du das ab? Weil dir nicht innerhalb von Minuten geantwortet wird?

Junge, du hast Nerven.

Schau lieber vorher in die ViKa, bevor du dich offenbarst.

Ohne Gruß

Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo erstmal.

Je nach ‚Schlachtpotential‘ (Java, C++, Oracle9i…) kann man die Funktion, die die Transaktion ausführen aoll, auch auslagern und dann von x-Programmen aufrufen lassen. Sofern das zugrundeliegende Datenmodell gewahrt bleibt :wink:

mfg M.L.

Hallo Lutz,

Zwei Programme, die prinzipiell über sämtliche Funktionalität
verfügen um eine Aufgabe komplett auszuführen.
Dann soll es im Vorfeld eine Art Verhandlung geben aufgrund
dessen die Teilaufgaben auf beide Programme verteilt werden.
Hierfür müssen sie aber, so wie ich es mir vorstelle, an
derselben Datenbank-Transaktion teilnehmen, da
Zwischenergebnisse in die DB geschrieben werden sollen. Die
veränderten Tabellen sollen aber auch schon zugänglich sein
bevor ein Commit erfolgt ist. Das geht nur wenn man dieselbe
Transaktion benutzt.

Bis zu „hierfür müssern sie aber“ hab’ ich das ja noch begriffen. Kannst du mir den letzten Teil auch noch erklären? (Nur damit du jetzt nicht gleich der Meinung bist, ich wüsste nichts, eine kleine Anregung zum Nachdenken: Datenbanken gab’s auch schon, als es noch keine Transaktionskapselung gab - trotzdem waren die Daten nach einem Absturz der Session nicht notwendigerweise korrupt).

Gruß
Martin

Gruss
lutz

Hallo,

beschreib doch einfach mal genauer, was du machen willst.

Gruß

Peter

Hallo an dieser Stelle.

Hallo!

Einen Applikationsserver wie jboss?

Der basiert auf Java, nicht auf C++

Java ist mir auch nicht unbekannt.
Wenn das nur mit einem Applikationsserver geht, dann stelle
ich mich auf Java um.

Gruss,
lutz

Wenn’s noch nützt:

Das Konzept „Verteilter Transaktionen“ ist schon besetzt, und zwar für eine Transaktion, die sich über mehrere Datenbanken erstreckt.

In der Beschreibung unten steckt ein Hinweis, das es sich eher um Interprozesskommunikation als eine Datenbanktransaktion handelt. (Dafür gibt’s auch was von Oracle; nennt sich Advanced Queuing, kann zur Kommunikation mehrerer Datenbanken verwendet werden und ist hier wohl überdimensioniert …)