ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » Workflow Engines - IBM MQ Workflow & Business Process Choreographer » MQ Queue Exception with Double Quotes [RC-1108]

Post new topic  Reply to topic
 MQ Queue Exception with Double Quotes [RC-1108] « View previous topic :: View next topic » 
Author Message
faiiq
PostPosted: Wed Jan 16, 2008 9:24 pm    Post subject: MQ Queue Exception with Double Quotes [RC-1108] Reply with quote

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
View user's profile Send private message
Vitor
PostPosted: Thu Jan 17, 2008 2:32 am    Post subject: Reply with quote

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 &quot 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
View user's profile Send private message
faiiq
PostPosted: Thu Jan 17, 2008 3:04 am    Post subject: Reply with quote

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 [&quot;, &lt;, &amp;, &gt;, &apos;] and it looks like
Quote:

<ProcInstName>A &amp; &quot;B&quot; &lt;PVT&gt; 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
View user's profile Send private message
jefflowrey
PostPosted: Thu Jan 17, 2008 3:08 am    Post subject: Reply with quote

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
View user's profile Send private message
Vitor
PostPosted: Thu Jan 17, 2008 3:14 am    Post subject: Reply with quote

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
View user's profile Send private message
Vitor
PostPosted: Thu Jan 17, 2008 3:15 am    Post subject: Reply with quote

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
View user's profile Send private message
jmac
PostPosted: Thu Jan 17, 2008 6:44 am    Post subject: Reply with quote

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
View user's profile Send private message Send e-mail Visit poster's website AIM Address Yahoo Messenger MSN Messenger
faiiq
PostPosted: Thu Jan 17, 2008 10:33 pm    Post subject: Reply with quote

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
View user's profile Send private message
hos
PostPosted: Fri Jan 18, 2008 2:35 am    Post subject: Reply with quote

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
View user's profile Send private message
faiiq
PostPosted: Fri Jan 18, 2008 3:48 am    Post subject: Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » Workflow Engines - IBM MQ Workflow & Business Process Choreographer » MQ Queue Exception with Double Quotes [RC-1108]
Jump to:  



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
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.