FOCUS Debugging Techniques

Download Report

Transcript FOCUS Debugging Techniques

Working with Traces…
Walter F. Blood
Technical Director, FOCUS Division
June, 2009
Working with Traces
Agenda
When and Why?
Levels of Tracing
FOCUS Code Level
Engine/Database Level
Typical Scenarios
Additional Uses
Working with Traces
When and Why
When will you need to work with traces?
You don’t get the results you expect
Your old report stops working in a new release
You get a FOCUS error message – FOCnnn
Your report never comes back.
Your systems person calls you to complain about your
activity.
FOCUS abends or you get a -12 from the server.
Working with Traces
When and Why
What can you expect?
To get the report working now
To find a workaround for the problem if necessary
To have the problem fixed by IBI if required
Working with Traces
When to Trace
The Key Questions
1.
2.
3.
Is the machine plugged in?
What is the first sign of trouble?
What is actually happening?
Working with Traces
When to Trace
1. Is the machine plugged in?
Check the obvious—
 Spelling and punctuation
 File existence
 FILEDEFs or ALLOCations
 Interface availability
 Security issues
 Sink Machine/FDS availability
Tracing needed? ….
Working with Traces
When to Trace
2. What is the first sign of trouble?
FOCUS error message
Check description to determine nature of problem
TABLE FILE CAR
PRINT COUNTRY CAR MODEL AND
COMPUTE SALES='$ ' | EDIT(SALES,'999$');
END
> ERROR AT OR NEAR LINE
3 IN PROCEDURE DBG1 FOCEXEC
(FOC282) RESULT OF EXPRESSION IS NOT COMPATIBLE WITH THE
FORMAT OF FIELD: SALES
(FOC009) INCOMPLETE REQUEST STATEMENT
BYPASSING TO END OF COMMAND
>
Tracing probably not needed
Working with Traces
When to Trace
2. What is the first sign of trouble?
FOCUS error message
Multiple FOCUS error messages
SET ECHO ON;
DEFINE FILE CAR
CONTINENT/A4=IF COUNTRY = FRANCE OR ENGLAND OR ITALY OR 'W GERMANY' THEN
EUROPE ELSE ASIA;
PROFIT/D12.2CML%=RETAIL_COST - DEALER_COST / DEALER_COST*100;
END
TABLE FILE CAR
SUM RETAIL_COST DEALER_COST PROFIT
BY CONTINENT
BY COUNTRY
ON TABLE HOLD AS HOLDCAR FORMAT FOCUS INDEX COUNTRY
END
-RUN
TABLE FILE ABCHOLD
PRINT SALES PROFIT BY CONTINENT
END
Working with Traces
When to Trace
 2. What is the first sign of trouble?
