Author |
Message
|
sri_csee1983 |
Posted: Tue May 13, 2008 4:17 am Post subject: Flow that is working on Windows, throws error in Z/OS |
|
|
 Centurion
Joined: 25 Mar 2008 Posts: 125 Location: Chennai,India
|
Dear Friends,
I am in a scenario where I should migrate all the flow that are working in Windows to Z/OS. I got struck with the first flow itself.
I am getting message definition miss match error. Following is the error that I am gett in Z/OS for an input which passes the flow successfuly.
-------------2008-05-13 19:15:28.579650 RHB_EAI_INQ_RES -------------
EL: (
(0x01000000):RecoverableException = (
(0x03000000):File = '/build/S500P/src/DataFlowEngine/ImbMqOutputNode.cpp'
(0x03000000):Line = 813
(0x03000000):Function = 'ImbMqOutputNode::evaluate'
(0x03000000):Type = 'ComIbmMQOutputNode'
(0x03000000):Name = 'FeeInqRspMsgFlw#FCMComposite_1_6'
(0x03000000):Label = 'FeeInqRspMsgFlw.RHB.FEE.INQ.RSP'
(0x03000000):Text = 'Caught exception and rethrowing'
(0x03000000):Catalog = 'BIPv500'
(0x03000000):Severity = 3
(0x03000000):Number = 2230
(0x01000000):ParserException = (
(0x03000000):File = '/build/S500P/src/MTI/MTIforBroker/MtiImbParser2/MtiImbParser.cpp'
(0x03000000):Line = 1290
(0x03000000):Function = 'MtiImbParser::refreshBitStreamFromElements - 9 par'
(0x03000000):Type = 'ComIbmMQInputNode'
(0x03000000):Name = 'FeeInqRspMsgFlw#FCMComposite_1_1'
(0x03000000):Label = 'FeeInqRspMsgFlw.MQInput'
(0x03000000):Text = 'ImbRecoverableException caught from worker when attempting to write out the bitstream.'
(0x03000000):Catalog = 'BIPv500'
(0x03000000):Severity = 3
(0x03000000):Number = 5286
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = 'FeeInqRspMsgSetNew'
)
(0x01000000):Insert = (
(0x03000000):Type = 2
(0x03000000):Text = '1'
)
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = 'CWF1'
)
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = 'msg_RSP_FEE_INQ'
)
(0x01000000):ParserException = (
(0x03000000):File = '/build/S500P/src/cpi/pwf/cwf/cwfworker.cpp'
(0x03000000):Line = 296
(0x03000000):Function = 'CWFWorker::write'
(0x03000000):Type = ''
(0x03000000):Name = ''
(0x03000000):Label = ''
(0x03000000):Text = 'CWF General Error'
(0x03000000):Catalog = 'BIPv500'
(0x03000000):Severity = 3
(0x03000000):Number = 5167
(0x01000000):Insert = (
(0x03000000):Type = 2
(0x03000000):Text = '0'
)
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = 'CWFWorker::write'
)
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = 'msg_RSP_FEE_INQ'
)
(0x01000000):ParserException = (
(0x03000000):File = '/build/S500P/src/cpi/pwf/cwf/cwfmessage.cpp'
(0x03000000):Line = 420
(0x03000000):Function = 'CMessage::write'
(0x03000000):Type = ''
(0x03000000):Name = ''
(0x03000000):Label = ''
(0x03000000):Text = 'CWF Writing error'
(0x03000000):Catalog = 'BIPv500'
(0x03000000):Severity = 3
(0x03000000):Number = 5350
(0x01000000):Insert = (
(0x03000000):Type = 2
(0x03000000):Text = '0'
)
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = 'CWFWorker::parseNext'
)
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = 'msg_RSP_FEE_INQ'
)
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = '/msg_RSP_FEE_INQ/HD_RSP_FEE_INQ/fill_0'
)
(0x01000000):ParserException = (
(0x03000000):File = '/build/S500P/src/cpi/pwf/cwf/cwfcontext.cpp'
(0x03000000):Line = 372
(0x03000000):Function = 'CContext::CheckDefaultValue'
(0x03000000):Type = ''
(0x03000000):Name = ''
(0x03000000):Label = ''
(0x03000000):Text = 'CWF Logical Tree - Message Definition Mismatch'
(0x03000000):Catalog = 'BIPv500'
(0x03000000):Severity = 3
(0x03000000):Number = 5344
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = 'msg_RSP_FEE_INQ'
)
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = '94^HD_CICS_TRAN_ID'
)
)
)
)
)
)
)
LE:
ENV:
ROOT: (
(0x01000000):Properties = (
(0x03000000):MessageSet = 'DBV9OVC002001'
(0x03000000):MessageType = 'FeeInqRes'
(0x03000000):MessageFormat = 'XML1'
(0x03000000):Encoding = 546
(0x03000000):CodedCharSetId = 1200
(0x03000000):Transactional = TRUE
(0x03000000):Persistence = TRUE
(0x03000000):CreationTime = GMTTIMESTAMP '2008-05-13 10:35:48.290'
(0x03000000):ExpirationTime = -1
(0x03000000):Priority = 0
(0x03000000):ReplyIdentifier = X'000000000000000000000000000000000000000000000000'
(0x03000000):ReplyProtocol = 'MQ'
(0x03000000):Topic = NULL
)
(0x01000000):MQMD = (
(0x03000000):SourceQueue = 'SENTQUE1'
(0x03000000):Transactional = TRUE
(0x03000000):Encoding = 546
(0x03000000):CodedCharSetId = 1200
(0x03000000):Format = ' '
(0x03000000):Version = 2
(0x03000000):Report = 0
(0x03000000):MsgType = 8
(0x03000000):Expiry = -1
(0x03000000):Feedback = 0
(0x03000000):Priority = 0
(0x03000000):Persistence = 1
(0x03000000):MsgId = X'c3e2d840d4d8c4f14040404040404040c2630ebad1b76f41'
(0x03000000):CorrelId = X'000000000000000000000000000000000000000000000000'
(0x03000000):BackoutCount = 0
(0x03000000):ReplyToQ = ' '
(0x03000000):ReplyToQMgr = 'QM1 '
(0x03000000):UserIdentifier = 'ADMINISTRATO'
(0x03000000):AccountingToken = X'16010515000000358a021afd43461e43170a32f401000000000000000000000b'
(0x03000000):ApplIdentityData = ' '
(0x03000000):PutApplType = 11
(0x03000000):PutApplName = 'bug\cmdFeeInquiry.vshost.exe'
(0x03000000):PutDate = DATE '2008-05-13'
(0x03000000):PutTime = GMTTIME '10:35:48.290'
(0x03000000):ApplOriginData = ' '
(0x03000000):GroupId = X'000000000000000000000000000000000000000000000000'
(0x03000000):MsgSeqNumber = 1
(0x03000000):Offset = 0
(0x03000000):MsgFlags = 0
(0x03000000):OriginalLength = -1
)
(0x0100001D):MRM = (
(0x0300000D):@xmlns = 'http://example.com/FeeInqRes/'
(0x0300000D):@xmlns:xsi = 'http://www.w3.org/2001/XMLSchema-instance '
(0x0300000D):@xsi:schemaLocation = 'http://www.w3.org/2001/XMLSchema'
(0x0300000D):@targetNamespace = 'ResFeeInq ResFeeInq.xsd'
(0x03000015):CICSTransactionId = 'TTOX'
(0x03000015):MessigeDelimiter = 'HCL'
(0x03000015):ExternalTrancode = '1686'
(0x03000015):TellerID = '700000'
(0x03000015):OverrideTellerId = '0'
(0x03000015):TransactionSequence = '2'
(0x03000015):TransactionStatusByte = '000'
(0x03000015):TransactionTime = '181059'
(0x03000015):Filler = '0000'
(0x03000015):ForeignSystemReferenceNo = '700000'
(0x03000015):ForeignSystemIdentifier = 'RHBBAMYT'
(0x03000015):ForeignSystemOperatorID = 'LB47'
(0x03000015):ForeignSystemCounterID = 'LB47'
(0x03000015):Principal = '3'
(0x03000015):Charges = '0000000405'
(0x03000015):PlusCharges = '0000000000'
(0x03000015):Gross = '0000000408'
(0x03000015):CurrentFX = '392522499'
(0x03000015):ExpectedActualPayout = '118'
(0x03000015):MessageTolls = '0000000000'
(0x03000015):BaseMessageCharge = '200'
(0x03000015):BaseMessageWordLimit = '10'
(0x03000015):IncrementalMessageCharge = '20'
(0x03000015):IncrementalMessageLimit = '10'
(0x03000015):SenderPromoCode = 'Null'
(0x03000015):PromotionSequenceNo = '0'
(0x03000015):PromotionName = 'null'
(0x03000015):PromotionDiscountAmount = '0'
(0x03000015):PromotionDescription = 'null'
(0x03000015):PromotionError = 'null'
(0x03000015):PhoneDeliveryFlag = 'Y'
(0x03000015):MoneyTransferLimit = '0'
(0x03000015):QuickPayLimit = '0'
)
)
****************************************************************************
Please let me know solution for the same.  _________________ With Cheers,
Sri |
|
Back to top |
|
 |
