* Standard COBOL (file "MPB004.SCO") calling SQL * procedures in file "MPB004.MCO". * STANDARD COBOL (file "MPB004.SCO")
**************************************************************** * * COMMENT SECTION * * DATE 1989/10/07 STANDARD COBOL LANGUAGE * NIST SQL VALIDATION TEST SUITE V6.0 * DISCLAIMER: * This program was written by employees of NIST to test SQL * implementations for conformance to the SQL standards. * NIST assumes no responsibility for any party's use of * this program. * * MPB004.SCO * WRITTEN BY: SUN DAJUN * * THIS PROGRAM IS PART B OF A TWO-PART PROGRAM(A & B) THAT * TESTS THE CONCURRENCY OF SQL * * REFERENCES * AMERICAN NATIONAL STANDARD database language - SQL * X3.135-1989 * * SECTION 4.16 Transactions * Paragraph Two ****************************************************************
* EXEC SQL BEGIN DECLARE SECTION END-EXEC 01 who1. 01PIC S9) LEADING 01 knum * procedures in file "MPB004.MCO".* STANDARD COBOL (file "MPB004.SCO") 01 rslt1 * 01 rslt2 PIC S9(9) DISPLAYSIGNLEADINGSEPARATE* 01 uid PIC X( * DISCLAIMER: 01 uidx PIC X( * MPB004.SCO * EXEC SQL END DECLARE SECTION END-EXEC 01SQLCODEPIC S9 * THIS PROGRAM IS PART B OF A TWO-PART PROGRAM(A & B) THAT 01 errcnt PIC S9(9* REFERENCES
MOVE"SULLIVAN1 SQLCODE PIC S99. CALL"AUTHID"USING errcnt S9) SIGNSEPARATE "otloggedin not"TO * EXEC SQL SELECT USER INTO :uidx FROM HU.ECCO; CALL MOVESQLCODE SQL-COD ifuid = uidx then
java.lang.StringIndexOutOfBoundsException: Range [36, 8) out of bounds for length 36
java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23 END-IF MOVE errcnt DISPLAY" YYMMDD: "TO-DAYhhmmssff java.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 71 DISPLAY "59-byte ID" DISPLAYTEd
DISPLAY" java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
- " " DISPLAY"*** program * INTO :knum
- " SUB3 USING SQLCODE knum in.An rolls DISPLAY"*** without
DISPLAY" This is Program B which starts after Program A. SQLCODE TO SQL-COD
- " "
* -----Synchronization-----
P105
* EXEC SQL SELECT COUNT(*) * INTO :knum * FROM MP4_NEXTKEY WHERE AUTHOR = 'A'; CALL"SUB3"USING* VALUES(2, 'B'); MOVESQLCODESQLCODE SQL-COD
* EXEC SQL COMMIT WORK;
4 java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38 MOVESQLCODE SQL-COD
*are we in sync?
if java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19 DISPLAY" PLEASE start program MPA004!!! " TO END-IFMOVESQLCODE SQL-COD
java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
P106 MOVE" * EXEC SQL INSERT INTO MP4_NEXTKEY (KEYNUM,AUTHOR) * VALUES(2, 'B'); CALLSUB5java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38 MOVE0TOtimes1 if (SQLCODE MOVE1TOcode1 END-IF * EXEC SQL COMMIT WORK; CALL"SUB6"USING"* 0268***" MOVEjava.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
( NOT) java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40 MOVETOcode1 END-IF if (code1 NOT""USING * EXEC SQL ROLLBACK WORK; CALL"SUB7"USINGSQLCODE MOVESQLCODETOSQL-COD DISPLAYifSQLCODE = 0) then
java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25 END-IF
*YES, we are in sync!
DISPLAYTransaction DISPLAY" " IFtoo DISPLAY"has taken place, MOVE0TO times1
* -----Concurrent Transaction Loops-----
.
P110ifNOT=0)then MOVE code1 if (times1 > retrys) then DISPLAY"**TEST0268 aborted**" DISPLAY"MPA004 will give a falseif( < tranctANDcode1= )then DISPLAY"Remove the test results from TESTREPORT" DISPLAY"
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 END-IF * EXEC SQL SELECT NUMTEST INTO :who2 FROM MP4_MM2; CALL" java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43 SQLCODE SQL-COD if (SQLCODE MOVE1TO code10TO cnt END-IF
* EXEC SQL SELECT NUMTEST INTO :who1 FROM MP4_NN; CALL"SUB10"USINGSQLCODE java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19 MOVESQLCODETO SQL-COD SUB12 SQLCODE ifSQLCODE SQL-COD MOVETOcode1 END-IF
*MP4_NN UPDATE loop MOVE0TO
.
P112 ""USING java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45 if (SQLCODE NOT = 0) then * SET NUMTEST = NUMTEST - 5; * EXEC SQL COMMIT WORK; SQLCODE if (MOVESQLCODETOSQL-COD MOVE code1 END-IF COMPUTE cntMOVE code1 if TO END-IF
* -----Evaluation-----
* EXEC SQL SELECT NUMTEST INTO :rslt1 FROM MP4_NN; CALL"" MOVE ifNOTjava.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40 MOVE""USING END-IF * EXEC SQL SELECT NUMTEST INTO :rslt2 FROM MP4_MM2; CALL"SUB13"SQLCODE rslt2 MOVESQLCODEEND-IF if (SQLCODENOT = 0) then MOVE1TO code1 END-IF
if ( DISPLAY"MPB004 transaction completed !! at time: " * EXEC SQL COMMIT WORK; CALL""USING MOVESQLCODETOACCEPTTHE-TIME *Compute difference from original value MOVE code1 END-IF
rslt2 - rslt2 ifcode1 = 0 java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38 DISPLAY ,tranct DISPLAY"!+!+!+ "rslt1 ", rslt1
- " !+!+!+!+!+!+ DISPLAYNegative(? was
- " earlier" DISPLAYDISPLAYmpb004 pass
- " !+!+!+!+! * EXEC SQL INSERT INTO HU.TESTREPORT COMPUTE times1 =CALL"UB16"SQLCODE * EXEC SQL ROLLBACK WORK; CALL"SUB15"USINGMOVESQLCODETOSQL-COD
GOTO P110 END-IF
*end transaction SQLCODESQL-COD *date_time print ACCEPTjava.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19 ACCEPTFROM java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36 DISPLAY SUB18 SQLCODE
*Compute difference from original value COMPUTEif( = 0 java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35 COMPUTE rslt2 Ifdoes COMPUTE3
The is : DISPLAY" rslt1 is 20" DISPLAY" rslt2 is ", tranct DISPLAY DISPLAY**** TESTER MAY CHOOSE TO INSERT CODE FOR errcnt > 0 DISPLAY",rslt2
if ( rslt1 = 20AND rslt2 = tranct) then * **** Procedures for PERFORM statements * EXEC SQL INSERT INTO HU.TESTREPORT * VALUES('0268','pass','MCO'); CALL"SUB16"USINGSQLCODE MOVESQLCODETO SQL-COD else DISPLAY"mpb004.sco: *** fail *** " * EXEC SQL INSERT INTO HU.TESTREPORT * VALUES('0268','fail','MCO'); CALL"SUB17"USINGSQLCODE MOVESQLCODETO SQL-COD COMPUTE errcnt = errcnt + 1 END-IF
if (times1 = 0) then DISPLAY"Look for DEADLOCK message from MPA004." DISPLAY"If MPA004 does not issues a DEADLOCK message," DISPLAY" you will need to RERUN this test, after" DISPLAY" (using TEd) increasing value of variable
- " tranct." END-IF
******************** END TEST0268 *******************
**** TESTER MAY CHOOSE TO INSERT CODE FOR errcnt > 0
STOPRUN.
* **** Procedures for PERFORM statements
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.11 Sekunden
(vorverarbeitet am 2026-06-10)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.