Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie funktioniert die Transaktionssperre in Spring?

Der Sinn des Anhaltens einer Transaktion besteht darin, die aktuelle Transaktion für einen Thread in eine neue zu ändern. Dies würde NICHT mit der Semantik verschachtelter Transaktionen übereinstimmen, da die neuen und ausgesetzten Transaktionen völlig unabhängig voneinander sind. Es gibt keine API auf Verbindungsebene, die das Anhalten von Transaktionen unterstützt, daher muss dies über eine andere Verbindung erfolgen. Wenn Sie JTA mit Spring verwenden, wird dies vom JTA-Transaktionsmanager erledigt. Wenn Sie DataSourceTransactionManager verwenden, können Sie im Code nachsehen, dass die aktuelle Verbindung als "angehaltene Ressource" gespeichert und eine neue Verbindung von der Datenquelle für die neue Transaktion abgerufen wird.