1

We are migrating some apps from WAS full profile to WAS Liberty profile.
Some apps have MDBs and need JMS Activation Specs definitions connected to MQ.
In order to enforce strict FIFO ordering of messages in a cluster, we set the "WAS_EndpointInitialState" property to "INACTIVE" on those Activation Specs to tell WAS full profile to not start the Activation Spec on startup. When the cluster starts, we start (ie "resume") the activation on one server only.
Q: How to achieve this with Liberty (v16.0.x) ? I don't see an equivalent parameter within the "properties.wmqJms" stanza.
Thanks

titou10
  • 2,814
  • 1
  • 19
  • 42

3 Answers3

2

Liberty doesn't have an equivalent parameter/capability for activation specs. You can open a request for enhancement here: https://www.ibm.com/developerworks/rfe/?PROD_ID=544

In case it helps during the meantime, a crude way of simulating the capability is to start the server with the jmsActivationSpec elements commented out, and make configuration updates to uncomment as you want them activated.

njr
  • 3,399
  • 9
  • 7
0

Unfortunately as-is (with v16.0.0.3 and the current beta version), it is not possible to deploy an application with MDBs in production due to a serious lack on functionalities in Liberty profile (JMS Activations). When using the jmsActivationSpec+ properties.wmqJms stanzas, it is impossible:

  • to configure the activation to stop after x failed tentatives to consume the message. Liberty tries to consume the message forever without any notification!!
  • to start the activation in an inactive state on startup., so it is impossible to enforce the FIFO paradigm on a Q when deployed in a cluster (or collective or other form of cluster)

Those are already captured in the following RFE:

For us it's a clear no-go to move to WebSphere Liberty profile for those reasons

titou10
  • 2,814
  • 1
  • 19
  • 42
0

This is way too late for the OP, but in case someone comes here looking for a current answer.

Liberty / Open Liberty now offer (as of 18.0.0.1) such a function, which you can enable via the autoStart attribute, e.g.:

<jmsActivationSpec autoStart="false" id="myJMSActSpec"/>

See here for a quick example of how you would use the EndpointControl MBean and/or the server resume CLI command to start message delivery into the server.

Scott Kurz
  • 4,985
  • 1
  • 18
  • 40