Error registering listner:Transactions not supported [condition = amqp:not-implemented]
Hello,
I am trying to register listeners dynamically to the queues whose names can be fetched at runtime. I am using the JmsListenerEndpointRegistrar from spring for dynamic listener registration. My application is started, and connection to solace broker gets established but the listener invocation fails with the following error -
o.a.q.j.JmsConnection.onConnectionEstablished 1353 Connection ID:c5e581a2-bdf8-4996-b20b-9649e8f4f0fb:5 connected to server: amqps://801c710c-85e4-4f7a-8a41-6f2f3149e06d.messaging.eu10.mq.messagebroker.cloud.sap:7027 o.a.q.j.p.a.b.AmqpResourceBuilder.handleClosed 202 Open of resource:(JmsSessionInfo { ID:c5e581a2-bdf8-4996-b20b-9649e8f4f0fb:5:1 }) failed: Transactions not supported [condition = amqp:not-implemented]
My listener configuration looks like this -
while the JMS connection factory is as follows -
What is missing here for the transaction management? As I vaguely understand from the error, the kind of transaction management being set is not supported by the solace broker. Does it require that an explicit transaction manager implementation is injected?
Best regards,
Tripti
Best Answer
-
The Solace implementation of AMQP does not support transactions.
AMQP 1.0 Protocol Conformance (solace.com)
It looks like you are using the Qpid JMS provider with your Spring JMS application? Qpid JMS uses AMQP as its transport protocol.
Is it possible to use the Solace JMS provider instead? Solace JMS does support local/session transactions AND XA transactions.
0
Answers
-
The Solace implementation of AMQP does not support transactions.
AMQP 1.0 Protocol Conformance (solace.com)
It looks like you are using the Qpid JMS provider with your Spring JMS application? Qpid JMS uses AMQP as its transport protocol.
Is it possible to use the Solace JMS provider instead? Solace JMS does support local/session transactions AND XA transactions.
0 -
0
-
@Tripti it is not on our near-mid term roadmap so, no plans.
Can I ask why you cannot use the Solace JMS provider? It is not vendor lock in by doing so as the JMS API is a standard. Any apps you write would be able to be used with other vendors brokers just by swapping the provider JARs. In fact, you could probably use the above code in Solace JMS without modification.
It might be worth a look if transactions are important to you.
0 -
Hi @amackenzie, qpid-jms is the recommended provider from our organization. Others might be required to meet security criteria for use.
Best regards,
Tripti
0 -
Hey @dreamoka , the Solace JMS API uses our SMF Solace Message Format protocol on the wire… the same as our Java JCSMP API, C, C#, JavaScript/Node APIs, etc. Using SMF as the wireline means the API will have access to many Solace features as possible. Our JMS API has been used within massive enterprises, banks, telcos, insurance companies for more than 15 years. And supports transactions, both Session and XA.
0