Hello,
I am using below logic to consume messages from queue.
startTransaction
(main)
(try)
pub.jms:createConsumer
pub.jms:receive
commitTransaction
(catch)
pub.flow:getLastError
rollbackTransaction
Exit flow and signal failure
But, whenever I am running the service it is failing with below error.
com.wm.lang.flow.FlowException:[ISS.0134.9049] Active Consumer services do not support transactions at this time.
I am able to consume using no transaction but not with local. I don’t want to use trigger here, since I want to consume messages on demand and want to rollback in case of failures.
Please suggest.
Any message consumers created during the execution of a service will be closed
automatically when the top-level service completes. If the consumer closes without
acknowledging messages, messages are implicitly recovered back to the JMS provider.
The use of pub.jms:createConsumer in conjunction with pub.jms:receive is an alternative to
using JMS triggers. Use the pub.jms:createConsumer service to create a message consumer.
Use the pub.jms:receive to actively receive messages from a destination on the JMS
provider.
The error message and user guide state that Active Consumer services do
not support transactions. The Active Consumer services are
pub.jms.createConsumer and pub.jms:receive. If you wish to consume a
JMS message within a transaction then you will have to use a JMS trigger
with a transacted JMS connection alias. Please have a look within the
user guide and use NO_TRANSACTION vs LOCAL_TRANSACTION.
Hello Mahesh,
Thanks for the information. I m using message selector in createConsumer service but it is not working for me.
I gave %properties/activation% L_EQUALS 1 but i am getting lexical error.
I also tried with ==, = but no luck.
Did anyone used message selector in createConsumer service, if yes then please tell me the correct syntax.
What is the complete error?
Try adding the debugLog or tracePipeline and see what is coming in %properties/activation% at run-time.