Regarding SUPERDEX, error messages will, by default, not be displayed with
descriptive text. However, current versions will displaying the MSG-TEXT to
$stdlist of the DBOPENing process when the SITRACE JCW is equal to 111.
Example of SITRACE=111
>
> %setjcw sitrace=111
> %query
> HP32216N.03.03 QUERY/NM SAT, APR 15, 2000, 12:45 PM
> COPYRIGHT HEWLETT-PACKARD CO. 1976
>
> >b=testdb
> PASSWORD = >>
> MODE = >>1
>
> DBOPEN base = TESTDB, mode=1 SAT, APR 15, 2000, 12:45
> PM
> Base=TESTDB.TPI0.ATSDX ID=$1 Version 4.1.57 (170c61)
> TurboIMAGE Version: C.0717
> SITRACE = 111
> * dbinfo qual=SI, mode=201, stat1=0
> * dbget dset=SI, mode=4, stat1=0, rec = $1
> buf. = 5349 C859 0005 01FC SI.Y..............41............@?#-
>
> Status = $F446 $01FC $0000 $0001 $0000 $0000 $0000 $0000 $0000 $0000
> -3002 508 1 0 0 0
> Data Base indexing via SUPERDEX demonstration is expired
> TurboIMAGE Error Message:
> UNRECOGNIZED RETURN STATUS: -3002
Whereas without SITRACE
>
> >:setjcw sitrace=0
> >b=testdb
> PASSWORD = >>
> MODE = >>1
> TurboIMAGE Error Message:
> UNRECOGNIZED RETURN STATUS: -3002
Just a side note, the command file listed below can be used to see (some)
IMAGE
error messages for a given intrinsic and error status. It hard codes SUPERDEX
messages for DBOPEN. Be advised, it does not always work since it uses a
funny
way of getting the data.
tj
------------
COMMAND FILE start
------------
PARM IPARM="", SPARM=""
COMMENT ************************************************************
COMMENT *** DBERR ***
COMMENT *** ***
COMMENT *** This command file accepts a DBxxx INTRINSIC name ***
COMMENT *** (actually the first letter after DB is sufficient, ***
COMMENT *** like O for DBOPEN, G for DBGET, etc.) and a STATUS ***
COMMENT *** value. It displays the appropriate DBERROR ***
COMMENT *** message that corresponds to this status. ***
COMMENT *** ***
COMMENT *** SYNTAX: DBERR intrinsic, statusvalue ***
COMMENT *** EXAMPLE: DBERR DBOPEN, -1 ***
COMMENT *** OR: DBERR O,-1 ***
COMMENT *** ***
COMMENT *** If either value is not passed in the command line, ***
COMMENT *** then it will be prompted for. ***
COMMENT *** ***
COMMENT *** by Gil Milbauer, BRADMARK ***
COMMENT *** ***
COMMENT ************************************************************
IF "!IPARM"="" THEN
INPUT DBERR_INTRINSIC;PROMPT=&
"What is the DBxxx intrinsic (Get, Find, Open, etc)? "
ELSE
SETVAR DBERR_INTRINSIC "!IPARM"
ENDIF
SETVAR DBERR_INTRINSIC LFT(UPS(DBERR_INTRINSIC)-"DB",1)
IF "!SPARM"="" THEN
INPUT DBERR_STATUS;PROMPT=&
" What is the STATUS returned? "
ELSE
SETVAR DBERR_STATUS "!SPARM"
ENDIF
ECHO
IF DBERR_INTRINSIC="O" AND (ABS(!DBERR_STATUS)>=3001 AND &
ABS(!DBERR_STATUS)<=3007) THEN
IF ABS(!DBERR_STATUS)=3001 THEN
ECHO SUPERDEX detected a checksum error. Run SIMAINT,STRUCT
ELSEIF ABS(!DBERR_STATUS)=3002 THEN
ECHO Database indexing via SUPERDEX demonstration is expired
ELSEIF ABS(!DBERR_STATUS)=3003 THEN
ECHO SUPERDEX requires an update to this version of TURBOIMAGE
ELSEIF ABS(!DBERR_STATUS)=3004 THEN
ECHO Missing or Invalid SUPERDEX Root Dataset: SI or SI0
ELSEIF ABS(!DBERR_STATUS)=3005 THEN
ECHO SUPERDEX, with pre-IMAGE 5.0, requires ILR to be disabled
ELSEIF ABS(!DBERR_STATUS)=3006 THEN
ECHO SUPERDEX, Invalid checksum, not a 4.1 database
ELSEIF ABS(!DBERR_STATUS)=3007 THEN
ECHO SUPERDEX, Checksum equal zero
ENDIF
ELSE
PURGE DBDRVIN,TEMP > $NULL
FILE DBDRVIN;TEMP;REC=-72,,F,ASCII
ECHO !DBERR_INTRINSIC >*DBDRVIN
ECHO !!S=!DBERR_STATUS >>DBDRVIN
ECHO E >>DBDRVIN
ECHO EXIT >>DBDRVIN
PURGE DBDRVOUT,TEMP >$NULL
BUILD DBDRVOUT;TEMP;REC=-80,,F,ASCII;DISC=30
FILE DBDRVOUT,OLDTEMP
XEQ DBDRIVER.PUB.SYS<DBDRVIN>*DBDRVOUT
PRINT DBDRVOUT;START=-2;END=-2
DELETEVAR DBERR_@
RESET DBDRVOUT
RESET DBDRVIN
PURGE DBDRVIN,TEMP >$NULL
PURGE DBDRVOUT,TEMP >$NULL
ENDIF
ECHO
---------------
COMAND FILE end
---------------
At 11:37 AM 11/23/98, Bruce Toback wrote:
>Alfredo writes:
>
>>Barry encountered an IMAGE status -3906 (which is not a very friendly
>>thing, by the way), and he became worried when his application could not
>>perform a DBOPEN. Naturally, his first thought was that he had a database
>>corruption.
>
>This has hit my clients as well, on several occasions. Isn't there a
>facility in TPI to intercept DBERROR and DBEXPLAIN? If not, can one be
>added? Most programmers go to the trouble of calling one or the other in
>order to speed up diagnosis of problems, but TPI errors just end up being
>completely opaque. The customer looks in the IMAGE manual (it's an IMAGE
>error, after all; it says so in the message), discovers that s/he's got
>an *undocumented* error, and panics.
>
>How about it, TPI vendors? Can we get real error messages through the
>documented DBERROR and DBEXPLAIN interfaces?
>
>-- Bruce
Tim Joseph
425-485-8536 (phone)
[log in to unmask] (email)
425-485-7801 (fax)
http://www.bradmark.com/
|