Author |
Message
|
v_venugopalan |
Posted: Wed Dec 17, 2003 2:10 am Post subject: Problem in Subscription |
|
|
Novice
Joined: 25 Nov 2003 Posts: 12 Location: INDIA
|
hai
I have a small problem in subscription Flow. Im using WMQI 2.1 for NT
I have a Subscription Flow which will subscribe on a specific topic given in the Input XML.
The Input XML Looks Like
Quote: |
<Subscription><Topic>NEW</Topic><QMgrName>QM1</QMgrName><QName>Q1<QName></Subscription> |
My Subscription ESQL looks like
Quote: |
SET OutputRoot.MQRFH2.(MQRFH2.Field)Version = 2;
SET OutputRoot.MQRFH2.(MQRFH2.Field)NameValueCCSID = 437;
SET OutputRoot.MQRFH2.(MQRFH2.Field)Format = 'MQSTR';
SET OutputRoot.MQRFH2.psc.Command = 'RegSub';
SET OutputRoot.MQRFH2.psc.Topic = "InputBody"."Subscription"."Topic";
SET OutputRoot.MQRFH2.psc.QMgrName = "InputBody"."Subscription"."QMgrName";
SET OutputRoot.MQRFH2.psc.QName = "InputBody"."Subscription"."QName";
SET OutputRoot.MQRFH2.psc.RegOpt = 'PersAsPub'; |
It works Fine when i put the message in the Input queue Using MQ Series Explorer Window.
But if i put the Same Message Through My JAVA program using JMS, it dos not work...
The Trace File Looke Same for both the Flows..
Can anone plz solve My problem  _________________ VV |
|
Back to top |
|
 |