FOCUS error message
Multiple FOCUS error messages
FOCUS errors compound
Solve the earliest exposed problem first!
> (FOC209) THE DATA VALUE EXCEEDS ITS LENGTH SPECIFICATION: ECHO ON;
ERROR AT OR NEAR LINE
3 IN PROCEDURE DBG2 FOCEXEC
(FOC258) FIELDNAME OR COMPUTATIONAL ELEMENT NOT RECOGNIZED: FRANCE
ERROR AT OR NEAR LINE
5 IN PROCEDURE DBG2 FOCEXEC
(FOC253) INVALID FORMAT SPECIFICATION ON LEFT HAND SIDE: D12.2CML%
ERROR AT OR NEAR LINE
8 IN PROCEDURE DBG2 FOCEXEC
(FOC003) THE FIELDNAME IS NOT RECOGNIZED: PROFIT
BYPASSING TO END OF COMMAND
(FOC009) INCOMPLETE REQUEST STATEMENT
ERROR AT OR NEAR LINE 14 IN PROCEDURE DBG2 FOCEXEC
(FOC205) THE DESCRIPTION CANNOT BE FOUND FOR FILE NAMED: ABCHOLD
(FOC205) THE DESCRIPTION CANNOT BE FOUND FOR FILE NAMED: ABCHOLD
BYPASSING TO END OF COMMAND
Tracing may be helpful
Working with Traces
When to Trace
2. What is the first sign of trouble?
FOCUS error message
Multiple FOCUS error messages
Incorrect or unexpected results
Work backwards from incorrect results
Look for
Logic errors
Incorrect assumptions
FOCUS errors
Working with Traces
When to Trace
2. What is the first sign of trouble?
FOCUS error message
Multiple FOCUS error messages
Incorrect or unexpected results
DEFINE FILE CAR
PROFITMARGIN/D7=((RETAIL_COST - DEALER_COST)/DEALER_COST)*100;
END
TABLE FILE CAR
SUM RETAIL_COST DEALER_COST PROFITMARGIN
BY COUNTRY
END
PAGE
1
COUNTRY
------ENGLAND
FRANCE
ITALY
JAPAN
W GERMANY
RETAIL_COST
----------45,319
5,610
51,065
6,478
64,732
DEALER_COST
----------37,853
4,631
41,235
5,512
54,563
PROFITMARGIN
-----------78
21
88
35
115
Working with Traces
When to Trace
2. What is the first sign of trouble?
FOCUS error message
Multiple FOCUS error messages
Incorrect or unexpected results
TABLE FILE CAR
SUM RETAIL_COST DEALER_COST PROFITMARGIN
COMPUTE PM/D7=
((RETAIL_COST - DEALER_COST)/DEALER_COST)*100;
BY COUNTRY
END
PAGE
1
COUNTRY
------ENGLAND
FRANCE
ITALY
JAPAN
W GERMANY
RETAIL_COST
----------45,319
5,610
51,065
6,478
64,732
DEALER_COST
----------37,853
4,631
41,235
5,512
54,563
PM
-20
21
24
18
19
Tracing will be helpful
Working with Traces
When to Trace
2. What is the first sign of trouble?
FOCUS error message
Multiple FOCUS error messages
Incorrect results
Abend
Traces help identify FOCUS errors
Dumps may be required
Tracing required!
Working with Traces
When to Trace
2. What is the first sign of trouble?
FOCUS error message
Check description to determine nature of problem
Multiple FOCUS error messages
FOCUS errors compound
Solve the earliest exposed problem first!
Incorrect results
Work backwards from incorrect results
Look for FOCUS errors
Abend
Traces help identify FOCUS errors
Dumps may be required
Working with Traces
FOCUS Level Traces-Dialogue Manager
3. What is actually happening?

In Dialogue Manager:
Use -SET &ECHO, -SET &STACK and SET DEFECHO
to expose the actual flow of commands
SET DEFECHO – Set the default value of &ECHO
&ECHO=ON - Display FOCUS commands stacked & substituted
&ECHO=ALL - Display FOCUS command stacked & substituted and
Dialogue Manager commands
&STACK=OFF – Prevent execution of the stacked FOCUS commands and
system variables to test just the Dialogue Manager flow
NOTE: ENCRYPTION prevents ECHO
SET DEFECHO=ALL
-SET &ECHO=ALL
…
EX pgm2
Working with Traces
FOCUS Level Traces-Dialogue Manager
3. What is actually happening?

In Dialogue Manager:
Use SET &ECHO and SET DEFECHO to expose the
actual flow of commands
Use –TYPE to expose local and global variables
-DEFAULT &TEST = OFF
SET PRINTPLUS = ON
-RUN
-? SET PRINTPLUS &PRINTPLUS
-SET &EVT = IF TEST EQ ‘OFF’ THEN ‘*’ ELSE ‘TYPE’;
-&EVT.EVAL VALUE OF PRINTPLUS IS &PRINTPLUS
Working with Traces
FOCUS Level Traces - TABLE
3. What is actually happening?

In TABLE:
Use LET NOPRINT = ; to show complete request
Use SET DEFECHO to show variable substitution
Use –TYPE to expose system variable values
LET NOPRINT = ;
SET DEFECHO=ALL
TABLE FILE CAR
TABLE FILE CAR
SUM RETAIL_COST
SUM …
BY COUNTRY NOPRINT
WHERE COUNTRY EQ &VAR1
…
…
TABLE FILE CAR
…
END
-RUN
-TYPE RECORDS &RECORDS
Working with Traces
FOCUS Level Traces - MODIFY
3. What is actually happening?

In MODIFY:
Use MODIFY FILE xxx TRACE to locate CASE
MODIFY FILE EMPLOYEE TRACE
FIXFORM FROM…
…
CASE BADNAME
….
CASE HIGHSAL
**** START OF TRACE ****
…
TRACE ===> AT CASE TOP
CASE AT START
DATA FOR TRANSACTION 1
DATA
EMP_ID => 112847612
END
CURR_SAL => 67000
TRACE ===> AT CASE HIGHSAL
YOU ENTERED A SALARY ABOVE $50000
…
Working with Traces
FOCUS Level Traces - MODIFY
3. What is actually happening?

