Handling JMSMessage(Object Message) in IBM WebSphere Message broker - ibm-integration-bus

I am using IBM WebSphere Message Broker to process a JMS message. My message contains a Java object wrapped inside the JMSMessage (Object Message). I couldn't use any other parser other than BLOB in input node. How can I fetch the object from the BLOB domain in JMS Message using JavaCoumpute node? Please help me resolving this.

Related

Apache Nifi, PublishJMS processor fails while publishing json message to IBM Websphere MQ to overwrite JMS_IBM_* properties

with ref to post : PublishJMS processor fails while publishing json message to IBM Websphere MQ -- it helps.
But i have an another issue while publishing the message to ibm mq queue as is read from another queue. the issue is with JMS_IBM_Encoding value being defaulted to 273 by nifi.
the scenario i was trying to do is, read a msg from one IBM MQ queue and put it on a different queue as is without any modifications using nifi. meaning expecting the same functionality as dump and qload in IBM MQ terms.
Please advise on how to preserve these values as is forwarding with the message.

Does ActiveMQ Artemis / RedHat AMQ not set JMS Message ID correctly?

According to the JMS spec, I do not have to specify the message ID when sending.
When I send a message via JMSProducer#send() or when I create a message via the hawt.io console, I can see the message ID being set to some internal sequential number generated by the Artemis broker.
However, when I use MessageConsumer#receive() or MessageListener#onMessage() to receive a Message, Message#getJMSMessageID() always returns null.
The only way I can receive a message with a non-null JMS message ID is by reading a message from a different (IBM) message queue and copying all its properties to the Artemis message before sending it.
I have tested this with both AMQ 7.3.0.GA and Apache ActiveMQ Artemis 2.6.2, with both native (org.apache.activemq.artemis-jms-client) and AMQP (org.apache.qpid.qpid-jms-client) clients.
Is there some configuration I must set on the broker to make it populate JMS message IDs correctly?
JMS Message ID is usually stored in a native Artemis header that is called userID
Messages sent via the management console do not populate userID
Messages sent via the Core JMS client do populate the message ID
Messages sent via the Qpid client populate a custom property NATIVE_MESSAGE_ID with the JMS message ID
There's no way to obtain the internal message ID via JMS
If you send a message via Qpid and read it via Core client or vice versa you will receive a null JMS message ID

How do you read poison messages from the WebSphere SI Bus exception queue using JMS

As the title of the question states, how can I read poison messages from the WebSphere SI Bus exception queue using JMS?
Thanks in advance.
The SIB Exception Destination is a classic Queue so you can access it as you would access a JMS Queue.
In WAS there are two ways to do this:
Using JNDI lookup
This is the classic way to read from JMS resource. You only need to create a Queue Resource (from WAS console > Resources > JMS > Queue > New) using the Exception Destination as your "Queue Name". You then lookup the Destination using the JNDI name you set in your Queue Resource above.
Directly using the com.ibm.websphere.sib package (read more here) where destination URL is something like queue://_SYSTEM.Exception.Destination.yourwasnode.yourserver-yourSIB

How to deserialize WSO2 Message Broker object message queue with a Talend tJMSInput

I'm working on a talend job that allows me to get the content of a WSO2 Message Broker Queue.
However, when I get the message body of an 'ObjectMessage' using the Talend tJMSInput, the result is "Not supported .."
I want to deserialize the object in the queue before call the tJMSInput component.
I have two questions,
How can I get the serialized content of the WSO2 Message Broker Queue
with the tJMSInput in Talend Data Integration ?
How can I deserialize this Java Object in Talend Data Integration.
is it the right way to get all content of my java serialized object into the JMQ Queue.

Tibco ActiveMatrix BusinessWorks JMS Queue Sender with Message Type Object

I am new to Tibco, ActiveMatrix BusinessWorks and Tibco Designer.
I followed the Tutorial of Jazon Samillano regarding sending and receiving JMS Messages. In this tutorial he sends a Text within the JMS Body to the Queue.
What I am now trying is to send a Java-Object via another Java-Application to the Queue and read the Java-Object within Tibco Designer with the Palette-Element JMS Queue Receiver. After that I want to process the data and then send a JMS Message to another Queue with the same Object (with some slight manipulations) via a JMS Queue Sender.
In the configuration of the JMS Queue Receiver and of the JMS Queue Sender there is a Dropdown List where I can chose the Message Type "Object". But what do I have to do then. I think I need to make a mapping between the JMS Body to a variable (= the reprasentation of the Java Object in Tibco Designer) to process the data. But how can I do this?
Does anyone knows a good tutorial or can anyone explain how I can do this?
I would really really appreciate your help.
Thanks in advance
What you have received is serialized java objects via JMS. You can use the Java Palettes Activity to deserialize it and do whatever you want to do with that object. If your serialized object not from standard Java class (e.g. String) then you need to have the java class or jar in the class path of designer.

Resources