Message order limitations with the Eclipse Amlen resource adapter

Message order can be disrupted when global transactions are used with the Eclipse Amlen resource adapter.

Messages reach the Java™ EE application in the order they were originally sent when the steps outlined in Configuring the Eclipse Amlen resource adapter to preserve message order for inbound communication are followed. Messages that require redelivery might arrive out of sequence relative to the order in which they were originally sent. That is, newer messages might be delivered before rolled back messages are redelivered.

For example, if a failure occurs in the middle of a two-phase commit of an MDB's transaction, the transaction manager of the application server reestablishes the connection to Eclipse Amlen to resolve the transaction after the component is available again. This recovery process is asynchronous, and it is possible for delivery of new messages to the MDB to begin before the transaction recovery process is complete. If the outcome of the transaction recovery is to roll back the transaction, then the message is returned to Eclipse Amlen and redelivered to the application, possibly after new messages are delivered.

In general, when a global transaction is rolled back in a Java EE application, messages might be redelivered out of sequence relative to the original send order. This scenario is true whether the application triggers the rollback action or whether rollback occurs as part of transaction recovery after a failure.

The following scenarios can result in transaction recovery that might disrupt message order:
  • Application server failure where the Java EE application is running.
  • Eclipse Amlen server failure.
  • A network connection failure between the application server and the Eclipse Amlen server.