Пусть JavaEE Server регистрирует информацию о транзакциях - PullRequest
2 голосов
/ 02 ноября 2010

Я занимаюсь разработкой приложений Java EE 6 для GlassFish уже несколько месяцев, но у меня все еще есть ощущение, что я не до конца понимаю, как работают транзакции, управляемые контейнером (и последствия для контекста постоянства), хотяЯ много читал о базовых основах.

Чтобы лучше понять, мне было бы интересно, если бы была возможность позволить Java EE-серверу (например, GlassFish) записывать в файл журнала, когда онзапускает / фиксирует / откатывает транзакцию.Это возможно как-то?

Ответы [ 2 ]

5 голосов
/ 02 ноября 2010

В GlassFish вы можете включить ведение журнала JTA / JTS через консоль администратора в разделе Конфигурация> Ведение журнала> Уровни журнала , используя следующие категории:

  • JTA - javax.enterprise.resource.jta
  • JTS - javax.enterprise.system.core.transaction

Но журналы довольно многословны и их не так просто прочитать.

Вы также можете активировать «мониторинг» Служба транзакций в консоли администратора через Конфигурация> Мониторинг .Затем перейдите на Корпоративный сервер> Монитор> Сервер .

1 голос
/ 18 декабря 2013

Это отлично работает.Вам понадобится только уровень журнала FINE для JTA (мониторинг не требуется), чтобы увидеть это:

FINE: TM: getTransaction: tx=null, tm=null
FINE: TM: status: Active
FINE: TM: status: NoTransaction
FINE: --Created new JavaEETransactionImpl, txId = 55
FINE: TM: getTransaction: tx=JavaEETransactionImpl: txId=55 nonXAResource=null jtsTx=null localTxStatus=0 syncs=[], tm=null
FINE: TM: enlistComponentResources
FINE: TM: getTransaction: tx=JavaEETransactionImpl: txId=55 nonXAResource=null jtsTx=null localTxStatus=0 syncs=[], tm=null
FINE: --In JavaEETransactionImpl.registerSynchronization, jtsTx=null nonXAResource=null

Как вы можете видеть здесь, вы можете, например, определить, является ли новая транзакциябыл использован, то есть с @TransactionAttribute из JEE6 (по крайней мере, это то, что я предполагаю).Помните, что аннотация работает только при вызове извне bean-компонента.

Однако вы должны увеличить размер файла для ротации журналов до 20-100 МБ, поскольку в зависимости от вашего приложения это приведет к записи большого количества информации в ваш файл.журналы.

...