× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



I have a problem with a big number of "Full-Opens" that comes to light with
an iDoctor analysis and I tried to solve it by moving from native i/o to
SQL i/o without achieving any improvement.

First of all: All the "ERP solution" don't access the database directly
but through some service programs with procedures like "GetRecFile01" (see
below).



So I wrote some tests that read 1 million records and call decoding
procedures in different ways ... but I got completely different results:
tests count a few full-opens both in native and in SQL I/O, despite a
million records read. Standard programs count a lot of FullOpens both in
native and in SQL I/O!


If I run in debug mode programs (with SQL I/O) that count a lot of
"full-opens" I see a lot of SQL7911 ODP Reused ... why iDoctor count so
much "full-opens"?
I added this SQL option in my SRVPGMs too.
"exec sql set option closqlcsr = *endactgrp;"

I don't understand!

Question 2: How can I count native-full-opens without iDoctor so I can try
and see easily with an SQL statement?
I tried STRDBMON and QMGTOOLS/STRPSC JOBWATCHER(Y) but I can't find those
numbers in logs files


---
Examples
---
-----
GetRecFile01 Record Access Procedure for FILE01 in a SRVPGM (with native
I/O "original")
...
FFILE0101L IF E K DISK USROPN
...
PGetRecFile01 B EXPORT
DGetRecFile01 PI n
D entryId CONST LIKE(FILE01Id)
D exitRecord LIKEREC(FILE01RKD)
IF NOT %OPEN(FILE0101L) ;
OPEN FILE0101L ;
ENDIF ;
CHAIN (entryId) FILE0101L exitRecord ;
IF NOT %FOUND ;
CLEAR exitRecord ;
ENDIF ;
RETURN %FOUND ;
P E

---
GetRecFile01NEW Record Access Procedure for FILE01 in a SRVPGM (with SQL
I/O)
...
dcl-ds FILE01DS extname('FILE010F') template qualified end-ds;
..
exec sql set option closqlcsr = *endactgrp;
..
Dcl-Proc GetRecFile01New EXPORT;
Dcl-PI GetRecFile01New Ind;
entryId CONST LIKE(FILE01DS.Id);
exitRecord LIKEDS(FILE01DS);
End-PI;
exec sql
select * into :exitRecord :null_ds
from FILE010F
where id=:entryid;
select;
when sqlcod=100;
clear exitRecord;
return *off;
when sqlcod<0;
EXEC SQL GET DIAGNOSTICS CONDITION 1 :ERR= MESSAGE_TEXT ;
DSPLY ('01-'+ERR);
clear exitRecord;
return *off;
ENDSL;
return *on;
end-proc;





As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.