Author |
Message
|
khalednabil |
Posted: Sun Oct 07, 2012 6:06 pm Post subject: |
|
|
Newbie
Joined: 07 Oct 2012 Posts: 6
|
I am having the same problem when using RCD node. http://www.mqseries.net/phpBB2/viewtopic.php?t=26442
My flow design as follows:
- Input MQ
- Subflow communicate with web-service to get information to store in environment for later use
- Aggregation node send the same old input for multiple compute nodes (one of the paths contain direct MQOuput node)
Situation:
When I remove the subflow, data written to MQ output
When the subflow exsit (have compute node to store original input and revert it back in the output of it) and then pass it to aggregation node, nothing is written in the queue.
When I use RCD after the sub-flow, exception is raised with "Message has no properties folder"
Investigation:
Comparing two inputs to the aggregation node, here is what I found
Original
Root:
( ['MQROOT' : 0x1ac6a2d0]
(0x01000000:Name ):Properties = ( ['MQPROPERTYPARSER' : 0x1e86a490]
(0x03000000:NameValue):MessageSet = 'Catering_MS' (CHARACTER)
(0x03000000:NameValue):MessageType = '' (CHARACTER)
(0x03000000:NameValue):MessageFormat = '' (CHARACTER)
(0x03000000:NameValue):Encoding = 546 (INTEGER)
(0x03000000:NameValue):CodedCharSetId = 437 (INTEGER)
(0x03000000:NameValue):Transactional = TRUE (BOOLEAN)
After Subflow
Root:
( ['SOAPRoot' : 0x1ec30008]
(0x01000000:Name):Properties = (
(0x03000000:NameValue):MessageSet = 'Catering_MS' (CHARACTER)
(0x03000000:NameValue):MessageType = '' (CHARACTER)
(0x03000000:NameValue):MessageFormat = '' (CHARACTER)
(0x03000000:NameValue):Encoding = 546 (INTEGER)
(0x03000000:NameValue):CodedCharSetId = 437 (INTEGER)
(0x03000000:NameValue):Transactional = TRUE (BOOLEAN)
Also the XMLNC is not seen as Folder instead it's seen as Name
How can I fix this |
|
Back to top |
|
 |
fjb_saper |
Posted: Mon Oct 08, 2012 1:43 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Do not hijack a thread. Create your own and reference the older thread.
This being said, how do you expect us to help you resolve the problem when you are withholding information germane to it's solving?
Post the full $Root from before and after. This should help at least explain your comment that the XMLNSC is seen as a name and not a Folder...
May just be that the subflow switched the domain on you from XMLNSC to SOAP?  _________________ MQ & Broker admin |
|
Back to top |
|
 |
khalednabil |
Posted: Mon Oct 08, 2012 3:20 am Post subject: |
|
|
Newbie
Joined: 07 Oct 2012 Posts: 6
|
Original
Root:
( ['MQROOT' : 0x1ec3e8a8]
(0x01000000:Name ):Properties = ( ['MQPROPERTYPARSER' : 0x1e7cf410]
(0x03000000:NameValue):MessageSet = 'Catering_MS' (CHARACTER)
(0x03000000:NameValue):MessageType = '' (CHARACTER)
(0x03000000:NameValue):MessageFormat = '' (CHARACTER)
(0x03000000:NameValue):Encoding = 546 (INTEGER)
(0x03000000:NameValue):CodedCharSetId = 437 (INTEGER)
(0x03000000:NameValue):Transactional = TRUE (BOOLEAN)
(0x03000000:NameValue):Persistence = FALSE (BOOLEAN)
(0x03000000:NameValue):CreationTime = GMTTIMESTAMP '2012-10-08 02:14:21.550' (GMTTIMESTAMP)
(0x03000000:NameValue):ExpirationTime = -1 (INTEGER)
(0x03000000:NameValue):Priority = 0 (INTEGER)
(0x03000000:NameValue):ReplyIdentifier = X'000000000000000000000000000000000000000000000000' (BLOB)
(0x03000000:NameValue):ReplyProtocol = 'MQ' (CHARACTER)
(0x03000000:NameValue):Topic = NULL
(0x03000000:NameValue):ContentType = '' (CHARACTER)
(0x03000000:NameValue):IdentitySourceType = '' (CHARACTER)
(0x03000000:NameValue):IdentitySourceToken = '' (CHARACTER)
(0x03000000:NameValue):IdentitySourcePassword = '' (CHARACTER)
(0x03000000:NameValue):IdentitySourceIssuedBy = '' (CHARACTER)
(0x03000000:NameValue):IdentityMappedType = '' (CHARACTER)
(0x03000000:NameValue):IdentityMappedToken = '' (CHARACTER)
(0x03000000:NameValue):IdentityMappedPassword = '' (CHARACTER)
(0x03000000:NameValue):IdentityMappedIssuedBy = '' (CHARACTER)
)
(0x01000000:Name ):MQMD = ( ['MQHMD' : 0x1f1d64f0]
(0x03000000:NameValue):SourceQueue = 'Etihad.Catering.OPS1' (CHARACTER)
(0x03000000:NameValue):Transactional = TRUE (BOOLEAN)
(0x03000000:NameValue):Encoding = 546 (INTEGER)
(0x03000000:NameValue):CodedCharSetId = 437 (INTEGER)
(0x03000000:NameValue):Format = ' ' (CHARACTER)
(0x03000000:NameValue):Version = 2 (INTEGER)
(0x03000000:NameValue):Report = 0 (INTEGER)
(0x03000000:NameValue):MsgType = 8 (INTEGER)
(0x03000000:NameValue):Expiry = -1 (INTEGER)
(0x03000000:NameValue):Feedback = 0 (INTEGER)
(0x03000000:NameValue):Priority = 0 (INTEGER)
(0x03000000:NameValue):Persistence = 0 (INTEGER)
(0x03000000:NameValue):MsgId = X'414d51204d4237514d475220202020200c5771502000cb5c' (BLOB)
(0x03000000:NameValue):CorrelId = X'000000000000000000000000000000000000000000000000' (BLOB)
(0x03000000:NameValue):BackoutCount = 0 (INTEGER)
(0x03000000:NameValue):ReplyToQ = ' ' (CHARACTER)
(0x03000000:NameValue):ReplyToQMgr = 'MB7QMGR ' (CHARACTER)
(0x03000000:NameValue):UserIdentifier = 'KhaledNabil ' (CHARACTER)
(0x03000000:NameValue):AccountingToken = X'160105150000000e50869c5b3bfdeb0bff9179e803000000000000000000000b' (BLOB)
(0x03000000:NameValue):ApplIdentityData = ' ' (CHARACTER)
(0x03000000:NameValue):PutApplType = 11 (INTEGER)
(0x03000000:NameValue):PutApplName = 'oftware\RFHUtils\rfhutil.exe' (CHARACTER)
(0x03000000:NameValue):PutDate = DATE '2012-10-08' (DATE)
(0x03000000:NameValue):PutTime = GMTTIME '02:14:21.550' (GMTTIME)
(0x03000000:NameValue):ApplOriginData = ' ' (CHARACTER)
(0x03000000:NameValue):GroupId = X'000000000000000000000000000000000000000000000000' (BLOB)
(0x03000000:NameValue):MsgSeqNumber = 1 (INTEGER)
(0x03000000:NameValue):Offset = 0 (INTEGER)
(0x03000000:NameValue):MsgFlags = 0 (INTEGER)
(0x03000000:NameValue):OriginalLength = -1 (INTEGER)
)
(0x01000000:Folder):XMLNSC = ( ['xmlnsc' : 0x1ac693a0]
(0x01000400:NamespaceDecl):XmlDeclaration = (
(0x03000100:Attribute):Version = '1.0' (CHARACTER)
(0x03000100:Attribute):Encoding = 'UTF-8' (CHARACTER)
(0x03000100:Attribute):StandAlone = 'yes' (CHARACTER)
)
(0x01000000:Folder )http://airserv.com/Ops-I-001/AMOSDetailRequest/MAY2005:AMOSFlightDetailsRequest = (
(0x03000102:NamespaceDecl):xmlns = 'http://airserv.com/Ops-I-001/AMOSDetailRequest/MAY2005' (CHARACTER)
(0x03000100:Attribute ):AirlineCode = 'EY' (CHARACTER)
(0x03000100:Attribute ):BoardingDepartureStationCode = 'AUH' (CHARACTER)
(0x03000100:Attribute ):BoardingOperationalSuffix = ' ' (CHARACTER)
(0x03000100:Attribute ):FlightNumber = '275' (CHARACTER)
(0x03000100:Attribute ):DepartureStationCode = 'HYD' (CHARACTER)
(0x03000100:Attribute ):BoardingFacilityTypeCode = 'C' (CHARACTER)
(0x03000100:Attribute ):BoardingArrivalStationCode = 'HYD' (CHARACTER)
(0x03000100:Attribute ):BoardingFlightDate = '2012-09-20-05:00' (CHARACTER)
(0x03000100:Attribute ):FlightDate = '2012-09-21' (CHARACTER)
(0x03000100:Attribute ):QueryPeriod = '5' (CHARACTER)
(0x03000100:Attribute ):BoardingAirlineCode = 'EY' (CHARACTER)
(0x03000100:Attribute ):BoardingFacilityStationCode = 'AUH' (CHARACTER)
(0x03000100:Attribute ):BoardingFlightNumber = '274' (CHARACTER)
(0x03000100:Attribute ):ArrivalStationCode = 'AUH' (CHARACTER)
(0x03000100:Attribute ):BoardingFacilitySequenceNumber = '1' (CHARACTER)
)
)
)
After Sub-flow:
Root:
( ['SOAPRoot' : 0x1ec30008]
(0x01000000:Name):Properties = (
(0x03000000:NameValue):MessageSet = 'Catering_MS' (CHARACTER)
(0x03000000:NameValue):MessageType = '' (CHARACTER)
(0x03000000:NameValue):MessageFormat = '' (CHARACTER)
(0x03000000:NameValue):Encoding = 546 (INTEGER)
(0x03000000:NameValue):CodedCharSetId = 437 (INTEGER)
(0x03000000:NameValue):Transactional = TRUE (BOOLEAN)
(0x03000000:NameValue):Persistence = FALSE (BOOLEAN)
(0x03000000:NameValue):CreationTime = GMTTIMESTAMP '2012-10-08 02:14:21.550' (GMTTIMESTAMP)
(0x03000000:NameValue):ExpirationTime = -1 (INTEGER)
(0x03000000:NameValue):Priority = 0 (INTEGER)
(0x03000000:NameValue):ReplyIdentifier = X'000000000000000000000000000000000000000000000000' (BLOB)
(0x03000000:NameValue):ReplyProtocol = 'MQ' (CHARACTER)
(0x03000000:NameValue):Topic = NULL
(0x03000000:NameValue):ContentType = '' (CHARACTER)
(0x03000000:NameValue):IdentitySourceType = '' (CHARACTER)
(0x03000000:NameValue):IdentitySourceToken = '' (CHARACTER)
(0x03000000:NameValue):IdentitySourcePassword = '' (CHARACTER)
(0x03000000:NameValue):IdentitySourceIssuedBy = '' (CHARACTER)
(0x03000000:NameValue):IdentityMappedType = '' (CHARACTER)
(0x03000000:NameValue):IdentityMappedToken = '' (CHARACTER)
(0x03000000:NameValue):IdentityMappedPassword = '' (CHARACTER)
(0x03000000:NameValue):IdentityMappedIssuedBy = '' (CHARACTER)
)
(0x01000000:Name):MQMD = (
(0x03000000:NameValue):SourceQueue = 'Etihad.Catering.OPS1' (CHARACTER)
(0x03000000:NameValue):Transactional = TRUE (BOOLEAN)
(0x03000000:NameValue):Encoding = 546 (INTEGER)
(0x03000000:NameValue):CodedCharSetId = 437 (INTEGER)
(0x03000000:NameValue):Format = ' ' (CHARACTER)
(0x03000000:NameValue):Version = 2 (INTEGER)
(0x03000000:NameValue):Report = 0 (INTEGER)
(0x03000000:NameValue):MsgType = 8 (INTEGER)
(0x03000000:NameValue):Expiry = -1 (INTEGER)
(0x03000000:NameValue):Feedback = 0 (INTEGER)
(0x03000000:NameValue):Priority = 0 (INTEGER)
(0x03000000:NameValue):Persistence = 0 (INTEGER)
(0x03000000:NameValue):MsgId = X'414d51204d4237514d475220202020200c5771502000cb5c' (BLOB)
(0x03000000:NameValue):CorrelId = X'000000000000000000000000000000000000000000000000' (BLOB)
(0x03000000:NameValue):BackoutCount = 0 (INTEGER)
(0x03000000:NameValue):ReplyToQ = ' ' (CHARACTER)
(0x03000000:NameValue):ReplyToQMgr = 'MB7QMGR ' (CHARACTER)
(0x03000000:NameValue):UserIdentifier = 'KhaledNabil ' (CHARACTER)
(0x03000000:NameValue):AccountingToken = X'160105150000000e50869c5b3bfdeb0bff9179e803000000000000000000000b' (BLOB)
(0x03000000:NameValue):ApplIdentityData = ' ' (CHARACTER)
(0x03000000:NameValue):PutApplType = 11 (INTEGER)
(0x03000000:NameValue):PutApplName = 'oftware\RFHUtils\rfhutil.exe' (CHARACTER)
(0x03000000:NameValue):PutDate = DATE '2012-10-08' (DATE)
(0x03000000:NameValue):PutTime = GMTTIME '02:14:21.550' (GMTTIME)
(0x03000000:NameValue):ApplOriginData = ' ' (CHARACTER)
(0x03000000:NameValue):GroupId = X'000000000000000000000000000000000000000000000000' (BLOB)
(0x03000000:NameValue):MsgSeqNumber = 1 (INTEGER)
(0x03000000:NameValue):Offset = 0 (INTEGER)
(0x03000000:NameValue):MsgFlags = 0 (INTEGER)
(0x03000000:NameValue):OriginalLength = -1 (INTEGER)
)
(0x01000000:Name):XMLNSC = (
(0x01000000:Name):XmlDeclaration = (
(0x03000000:NameValue):Version = '1.0' (CHARACTER)
(0x03000000:NameValue):Encoding = 'UTF-8' (CHARACTER)
(0x03000000:NameValue):StandAlone = 'yes' (CHARACTER)
)
(0x01000000:Name)http://airserv.com/Ops-I-001/AMOSDetailRequest/MAY2005:AMOSFlightDetailsRequest = (
(0x03000000:NameValue):xmlns = 'http://airserv.com/Ops-I-001/AMOSDetailRequest/MAY2005' (CHARACTER)
(0x03000000:NameValue):AirlineCode = 'EY' (CHARACTER)
(0x03000000:NameValue):BoardingDepartureStationCode = 'AUH' (CHARACTER)
(0x03000000:NameValue):BoardingOperationalSuffix = ' ' (CHARACTER)
(0x03000000:NameValue):FlightNumber = '275' (CHARACTER)
(0x03000000:NameValue):DepartureStationCode = 'HYD' (CHARACTER)
(0x03000000:NameValue):BoardingFacilityTypeCode = 'C' (CHARACTER)
(0x03000000:NameValue):BoardingArrivalStationCode = 'HYD' (CHARACTER)
(0x03000000:NameValue):BoardingFlightDate = '2012-09-20-05:00' (CHARACTER)
(0x03000000:NameValue):FlightDate = '2012-09-21' (CHARACTER)
(0x03000000:NameValue):QueryPeriod = '5' (CHARACTER)
(0x03000000:NameValue):BoardingAirlineCode = 'EY' (CHARACTER)
(0x03000000:NameValue):BoardingFacilityStationCode = 'AUH' (CHARACTER)
(0x03000000:NameValue):BoardingFlightNumber = '274' (CHARACTER)
(0x03000000:NameValue):ArrivalStationCode = 'AUH' (CHARACTER)
(0x03000000:NameValue):BoardingFacilitySequenceNumber = '1' (CHARACTER)
)
)
) |
|
Back to top |
|
 |
marko.pitkanen |
Posted: Mon Oct 08, 2012 3:47 am Post subject: |
|
|
 Chevalier
Joined: 23 Jul 2008 Posts: 440 Location: Jamsa, Finland
|
Hi,
Did you create the XMLNSC -domain to tree you stored the original payload?
If not, you will lose all xml -specifig information and store only the logical message tree.
--
marko |
|
Back to top |
|
 |
khalednabil |
Posted: Mon Oct 08, 2012 3:56 am Post subject: |
|
|
Newbie
Joined: 07 Oct 2012 Posts: 6
|
In the sub-flow, I have compute node which store all the InputRoot as received in input MQ as follows:
Code: |
SET Environment.Variables.InputRoot = InputRoot |
and the output of the subflow (input to aggregation node) retrieve it as follows:
Code: |
SET OutputRoot = Environment.Variables.InputRoot |
The middle between "in" compute node in the sub-flow and the "out" compute node I call webservice with SOAPRequest node |
|
Back to top |
|
 |
fjb_saper |
Posted: Mon Oct 08, 2012 4:09 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
The tree with SOAPRoot, MQMD, and XMLNSC seems a little "fishy" to me.
I would have expected SOAPRoot, MQMD and SOAP as a parser...  _________________ MQ & Broker admin |
|
Back to top |
|
 |
marko.pitkanen |
Posted: Mon Oct 08, 2012 4:19 am Post subject: |
|
|
 Chevalier
Joined: 23 Jul 2008 Posts: 440 Location: Jamsa, Finland
|
Hi,
So you can see from the user trace that you have perhaps lost your parser specific properties with you solution. You have to find out how to retain them.
--
Marko |
|
Back to top |
|
 |
Vitor |
Posted: Mon Oct 08, 2012 5:21 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
khalednabil wrote: |
In the sub-flow, I have compute node which store all the InputRoot as received in input MQ as follows:
Code: |
SET Environment.Variables.InputRoot = InputRoot |
and the output of the subflow (input to aggregation node) retrieve it as follows:
Code: |
SET OutputRoot = Environment.Variables.InputRoot |
The middle between "in" compute node in the sub-flow and the "out" compute node I call webservice with SOAPRequest node |
As written this code doesn't work. Environment.Variables has no "tree" structure so the InputRoot becomes a list of variables. You need something like this untested code snippet:
Code: |
CREATE LASTCHILD OF Environment.Variables AS gotit FROM InputRoot.Properties |
and this to get it back
Code: |
CREATE FIRSTCHILD OF OutputRoot FROM gotit |
Note the use of FIRSTCHILD to ensure the Properties folder is in the correct place.
I agree with my associates there's something else going on as that "after" trace has some oddness; check your code. Your goal is to have Properties, MQMD & message body in that order by the time you hit the MQOutput node.
Enjoy.  _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
|