Error registering listner:Transactions not supported [condition = amqp:not-implemented]

Options
Tripti
Tripti Member Posts: 8

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

Answers

  • amackenzie
    amackenzie Member, Employee Posts: 260 Solace Employee
    edited June 2022 #3 Answer ✓
    Options

    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.

    Spring Boot Autoconfig (JMS) | Solace API Tutorials

  • Tripti
    Tripti Member Posts: 8
    Options

    Thanks for your reply. Unfortunately we cannot move to the suggested provider.

  • Tripti
    Tripti Member Posts: 8
    Options

    @amackenzie Is there a plan to support transactions with amqp?

    Regards,

    Tripti

  • amackenzie
    amackenzie Member, Employee Posts: 260 Solace Employee
    Options

    @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.

  • Tripti
    Tripti Member Posts: 8
    Options

    Hi @amackenzie, qpid-jms is the recommended provider from our organization. Others might be required to meet security criteria for use.

    Best regards,

    Tripti