Step1:-
Create a flow like below Publish Messageflow
MQInputNode--->ComputeNode----->Publication Node
Configuration on Nodes:-
MQInputNode:-
Queuename: PublishQueue
Input Message Parsing: XMLNSC
ComputeNode:-
SET OutputRoot.MQMD.Format = 'MQFMT_RF_HEADER_2';
SET OutputRoot.MQRFH2.(MQRFH2.Field)version = 2;
SET OutputRoot.MQRFH2.(MQRFH2.Field)Format = 'MQSTR';
SET OutputRoot.MQRFH2.(MQRFH2.Field)NameValuCCSID=1208;
SET OutputRoot.MQRFH2.psc.Command='Publish';
SET OutputRoot.MQRFH2.psc.Topic = InputRoot.XMLNSC.publish.topic;
Declare PTR REFERENCE to OutputRoot.MQRFH2;
Detach PTR;
attach PTR TO OutputRoot.MQMD AS NEXTSIBLING ;
SET OutputRoot.XMLNSC.data.info = InputRoot.XMLNSC.publish.info;
Publication Node:-
No configuration needed.
Test Input:-
<publish><topic>Bhanu</topic><info>Sample</info></publish> Put this Message in PublishQueue
to publish
Step2:-
Create a flow like below Subscribe Messageflow
MQInputNode--->ComputeNode----->MQOutput Node
Configuration on Nodes:-
MQInputNode:-
Queuename: Subscription
Input Message Parsing: XMLNSC
ComputeNode:-
SET OutputRoot.MQMD.Format = 'MQFMT_RF_HEADER_2';
SET OutputRoot.MQRFH2.(MQRFH2.Field)version = 2;
SET OutputRoot.MQRFH2.(MQRFH2.Field)Format = 'MQSTR';
SET OutputRoot.MQRFH2.(MQRFH2.Field)NameValuCCSID=1208;
SET OutputRoot.MQRFH2.psc.Command ='RegSub';
SET OutputRoot.MQRFH2.psc.Topic = InputRoot.XMLNSC.subscribe.topic;
SET OutputRoot.MQRFH2.psc.QName = 'RegSub';
SET OutputRoot.MQRFH2.psc.QMgrName ='TEST';
DECLARE PTR REFERENCE TO OutputRoot.MQRFH2;
Detach PTR;
attach PTR TO OutputRoot.MQMD AS NEXTSIBLING ;
MQOutput Node:-
Queuename: SYSTEM.BROKER.CONTROL.QUEUE
Test Input:-
<subscribe><topic>Bhanu</topic></subscribe> Put this Message in Subscription
to Subscribe.
Objects to be Created:-
Create a flow like below Publish Messageflow
MQInputNode--->ComputeNode----->Publication Node
Configuration on Nodes:-
MQInputNode:-
Queuename: PublishQueue
Input Message Parsing: XMLNSC
ComputeNode:-
SET OutputRoot.MQMD.Format = 'MQFMT_RF_HEADER_2';
SET OutputRoot.MQRFH2.(MQRFH2.Field)version = 2;
SET OutputRoot.MQRFH2.(MQRFH2.Field)Format = 'MQSTR';
SET OutputRoot.MQRFH2.(MQRFH2.Field)NameValuCCSID=1208;
SET OutputRoot.MQRFH2.psc.Command='Publish';
SET OutputRoot.MQRFH2.psc.Topic = InputRoot.XMLNSC.publish.topic;
Declare PTR REFERENCE to OutputRoot.MQRFH2;
Detach PTR;
attach PTR TO OutputRoot.MQMD AS NEXTSIBLING ;
SET OutputRoot.XMLNSC.data.info = InputRoot.XMLNSC.publish.info;
Publication Node:-
No configuration needed.
Test Input:-
<publish><topic>Bhanu</topic><info>Sample</info></publish> Put this Message in PublishQueue
to publish
Step2:-
Create a flow like below Subscribe Messageflow
MQInputNode--->ComputeNode----->MQOutput Node
Configuration on Nodes:-
MQInputNode:-
Queuename: Subscription
Input Message Parsing: XMLNSC
ComputeNode:-
SET OutputRoot.MQMD.Format = 'MQFMT_RF_HEADER_2';
SET OutputRoot.MQRFH2.(MQRFH2.Field)version = 2;
SET OutputRoot.MQRFH2.(MQRFH2.Field)Format = 'MQSTR';
SET OutputRoot.MQRFH2.(MQRFH2.Field)NameValuCCSID=1208;
SET OutputRoot.MQRFH2.psc.Command ='RegSub';
SET OutputRoot.MQRFH2.psc.Topic = InputRoot.XMLNSC.subscribe.topic;
SET OutputRoot.MQRFH2.psc.QName = 'RegSub';
SET OutputRoot.MQRFH2.psc.QMgrName ='TEST';
DECLARE PTR REFERENCE TO OutputRoot.MQRFH2;
Detach PTR;
attach PTR TO OutputRoot.MQMD AS NEXTSIBLING ;
MQOutput Node:-
Queuename: SYSTEM.BROKER.CONTROL.QUEUE
Test Input:-
<subscribe><topic>Bhanu</topic></subscribe> Put this Message in Subscription
to Subscribe.
Objects to be Created:-
Create PublishQueue,Subscription,RegSub as three queues in MQ for testing
Direction to Test:-
First put the message in Subscription and then in the PublishQueue, then you can see the message in RegSub queue due to publish and subscribe properties configured in message flow.