Le sessioni JMS con transazioni in locale trasferite non funzionano in Liberty

Sebbene WebSphere Application Server tradizionale consenta sessioni JMS con transazioni, in locale non è consentito spostare in Liberty una sessione JMS WebSphere Application Server tradizionale con transazioni in locale.

Questa regola contrassegna il codice Java con riferimenti ai seguenti metodi quando il valore booleano transacted è true o sessionMode è Session.SESSION_TRANSACTED o JMSContext.SESSION_TRANSACTED:

Il richiamo di questi metodi con questi valori specifici può generare un differente funzionamento in Liberty.

In base alla specifica JMS, nel contenitore Java EE web o EJB:

In WebSphere tradizionale, i parametri che vengono trasferiti non vengono ignorati in tali casi, pertanto consentiranno la creazione di una sessione con transazioni in locale. Se la stessa applicazione viene eseguita in Liberty senza alcuna modifica, si potrebbe invece ottenere una sessione senza transazioni o la sessione creata non viene elencata in una transazione globale esistente. In entrambi i casi, se si ottiene Session o JMSContext il tentativo di chiamare commit() o rollback() causerà la generazione di un'eccezione.

Per informazioni, consultare Liberty:Runtime environment known issues and restrictions.