|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
MQ Queue Exception with Double Quotes [RC-1108] |
« View previous topic :: View next topic » |
Author |
Message
|
faiiq |
Posted: Wed Jan 16, 2008 9:24 pm Post subject: MQ Queue Exception with Double Quotes [RC-1108] |
|
|
 Newbie
Joined: 16 Jan 2008 Posts: 9 Location: Pakistan
|
Hi,
I'm having an issue with MQ and not being able to solve it. I tried to search this group for the possible solutions but was unable to find one that may match my case.
I have to pass an xml message that may contain any string [including ASCII special characters] to a queue at Workflow. A listener there will then forward it to another of my application.
The problem is that I'm unable to pass double quotes ["] in xml message to the queue. When i pass some text into the xml message which contains any ASCII symbol but double quotes, it succeeds [e.g. &, <, >, '] but if I post double quotes, I see an exception in my queue at MQ Explorer [RC 1108]. I'm using IBM's Rational Application Developer and MQ Workflow v3.5.
The xml i'm trying to post is
Quote: |
<?xml version="1.0" standalone="yes"?>
<WfMessage>
<WfMessageHeader>
<ResponseRequired>Yes</ResponseRequired>
</WfMessageHeader>
<ProcessTemplateCreateAndStartInstance>
<ProcTemplName>CMPNY_NM_RSRVTN</ProcTemplName>
<ProcInstName>A & "B" <PVT> LTD PVT LIMITED-117953</ProcInstName>
<ProcInstInputData>
<CMPNY_NM_RSRVTN>
<PROCESS_PID>117945</PROCESS_PID>
<CRCS_APP_NUM>-1</CRCS_APP_NUM>
<CMPNY_RSRVD_NM>
<RSRVD_NM>A & "B" <PVT> LTD PVT LIMITED</RSRVD_NM>
</CMPNY_RSRVD_NM>
<CMPNY_DT_STRCTR>
<CMPNY_NM>A & "B" <PVT> LTD PVT LIMITED</CMPNY_NM>
</CMPNY_DT_STRCTR>
<PROCESS_FLDR_PID>91 3 ICM8 icmnlsdb11 ProcessFldr59 26 A1001001A08A15B70546B0799118 A08A15B70546B079911 14 1826</PROCESS_FLDR_PID>
<REGISTRAR_HO_NM>REGISTRAR_HEAD_OFFICE</REGISTRAR_HO_NM>
<APPLICANT_NAME>Safilo</APPLICANT_NAME>
<APPLICANT_ADDRESS>Safilo</APPLICANT_ADDRESS>
<CMPNY_DT_STRCTR>
<START_DATE>15-01-2008 17:09:35</START_DATE>
<MODE_SUBMISSION>Online</MODE_SUBMISSION>
<FEE_PAID>200.00</FEE_PAID>
<CMPNY_FLDR_PID>86 3 ICM8 icmnlsdb7 Company59 26 A1001001A08A15B70546A0694118 A08A15B70546A069411 14 1670</CMPNY_FLDR_PID>
<CMPNY_NM></CMPNY_NM>
<EMAIL_ADDR>email</EMAIL_ADDR>
<INCORPORATION_NUM>null</INCORPORATION_NUM>
<TYPE>Private Limited Company not having share capital</TYPE>
<CRO>CRO Islamabad</CRO>
<PROCESS_ASSIGNER>ASSIGNER_CRO_ISLAMABAD</PROCESS_ASSIGNER>
</CMPNY_DT_STRCTR></CMPNY_NM_RSRVTN>
</ProcInstInputData>
</ProcessTemplateCreateAndStartInstance>
</WfMessage>
|
I'm posting it using MQQueue.put method, passing it MQMessage and MQPutMessageOptions. I'm using "MQMessage.writeString()" method to write xml into message, and for the options, i'm setting it to MQC.MQPMO_SET_IDENTITY_CONTEXT.
And I the exception I'm getting in MQ Explorer is...
Quote: |
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- This document is generated by a MQSeries Workflow Version 3.5.0 server -->
<WfMessage>
<WfMessageHeader>
<ResponseRequired>No</ResponseRequired>
</WfMessageHeader>
<ProcessTemplateCreateAndStartInstanceResponse>
<Exception>
<Rc>1108</Rc>
<Parameters>
<Parameter><![CDATA[A & "B" <PVT> LTD PVT LIMITED-117953]]></Parameter>
<Parameter>ProcInstName</Parameter>
</Parameters>
<MessageText><![CDATA[FMC01108E The value 'A & "B" <PVT> LTD PVT LIMITED-117953' of element 'ProcInstName' is not correct.
]]></MessageText>
<Origin>e:\v350\src\fmcmproc.cxx(1640)</Origin>
</Exception>
<RequestAsHexString>3C3F786D6C2076657273696F6E3D22312E3022207374616E64616C6F6E653D22796573223F3E0A203C57664D6573736167653E0A203C57664D6573736167654865616465723E0A203C526573706F6E736552657175697265643E5965733C2F526573706F6E736552657175697265643E0A203C2F57664D657373616
|
Note that problem only appears if i use a double quote in the xml, and works perfectly for any other case.
The CCSID is 1208 and encoding is 546. What may be the possible solution? Also do tell me if you need some other info.
Regards,
Faisal
P.S. I'm novice to MQSeries so please try to keep things simple  |
|
Back to top |
|
 |