In MODIFY:
Use MODIFY FILE xxx TRACE to locate CASE
Use TYPE in CASE xxx to indicate position inside case
TYPE Notes:
ON <ddname> - to file, max 256 characters
Embed field values using spotmarkers
AT START - capture initial state of data
AT END - capture final state of data
Can be issued conditionally
MODIFY FILE EMPLOYEE
with MATCH,NEXT,VALIDATE
CASE ONE
TYPE “IN CASE ONE”
MATCH EMP_ID
TYPE “AFTER MATCH”
ON MATCH UPDATE CURR_SAL
ON MATCH TYPE
“UPDATED VALUE <T.CURR_SAL”
…
Working with Traces
FOCUS Level Traces – SQL Translator
3. What is actually happening?
In SQL Translator:
Use ECHO to show the generated FOCUS code
SQL
SELECT BODYTYPE, AVG(MPG), SUM(SALES)
FROM CAR
WHERE RETAIL_COST > 5000
> SET COUNTWIDTH=ON
GROUP BY BODYTYPE;
-SET SQLERRNUM = 0;
ECHO
TABLE FILE CAR
TABLE
WRITE
END
MIN.BODYTYPE AS 'BODYTYPE' AVE.MPG SUM.SALES
BY BODYTYPE NOPRINT
WHERE ( RETAIL_COST GT 5000 ) ;
ON TABLE SET CARTESIAN ON
ON TABLE SET ASNAMES ON
ON TABLE SET HOLDLIST PRINTONLY
END
-RUN
Working with Traces
FOCUS Level Traces – SQL Translator
3. What is actually happening?
In SQL Translator:
Use ECHO to show the generate FOCUS code
Use FILE nnn to create focexec with FOCUS code
SQL
SELECT BODYTYPE, AVG(MPG), SUM(SALES)
FROM CAR
WHERE RETAIL_COST > 5000
SET COUNTWIDTH=ON
GROUP BY BODYTYPE;
-SET SQLERRNUM = 0;
FILE SQLTRAN1
TABLE FILE CAR
WRITE
TABLE
MIN.BODYTYPE AS 'BODYTYPE' AVE.MPG SUM.SALES
END
BY BODYTYPE NOPRINT
WHERE ( RETAIL_COST GT 5000 ) ;
ON TABLE SET CARTESIAN ON
ON TABLE SET ASNAMES ON
ON TABLE SET HOLDLIST PRINTONLY
END
-RUN
Working with Traces
Engine/Database Level Traces
3. What is actually happening?
With Interfaces:
Use SET XRETRIEVAL=OFF to suppress data access
SET XRETRIEVAL=OFF
TABLE FILE DB2FILE
SUM RETAIL_COST DEALER COST
BY COUNTRY
WHERE SALES GT 5000
END
...RETRIEVAL KILLED
NUMBER OF RECORDS IN TABLE=
0 LINES=
0
Working with Traces
Engine/Database Level Traces
3. What is actually happening?

With Interfaces:
Use SET XRETRIEVAL=OFF to suppress data access
Use Dynamic Traces to expose interface activity
SET TRACEUSER=ON
ON – Turn traces on
OFF – Turn traces off
<filename> - Turn traces on and place in this file
------------------------------------------------------------------On command line or in any profile or focexec
Working with Traces
Engine/Database Level Traces
3. What is actually happening?
With Interfaces:
Use SET XRETRIEVAL=OFF to suppress data access
Use Dynamic Traces to expose interface activity
SET TRACEUSER=ON
SET TRACESIZE=number
number – maximum number of lines in trace
file
---------------------------------------------------------------- Must be placed in focexec – IBITRACE
 Output to .trc file, overflow to .trb file, then
reuse .trc file
Working with Traces
Engine/Database Level Traces
3. What is actually happening?

With Interfaces:
Use SET XRETRIEVAL=OFF to suppress data access
Use Dynamic Traces to expose interface activity
SET TRACEUSER=ON
SET TRACESIZE=number
SET TRACEON=ALL
ALL – Turn on traces for all areas
Area – Turn on trace for specific area only
OFF – Turn on traces for no areas – used as
clear
---------------------------------------------------------------- Issue on command line or in focexec or
profile
Working with Traces
Engine/Database Level Traces
3. What is actually happening?

With Interfaces:
Use SET XRETRIEVAL=OFF to suppress data access
Use Dynamic Traces to expose interface activity
SET TRACEUSER=ON
SET TRACESIZE=number
SET TRACEON=ALL
SET TRACEOFF=ALL
ALL – Turn on traces for all areas
Area – Turn on trace for specific area only
---------------------------------------------------------------- On command line or in focexec or profile
 ALL acts as CLEAR
