How to set MQRFH2 NameValueCCSID in IBM MQ Mule 4 - jms

I am unable to set the NameValueCCSID in the IBM MQ connector in the Mule 4, by default it is always going as 1208 to the target server(iseries) which is unexpected. Any advice on this please?

Related

How to write test cases for IBM MQ using Embedded MQ?

I am new to IBM MQ and don't have any background. I have followed the below link for code development.
https://developer.ibm.com/components/ibm-mq/tutorials/mq-jms-application-development-with-spring-boot/
I am trying to figure out how to write/test IBM MQ using an embedded MQ server (For eg: Embedded Kafka), but unable to identify the solution. Can anyone help me with the following queries,
Do we have any Embedded MQ server support which can be used to test IBM MQ with Spring Boot application?
If yes, Can you please share some examples of how to test it.
Try the documentation at this git hub repo - https://github.com/ibm-messaging/mq-jms-spring
Extract from the readme:
IBM MQ JMS Spring Components
This repository contains code to help to provide Spring developers
with easy configuration of the IBM MQ JMS package.
The library contains:
mq-jms-spring-boot-starter for Spring Boot 2 applications

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.

Spring JMS + WebSphere MQ client

I was trying to configure jms template to connect to WebSphere MQ. When using Websphere client jar, there are multiple options that were set like MQC.MQOO_OUTPUT | MQC.MQOO_FAIL_IF_QUIESCING etc for Queue's and PUT and GET options like MQC.MQPMO_NEW_MSG_ID , MQC.MQGMO_WAIT, MQC.MQMO_MATCH_CORREL_ID etc.,.,
is there way to pass these option to JMS template ?
These options are IBM MQ specific, so don't think they can be passed as it is to Spring. But some of these have a JMS equivalent available in Spring template.
MQC.MQOO_OUTPUT option means open queue for putting messages and is equivalent to JMS createProducer API.
MQC.MQGMO_WAIT option is equivalent to receive(timeout)
MQC.MQMO_MATCH_CORREL_ID - is equivalent to creating a consumer with a selector "JMSCorrelatoinID=<your correlationid>"

Integrating websphere MQ with boomi

We are working on Integrating websphere MQ with boomi,
The Configuration in Boomi for JMS connector is as follows:
For JMS Connection :
Authentication Present:
User : adminstrator
password : xxxxx
JMS Server : Websphere MQ
Connection type : Single QM connection
Queue Manager : BoomiQMGR
Channel Name : BoomiSC
For JMS operation:
Destination : queue:BoomiQ(where BoomiQ is the Queue Name, "queue:" as mentioned in the boomi Documentation)
But the Problem is,
with these configuration we encounter the below error in boomi:
*"Test execution of TestProcess completed with errors. Embedded message: Unable to retrieve JMS message; Caused by: JMSCC0005: The specified value 'queue:BoomiQ' is not allowed for 'XMSC_DESTINATION_NAME'."
From what we can tell in reading around this occurs due to WebSphere MQ destination naming restrictions, we are using WEBSPHERE version : WS_MQ_V8.0_TRIAL_FOR_WINDOWS_ML(downloaded from IBM Site)
Can someone help us out on this?
Please suggest if we are missing anything.
Thanks in Advance.
The problem looks to be the format of the Queue Name: queue:BoomiQ isn't valid for the WMQ JMS client.
If the Queue on the QueueManager was say MyQueue, then either ensure that MyQueue is passed to JMS or queue:///MyQueue.

Target client option in setting up a queue on WAS

In WAS console, on the Queues page, there is an option called 'Target Client' and the options are MQ and JMS. Now MQ i understand is websphere MQ, but what is JMS? Any JMS provider other than Websphere MQ? Because in my case the target is actually websphere MQ but i have selected JMS here and it still works fine.
Target client defines how the message will intepreted by the receiving application.
If you choose MQ, then a RFH2 header will be added with MQ specific info otherwise JMS info will be added (jms_bytes, jms_text etc..).
IBM has some info about it

Resources