As sessões JMS transportadas e transacionadas localmente não funcionam no Liberty

Embora o WebSphere Application Server tradicional permita sessões JMS transacionadas localmente, transportar uma sessão JMS transacionada localmente do WebSphere Application Server tradicional para o Liberty não é permitido.

Essa regra sinaliza código Java com referências aos métodos a seguir quando o booleano transacted é true ou o sessionMode é Session.SESSION_TRANSACTED ou JMSContext.SESSION_TRANSACTED:

Chamar esses métodos com esses valores específicos pode resultar em comportamento diferente no Liberty.

De acordo com a especificação JMS, no contêiner da web ou EJB do Java EE:

No WebSphere tradicional, os parâmetros passados não são ignorados nesses cenários, permitindo, assim, que uma Sessão transacionada localmente seja criada. Se esse mesmo aplicativo for executado no Liberty sem mudanças, ele poderá, como alternativa, obter uma Sessão não transacionada ou ter a Sessão criada inscrita em uma transação global existente. Em ambos os casos, se um Session ou JMSContext for obtido, tentar chamar commit() ou rollback() nele fará com que uma exceção seja lançada.

Para obter informações, consulte Liberty: problemas conhecidos e restrições do ambiente de tempo de execução.