Author |
Message
|
brokendrum |
Posted: Mon Mar 31, 2003 6:16 am Post subject: Debug Logical to Physical conversion |
|
|
Apprentice
Joined: 14 Jan 2003 Posts: 34
|
Does anyone know an easy way to debug the logical to physical format conversion by WMQI. My trace node shows the correct information (in the logical format) but the physical Swift format on the queue is incorrect because of additional chars which have been added by the MRM. Is there an easier way other than digging through the MRM to find out where they've come from?
Thanks. |
|
Back to top |
|
 |
emiranda |
Posted: Mon Mar 31, 2003 6:41 am Post subject: |
|
|
 Disciple
Joined: 21 Nov 2002 Posts: 196 Location: Dublin, Ireland
|
Did you try the Control Center debug?
Are you writting the trace file to the disk?
Did you try the usertrace.cmd utility? _________________ Warm Regards,
EM |
|
Back to top |
|
 |
brokendrum |
Posted: Mon Mar 31, 2003 7:28 am Post subject: |
|
|
Apprentice
Joined: 14 Jan 2003 Posts: 34
|
Eduardo , thanks for your prompt reply. I'm happy with the logical format of the message - all the fields have the correct data in them. The problem comes when this is converted to a physical format by the MRM. The Control Centre Debug only shows the logical format as does the user trace. What I'd like to see is a log of the logical to physical conversion - for example which element/type within a 'choice' type is used.
I'm not familiar with the usertrace.cmd you mention. If this will give me what I want how do I use it? |
|
Back to top |
|
 |
emiranda |
Posted: Mon Mar 31, 2003 10:04 am Post subject: |
|
|
 Disciple
Joined: 21 Nov 2002 Posts: 196 Location: Dublin, Ireland
|
Maybe you should first try to write a trace file, coding a trace node after your MQInput node.
Destination: file
File Path: path/file
Pattern: ${Root}
rerun the messageflow and check out the output file.
Hope it helps! _________________ Warm Regards,
EM |
|
Back to top |
|
 |
Lisa |
Posted: Mon Mar 31, 2003 10:24 am Post subject: UserTrace.cmd |
|
|
Master
Joined: 07 Jun 2002 Posts: 287 Location: NJ
|
Hi BrokenDrum,
Here's the code for the usertrace.cmd (Windows NT Command Script file)
Just cut, paste and follow the instructions.
Good luck,
Lisa
echo off
rem ------------------------------------------------------------------------
rem -- Program: Usertrace Utility
Rem -- Version: 1.00
rem -- Updated: 27.10.2001
rem -- Purpose: start usertrace for a special messageflow (refresh the log)
rem -- then wait (user can test the messageflow in another window)
rem -- then dump the MQSI log to a file and use Notepad to view the results
rem -- at last usertrace ist turned off again
rem -- Required parameters are BrokerName, ExecutionGroup and MsgFlow - CASE SENSITIVE !!!
rem ------------------------------------------------------------------------
echo ------------------------------------------------------------------------
echo -- Usertrace Utility process started
IF "%2" == "" goto BADPARAM
IF "%3" == "" goto BADPARAM
SET TRCLEVEL=%4
IF "%4" == "" SET TRCLEVEL=normal
:PROCESS
echo -- Executing command: mqsichangetrace %1 -u -e %2 -f %3 -l %TRCLEVEL% -r
mqsichangetrace %1 -u -e %2 -f %3 -l %TRCLEVEL% -r
echo -- Now test your Messageflow
pause
echo -- Executing command: mqsichangetrace %1 -u -e %2 -f %3 -l none
mqsichangetrace %1 -u -e %2 -f %3 -l none
echo -- Executing command: mqsireadlog %1 -u -e %2 -o %3.xml -f
mqsireadlog %1 -u -e %2 -o %3.xml -f
rem ------------------------------------------------------------------------
rem -- If the target file exists and REPLACE has not been specified then
rem -- do not overwrite the file. Report the error and end the process.
rem ------------------------------------------------------------------------
IF NOT EXIST %3.xml goto NOFILE
IF NOT EXIST %3.txt goto OK
del %3.txt
:OK
echo -- Executing command: mqsiformatlog -i %3.xml -o %3.txt
mqsiformatlog -i %3.xml -o %3.txt
del %3.xml
rem ------------------------------------------------------------------------
rem -- Make sure the output file exists before starting notepad
rem ------------------------------------------------------------------------
IF NOT EXIST %3.txt goto NOFILE
echo -- Output stored in file %3.txt
echo -- Starting the Notepad editor to view the file
echo -- Suggestion: Turn on word wrap in Notepad to easily view the output
start notepad %3.txt
goto FINISH
:NOFILE
echo -- ERROR !!!
echo -- The process did not produce any output. Look for error messages
echo -- from previous commands. Check parameters and try again.
goto SYNTAX
:BADPARAM
echo -- Purpose: start usertrace for a special messageflow (refresh the log)
echo -- then wait (user can test the messageflow in another window)
echo -- then dump the MQSI log to a file and use Notepad to view the results
echo -- at last usertrace ist turned off again
:SYNTAX
echo ------------------------------------------------------------------------
echo -- Syntax: usertrace [BrokerName] [Execution Group] [Message Flow] [normal | debug]
echo -- Remember, parameters are case sensitive!!!
echo ------------------------------------------------------------------------
:FINISH
echo -- Usertrace Utility process finished
echo ------------------------------------------------------------------------
:END |
|
Back to top |
|
 |