jefflowrey |
Posted: Wed Dec 17, 2003 5:17 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
Can you be more specific about what you mean by "it doesn't work", and how you know "it doesn't work"?
Are you tracing the message before or after the node that builds the subscription?
Is your JMS destination set to include the JMS header, or not? (Is there already an MQRFH2 header on the Input message when it comes from JMS?) _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
v_venugopalan |
Posted: Wed Dec 17, 2003 9:28 pm Post subject: |
|
|
Novice
Joined: 25 Nov 2003 Posts: 12 Location: INDIA
|
It doesnt work Means - The Subscription is Not Happening on the Specified Topic.
The Topic is Not listed in the Subscription List
Also
Im Tracing the Message Befora and After the Compute_Subscription Node where i have written my ESQL
SET OutputRoot.MQMD.Format = MQFMT_RF_HEADER_2;
SET OutputRoot.MQRFH2.psc.Command = 'RegSub';
SET OutputRoot.MQRFH2.psc.Topic = "InputBody"."Subscription"."Topic";
SET OutputRoot.MQRFH2.psc.QMgrName = "InputBody"."Subscription"."QMgrName";
SET OutputRoot.MQRFH2.psc.QName = "InputBody"."Subscription"."QName";
SET OutputRoot.MQRFH2.psc.RegOpt = 'PersAsPub';
I have Changed the TARGCLIENT of JMS Q to MQ Rather Than jms to avoid jms Headers
My trace before compute node looks like
Quote: |
(
(0x1000000)Properties = (
(0x3000000)MessageSet = ''
(0x3000000)MessageType = ''
(0x3000000)MessageFormat = ''
(0x3000000)Encoding = 273
(0x3000000)CodedCharSetId = 1208
(0x3000000)Transactional = TRUE
(0x3000000)Persistence = TRUE
(0x3000000)CreationTime = GMTTIMESTAMP '2003-12-18 04:51:04.550'
(0x3000000)ExpirationTime = -1
(0x3000000)Priority = 4
(0x3000000)ReplyIdentifier = X'000000000000000000000000000000000000000000000000'
(0x3000000)ReplyProtocol = 'MQ'
(0x3000000)Topic = NULL
)
(0x1000000)MQMD = (
(0x3000000)SourceQueue = 'MQSI_INQ'
(0x3000000)Transactional = TRUE
(0x3000000)Encoding = 273
(0x3000000)CodedCharSetId = 1208
(0x3000000)Format = 'MQSTR '
(0x3000000)Version = 2
(0x3000000)Report = 0
(0x3000000)MsgType = 8
(0x3000000)Expiry = -1
(0x3000000)Feedback = 0
(0x3000000)Priority = 4
(0x3000000)Persistence = 1
(0x3000000)MsgId = X'414d51204d515349716d677220202020337ede3f2000d401'
(0x3000000)CorrelId = X'000000000000000000000000000000000000000000000000'
(0x3000000)BackoutCount = 0
(0x3000000)ReplyToQ = ' '
(0x3000000)ReplyToQMgr = 'MQSIqmgr '
(0x3000000)UserIdentifier = 'MUSR_MQADMIN'
(0x3000000)AccountingToken = X'160105150000002e43ac40a020966a07e53b2bea03000000000000000000000b'
(0x3000000)ApplIdentityData = ' '
(0x3000000)PutApplType = 28
(0x3000000)PutApplName = 'MQSeries Client for Java '
(0x3000000)PutDate = DATE '2003-12-18'
(0x3000000)PutTime = GMTTIME '04:51:04.550'
(0x3000000)ApplOriginData = ' '
(0x3000000)GroupId = X'000000000000000000000000000000000000000000000000'
(0x3000000)MsgSeqNumber = 1
(0x3000000)Offset = 0
(0x3000000)MsgFlags = 0
(0x3000000)OriginalLength = -1
)
(0x1000010)XML = (
(0x5000018)XML = (
(0x6000011) = '1.0'
(0x6000012) = 'UTF-8'
)
(0x6000002) = ' '
(0x1000000)Subscription = (
(0x1000000)Topic = (
(0x2000000) = 'MERGE15'
)
(0x1000000)QMgrName = (
(0x2000000) = 'MQSIqmgr'
)
(0x1000000)QName = (
(0x2000000) = 'MQSI_OUTQ'
)
)
)
) |
Trace after looks like
Quote: |
(
(0x1000000)Properties = (
(0x3000000)MessageSet = ''
(0x3000000)MessageType = ''
(0x3000000)MessageFormat = ''
(0x3000000)Encoding = 273
(0x3000000)CodedCharSetId = 1208
(0x3000000)Transactional = TRUE
(0x3000000)Persistence = TRUE
(0x3000000)CreationTime = GMTTIMESTAMP '2003-12-18 04:51:04.550'
(0x3000000)ExpirationTime = -1
(0x3000000)Priority = 4
(0x3000000)ReplyIdentifier = X'000000000000000000000000000000000000000000000000'
(0x3000000)ReplyProtocol = 'MQ'
(0x3000000)Topic = 'MERGE15'
)
(0x1000000)MQMD = (
(0x3000000)SourceQueue = 'MQSI_INQ'
(0x3000000)Transactional = TRUE
(0x3000000)Encoding = 273
(0x3000000)CodedCharSetId = 1208
(0x3000000)Format = 'MQHRF2 '
(0x3000000)Version = 2
(0x3000000)Report = 0
(0x3000000)MsgType = 8
(0x3000000)Expiry = -1
(0x3000000)Feedback = 0
(0x3000000)Priority = 4
(0x3000000)Persistence = 1
(0x3000000)MsgId = X'414d51204d515349716d677220202020337ede3f2000d401'
(0x3000000)CorrelId = X'000000000000000000000000000000000000000000000000'
(0x3000000)BackoutCount = 0
(0x3000000)ReplyToQ = ' '
(0x3000000)ReplyToQMgr = 'MQSIqmgr '
(0x3000000)UserIdentifier = 'MUSR_MQADMIN'
(0x3000000)AccountingToken = X'160105150000002e43ac40a020966a07e53b2bea03000000000000000000000b'
(0x3000000)ApplIdentityData = ' '
(0x3000000)PutApplType = 28
(0x3000000)PutApplName = 'MQSeries Client for Java '
(0x3000000)PutDate = DATE '2003-12-18'
(0x3000000)PutTime = GMTTIME '04:51:04.550'
(0x3000000)ApplOriginData = ' '
(0x3000000)GroupId = X'000000000000000000000000000000000000000000000000'
(0x3000000)MsgSeqNumber = 1
(0x3000000)Offset = 0
(0x3000000)MsgFlags = 0
(0x3000000)OriginalLength = -1
)
(0x1000000)MQRFH2 = (
(0x1000000)psc = (
(0x1000000)Command = (
(0x2000000) = 'RegSub'
)
(0x1000000)Topic = (
(0x2000000) = 'MERGE15'
)
(0x1000000)QMgrName = (
(0x2000000) = 'MQSIqmgr'
)
(0x1000000)QName = (
(0x2000000) = 'MQSI_OUTQ'
)
(0x1000000)RegOpt = (
(0x2000000) = 'PersAsPub'
)
)
(0x3000000)Format = ''
)
) |
Please Help.....
Any spl settings to be made in subscription Node for JMS
??? _________________ VV |
|
Back to top |
|
 |
