100% found this document useful (1 vote)
539 views15 pages

T24 Server Debugging Guide

This document provides guidance on debugging T24 server using the RAD debugger or Visual Debugger. It discusses setting up a debugging session in T24, useful debugging options like examining variable states and log files, and common areas to investigate like validation routines. Problems are often due to APIs attached to version fields or inquiries.

Uploaded by

ziubalder
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
539 views15 pages

T24 Server Debugging Guide

This document provides guidance on debugging T24 server using the RAD debugger or Visual Debugger. It discusses setting up a debugging session in T24, useful debugging options like examining variable states and log files, and common areas to investigate like validation routines. Problems are often due to APIs attached to version fields or inquiries.

Uploaded by

ziubalder
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
  • Debugging T24 Server 'How To' Guide
  • Temenos T24
  • Support
  • Executive Summary
  • Debugging Options
  • Finding the problem
  • Using the Debugger in T24
  • Useful RAID Debugger Commands

TEMENOS T24

Debugging T24 Server 'How To' Guide


User Guide
Amendment History:
Revision Date Amended Name Description
Draft July 2006 Alex Leggett nitial version
!"! January 200# $ony %orter &ro'ser de(ug section
!"2 )e(ruary 200# Dave *earing
Add +&A,- environment
varia(le setting and
additional example for .
varia(les"
No part of t/is document may (e reproduced or transmitted in any form or (y any means0
electronic or mec/anical0 for any purpose0 'it/out t/e express 'ritten permission of $-1-N2, Holdings N3"
4opyrig/t 2005 $-1-N2, Holdings N3" All rig/ts reserved"
De(ugging $26 ,erver 7Ho' $o7 *uide
Table of Contents
$-1-N2, $26 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" !
De(ugging $26 ,erver 7Ho' $o7 *uide """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" !
8ser *uide """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" !
-xecutive ,ummary """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 9
,upport """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 9
De(ugging 2ptions """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 6
8sing t/e De(ugger in $26 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" #
8seful RAD De(ugger 4ommands """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" !!
$-1-N2, $26 8ser *uide
%age 2 of !5
De(ugging $26 ,erver 7Ho' $o7 *uide
Ee!utive Su""ar#
$/is document gives a (rief introduction to t/e met/ods '/ic/ can (e used to trac: do'n logical and
data;related errors in T24" $/is mainly concerns t/e use of t/e <RAD De(ugger=0 a command;line tool
used for de(ugging +&A,- routines at runtime> and 3isual De(ugger0 '/ic/ is (ased on t/e RAD
De(ugger"
$/e use of ,-A$0 J2&"$1-, and ot/er useful files are also discussed /ere"
Su$$ort
$ec/nical ssues 'it/ RAD De(ugger ? eg commands not 'or:ing ? consult +&A,- support
$ec/nical ssues 'it/ 3isual De(ugger and all ot/er issues ? eg not displaying source code ? c/ec:
$$, and create ,ervice Report as necessary
$-1-N2, $26 8ser *uide
%age 9 of !5
De(ugging $26 ,erver 7Ho' $o7 *uide
Debugging O$tions
$/e approac/es ta:en to trac: do'n errors in an application can vary almost as muc/ as t/e types of
pro(lem found" Ho'ever0 some of t/e most useful general approac/es are given /ere"
@/ile it may (e tempting sometimes to start from t/e (eginning of t/e application and step t/roug/ t/e
code line (y line0 t/is can (e a time;consuming and frustrating approac/" n many cases0 it 'ill lead to
t/e de(ugger (ecoming out of step 'it/ t/e source code after some time due to t/e large num(er of
called routines in T24 and t/e necessity of compiling routines in your account in order to (e a(le to
de(ug t/em" T24 8pgrades deliver t/e o(+ect code in pre;compiled li(raries <glo(us(in= and
<glo(usli(=0 and unless t/ese are recompiled t/e RAD de(ugger can sometimes lose trac: of '/ic/
line in t/e source code matc/es t/e o(+ect code (eing executed"
A (etter approac/ is to try to identify t/e li:ely areas t/at could (e causing t/e pro(lem0 and to loo: at
t/e state of all relevant varia(les" $/is could (e done eit/er (y manual intervention using a de(ugger
or (y adding de(ugging code in '/ic/ data is 'ritten to a log file" $/is is (est done using a
straig/tfor'ard +&A,- <@R$-= statement0 rat/er t/an calling )"@R$- as you are not t/en su(+ect to
t/e vagaries of cac/ing and 'ill t/erefore (e guaranteed to see t/e current data appearing on file no'"
2nce analysis of t/e data /as (een carried out0 it 'ill still often (e necessary to loo: at t/e seAuence
of code execution via a de(ugger Beit/er t/e RAD de(ugger or 3isual De(uggerC" $/e 'ay t/is is
used 'it/in T24 depends on '/at you are trying to de(ug"
$-1-N2, $26 8ser *uide
%age 6 of !5
De(ugging $26 ,erver 7Ho' $o7 *uide
%inding t&e $roble"
f t/e pro(lem is /appening during validation of record entry0 t/en t/e (est place to start to loo: is
during t/e 4H-4D")-LD, andEor 4R2,,3AL stages of processing" $/e diagram (elo' s/o's t/e
process flo' for t/e standard T24 $emplate:
-nter Application
Define %arameters
Just %arametersF
Call Matrix Alter
4/ec: D
Call Function Display
4/ec: )unction
Read Record
nitialise
Call Matrix Update
$erminator
1ain %rogram Loop
is 1essage 7R-$7
s 1essage Repeat
s )unction 7-7 or 7L7
Ne' )unctionF
1ain %rogram Loop
4/ec: Reversal
4/ec: Delete
ncrement )ield %osition
4/ec: )ields
Process Display
4/ec: Record
f )unction G 7D7 s 1essage G 73AL7
Has 1essage (een set
nput 1odeF
$erminator
f )unction G 7R7
&efore Aut/ @rite
Call Auth Write
After Aut/ @rite
Aut/ 4ross 3al
s 1essage G 7A8$7
No
Hes
Hes
No
No
Hes
No
No
Hes
Hes
s 1essage G I-RR2RI
Hes
No
Hes
No
Hes
No
Hes
Hes
Hes
)ield Navigation Loop
)ield Navigation Loop
Get Function/Record ID
Field Input Field Display
1esagge Loop
1esagge Loop
Hes
No
No
4ross 3al
&efore 8nAut/ @rite
Call UnAuth Write
After 8nAut/ @rite
$emplateE*2,8&
External Suroutine
2verrides
N2
Figure 1 Flow-Chart showing Execution of the T24 Template
Note t/at t/ere are some older applications 'it/in T24 t/at do not follo' exactly t/e same logic" $/ey
also may not /ave t/e )-LD"D-)N$2N,0 4H-4D")-LD,0 4R2,,3AL or 23-RRD-,
functionality separated into separate su(routines"
f you are not sure '/at is /appening0 and T24 appears to </ang= t/en it may (e useful to use t/e ,py
,ession on T24 Dev,tudio to examine t/e last reAuest and response as a starting point"
Also0 al'ays c/ec: to ma:e sure t/at t/e o(+ect code (eing executed (elongs to t/e source code you
$HND /as (een compiled" n order to c/ec: '/at is (eing run0 use t/e <+s/o'= command" )or
instance0 to see '/at version of )J"4H-4D")-LD, is running0 enter:
jshow c [Link]
$-1-N2, $26 8ser *uide
%age 5 of !5
De(ugging $26 ,erver 7Ho' $o7 *uide
%ro(lems 'it/ 3ersions are often due to A%s attac/ed to t/e 3ersion 'it/in t/e follo'ing fields:
[Link] ? Routine to automate field entry
[Link] ? Routine to validate a field
INPUT"ROUTINE ? Routine run on commit of record0 (efore file 'rites Bpre;aut/orisationC
AUTH"ROUTINE ? Routine run on aut/orisation of record
ID"RTN ? Routine to validate item;id
CHECK"REC"RTN ? Routine to control field attri(utes
AFTER"UNAU"RTN ? Routine run on commit of record0 after file 'rites Bpre;aut/orisationC
BEFORE"AUTH"RTN ? Routine run on aut/orisation of record0 (efore file 'rites
WEB"VAL"RTN ? Java -&"A% record routine to validate on @e( ,erver
%ro(lems 'it/ enAuiries are usually due to A%s attac/ed to t/e enAuiry" $/e fields containing t/ese
are:
[Link] ? t/e routine '/ic/ (uilds t/e enAuiry data
[Link] ? t/e drilldo'n
CONVERSION B'/en field content prefaced 'it/ <K=C ? post;processing of ra' data from file
Note t/at t/ere may also (e ;Descriptors in t/e ,tandard ,election record0 '/ic/ invo:e +&A,-
routines"
$-1-N2, $26 8ser *uide
%age 6 of !5
De(ugging $26 ,erver 7Ho' $o7 *uide
Using t&e Debugger in T24
De(ugging Applications in T24 is fairly straig/tfor'ard0 and can (e done using eit/er t/e 3isual
De(ugger or t/e RAD de(ugger"
f you are de(ugging <4lassic=0 it is simply a matter of setting a D-&8* statement '/erever it is
reAuired and t/en 'aiting until you /it it" Hou can also0 of course press L4trlM4N to invo:e t/e
de(ugger at any time" De(ugging standard T24 using (ro'ser0 /o'ever0 reAuires a little more initial
'or:"
Setting u$ 'isual Debugger
n order to use 3isual De(ugger0 you 'ill need to /ave installed T24 $ool&ox and set it up correctly
Bsee t/e T24 ,etup0 T24 $ool&ox and T24 Dev,tudio <Ho' $o= *uidesC"
f $4,erver /as (een running since (efore t/e D-&8* statement 'as inserted into t/e code and t/e
code compiled0 it s/ould (e <reset= to ensure t/at it pic:s up t/e latest version of t/e o(+ect code" $/e
3isual De(ugger s/ould (e started (efore t/e application is launc/ed0 so t/at it is listening (efore t/e
D-&8* statement is /it:
Figure 2 Visual Debugger waiting for a DEB! con"ition
$-1-N2, $26 8ser *uide
%age # of !5
De(ugging $26 ,erver 7Ho' $o7 *uide
Setting u$ a Debugger Session
f you 'ould prefer to use t/e RAD De(ugger rat/er t/an t/e 3isual De(ugger0 you 'ill need to set up
a $-LN-$ session '/ic/ points to t/e de(ugger port" Hou must also /ave t/e follo'ing environment
varia(le set in your unix profile0
export J&A,-OD-&8*O%%-G!
As 'it/ 3isual De(ugger0 you 'ill need to <reset= t/e $4,erver after compiling t/e code containing t/e
D-&8* statement0 ot/er'ise $4,erver 'ill not see it"
$/e $-LN-$ session s/ould (e configured so t/at t/e ,erver is t/e same as t/e server on '/ic/
$4,erver is running0 and t/e port num(er matc/es t/e de(ugger port" $/e de(ugger port is displayed
'/en $4,erver starts up:

Starting deamons ...
- Admin Console started on ort ! "#$%#
- De&'gger deamon started on ort ! "#$%(
- S) deamon started on ort ! "#$%*
- +elnet deamon started on ort ! "#$%,
n t/is case0 since $4,erver 'as started up on Dev;%series!0 all t/at needs to (e done is to create a
ne' $-LN-$ session0 pointing to Dev;%series! port num(er 50#P2"
f t/e $-LN-$ session is correctly set up and pointing to t/e de(ugger port0 it s/ould loo: somet/ing
li:e t/is:
Figure # Debugger $ession
$-1-N2, $26 8ser *uide
%age P of !5
De(ugging $26 ,erver 7Ho' $o7 *uide
Debugging (obs in t&e Close of )usiness
$/e 4lose of &usiness processing in T24 can eit/er (e run automatically or in de(ug mode
Bsometimes referred to as <interactive mode=C" ,ee t/e 42& <Ho' $o= *uide for furt/er information"
n order to de(ug 4lose of &usiness it must (e run 42& in de(ug mode0 'it/ a limited num(er of
agents set during t/e de(ugging process" Note t/at t/is can (e done (y setting t/e [Link]
field of t/e [Link] COB record to t/e preferred [Link]:
Figure 4 Changing the number of agents while C%B is running
Note t/at once a D-&8* statement is /it0 t/e output of t/e RAD de(ugger Band t/e inputC 'ill /appen
in t/e 'indo' of '/ic/ever t,ABsC /it t/e D-&8* statement" $/e t,1 'ill also declare t/e agent to
(e <dead= after a certain time and 'ill :eep prompting you to start up anot/er agent" 2(viously if you
are still de(ugging0 t/at agent is still active0 and starting up anot/er agent to pic: up its t/read may
confuse t/e issueQ
$-1-N2, $26 8ser *uide
%age R of !5
De(ugging $26 ,erver 7Ho' $o7 *uide
Debugging )rowser *elated +ssues
Due to issues 'it/ t/e 3isual De(ugger0 t/is is not recommended for general use (y t/e (ro'ser
team" 8se instead a Reflections session on t/e de(ug port0 as s/o'n in t/e ,etting up a De(ugger
,ession" As soon as a de(ug statement is /it in t/e &ro'ser0 a de(ug prompt 'ill (e displayed in t/e
Reflections session" &e a'are t/at you can=t (ac:space or use your cursor :eys ? so (e careful of
starting 'it/ t/e letter <c= (y accident" Also '/en de(ugging using t/is met/od t/e first 2 prompts in t/e
telnet session 'ill not 'or:0 see (elo'0 so /it return t'ice on initial entry to t/e de(ugger"
Temenos Connecto BASIC De!"##e V$.%.&'$(
)*e!"##est+t,
DEBU- st+tement seen
So"ce c.+n#e* to
/sto+#e$/#0o!"s.+cco"nts/#0o!"s.+cc.$/*+12*.#e+2n#/*#*e1!/*#*e1!."n/BP/REPO
34&5 DEBU-
6BASE *e!"##e7,W
89W
:: 89W 77 comm+n* 2s not +1+20+!0e
6BASE *e!"##e7,W
W
:: W 77 comm+n* 2s not +1+20+!0e
6BASE *e!"##e7,W
W
34&(
34&; <77777777777777777777777777777777777777777777777777777777777777777777777
34&4 [Link]=
34&> < V+02*+t2on +n* c.+n#es o? t.e Reco*. Set ERROR to $ 2? 2n eo.
34&5 DEBU-
34&@ IF [Link] C DIHLDD THEN E < CI'$33(;>4% s
34%3 -OSUB [Link]
34%$ END E < CI'$33(;>4% e
34%& IF [Link] C DD THEN E< EN'$3333@;4 S
6BASE *e!"##e7,
$o see t/e J1L (eing passed to t/e (ro'ser0 put a D-&8* at t/e top of 2),"R-S8-,$"1ANA*-R
and vie' t/e $H-"1,* varia(le"
$-1-N2, $26 8ser *uide
%age !0 of !5
De(ugging $26 ,erver 7Ho' $o7 *uide
Useful *,+D Debugger Co""ands
4aveat: ,ome of t/ese commands are not supported in 3isual De(ugger" At t/e time of 'riting t/is
document t/ere is no official list of supported RAD commands for t/e latest version of t/e +&A,-
RAD De(ugger0 /o'ever t/is document 'ill (e updated '/en suc/ details (ecome availa(le"
Co""and S#nta
4ommand -xplanation
Qcommand ,pa'n anot/er process and execute t/e command" $/e previous command
t/us used can also (e recalled and executed (y t/e QQ command"
L4trlMDN Display t/e next !! lines of source in t/e current file"
Nn ,et t/e current display line to line nn in t/e current file and t/en display t/e line"
Note t/at t/e program execution counter remains unc/anged0 it is only t/e
display pointer t/at is c/anged" A command suc/ as s Bsee laterC 'ill correctly
execute t/e next line in t/e programmed seAuence0 not t/e ne'ly displayed
line"
& Display all currently active (rea:points"
( T;tU nnT0fileU ,et a (rea:point at line nn in t/e current file or t/at specified (y t/e file modifier"
f t/e !t option is specified t/en t/e (rea:point 'ill cause a display of all t/e
trace varia(les rat/er t/an /alting t/e program"
( T;tU varname $/is form of t/e command 'ill cause t/e de(ugger to (e entered '/enever
t/e contents of t/e specified varia(le are c/anged"
4 4ontinue execution of t/e program"
d T;t(edU TVnnU Delete (rea:point andEor trace ta(le entries0 and 'ill normally prompt for
confirmation" $/e t and s'itc/es refer to trace and (rea:points respectively"
$/e " s'itc/ deletes all of t/e specified entries 'it/out prompting" $/e nn
s'itc/ deletes t/e entry nn in t/e given trace or (rea:point ta(le0 also 'it/out
prompting" $/e d and e s'itc/es respectively disa(le or ena(le t/e given entry
'it/out removing it from t/e ta(le"
f TonWoffU A de(ug (rea:point is set for a filename c/ange" $/is (rea: can (e set to on or
off" f t/e program is continued BC commandC t/e de(ugger 'ill (e entered t/e
next time t/e source file c/anges"
+ T;gU $/e # command displays a complete /istory of (ot/ G$SU% and external
su(routine calls" @/en issued 'it/out options t/e command 'ill only display
information a(out t/e current program or su(routine" $/e !& Bglo(alC option 'ill
s/o' a (rea:do'n of t/e entire application"
p Tpat/listU Defines t/e list of directories and pat/names Bdelimited (y :C t/at t/e de(ugger
'ill t/en searc/ to find source codes" p 'it/out a pat/list displays t/e current
%at/"
s T;tTmUdU TnnU 4ontinue execution of +&4 code in single line steps (efore returning to de(ug"
$/e value nn c/anges t/e num(er of lines executed (efore returning to de(ug"
$/e !t s'itc/ is used to display t/e trace ta(le after every line executed0 rat/er
t/an 'ait for entry to de(ug" $/e d s'itc/ sets a delay (efore executing eac/
line of code" ' is used to set t/e delay in seconds Bdefault is 5 deci;secondsC"
, T;tTmUdU TnnU ,ame as c except t/is 'ill 7step over7 su(routine calls0 t/e code 'it/in t/e
$-1-N2, $26 8ser *uide
%age !! of !5
De(ugging $26 ,erver 7Ho' $o7 *uide
su(routine 'ill not (e displayed"
$ Display t/e current trace ta(le"
t T;fgU expr Add t/e value specified (y expr to t/e trace ta(le" @/en de(ug is entered0 all
t/e values in t/e ta(le are displayed" $/e ( s'itc/ is used to fully evaluate expr0
'/ilst t/e & s'itc/ extends t/e display of expr to all levels"
v T;gmsrvU TexprU -valuate expr and display t/e result" $/e effects of t/e s'itc/es are: & to
extend t/e display of expr to all data areas" ' to allo' varia(le modification
'it/in expr" @/en a varia(le is modified 'it/ t/e ' option (inary c/aracters
may (e entered using t/e octal seAuence )nnn" $/e seAuence )*+* 'ould
t/erefore (e replaced (y C,AR-./ in t/e modified varia(le" $/e seAuence ))
evaluates to t/e single c/aracter ) and a seAuence suc/ as )x evaluates to t/e
single c/aracter x Bi"e" t/e ) 'ill (e lostC"
' nn Display a 'indo' of source code" $/e default is R lines 'it/ 6 (efore and after
t/e current one" $/e value nn is used to c/ange t/is parameter"
Table 1 Debugger Comman"s
Debugger *edire!tion and -i$es
$/e de(ugger provides t/e a(ility to redirect t/e results of its internal command set to a file or t/roug/
a pipe to a command" $/is is a very po'erful feature of t/e de(ugger"
$/e follo'ing commands allo' t/is feature:
' Display 3aria(leBsC
H Display History $race
) Display &rea:points
T Display $race $a(le
Here are some examples of t/is feature:
,yntax Description
v W pg %ipe t/roug/ t/e pg filter
t N traceta(le redirect trace points output to file
v Record N file Display varia(le contents to a file
Table 2 Debugger &e"irection
$-1-N2, $26 8ser *uide
%age !2 of !5
De(ugging $26 ,erver 7Ho' $o7 *uide
Ee!ution . Single Ste$$ing
s/.t!gd/n00/nn0
Argument Description
;t display trace ta(le after eac/ source line executed
;c only count t/e lines of source in t/e same CA00 level
;g only count t/e lines of source in t/e same G$SU% level
;dTnU enter a delay in increments of !00 milliseconds (et'een executing lines of source" $/is
is incremented (y t/e n value entered"
nn execute t/e next nn lines of source (efore re;entering de(ug
Table # $ingle $tepping 'rguments
$/is command is used to execute t/e program in steps and to re;enter de(ug after t/e execution of a
given num(er of lines of code" $raced varia(les are displayed after de(ug is re;entered0 and any
screen display 'it/in t/e executed code is s/o'n as normal"
-ntry Result
s $/e simplest form of t/e command executes t/e next line of t/e code and t/en
re;enters de(ug"
s 1t $/e next line of code is executed and t/e contents of all entries in t/e trace ta(le
are s/o'n"
s .t4 $/e next four lines of code are executed displaying t/e trace ta(le entries (efore
re;entering de(ug"
s 22 $/is command executes t/e next 20 lines of code (efore re;entering de(ug"
s .td3 222 $/e command executes t/e next 200 lines of code" $/e ;d s'itc/ sets a delay in
increments of !00 milliseconds (et'een eac/ line executed" $/e 5 denotes t/at
a 500 millisecond0 or /alf second delay is set (efore executing t/e next line" $/e
default value is !0 or !00 milliseconds" $/e ;t s'itc/ ensures t/at t/e trace
commands are s/o'n after t/e execution of every line" @/ile t/is process is
continuing0 de(ug can (e entered (y (rea:ing into t/e program as normal" $/is
is a very useful command to use '/en a run;time error occurs in a program0 and
t/e area of code responsi(le needs to (e found Auic:ly" @it/ t/e ;d s'itc/ set0 it
is also possi(le to speed up or slo' do'n t/e execution of t/e code if t/e initial
value c/osen is too fast or slo'" $/is is done (y entering a num(er from t/e
:ey(oard in t/e range 0;R0 '/ic/ alters t/e delay to t/e given num(er of !00
milliseconds increments"
s .d4t 322 $/e command 'ill execute t/e next 500 lines of code 'it/ a delay factor of 900
milliseconds (et'een eac/ line" $/e speed of execution can (e increased or
decreased (y pressing t/e num(ers 0;R on t/e :ey(oard during execution" n
addition to t/is0 t/e ;t s'itc/ means t/at t/e contents of t/e varia(les trace ta(le
'ill (e displayed after every line of code executed"
Table 4 Examples of how to use single-stepping arguments
$-1-N2, $26 8ser *uide
%age !9 of !5
De(ugging $26 ,erver 7Ho' $o7 *uide
'ariable Dis$la#
'/.gv"rs0
,yntax Description
3 AN, $/e simplest form of t/e command 'ill display t/e contents of t/e varia(le next to t/e
varia(le name0 in t/is case A1S" $/is 'ill only produce a display if t/e source is at
level !0 or in t/e /ome directory" f t/e varia(le /as not (een assigned0 t/e value
BN8LLC is displayed" f t/e value assigned /appens to (e null0 /o'ever0 t/en a (lan:
BnullC 'ill (e displayed next to t/e varia(le name"
v ;g AN, f t/e varia(le in Auestion resides in a different data area to t/e local level B42112N
or NA1-D 42112NC0 t/en t/e !& s'itc/ s/ould (e used to display t/e varia(le
contents" $/is extends t/e display of t/e varia(le to data levels0 and is particularly
useful '/en executing a su(routine in a su(;directory or li(rary"
v ;m AN, $/e !' s'itc/ displays t/e varia(le and contents0 (ut in addition allo's t/e user to
modify t/e contents" An eAual sign is s/o'n after t/e varia(le contents0 and any
c/aracters or num(ers entered follo'ed (y a carriage return are ta:en to (e t/e ne'
value of t/e varia(le" -ntering a carriage return leaves t/e varia(le contents
unc/anged" $/e c/aracter seAuence )nnn is replaced (y t/e (inary c/aracter defined
(y t/e octal num(er nnn" $/erefore t/e seAuence )234 'ould (e replaced (y a field
mar:"
v ;gv AN, $/is command displays t/e value /eld in varia(le AN, no matter '/at t/e current
level of t/e source" n addition0 t/e !5 s'itc/ s/o's t/e type of varia(le Bstring or
numericC0 its memory location0 and siXe"
v ;r NA1- $/is command displays t/e contents of t/e varia(le NA1- at t/e start of t/e next
line" $/e !r s'itc/ provides a ra' c/aracter vie' of t/e varia(le name and value"
v ;s NA1- $/e !s s'itc/ s/o's a s/ort vie' of t/e varia(le (eing t/e first !2P (ytes"
$/e " and 6 c/aracters can also (e used 'it/in t/e varia(le name as 'ild card
c/aracters" $/e 6 denoting a single occurrence of any c/aracter0 and t/e " denoting
any num(er of occurrences of any c/aracter"
Table ( Displa)ing Variables in Debugger
$-1-N2, $26 8ser *uide
%age !6 of !5
De(ugging $26 ,erver 7Ho' $o7 *uide
$/e ta(le (elo' s/o's some examples:
-ntry Result
v AV displays all varia(les (eginning 'it/ t/e letter A
v AFFF displays all four letter varia(les (eginning 'it/ t/e letter A
v V;N3 displays all varia(les ending 'it/ t/e c/aracters !I17
v V-N%V displays all varia(les 'it/ t/e c/aracters E1P 'it/in t/eir name
v L,B20VC displays every element in t/e second ro' of t/e dimensioned array 0IS
3 3Y.)8N4$2N Displays contents of t/e common varia(le 3.)8N4$2N0 note t/e . must (e
prefixed (y Y ot/er'ise t/e .)8N4$2N is interpreted as an environment
varia(le"
Table * Examples of Displa)ing Variables
All t/e a(ove ta(les are ta:en from t/e +&A,- :no'ledge(ase '/ic/ contains furt/er commands for
t/e de(ugger" /ttp:EE'''"+(ase"comE:no'ledge(aseEindex"/tml
$-1-N2, $26 8ser *uide
%age !5 of !5

Common questions

Powered by AI

Single-stepping commands in T24 debugging are important for executing the program line by line, allowing developers to closely inspect the behavior of the code and pinpoint precise locations of errors. For example, the command 's -td5 200' would execute the next 200 lines of code with a 500-millisecond delay between each, displaying trace-table content after executing every line. This helps in systematically isolating and diagnosing issues in the code, particularly useful when troubleshooting complex runtime errors .

Redirecting debugger outputs to files offers significant improvements in the debugging process by enabling thorough offline analysis and preservation of output for future reference. It allows developers to examine the sequence of events and variable states without the pressure of real-time tracking. This method is especially beneficial when dealing with large amounts of data or when repeated reference to past outputs is needed, helping to identify patterns and insights that may not be immediately obvious through direct interaction with the debugger .

APIs attached to fields in T24 versions can significantly impact performance by either enhancing functionality or creating bottlenecks. They automate input processes, validate data, and manage record authorizations and modifications. For instance, the AUT.NEW.CONTENT automates field entry, while the VALIDATION.RTN ensures fields meet validation requirements. Misconfigured or inefficient APIs can lead to errors and delays, impacting the overall workflow of the T24 system .

Setting up a TELNET session correctly is critical for debugger performance in T24 because it ensures direct communication between the debugger and the server. The session must point to the correct server and the specific debugger port, which facilitates seamless execution of debugging commands and allows developers to effectively monitor and control the processes. If misconfigured, it can lead to loss of control in the debugging process or inability to capture important runtime data .

For handling browser-related issues in T24, a Reflections session instead of the Visual Debugger is recommended due to certain limitations of the latter when used with browsers. The Reflections session provides a more reliable way to address debug prompts, which appear when a debug statement is encountered. The session should be set up on the debug port to capture and handle browser-specific issues effectively .

The Visual Debugger in T24 is client-side, requiring setup with T24 ToolBox and is more graphical, making it suitable for interactive debugging scenarios. In contrast, the RAID debugger is initiated through a TELNET session, relying on server-side configurations which can be more robust for handling complex server-side issues. The choice of debugger affects the approach to error tracking and resolution, with Visual being more user-friendly and RAID offering more direct, real-time server monitoring capabilities, impacting both ease of use and effectiveness in different debugging situations .

Debugging in the Close of Business mode in T24 poses risks such as disrupting critical end-of-day processing workflows or inadvertently affecting multiple concurrent jobs due to the coordination required across different agents. If a DEBUG statement is hit during COB, it can render an agent 'dead', which could cause processing delays or require a manual intervention to start another agent that may complicate ongoing debugging efforts .

The CHECK.FIELDS and CROSSVAL stages are crucial in the validation of record entries in T24 as they represent the parts of the process where field validations and cross-validations occur. These stages help ensure that the data meets predefined rules and constraints before being processed further. The CHECK.FIELDS is typically used for initial field-level validation while CROSSVAL checks the interaction or relationship between different fields to validate the data integrity across the entire record .

Custom routines in T24, such as AUTH.ROUTINE and VALIDATION.RTN, play critical roles in enhancing the system's functionality. AUTH.ROUTINE executes during the authorization of records, helping to enforce security and compliance checks. Meanwhile, VALIDATION.RTN is employed to ensure data integrity through field-specific validation upon entry. Both routines are embedded in workflows to automate processes and provide scalability and consistency in managing complex data requirements .

To ensure that the object code corresponds to the source code intended for debugging in T24, developers should use the 'jshow' command to confirm the version of the code running. Additionally, it is important to reset the TCServer after inserting and compiling debug statements to ensure it uses the most current object code. Regularly verifying alignment between the source and object code can prevent confusion and ensure effective debugging .

TEMENOS T24 
Debugging T24 Server 'How To' Guide
User Guide
Amendment History:
Revision
Date Amended
Name
Description
Draft
J
Debugging T24 Server 'How To' Guide
Table of Contents
TEMENOS T24
Debugging T24 Server 'How To' Guide
Executive Summary
This document gives a brief introduction to the methods which can be us
Debugging T24 Server 'How To' Guide
Debugging Options
The approaches taken to track down errors in an application can vary al
Debugging T24 Server 'How To' Guide
Finding the problem
If the problem is happening during validation of record entry, then t
Debugging T24 Server 'How To' Guide
Problems with Versions are often due to APIs attached to the Version within the following
Debugging T24 Server 'How To' Guide
Using the Debugger in T24
Debugging Applications in  T24  is fairly straightforward, and
Debugging T24 Server 'How To' Guide
Setting up a Debugger Session
If you would prefer to use the RAID Debugger rather than th
Debugging T24 Server 'How To' Guide
Debugging Jobs in the Close of Business
The  Close  of  Business  processing  in  T24  ca
Debugging T24 Server 'How To' Guide
Debugging Browser Related Issues
Due to issues with the Visual Debugger, this is not reco

You might also like