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 » WebSphere Message Broker (ACE) Support » Debug Logical to Physical conversion

Post new topic  Reply to topic
 Debug Logical to Physical conversion « View previous topic :: View next topic » 
Author Message
brokendrum
PostPosted: Mon Mar 31, 2003 6:16 am    Post subject: Debug Logical to Physical conversion Reply with quote

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
View user's profile Send private message
emiranda
PostPosted: Mon Mar 31, 2003 6:41 am    Post subject: Reply with quote

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
View user's profile Send private message
brokendrum
PostPosted: Mon Mar 31, 2003 7:28 am    Post subject: Reply with quote

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
View user's profile Send private message
emiranda
PostPosted: Mon Mar 31, 2003 10:04 am    Post subject: Reply with quote

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
View user's profile Send private message
Lisa
PostPosted: Mon Mar 31, 2003 10:24 am    Post subject: UserTrace.cmd Reply with quote

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
View user's profile Send private message Send e-mail
brokendrum
PostPosted: Mon Mar 31, 2003 11:25 pm    Post subject: Reply with quote

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
View user's profile Send private message
emiranda
PostPosted: Tue Apr 01, 2003 3:47 am    Post subject: Reply with quote

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
View user's profile Send private message
brokendrum
PostPosted: Tue Apr 01, 2003 5:45 am    Post subject: Reply with quote

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
View user's profile Send private message
emiranda
PostPosted: Fri Apr 11, 2003 4:57 am    Post subject: Reply with quote

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
View user's profile Send private message
brokendrum
PostPosted: Fri Apr 11, 2003 5:01 am    Post subject: Reply with quote

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
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 » WebSphere Message Broker (ACE) Support » Debug Logical to Physical conversion
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.