Napisałem mały test, aby zrozumieć zachowanie asynchroniczne w EJB3.1 przy użyciu adnotacji @Asynchronous
. Wydaje się, że:Asynchroniczne metody EJB 3.1 i transakcje
Jeśli metoda istnieje w tej samej fasoli jako rozmówcy,
- połączeń nie jest już niesynchroniczne.
- Transakcja dzwoniącego jest oznaczona do wycofania, jeśli transakcja w metodzie asynchronicznej zostanie wycofana; To prawdopodobnie efektem ubocznym 1.
Jednakże, jeżeli sposób asynchroniczny istnieje w innej ziaren jest oczekiwać, że zachowanie to jest połączenia jest asynchroniczny i transakcja wywołujący jest niezależny (sposób asynchroniczny mają REQUIRES_NEW zachowanie dla transakcji). Jest to dla mnie zagadkowe, ponieważ zachowanie nie jest takie samo w obu przypadkach. Czy ktoś mógłby wyjaśnić?
P.S. Środowisko EJB 3.1, JBoss 6
czy wywołujesz metodę używając 'SessionContext # getBusinessObject (klasa)' zamiast używać słowa kluczowego 'this'? (różnica jest wyjaśniona [tutaj] (http://stackoverflow.com/questions/3381002/how-is-turn-value-of-sessioncontext-getbusinessobject-different- from-thi/3384128#3384128)) – stratwine
@ stratwine Prawie na pewno problem, po prostu przekształciłbym go w odpowiedź. –
@stratwine Masz rację, proszę wpisz swoje komentarze w odpowiedzi, abym mógł zaakceptować – anergy