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:
AUTO_ACKNOWLEDGE o DUPS_OK_ACKNOWLEDGE e la sessione o il contesto verranno creati
come non-transazionale con specificato sessionMode/acknowledgeMode.
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.