Профиль Liberty - ошибка в Linux [Невозможно начать новое UOW. LocalTransactionContainment уже работает с работой] - PullRequest
1 голос
/ 05 февраля 2020

Я использую следующую версию Websphere Liberty Profile в

Windows

 WebSphere Application Server 19.0.0.6 (1.0.29.cl190620190617-1530) on Java HotSpot(TM) 64-Bit Server VM, version 1.8.0_211-b12 (en_US)

Linux

WebSphere Application Server 19.0.0.6 (1.0.29.cl190620190617-1530) on IBM J9 VM, version 8.0.5.35 - pwa6480sr5fp35-20190418_01(SR5 FP35) (en_US)  

Когда я запускаю службу, которая включает поток, я получаю следующую ошибку в linux, тогда как я не получаю ошибку в windows,

java.lang.IllegalStateException: Cannot start a new UOW. A LocalTransactionContainment is already active with work.
    at com.ibm.tx.ltc.impl.LTCUOWCallback.uowPreBegin(LTCUOWCallback.java:128) ~[?:?]
    at com.ibm.tx.ltc.embeddable.impl.EmbeddableLTCUOWCallback.uowPreBegin(EmbeddableLTCUOWCallback.java:110) ~[?:?]
    at com.ibm.tx.ltc.embeddable.impl.EmbeddableLTCUOWCallback.contextChange(EmbeddableLTCUOWCallback.java:66) ~[?:?]
    at com.ibm.ws.transaction.services.LTCUOWCallbackService.contextChange(LTCUOWCallbackService.java:44) ~[?:?]
    at com.ibm.ws.uow.UOWScopeCallbackManager.notifyCallbacks(UOWScopeCallbackManager.java:66) ~[?:?]
    at com.ibm.tx.jta.impl.UserTransactionImpl.begin(UserTransactionImpl.java:65) ~[?:?]
    at com.ibm.tx.jta.embeddable.impl.EmbeddableUserTransactionImpl.begin(EmbeddableUserTransactionImpl.java:69) ~[?:?]
    at com.ibm.ws.transaction.services.UserTransactionService.begin(UserTransactionService.java:65) ~[?:?]
    at com.ibm.ejs.container.UserTransactionWrapper.begin(UserTransactionWrapper.java:111) ~[com.ibm.ws.ejbcontainer_1.0.29.jar:?]  

1 Ответ

0 голосов
/ 05 февраля 2020

IllegalStateException предполагает, что транзакционная работа (например, операция с базой данных) ранее выполнялась в потоке, при этом работа еще не была зафиксирована или откатана, когда операция UserTransaction.begin пытается запустить новую транзакцию. Пожалуйста, проверьте код приложения, приведший к этому пункту, и, если возможно, опубликуйте его на свой вопрос. Нет причин, по которым поведение должно отличаться на разных платформах, если вы используете один и тот же код в обоих случаях.

...