Gaya3 |
Posted: Tue May 13, 2008 4:41 am Post subject: Re: Flow that is working on Windows, throws error in Z/OS |
|
|
 Jedi
Joined: 12 Sep 2006 Posts: 2493 Location: Boston, US
|
sri_csee1983 wrote: |
(0x03000000):Text = 'CWF Logical Tree - Message Definition Mismatch'
|
Its clearly stating here...
did you migrate message set
Regards
Gayathri _________________ Regards
Gayathri
-----------------------------------------------
Do Something Before you Die |
|
Back to top |
|
 |
Vitor |
Posted: Tue May 13, 2008 4:45 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
Does the message definition / WMQ set up properly cater for the encoding differences between Windoze & z/OS? _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
sri_csee1983 |
Posted: Tue May 13, 2008 4:54 am Post subject: |
|
|
 Centurion
Joined: 25 Mar 2008 Posts: 125 Location: Chennai,India
|
I have just added the broker in Z/OS to the config manager and created a execution group and deployed the same bar file into the execution group.
Created the necessary queues in Z/OS Queue Manager.
SET OutputRoot.MQMD.Encoding = MQENC_NATIVE;
is the encoding I have set.
Am I missing anything. Shud I need to do anything differently for Z/OS.
Please let me know _________________ With Cheers,
Sri |
|
Back to top |
|
 |
