DB2 - Problem description
Problem IC64962 | Status: Closed |
SQL774N AFTER INTERRUPT OF SQL PROCEDURE CONTAINING ONE OR MORE ATOMIC COMPOUND STATEMENTS | |
product: | |
DB2 FOR LUW / DB2FORLUW / 970 - DB2 | |
Problem description: | |
If you terminate an SQL procedure containing an atomic compound statement by interrupting the procedure, any statement that run on that connection (outside of the stored procedure) may result in SQLCODE -774. Example: db2 "call proc_stat_chngs_1(1)" ^CSQL0952N Processing was cancelled due to an interrupt. SQLSTATE=57014 $ db2 commit SQL0774N The statement cannot be executed within an ATOMIC compound SQL statement. SQLSTATE=2D522 db2 "insert into session.del_milestones values ('1','1','1')" DB21034E The command was processed as an SQL statement because it was not a valid Command Line Processor command. During SQL processing it returned: SQL0774N The statement cannot be executed within an ATOMIC compound SQL statement. SQLSTATE=2D522 db2 terminate SQL0774N The statement cannot be executed within an ATOMIC compound SQL statement. SQLSTATE=2D522 | |
Problem Summary: | |
If you terminate an SQL procedure containing an atomic compound statement by interrupting the procedure, any statement that run on that connection (outside of the stored procedure) may result in SQLCODE -774. Example: db2 "call proc_stat_chngs_1(1)" ^CSQL0952N Processing was cancelled due to an interrupt. SQLSTATE=57014 $ db2 commit SQL0774N The statement cannot be executed within an ATOMIC compound SQL statement. SQLSTATE=2D522 db2 "insert into session.del_milestones values ('1','1','1')" DB21034E The command was processed as an SQL statement because it was not a valid Command Line Processor command. During SQL processing it returned: SQL0774N The statement cannot be executed within an ATOMIC compound SQL statement. SQLSTATE=2D522 db2 terminate SQL0774N The statement cannot be executed within an ATOMIC compound SQL statement. SQLSTATE=2D522 | |
Local Fix: | |
Add the NEW SAVEPOINT LEVEL option to the CREATE PROCEDURE statement for an SQL procedure. That procedure will not cause subsequent -774 errors if interrupted. CREATE PROCEDURE TEST(in N integer) LANGUAGE SQL NEW SAVEPOINT LEVEL BEGIN ATOMIC -- ... END This modification need only be applied to SQL procedures containing BEGIN ATOMIC statements, and only to those that are likely subject to interruption (e.g., by Ctrl-C, FORCE APPLICATION, etc.). You must recompile any modified procedures to apply the workaround. | |
available fix packs: | |
DB2 Version 9.7 Fix Pack 2 for Linux, UNIX, and Windows | |
Solution | |
First fixed in DB2 UDB Version v9.7, FixPak 2. | |
Workaround | |
Add the NEW SAVEPOINT LEVEL option to the CREATE PROCEDURE statement for an SQL procedure. That procedure will not cause subsequent -774 errors if interrupted. CREATE PROCEDURE TEST(in N integer) LANGUAGE SQL NEW SAVEPOINT LEVEL BEGIN ATOMIC -- ... END This modification need only be applied to SQL procedures containing BEGIN ATOMIC statements, and only to those that are likely subject to interruption (e.g., by Ctrl-C, FORCE APPLICATION, etc.). You must recompile any modified procedures to apply the workaround. | |
Timestamps | |
Date - problem reported : Date - problem closed : Date - last modified : | 04.12.2009 13.05.2010 13.05.2010 |
Problem solved at the following versions (IBM BugInfos) | |
9.7. | |
Problem solved according to the fixlist(s) of the following version(s) | |
9.7.0.2 |