Unable to send message to IBM MQ - spring-boot

We are facing strange problem in our application. We are having three applications, say application A, application B and application C. Application A is a J2EE application deployed in JBoss EAP 7.2.0 which sends a message to ActiveMQ Artemis queue created in the same JBoss server. Application B is a middle-ware application written using Apache Camel which reads the message (which application A sent) from ActiveMQ Artemis queue, does some transformation and sends to a IBM MQ from which application C reads the message.
My issue is when the message is sent by Application A,the message is getting transformed correctly in application B but not sent to the IBM MQ, but when I am sending the same message to ActiveMQ Artemis queue (to which application A sends) using a demo client from my local environment, it is transformed and sent to IBM MQ and application C also picks that up successfully.
Can anyone give some idea why the message is not sent to IBM MQ when sent from application A? Is there some header which can prevent the message to be sent? Thanks in advance.

Related

IBM Websphere 8.5 - Consume messages from a Local Queue

I have my application running on WAS 8.5 which consumes messages from IBM MQ. However, I want to test some functionality of my application by posting some messages to the MQ. I am trying to consume messages by creating a queue in my local setup & configuring the queue in WAS 8.5.
I have installed IBM MQ Explorer 9 in my system and created a queue manager & a queue as well. Attached below screenshot from MQ Explorer.
I am trying to have the TEST_QM & TEST_Q1 configured in the WAS 8.5 admin console under Queue connection factories.
Queue Manager Configuration in WAS
Host & port configuration in WAS
However, when I try the connection test in WAS, it returns me the below error.
I am a newbie to WAS, MQ & IBM world. Kindly guide as to where am I going wrong & how can my application consume messages from local queue?
Thank you!

Integration Wildfly appication server and Websphere MQ

I need to integrate Wildfly and Websphere MQ it means that I want send JMS message from Wildfly to Websphere MQ.
What is the best way to achieve this? Should I implement some client and sent these JMS messages directly or maybe there is similar method like JMS bridge?

Send Active MQ messages throught Camel that were sent to a AMQ topic while Camel was down

I have configured an Active MQ server that puts messages to a determined topic, in that moment a configured Camel server take this message and send it by a route to another server, the issue happens when Camel server is down and the Active MQ still continues putting messages in the topic and when Camel starts these past messages are not read by Camel, is there any way to configure Camel to start and read past messages from this Active MQ Server?
Its ActiveMQ / JMS questions. Take a look at durable topics
http://activemq.apache.org/how-do-durable-queues-and-topics-work.html

Receiving messages from WSO2 Message Broker with Process Server

I successfully configured WSO2 Message Broker as a JMS server. I have configured WSO2 ESB to send messages to a queue, and I can see this queue get created in MB with messages.
Now, I want to consume those messages with Process Server and kick off a BPEL process. I have added the required libraries to components/lib in both ESB and BPS, and have created an identical jndi.properties in both. The URL for both ESB and BPEL is:
jms:/newMLECaseQueue?transport.jms.ConnectionFactoryJNDIName=QueueConnectionFactory&java.naming.factory.initial=org.wso2.andes.jndi.PropertiesFileInitialContextFactory&java.naming.provider.url=repository/conf/jndi.properties&transport.jms.DestinationType=queue
I have tested a similar configuration with ActiveMQ, and there BPEL succesfully picked up the messages. In MB it does not seem to work, while the logging mentions that JMS started to listen:
Started to listen on destination : newMLECaseQueue of type queue for service newMLECaseQueue {org.apache.axis2.transport.jms.JMSListener}
What can be wrong here?
It appears that each queue must be registered using jndi.properties: when adding the queue with the line:
queue.newMLECaseQueue = newMLECaseQueue
it all started to work.

MDB deployed on JBOSS fetching messages from IBM MQ

I would like to deploy MDB on JBOSS. But the publisher will not send messages to the JBOSS AS, it is sending messages to IBM MQ.
Should I use JCA to integrate JBOSS and IBM MQ?
OR
Can the MDB on JBOSS AS subscribe to the topic on which IBM MQ is getting messages from publisher?
What are the advantages of one approach to another?
The recommended way to consume messages in JBoss from IBM MQ is via a Message Driven Bean (MDB). This is done by deploying the IBM JCA resource adapter (RA) in JBoss. You must use the IBM RA in JBoss as this rar file contains the IBM MQ client code that is needed for communicating with IBM MQ.
When using the MDB approach, the container (JBoss, in this case) works with the JCA to manage JMS connections, message delivery and transactions. This leaves you to only write the onMessage() method - quite a lot gets done for you under the hood.
Yes you can certainly have an MDB in JBoss that is subscribed to a Topic on MQ,
You should deploy the WebSphere MQ Resource Adapter (WMQRA) into JBoss and then configured the WMQ RA JCA resources in JBoss (Activation Specification, Queue/Topic). This will then let you deploy your MDB, and the JCA resources will handle the connection to the WMQ Queue Manager and Queue/Topic that your messages are on.
There are a few guides on setting up the WMQ RA in JBoss around on the internet.

Resources