MainframeSupports
tip uge 38/1999:

I MQS findes der en kø kaldet dead-letter queue (køen med de "døde breve"). Hvad den præcist hedder varierer, da det er noget man kan bestemme for hvert af sine MQS systemer. Ind imellem sker der så det, at der havner nogle meddelelser på køen med de "døde breve". Og så er det, at man gerne vil finde ud af, hvorfor meddelelserne er havnet der. Det kan man faktisk rimelig let finde ud af.

For det første skal man finde ud af, hvad køen med de "døde breve" hedder. Her må man spørge systemprogrammøren som paasende kan sørge for, at man også kan læse køen. Dernæst skal man have et program, der kan læse de "døde breve". Det kan man enten selv lave, eller også kan man benytte programmet CSQUTIL. CSQUTIL dumper indholdet af en navngiven kø og kan dermed også dumpe de "døde breve". Følgende er starten af en record i et dump produceret med CSQUTIL vist med HEX ON:
 
     DLH         RECEIVE.T4253.QO1
     CDC400000002DCCCCEC4EFFFF4DFF44444444444
     4380000100859535955B34253B80100000000000

I dumpet er det de records, der begynder med DLH, der er interessante. Efter DLH kommer der en blank, derefter kommer der to 4-bytes binære felter og derefter følger et kø-navn. Det 4-bytes binære felt lige før kø-navnet er den MQS-returkode, der er skyld i, at meddelelsen endte som "dødt brev". I eksemplet er MQS-returkoden 00000825 hexadecimalt, hvad der omsat til decimalt giver 2085. Denne fejlkode kan man let slå op i MQS messages and codes manualen, for eksempel i Book Manager (hvis man ellers kan finde manualen i Book Manager). 2085 betyder, at kø-navnet ikke findes. Der er med andre ord ikke nogen modtager til meddelelsen, så er det jo naturligt nok, at den havner blandt de "døde breve". Det er dog ikke altid, at meddelelser havner som "døde breve", fordi adressen er forkert, men det finder du jo nok ud af.

Sidste uges tip        Tip oversigten