Vitor |
Posted: Tue May 13, 2008 5:05 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
sri_csee1983 wrote: |
SET OutputRoot.MQMD.Encoding = MQENC_NATIVE;
|
This will use the z/OS encoding. Your message set might be assuming Windows, hence the mismatch. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
Bill.Matthews |
Posted: Tue May 13, 2008 10:39 am Post subject: |
|
|
 Master
Joined: 23 Sep 2003 Posts: 232 Location: IBM (Retired)
|
In the ExceptionList - the last line has
Quote: |
0x03000000):Text = '94^HD_CICS_TRAN_ID' |
However, I do not see this in the MRM message.
So:
1. Where is this defined in the MRM msg?
2. Is it defined with a default value?
If it is defined in the message set and if it does have a default value that the flow is expecting to be added when the message is sent via the MQOutput node .. then I would suggest that you make a test where the value is added by the Compute node.
If this works, one might surmise that the level of runtime code on zOS is not respecting the default value. _________________ Bill Matthews |
|
Back to top |
|
 |
sri_csee1983 |
Posted: Tue May 13, 2008 7:58 pm Post subject: |
|
|
 Centurion
Joined: 25 Mar 2008 Posts: 125 Location: Chennai,India
|
Dear Vitor,
I found one mistake which I made is, CodedCharSetId was set to 1208. But I found that and changed to 500 which suits the Z/OS. But still getting the same error. Please let me know where can I see the encoding values in message set / message definition properties. I went in to all most all pages of Message set and message definition properties upto I know. I couldnt find it out. Please let me know the same.
Dear Bill.Matthews,
HD_CICS_TRAN_ID is defined in a message definition file in the MRM. I have just created this message definition file from the cobol copy book and didnt create any default values (mean I didnt tick the check box for default values in the last page of creation of message defn file from copy book).
One thing I changed is the compiler information, Source platform from Win32 to Z/OS. Still facing the same problem.
Any other suggestions? I am hardly struck here.  _________________ With Cheers,
Sri |
|
Back to top |
|
 |
