JMS Activation spec on Liberty: “WAS_EndpointInitialState” full profile equivalent property?

纵饮孤独 提交于 2019-12-11 05:27:32

问题


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


回答1:


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.




回答2:


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:

  • https://www.ibm.com/developerworks/rfe/execute?use_case=viewRfe&CR_ID=95885
  • https://www.ibm.com/developerworks/rfe/execute?use_case=viewRfe&CR_ID=95794
  • https://www.ibm.com/developerworks/rfe/execute?use_case=viewRfe&CR_ID=88543

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




回答3:


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.



来源:https://stackoverflow.com/questions/40034287/jms-activation-spec-on-liberty-was-endpointinitialstate-full-profile-equivale

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!