Event Registry - ActimeMQ - AMQP

Hi

I’m very new to using both event registry and activemq - so maybe there is a simple answer - but i cannot make this work.

So far i’ve used rabbitmq and the event registry and everything worked fine. I did a test using jms and activemq which worked fine too.

But now i was trying to send a message to activemq from our node application over amqp - but when it was received on flowable - i got an error that only TextMessages are supported. We are trying to send text messages from node - still with no success.

So i tried changing my configuration so that flowable will be using amqp as the protocol for connecting to activemq by setting the protocol and correct port:

spring.activemq.broker-url=amqp://localhost:5673

but then i get the following error:

org.apache.activemq.transport.InactivityIOException: Channel was inactive for too (>30000) long:

Is that even possible - working with amqp against activemq using the existing jms adapter ? If not - what can i do to support it ?

I’m a little lost on what should be the correct solution
Will appreciate any advice
Thanks
Inbal

Can you give more detail? Paste your configuration, please

Hey @iadded,

For the event registry we are using the the JMS APIs to receive messages, how is that implemented by ActiveMQ and how those AMQP messages you are sending are coming over JMS is outside of our scope.

You can provide your own instance of JmsChannelModelProcessor the bean needs to be named jmsChannelModelProcessor and then override the createOutboundEventChannelAdapter method to provide your own instance of JmsOperationsOutboundEventChannelAdapter that would be able to handle those messages.

You could also provide a contribution to the OSS project with support for the messages that you are receiving.

Cheers,
Filip

Thank you for this detailed reply.
I’ll have a deeper look at this next week - and see what could be the solution.

I will update once i make any progress

Thanks again for this wonderful project - and for all the support
Regards,
Inbal

You should check how do you send the messages to ActiveMQ.
I have used Python+Stomp to send events to Flowable, and the connection builder of Stomp by default activates the option to add content length to each message that is sent. ActiveMQ interprets messages with content length as binary content, and passes it as such to Flowable. And Flowable then correctly reports an error that only TextMessages are supported, although I have sent JSON from the Python script…

Solution in my case was simple - just setting auto_content_length to False in Stomp connection constructor.

Thank you for that info - i will try doing that with my node code sending the messages to ActiveMQ

Thanks for helping
Inbal

@dragan_torbica @filiphr

After playing a lot with different configurations - I managed to find a working solution that I think might be good for others as well - so I am sharing.

I found a spring boot starter project - that adds the Apache Qpid 1.0 client - and that enabled me to use the Flowable channels against ActiveMQ using AMQP instead of JMS.

Once this worked - I could read the messages sent by my Node & Java clients with no problem.

It worked both on my local env over tcp - and against a remote ActiveMQ instance running on AWS over SSL.

This is the dependency :

org.amqphub.spring
amqp-10-jms-spring-boot-starter
2.3.5

And this is the configuration from properties file:

amqphub.amqp10jms.remote-url=amqp://127.0.0.1:5673
amqphub.amqp10jms.username=admin
amqphub.amqp10jms.password=admin

Thanks again for helping me on this
Regards,
Inbal