sri_csee1983 |
Posted: Tue May 13, 2008 8:02 pm Post subject: |
|
|
 Centurion
Joined: 25 Mar 2008 Posts: 125 Location: Chennai,India
|
Dear Vitor,
I found one mistake which I made is, CodedCharSetId was set to 1208. But I found that and changed to 500 which suits the Z/OS. But still getting the same error. Please let me know where can I see the encoding values in message set / message definition properties. I went in to all most all pages of Message set and message definition properties upto I know. I couldnt find it out. Please let me know the same.
Dear Bill.Matthews,
HD_CICS_TRAN_ID is defined in a message definition file in the MRM. I have just created this message definition file from the cobol copy book and didnt create any default values (mean I didnt tick the check box for default values in the last page of creation of message defn file from copy book).
One thing I changed is the compiler information, Source platform from Win32 to Z/OS. Still facing the same problem.
Any other suggestions? I am hardly struck here.  _________________ With Cheers,
Sri |
|
Back to top |
|
 |
Gaya3 |
Posted: Tue May 13, 2008 8:25 pm Post subject: |
|
|
 Jedi
Joined: 12 Sep 2006 Posts: 2493 Location: Boston, US
|
You have to update CodedCharSetId and Encoding Value
Regards
Gayathri _________________ Regards
Gayathri
-----------------------------------------------
Do Something Before you Die |
|
Back to top |
|
 |
sri_csee1983 |
Posted: Tue May 13, 2008 10:59 pm Post subject: |
|
|
 Centurion
Joined: 25 Mar 2008 Posts: 125 Location: Chennai,India
|
Dear friends,
I tried to set default values for all the fields, and then run the broker. At that time, Though I have the values for all the fields, it took only the default values. I read that, default value will be taken if u dont pass value to a field. But I am passing the values for all the fields, And u can see that in the log too. But still it is taking the default values alone.
The flow is like that.
From windows the XML message comes to a local queue in Z/OS (Using a remote queue in windows) which the broker has as in MQInput Node. And the broker will convert that to CWF.
What should I change here now?
Before broker was running on windows, there I didnt face any such problem. I am hardly struck here.
I suspect the problem should pertaining to message format that come from windows, if my suspection is correct please let me know what message format should I send? _________________ With Cheers,
Sri |
|
Back to top |
|
 |
Bill.Matthews |
Posted: Wed May 14, 2008 6:05 am Post subject: |
|
|
 Master
Joined: 23 Sep 2003 Posts: 232 Location: IBM (Retired)
|
In your original posting, you provided the ExceptionList and the original XML message as an MRM definition. What we need to see is a trace of the output message - ${Root} - just before the MQOutput node.
It has been suggested that the msg flow set the CCSID and Encoding for zOS and that is a very good suggestion. However, that is not the cause of the failure, as stated in your first entry. That error is a missing field.
Every field in a COBOL message (i.e. any fixed format msg) must have a value. The MRM parser for fixed format will stop and throw an error on the first missing or malformed field.
The reason for setting the CCSID and Encoding is that this will allow the parser to construct a message that is acceptable to a COBOL program. It is especially important when the COBOL structure contains non-character fields such as packed-decimal. _________________ Bill Matthews |
|
Back to top |
|
 |
sri_csee1983 |
Posted: Wed May 14, 2008 6:15 pm Post subject: |
|
|
 Centurion