Vitor |
Posted: Thu Jan 17, 2008 2:32 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
I'm mildly suprised that other special characters work - the XML you're posting is not standard. The " should be escaped as " as with any other special character in the XML standard.
If you want it passed unescaped and unmodified use a CDATA section. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
faiiq |
Posted: Thu Jan 17, 2008 3:04 am Post subject: |
|
|
 Newbie
Joined: 16 Jan 2008 Posts: 9 Location: Pakistan
|
No thats how it looks. Actually copied it from the browser In the original XML, I've put escape sequences [", <, &, >, '] and it looks like
Quote: |
<ProcInstName>A & "B" <PVT> LTD PVT LIMITED-117953</ProcInstName>
|
As you can see, the characters which were supposed to cause the problem i.e. < and & work perfectly but somehow double-quotes is giving the problem.
I also tried to put the problematic text in CDATA section but even in that case i receive the same exception. Here is the exception text in case of CDATA block
The xml in this case was...
Quote: |
<ProcInstName><![CDATA[MQ<SERIES> "INC" (PVT.) LIMITED-117961]]></ProcInstName>
|
Quote: |
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- This document is generated by a MQSeries Workflow Version 3.5.0 server -->
<WfMessage>
<WfMessageHeader>
<ResponseRequired>No</ResponseRequired>
</WfMessageHeader>
<ProcessTemplateCreateAndStartInstanceResponse>
<Exception>
<Rc>1108</Rc>
<Parameters>
<Parameter><![CDATA[MQ<SERIES> "INC" (PVT.) LIMITED-117961]]></Parameter>
<Parameter>ProcInstName</Parameter>
</Parameters>
<MessageText><![CDATA[FMC01108E The value 'MQ<SERIES> "INC" (PVT.) LIMITED-117961' of element 'ProcInstName' is not correct.
]]></MessageText>
<Origin>e:\v350\src\fmcmproc.cxx(1640)</Origin>
</Exception>
|
|
|
Back to top |
|
 |
jefflowrey |
Posted: Thu Jan 17, 2008 3:08 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
It seems like the message is passing all the way through to Workflow, and workflow is processing it, and rejecting the double-quotes for reason 1108.
I don't know what reason 1108 is, it's not an MQ error. So it's probably a Workflow error or a process-specific error. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
Vitor |
Posted: Thu Jan 17, 2008 3:14 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
faiiq wrote: |
No thats how it looks. Actually copied it from the browser |
Yes, because the browser's parsing the XML & will turn escaped characters back into human readable ones. In the same way an HTML document looks very different if you view it with a browser than with Notepad!
In any event it looks like Workflow doesn't allow quotes in it's data. The reason code 1108 isn't an MQ one so you need a Workflow person (which I'm not) and this thread moved to the Workflow section by a moderator (which I am!) _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
Vitor |
Posted: Thu Jan 17, 2008 3:15 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
Moved to Workflow _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
jmac |
Posted: Thu Jan 17, 2008 6:44 am Post subject: |
|
|
 Jedi Knight
