узнать, есть ли транзакция, связанная с текущим потоком? - PullRequest
1 голос
/ 21 июля 2011

В пользовательском классе транзакции есть метод commit. Когда мы делаем коммит на нем, сначала он обнаруживает, что если есть транзакция, связанная с этим потоком. Мой вопрос заключается в том, как на уровне ядра Java мы можем узнать, есть ли транзакция, связанная с текущим потоком? (я знаю, что это внутренний процесс в JTA API, но все еще заинтересован)

1 Ответ

0 голосов
/ 28 июля 2011

Один простой способ, который я могу придумать, - это сохранить карту со ссылкой на Thread в качестве «ключа» и объектом Transaction в качестве «значения». Для потока без транзакции, созданной в прошлом, такого ключа на карте не будет, и поэтому реализация UserTransaction может принять решение об исключении.

Любая строка кода может знать, какой это поток по Thread.currentThread ().

Надеюсь, это поможет.

Спасибо, Нитин

...