jefflowrey |
Posted: Thu Dec 18, 2003 5:30 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
Your code does look good, and this is confusing.
I have a wild guess, though. Try changing
Code: |
SET OutputRoot.MQRFH2.(MQRFH2.Field)NameValueCCSID = 437; |
to
Code: |
SET OutputRoot.MQRFH2.(MQRFH2.Field)NameValueCCSID = InputRoot.Properties.CodedCharSetId; |
Maybe that's what's causing the difference. Your JMS code is producing Unicode characters by default (usually), and the MQExplorer is producing Windows ASCII characters by default.
Also, try setting a replytoqueue on the subscription message and examine what the broker response is. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
v_venugopalan |
Posted: Thu Dec 18, 2003 5:57 am Post subject: |
|
|
Novice
Joined: 25 Nov 2003 Posts: 12 Location: INDIA
|
Hi
I tried the Same.. But in Vain..
I also tried to Set the Reply Q. The message Succesfully goes to the Q Specified.
But Subscription is NOt Happening.
(When i was searching the MQSeries Qns , i found someone saying to refer the Using Java Manual for MQ PubSub in WMQI using JMS ..
Can anyone send me that Manual thru Email.... to vvenugop@chn.cognizant.com)
Grand Masters... Plz Help This is Urgent.................
Tx _________________ VV |
|
Back to top |
|
 |
jefflowrey |
Posted: Thu Dec 18, 2003 6:05 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
The Using Java manual is available online, as is the WMQI Programming Guide, which is available as a PDF.
Are you getting nothing as a reply from the Broker to the failing publication? Is the broker logging any errors to it's system log?
You might also be able to use the runtime tracing (see the WMQI Problem Determination Guide) to find out why the broker is failing your JMS messages. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
inder |
Posted: Fri Dec 19, 2003 7:32 am Post subject: |
|
|
Apprentice
Joined: 24 Mar 2003 Posts: 49 Location: USA
|
Hi,
I am also facing similar problem. The subscription is happening on a topic when the message is sent over MQJexplorer or MQ explorer but not when I send through JMS.
Did you got the problem identified?
regards
Inder |
|
Back to top |
|
 |
inder |
Posted: Tue Dec 23, 2003 9:34 am Post subject: |
|
|
Apprentice
Joined: 24 Mar 2003 Posts: 49 Location: USA
|
Hi,
The problem could be because of the security issue. The message coming in from JMS might have got a different User Identifier and from MQexplorer got a different User Identifier
After fixing this issue our problem is resolved.
regards
Inder |
|
Back to top |
|
 |
|