Joined: 27 Jun 2001 Posts: 3081 Location: EmeriCon, LLC
|
I am not sure exactly what your issue is:
I can send this xml
Code: |
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<WfMessage>
<WfMessageHeader>
<ResponseRequired>Yes</ResponseRequired>
</WfMessageHeader>
<ProcessTemplateCreateAndStartInstance>
<ProcTemplName>MQWF_AllTypesOfData</ProcTemplName>
<ProcInstName>ALLData003</ProcInstName>
<KeepName>false</KeepName>
<ProcInstInputData>
<All_types_of_data>
<String_data>Samp String_data with "Quotes" Test</String_data>
</All_types_of_data>
</ProcInstInputData>
</ProcessTemplateCreateAndStartInstance>
</WfMessage> |
And create a valid instance.
You don't say what queue you are seeing this on. Where is this message you are viewing.
I am currently using MQWF3.6.0.6 and WMQ 6.0, so my environment is slightly different, but I have been doing thins like this for years.
Also check your fmcsys and fmcerr logs.
Give me a little more information. _________________ John McDonald
RETIRED |
|
Back to top |
|
 |
faiiq |
Posted: Thu Jan 17, 2008 10:33 pm Post subject: |
|
|
 Newbie
Joined: 16 Jan 2008 Posts: 9 Location: Pakistan
|
Here is the log for fmcsys at the time of that particular error
Quote: |
1/15/2008 6:32:06 PM FMC31050E An error has occurred which has terminated processing.
1/15/2008 6:32:06 PM FmcFMLException, MQReturnCode=2, MQReasonCode=2162, MQObjectName=FMC.FMCGRP.FMCSYS.SCH, severe error
1/15/2008 6:32:06 PM FMC31050E An error has occurred which has terminated processing.
1/15/2008 6:32:06 PM FmcFMLException, MQReturnCode=2, MQReasonCode=2162, MQObjectName=FMC.FMCGRP.FMCSYS.ADM, severe error
1/15/2008 6:32:06 PM FMC31050E An error has occurred which has terminated processing.
1/15/2008 6:32:06 PM FmcFMLException, MQReturnCode=2, MQReasonCode=2162, MQObjectName=FMC.FMCGRP.FMCSYS.EXE, severe error
1/15/2008 6:32:06 PM FMC31050E An error has occurred which has terminated processing.
1/15/2008 6:32:06 PM FmcFMLException, MQReturnCode=2, MQReasonCode=2162, MQObjectName=FMC.FMCGRP.FMCSYS.EXE, severe error
1/15/2008 6:32:06 PM FMC31050E An error has occurred which has terminated processing.
1/15/2008 6:32:06 PM FmcAssertionException, Condition=*** Assertion failed in e:\v350\src\fmcscbrg.cxx(101): false
1/15/2008 6:32:06 PM FMC31050E An error has occurred which has terminated processing.
1/15/2008 6:32:06 PM FmcAssertionException, Condition=*** Assertion failed in e:\v350\src\fmcscbrg.cxx(101): false
1/15/2008 6:32:06 PM FMC31050E An error has occurred which has terminated processing.
1/15/2008 6:32:06 PM FmcAssertionException, Condition=*** Assertion failed in e:\v350\src\fmcscbrg.cxx(101): false
|
And here is fmcerr.log at the same time [6:32 p.m.]
Quote: |
Report creation = 1/15/2008 6:32:06 PM
Related message = FMC31050E An error has occurred which has terminated processing.
Error location = File=e:\v350\src\fmccdifs.cxx, Line=4393, Function=FmcFmlsDevice::GetFromQueue
Error data = FmcFMLException, MQReturnCode=2, MQReasonCode=2162, MQObjectName=FMC.FMCGRP.FMCSYS.SCH, severe error
WebSphere MQ Workflow 3.5 Error Report
Report creation = 1/15/2008 6:32:06 PM
Related message = FMC31050E An error has occurred which has terminated processing.
Error location = File=e:\v350\src\fmccdifs.cxx, Line=4393, Function=FmcFmlsDevice::GetFromQueue
Error data = FmcFMLException, MQReturnCode=2, MQReasonCode=2162, MQObjectName=FMC.FMCGRP.FMCSYS.ADM, severe error
WebSphere MQ Workflow 3.5 Error Report
Report creation = 1/15/2008 6:32:06 PM
Related message = FMC31050E An error has occurred which has terminated processing.
Error location = File=e:\v350\src\fmccdifs.cxx, Line=4393, Function=FmcFmlsDevice::GetFromQueue
Error data = FmcFMLException, MQReturnCode=2, MQReasonCode=2162, MQObjectName=FMC.FMCGRP.FMCSYS.EXE, severe error
WebSphere MQ Workflow 3.5 Error Report
Report creation = 1/15/2008 6:32:06 PM
Related message = FMC31050E An error has occurred which has terminated processing.
Error location = File=e:\v350\src\fmccdifs.cxx, Line=4393, Function=FmcFmlsDevice::GetFromQueue
Error data = FmcFMLException, MQReturnCode=2, MQReasonCode=2162, MQObjectName=FMC.FMCGRP.FMCSYS.EXE, severe error
WebSphere MQ Workflow 3.5 Error Report
Report creation = 1/15/2008 6:32:06 PM
Related message = FMC31050E An error has occurred which has terminated processing.
Error location = File=e:\v350\src\fmckdbg.cxx, Line=199, Function=fmckAssert
Error data = FmcAssertionException, Condition=*** Assertion failed in e:\v350\src\fmcscbrg.cxx(101): false
WebSphere MQ Workflow 3.5 Error Report
Report creation = 1/15/2008 6:32:06 PM
Related message = FMC31050E An error has occurred which has terminated processing.
Error location = File=e:\v350\src\fmckdbg.cxx, Line=199, Function=fmckAssert
Error data = FmcAssertionException, Condition=*** Assertion failed in e:\v350\src\fmcscbrg.cxx(101): false
WebSphere MQ Workflow 3.5 Error Report
Report creation = 1/15/2008 6:32:06 PM
Related message = FMC31050E An error has occurred which has terminated processing.
Error location = File=e:\v350\src\fmckdbg.cxx, Line=199, Function=fmckAssert
Error data = FmcAssertionException, Condition=*** Assertion failed in e:\v350\src\fmcscbrg.cxx(101): false
|
I browsed this error in MQ Explorer, where I have a MQSeries local message queue named MYUPES with description "WebSphere MQ Default Local Queue". My application puts xml message here and it is forwarded to MQ Workflow from there.
I hope this may give you some clue about my problem. |
|
Back to top |
|
 |
hos |
Posted: Fri Jan 18, 2008 2:35 am Post subject: |
|
|
Chevalier
Joined: 03 Feb 2002 Posts: 470
|
Hi,
yes, you are absolutely right. This is an error code from the MQWF server.
" is not a valid character for process instance names.
From the Programming Guide:
- You can specify a maximum of 63 characters.
- You can use any printable characters depending on your current locale,
except the following: * ? " ; : . $ |
|
Back to top |
|
 |
faiiq |
Posted: Fri Jan 18, 2008 3:48 am Post subject: |
|
|
 Newbie
Joined: 16 Jan 2008 Posts: 9 Location: Pakistan
|
Thanks a lot. I was suspecting something like this. Should've gone through programming guide but the page count made me not to  |
|
Back to top |
|
 |
|
|
 |
|
Page 1 of 1 |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|
|
|