CX_OBJECT_MANAGER::SetTXNPriority
Beschreibung:
Über diese Methode kann die Transaktionspriorität für diesen Prozess gesetzt werden. Falls es zu einem Deadlock zwischen zwei Prozessen kommt, dann entscheidet der Server anhand der Transaktionspriorität, welcher der beiden Prozesse seine Transaktion abbrechen muss. Der Prozess mit der niedrigeren Priorität muss seine Transaktion abbrechen. Falls zwei Prozesse die gleiche Transaktionspriorität haben, dann wird ein zufälliger Prozess ausgewählt.
Jeder Prozess startet mit der standard-Transaktionspriorität von 0x8000 (=32.768).
Der gültige Wertebereich ist definiert von 0x0000 - 0xFFFF (=65.535).
Achtung: Die Priorität 0 hat eine besondere Bedeutung. Falls zwei Prozesse mit der Priorität von 0 in einen Deadlock kommen, dann werden die Transaktionen beider Prozesse abgebrochen (und beide Prozesse erhalten die Fehlermeldung). Dieses Verhalten ist als Hilfestellung fürs Debuggen von Deadlocks und nicht für den Produktiveinsatz gedacht.
Code-Beispiel:
Stack | Position | Objekttyp | Kurzbeschreibung |
---|---|---|---|
Stack(In) | Top | CX_OBJECT_MANAGER | |
Top-1 | INTEGER | Die Transaktionspriorität im Wertebereich 0 - 0xFFFF | |
Stack(Out) | Top | - |