Working with Traces
Engine/Database Level Traces
3. What is actually happening?
With Interfaces:
Use SET XRETRIEVAL=OFF to suppress data access
Use Dynamic Traces to expose interface activity
Default Components – as set in Web Console
R1H – Platform specific routines
QOPSYS – Generic operating system functions
PRH – Internal read and write routines
NWH – Network and communication routines
NLS – National Language support
Working with Traces
Engine/Database Level Traces
3. What is actually happening?

With Interfaces:
Use SET XRETRIEVAL=OFF to suppress data access
Use Dynamic Traces to expose interface activity
Typical Components – available in Web Console
CEH – command input
NWH2 – command output
PRH – MFD and FOCEXEC read and write routines
SQLAGGR - Data adapter-to-RDBMS aggregation
& join analysis
STMTRACE - SQL generated by the data adapter,
Direct SQL Passthru
Working with Traces
Engine/Database Level Traces
3. What is actually happening?
Special Components for SQL TRANSLATOR - SQLTRANS
SQL DATA ADAPTERS - SQLDI, SQLAGGR
REPORT SERVICES
TABH – TABLE services
WHOPT – WHERE optimizer
CMPDEF – Compiled DEFINES
STYLED – Styling
NLS SERVICES - NLS
SMART MODE - GKE
MAINTAIN
MNTSTMT – Statement trace
MNTPERF – Statement trace and performance
MNTDBMS – Database trace
Working with Traces
Engine/Database Level Traces
3. What is actually happening?
Special Components for Legacy Data Adapters
VSAM – VSAM interface
FOC – FOCUS interface
ADBSIN – ADABAS interface
IMS – IMS interface
IDMSR – IDMS interface
M204IN – M204 interface
DATACOM – Datacom interface
XFOCUS Traces – XFOCUS, XFOCH
Working with Traces
Typical scenarios
4. Typical scenarios
 Exposing the underlying FOCUS code
 Complex request generation with –INCLUDE, EX and &’s
SET TRACEUSER=ON
SET TRACEOFF=ALL
SET TRACEON=CEH//FSTRACE
SET TRACEUSER=test.trc
TABLE FILE CAR
PRINT COUNTRY
END
11.34.23 AB cepop:: 0, 00080 "TABLE FILE CAR"
11.34.23 AB cepop:: 0, 00080 "PRINT COUNTRY"
11.34.23 AB cepop:: 0, 00080 "END"
Working with Traces
Typical scenarios
4. Typical scenarios
SET TRACEUSER=ON
SET TRACEON=ALL
SET TRACEUSER=test.trc
 Determining which files are being used
 Masters, Access files, data files – multiple copies
13.55.01 AS ioherrop: open name = "FILTRHOLD"
13.55.01 AS iohfnam: __main: called for fname="@0000000" funcode=QUERY
13.55.01 AS iohfnam: __main: called for fname="@0000000" funcode=QUERY
13.55.01 AS iohfnam: __main: called for fname="@0000000" funcode=QUERY
13.55.01 AS r1pathnm: result is <D:\ibi\64bit\srv76\wfs\edatemp\ts000001\filtrhold.mas>
13.55.01 AS r1fopen: calling fopen( D:\ibi\64bit\srv76\wfs\edatemp\ts000001\filtrhold.mas, r )
13.55.01 AS r1fopen: fopen failed
13.55.01 AS r1trcerr: r1fopen: err#2, The system cannot find the file specified.
13.55.01 AS r1trcerr: iohfopen: err#2, The system cannot find the file specified.
13.55.01 AS ioherrop: name = "FILTRHOLD", : failed to open
13.55.01 AS iohfnam: __main: called for fname="@0000000" funcode=REMOVE
13.55.01 AS iohfnam: __free: new usage count 1
13.55.01 AS ioherrop: open name = "@0000000"
13.55.01 AS iohfnam: __main: called for fname="@0000000" funcode=CREATE
13.55.01 AS iohfnam: __main: new usage count: 2
Working with Traces
Typical scenarios
4. Typical scenarios
 Locate all of the FOCUS error messages
 Abend often preceded by multiple FOCUS errors