Joined: 25 Mar 2008 Posts: 125 Location: Chennai,India
|
Dear Bill.Matthews,
Many thanx for ur replies. U r very correct that all the fields should have values for a cobol message.
SET OutputRoot.MQMD.Format = MQFMT_CICS;
SET OutputRoot.MQMD.Encoding = 785;
SET OutputRoot.MQMD.CodedCharSetId = 500;
SET OutputRoot.MRM.HD_RSP_FEE_INQ.HD_CICS_TRAN_ID=InputRoot.MRM.CICSTransactionId;
SET OutputRoot.MRM.HD_RSP_FEE_INQ.HD_MEG_DELIM=InputRoot.MRM.MessigeDelimiter;
SET OutputRoot.MRM.HD_RSP_FEE_INQ.HD_EXTRNL_TRAN_CODE=InputRoot.MRM.ExternalTrancode;
SET OutputRoot.MRM.HD_RSP_FEE_INQ.HD_TELLER_ID=InputRoot.MRM.TellerID;
SET OutputRoot.MRM.HD_RSP_FEE_INQ.HD_OVER_TELLER_ID=InputRoot.MRM.OverrideTellerId;
SET OutputRoot.MRM.HD_RSP_FEE_INQ.HD_TRANS_SEQ_NUM=InputRoot.MRM.TransactionSequence;
SET OutputRoot.MRM.HD_RSP_FEE_INQ.HD_TRANS_STAT_BYTE=InputRoot.MRM.TransactionStatusByte;
SET OutputRoot.MRM.HD_RSP_FEE_INQ.HD_TRANS_TIME=InputRoot.MRM.TransactionTime;
SET OutputRoot.MRM.HD_RSP_FEE_INQ.fill_0=InputRoot.MRM.Filler;
and some more set statements in which I am setting the values to the cobol message and u can see the value CICSTransactionId = 'TTOX' in the trace and I am setting this value to the cobol msg field HD_CICS_TRAN_ID in the first set statement. This flow works
The thing it is able to recognize the value and it is not setting the same to the cobol message. As u told I tried with setting the default values for string as X and decimal places as 0 in the message set. At that time the flow was processed without any error with those default values for all the fields in the cobol msg though it has the corresponding value from the input message.
Now my questions are.
1) In general using MQGET in Z/OS we will passing some parameters like FORMAT,INT,etc. Is that applicable for MB on Z/OS, I mean do I need to specify any such parameters at the MQInput node? If so how.
2) As Vitor told, how to check whether my Message set corresponds to Z/OS? Is there anything I need to change in the Message definition file. If so what I should change or anything I need to change in my Message Set?
3) Or anything I need to set at the API that is running on windows which puts the XML Message on the remote queue that has the local definition in Z/OS? If so what should I?
I have also changed a property in the sender channel in windows called conversion to yes. Still the result is same. Please help.....  _________________ With Cheers,
Sri |
|
Back to top |
|
 |
sri_csee1983 |
Posted: Wed May 14, 2008 10:29 pm Post subject: |
|
|
 Centurion
Joined: 25 Mar 2008 Posts: 125 Location: Chennai,India
|
Will the property convert in the MQInput Node help me to solve this problem?
I am trying to set the Encoding to 785
and CCSID to 500.
Can any one let me know how to identify the CCSID for a particular environment? _________________ With Cheers,
Sri |
|
Back to top |
|
 |
Vitor |
Posted: Wed May 14, 2008 11:39 pm Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
The encoding of numbers (int, float, etc) is not the same on z/OS as it is on Windows or many distributed platforms. This is a different problem to the character set, which is also different. Mainframes use EBCDIC (CCSID 500 IIRC) not ASCII (CCSID everything else). The convert option on the MQInput node only works with MQMD.Format set to string (as I've recently been reminded) so it won't change packed numbers.
Well it will - it'll change them to rubbish!
If it's at all possible (and in many cases it's not) you should try and move data between z/OS and other platforms in character format (unpacking numbers as required) to allow the use of WMQ conversion. XML is a good choice for this. Failing that, you're stuck fiddling with big endians & little endians until it works or you go blind.
Hope that at least clarifies your data problem. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
zpat |
Posted: Thu May 15, 2008 12:41 am Post subject: |
|
|
 Jedi Council
Joined: 19 May 2001 Posts: 5866 Location: UK
|
I've never used the broker under z/OS but I thought it ran as a Unix System Services application, so it might also use UTF-8 (1208) rather than EBCDIC.
Moving the broker to z/OS should not require a change to the messages CCSID unless that is a specifically desired change. |
|
Back to top |
|
 |
|