brokendrum |
Posted: Mon Mar 31, 2003 11:25 pm Post subject: |
|
|
Apprentice
Joined: 14 Jan 2003 Posts: 34
|
Eduardo,
I've got a trace of the message - that's how I know the logical format of the message is OK. What I need is the log of the conversion from logical to physical format.
Lisa,
Will usertrace.cmd give me what I want? |
|
Back to top |
|
 |
emiranda |
Posted: Tue Apr 01, 2003 3:47 am Post subject: |
|
|
 Disciple
Joined: 21 Nov 2002 Posts: 196 Location: Dublin, Ireland
|
Hi Brokendrum.
I don't think there's a log to see the physical/logical conversion. I believe the parser's log (trace).
I faced this problem once, doing some EDIFACT mapping. The problem was a displacement between a data field and a filler, so why I suggested you to take a good look at your trace file - where I could see I had done a wrong definition of my logical message.
Hope this help! _________________ Warm Regards,
EM |
|
Back to top |
|
 |
brokendrum |
Posted: Tue Apr 01, 2003 5:45 am Post subject: |
|
|
Apprentice
Joined: 14 Jan 2003 Posts: 34
|
Eduardo,
Maybe you have some suggestions to this one:
Here's the trace directly before the output node:
(0x1000000)Properties = (
(0x3000000)MessageSet = 'DR54B3K0E4001'
(0x3000000)MessageType = 'MT950'
(0x3000000)MessageFormat = 'SWIFT'
(0x3000000)Encoding = 273
(0x3000000)CodedCharSetId = 819
(0x3000000)Transactional = TRUE
(0x3000000)Persistence = TRUE
(0x3000000)CreationTime = GMTTIMESTAMP '2003-04-01 12:08:39.320'
(0x3000000)ExpirationTime = -1
(0x3000000)Priority = 0
(0x3000000)ReplyIdentifier = X'000000000000000000000000000000000000000000000000'
(0x3000000)ReplyProtocol = 'MQ'
(0x3000000)Topic = NULL
)
(0x1000000)MQMD = (
(0x3000000)SourceQueue = 'CC.SATYAM.INPUT.CLOUT'
(0x3000000)Transactional = TRUE
(0x3000000)Encoding = 273
(0x3000000)CodedCharSetId = 819
(0x3000000)Format = 'MQSTR '
(0x3000000)Version = 2
(0x3000000)Report = 0
(0x3000000)MsgType = 8
(0x3000000)Expiry = -1
(0x3000000)Feedback = 0
(0x3000000)Priority = 0
(0x3000000)Persistence = 1
(0x3000000)MsgId = X'c3e2d840c2e3c2f24040404040404040b924485a2a1d7321'
(0x3000000)CorrelId = X'000000000000000000000000000000000000000000000000'
(0x3000000)BackoutCount = 0
(0x3000000)ReplyToQ = 'STANDARD_GIS '
(0x3000000)ReplyToQMgr = 'BTB2 '
(0x3000000)UserIdentifier = 'u447440 '
(0x3000000)AccountingToken = X'0532303035380000000000000000000000000000000000000000000000000006'
(0x3000000)ApplIdentityData = ' '
(0x3000000)PutApplType = 6
(0x3000000)PutApplName = 'pqedit '
(0x3000000)PutDate = DATE '2003-04-01'
(0x3000000)PutTime = GMTTIME '12:08:39.320'
(0x3000000)ApplOriginData = ' '
(0x3000000)GroupId = X'000000000000000000000000000000000000000000000000'
(0x3000000)MsgSeqNumber = 1
(0x3000000)Offset = 0
(0x3000000)MsgFlags = 0
(0x3000000)OriginalLength = -1
)
(0x1000021)MRM = (
(0x1000000)FIN = (
(0x1000000)SWBH = (
(0x3000000)LT_Identifier = 'CHASGB20AXXX'
(0x3000000)Session_Number = '0000'
(0x3000000)Sequence_Number = '000000'
)
(0x1000000)FIN_INPUT_SWAH = (
(0x3000000)Message_Type = '950'
(0x3000000)Receivers_Address = 'MSAMUS33AXXX'
(0x3000000)Message_Priority = 'N'
)
(0x1000000)SWUH = (
(0x3000000)SW108 = 'WHB9504377932'
)
(0x1000000)TEXT_BLOCK = (
(0x1000000)MT950 = (
(0x3000000)SW20 = '0707209400001'
(0x3000000)SW25 = '15955'
(0x1000000)SW28C = (
(0x3000000)ENTRY_NUMBER = '817'
(0x3000000)PAGE_NUMBER = '1'
)
(0x1000000)SW60F = (
(0x3000000)DC_MARK = 'C'
(0x3000000)DATE = DATE '2003-02-27'
(0x300000B)UNIT = 'EUR'
(0x3000000)AMOUNT = 00000000049234.6600
)
(0x1000000)SW61 = (
(0x3000000)DATE = DATE '2003-02-27'
(0x3000000)D_C_MARK = 'C'
(0x3000000)AMOUNT = 00000000003291.3200
(0x3000000)TRANSACTION_TYPE_ID_CODE = 'NMSC'
(0x3000000)REFERENCE_ACCOUNT = 'MSBLA02A02I000K'
(0x3000000)ACCOUNT_SERVICING_INSTITUTION = 'BH9535204/0'
(0x3000000)SUPPLEMENTARY_DETAILS = '/PURCHASE DATE 02/20/03'
)
(0x1000000)SW61 = (
(0x3000000)DATE = DATE '2003-02-27'
(0x3000000)D_C_MARK = 'C'
(0x3000000)AMOUNT = 00000000160840.7100
(0x3000000)TRANSACTION_TYPE_ID_CODE = 'NMSC'
(0x3000000)REFERENCE_ACCOUNT = 'MSBLA02A02B0010'
(0x3000000)ACCOUNT_SERVICING_INSTITUTION = 'BH9535188/0'
(0x3000000)SUPPLEMENTARY_DETAILS = '/PURCHASE DATE 02/20/03'
)
(0x1000000)SW61 = (
(0x3000000)DATE = DATE '2003-02-27'
(0x3000000)D_C_MARK = 'C'
(0x3000000)AMOUNT = 00000000185147.1400
(0x3000000)TRANSACTION_TYPE_ID_CODE = 'NMSC'
(0x3000000)REFERENCE_ACCOUNT = 'NONREF'
(0x3000000)ACCOUNT_SERVICING_INSTITUTION = '57496631'
(0x3000000)SUPPLEMENTARY_DETAILS = '/L20030224000420'
)
(0x1000000)SW61 = (
(0x3000000)DATE = DATE '2003-02-27'
(0x3000000)D_C_MARK = 'D'
(0x3000000)AMOUNT = 00000000049232.7500
(0x3000000)TRANSACTION_TYPE_ID_CODE = 'NFEX'
(0x3000000)REFERENCE_ACCOUNT = 'NONREF'
(0x3000000)ACCOUNT_SERVICING_INSTITUTION = 'CB1174246'
(0x3000000)SUPPLEMENTARY_DETAILS = '/USD 52949.82 + 1.0755'
)
(0x1000000)SW61 = (
(0x3000000)DATE = DATE '2003-02-27'
(0x3000000)D_C_MARK = 'D'
(0x3000000)AMOUNT = 00000000349279.1900
(0x3000000)TRANSACTION_TYPE_ID_CODE = 'NMSC'
(0x3000000)REFERENCE_ACCOUNT = 'MSBLA02A02S000T'
(0x3000000)ACCOUNT_SERVICING_INSTITUTION = 'BH9534917/0'
(0x3000000)SUPPLEMENTARY_DETAILS = '/REDEMPTION DATE 02/20/03'
)
(0x1000000)SW62F = (
(0x3000000)DC_MARK = 'C'
(0x3000000)DATE = DATE '2003-02-27'
(0x300000B)UNIT = 'EUR'
(0x3000000)AMOUNT = 00000000000001.8900
)
)
)
)
)
)
And here's the message that appears on the queue:
FIN:
(Yes, that's it.) The logical message is completely different from the physical format. I can only assume the 'FIN' is obtained from the Element in red, above.
Thanks. |
|
Back to top |
|
 |
emiranda |
Posted: Fri Apr 11, 2003 4:57 am Post subject: |
|
|
 Disciple
Joined: 21 Nov 2002 Posts: 196 Location: Dublin, Ireland
|
Hi brokendrum
I was out for a while... did you solve your problem? _________________ Warm Regards,
EM |
|
Back to top |
|
 |
brokendrum |
Posted: Fri Apr 11, 2003 5:01 am Post subject: |
|
|
Apprentice
Joined: 14 Jan 2003 Posts: 34
|
Eduardo,
I did eventually, although it was sometime ago now. I think it was just a matter of digging in to the MRM and ESQL. I just wondered if there was a log that could have helped me.
Thanks for your help on this though.
BD |
|
Back to top |
|
 |
|