Kann man ein Rollback/Commit Remotly ausführen?

Guten Morgen!

Wir stehen immer wieder vor der Aufgabe, Datenbanken zu synchronisieren.
Dabei haben wir immer wieder das Problem, dass, wenn wir z.B. an eine Tabelle eine neue Spalte anhängen wollen, dies nicht geht, da verschiedene User diese Tabelle mit einem “IDLE in transaction” (nach einem Select-Statement) blockieren.
Ich kann zwar die ProcID’s ermitteln und könnte diese Prozesse abschiessen, allerdings rufen danach die Anwender an, dass unsere Software “spinnt” (Ich vermute, dass das killen und das connection-pooling zu diesem problem führen).
Wie kann ich also, unter angabe der ProcID, auf den entsprechenden Cursor ein Rollback/Commit ausführen? Geht das überhaupt?

Nein, das geht IMHO nicht.

Aber wenn Eure Software in “IDLE in transaction” rumhängt solltet Ihr vielleicht das mal abstellen…

Andreas

Ich habs befürchtet… :frowning:
trotzdem Danke!

Nein, das geht nicht. Wäre ja auch noch schöner, wenn der Admin mir meine Verbindung einfach committen kann, obwohl ich bloß die Hälfte der geplanten Änderungen durchgeführt habe.

Na, bei Dir würde ich ein ROLLBACK machen :wink:

Andreas

Was ändert das? :wink:

Also, der Grundgedanke sollte klar sein, oder? Das committen oder zurückrollen von außerhalb ist in der Regel eine schlechte Idee.
Die Anwendung auf so etwas vorzubereiten ist wahrscheinlich (kosten- und programmiertechnisch) intensiver als das Beseitigen des grundsätzlichen Problems.

Ich würde bezüglich der offenen Transaktionen mal in Richtung AutoCommit schauen …