SET TRACEUSER=ON
SET TRACEON=ALL
SET TRACEUSER=test.trc
EX focexec
13.54.03 AS ngptRcvT: entered
13.54.03 AS iPipeApt: entered
13.54.03 AS iPipeApt: ConnectNamedPipe, 997, Overlapped I/O operation is in progress.
13.54.03 AS ngptRcvT: accepted new connection, receiving communication type
13.54.03 AS iRecvTye: entered
13.54.03 AS ngptRcvT: socket connection request, type=0
13.54.03 AS ngptRcvT: connection etype=0
13.54.03 AS ngptRcvT: cth len = 179
13.54.03 AS iRecvSok: entered
13.54.03 AS iRecvSok: sent PID
13.54.03 AS iRecvSok: received socket info, sending confirmation
13.54.03 AS ngptRcvT: socket successfully received
13.54.03 AI nwnget: entered
13.54.03 AI nwnget: receiving from client
Search file for “FOC”
Working with Traces
Typical scenarios
SET TRACEUSER=CLIENT
SET TRACEOFF=ALL
SET TRACEON=STMTRACE
SET TRACEON=SQLAGGR
4. Typical scenarios
Work with interface traces …
FILENAME=abctraining, SUFFIX=SQLMSS , $
SEGMENT=ABCEMPDATA, SEGTYPE=S0,$
FIELDNAME=PIN, ALIAS=PIN, USAGE=A9, ACTUAL=A9, $ FIELDNAME=LASTNAME,
ALIAS=LASTNAME, USAGE=A15, ACTUAL=A15, $
FIELDNAME=FIRSTNAME, ALIAS=FIRSTNAME, USAGE=A10, ACTUAL=A10, $ .. DEFINE
NEW_PIN/A9 WITH ABCEMPDATA.PIN='000567890'; $
DEFINE STATE/A6 WITH ABCEMPDATA.PIN=
IF ABCEMPDATA.PIN EQ ‘000567890' THEN ‘NJ' ELSE
IF ABCEMPDATA.PIN EQ ‘000456780' THEN ‘NY' ELSE 'XX'; $ SEGMENT=ABCTRAINING,
SEGTYPE=S0, PARENT=ABCEMPDATA, CRJOINTYPE=INNER, $
FIELDNAME=PIN, ALIAS=PIN, USAGE=A9, ACTUAL=A9, $ FIELDNAME=COURSECODE,
ALIAS=COURSECODE, USAGE=A7, ACTUAL=A7, $ FIELDNAME=COURSESTART,
ALIAS=COURSESTART, USAGE=HYYMDs, ACTUAL=HYYMDs, $
ENGINE SQLMSS SET OPTIMIZATION SQL
TABLE FILE ABCTRAINING
PRINT LOCATION
LASTNAME
FIRSTNAME
COURSESTART ...
END
Working with Traces
Typical scenarios
4. Typical scenarios
… to ensure request optimization
16.07.33 BR (FOC2510) FOCUS-MANAGED JOIN SELECTED FOR FOLLOWING REASON(S):
16.07.33 BR (FOC2511) DISABLED BY USER
16.07.33 BR (FOC2598) FOCUS IF/WHERE TEST CANNOT BE PASSED TO SQL : ODS_PAYME
16.07.33 BR (FOC2590) AGGREGATION NOT DONE FOR THE FOLLOWING REASON:
16.07.33 BR (FOC2592) RDBMS-MANAGED JOIN HAS BEEN DISABLED
16.07.33 AE SELECT T1."ODS_PAYMENTECH_D1_TX_DATE",
16.07.33 AE T1."ODS_PAYMENTECH_D1_CARD_TYPE",
16.07.33 AE T1."ODS_PAYMENTECH_BH_TERM_NUM",T1."ODS_PAYMENTECH_D1_CARD_NUM",
16.07.33 AE T1."ODS_PAYMENTECH_D1_AUTH_NUM",
16.07.33 AE T1."ODS_PAYMENTECH_D1_TX_SEQ_NUM",T1."ODS_PAYMENTECH_D1_TX_AMT",
16.07.33 AE T1."ODS_STOR_CODE",T1."ODS_PAYMENTECH_BH_BATCH_NUM",
16.07.33 AE T1."ODS_PAYMENTECH_D1_RECORD_TYPE",
16.07.33 AE T1."ODS_PAYMENTECH_D1_TX_CODE",T1."ODS_PAYMENTECH_D1_VOID_FLAG",
16.07.33 AE T1."ODS_PAYMENTECH_D2_AUTH_TYPE",
16.07.33 AE T1."ODS_PAYMENTECH_D3_ENTRY_DATA_SOURCE",
16.07.33 AE T1."ODS_PAYMENTECH_D4_RETAIL_INDUSTRY_DATA" FROM
16.07.33 AE VODS_ODS_PAYMENTECH T1 WHERE
16.07.33 AE (T1."ODS_PAYMENTECH_D1_RECORD_TYPE" <> '3');
…
Working with Traces
Typical scenarios
4. Typical scenarios
… to check data that is returned from database
13.54.03 BX Value: 1
13.54.03 BW <<< OLEFOC
13.54.03 BW <<< OLEFOC
13.54.03 BW <<< OLEFOC
13.54.03 BW <<< OLEFOC
13.54.03 BW <<< OLEFOC
13.54.03 BW <<< OLEFOC
13.54.03 BW <<< OLEFOC
13.54.03 BW <<< OLEFOC
13.54.03 BW <<< OLEFOC
13.54.03 BW <<< OLEFOC
13.54.03 BW <<< OLEFOC
13.54.03 BW <<< OLEFOC
13.54.03 BW <<< OLEFOC
13.54.03 BW <<< OLEFOC
13.54.03 BW <<< OLEFOC
13.54.03 BW <<< OLEFOC
13.54.03 BW <<< OLEFOC
13.54.03 BW <<< OLEFOC
SQLDA Block
SQLDA: Contains 6 elements, 6 select list expressions
SQLDA: Name= E01, Addr= 00000000006364F0
SQLDA: Type= Char(01C5), Length= 0040
SQLDA: Indicator= Addr: 000000000240C136: 0000
SQLDA: Data= Addr: 000000000240C138: BUS_SEGMENT
SQLDA: Name= E02, Addr= 0000000000636568
SQLDA: Type= Char(01C5), Length= 0040
SQLDA: Indicator= Addr: 000000000240C17E: 0000
SQLDA: Data= Addr: 000000000240C180: Business Segment
SQLDA: Name= E03, Addr= 00000000006365E0
SQLDA: Type= Char(01C5), Length= 0040
SQLDA: Indicator= Addr: 000000000240C1C6: 0000
SQLDA: Data= Addr: 000000000240C1C8: Business_Segment_Cd
SQLDA: Name= E04, Addr= 0000000000636658
SQLDA: Type= Char(01C5), Length= 0040
SQLDA: Indicator= Addr: 000000000240C20E: 0000
SQLDA: Data= Addr: 000000000240C210: Business_Segment_Desc
Working with Traces
Typical scenarios
4. Typical scenarios
… to ensure that SQL request completed returning data
15.44.03 EW Command: Finish on segment 0
15.44.03 BU DQ: --- DQFIN , engine = SQLORA , session count = 0
15.44.03 BW >>> OR8FOC entered. (SQLORA), Gfun= 3, fun= 6; FOCUS_CLOSE.
15.44.03 BX **** or8foc: gfun: 3, fun: 6, cnum: 0
15.44.03 BX **** OCIHandleFree(errhp) call
15.44.03 BX **** OCIHandleFree return
15.44.03 BX **** status=0, "OCI_SUCCESS"
15.44.03 BX **** OCIHandleFree(envhp) call
15.44.03 BX **** OCIHandleFree return
15.44.03 BX **** status=0, "OCI_SUCCESS"
15.44.03 AR vxndel: delete request for module: ORAPAS2 --- dummy
15.44.03 BW <<< OR8FOC exited. (SQLORA), Errcode=
0; FOCUS_CLOSE.
Working with Traces
Typical scenarios
4. Typical scenarios

Savediags include the following traces--
Server log ($EDACONF/edaprint.log)
Traces and other contents from the $EDACONF/edatemp/... directory, including the
following:
edachkup.trc Daemon check up facility trace
edapdfm.trc Deferred Listener trace
edaplog.trc EDAPRINT log daemon trace
fds.trc FDS trace
jscom*.trc Java traces
edapth.trc Main workspace manager trace
edaphtp.trc HTTP communication traces (listener)
ht000nnn.trc HTTP communication traces (threads)
edaptcp.trc TCP/IP communication traces (listener)
ip000nnn.trc TCP/IP communication traces (threads)
lu000nnn.trc SNA communication traces
ts000nnn.trc Agent traces
Server configuration ($EDACONF/bin/edaserve.cfg)
Profiles from $EDACONF/etc/edasprof.prf and ibi/profiles/*
Working with Traces
Additional uses
4. Additional uses

Performance issues
Look for search issues with multiple folders in path
Check optimization
Check timing of access
Look for non-essential parsing
Optimization
WHERE
Aggregation
JOIN
FOCUS Debugging Techniques
Performance