This doesn't happen very often, but when shutting down a very busy 11.0.1.2276 database which has several events running, the "Statement interrupted by user" exception is recorded in the console log. Since one of these events has an unconditional EXCEPTION handler which does not RESIGNAL any exception, it looks like EXCEPTION handlers are being bypassed during the shutdown process... that makes sense. However, it does not make sense (to me) to display these messages in the console log... in other words, "yeah, sure, the statement was interrupted... the steenking database is being shut down!" :) I. 10/03 13:58:41. SQL Anywhere Network Server Version 11.0.1.2276 I. 10/03 13:58:41. Workgroup edition ... I. 10/03 14:12:33. Database server shutdown requested by DBSTOP E. 10/03 14:12:38. Handler for event 'event1' caused SQLSTATE '57014' E. 10/03 14:12:38. Statement interrupted by user E. 10/03 14:12:38. Handler for event 'event1' caused SQLSTATE '57014' E. 10/03 14:12:38. Statement interrupted by user E. 10/03 14:12:38. Handler for event 'event1' caused SQLSTATE '57014' E. 10/03 14:12:38. Statement interrupted by user E. 10/03 14:12:38. Handler for event 'event1' caused SQLSTATE '57014' E. 10/03 14:12:38. Statement interrupted by user E. 10/03 14:12:38. Handler for event 'event1' caused SQLSTATE '57014' E. 10/03 14:12:38. Statement interrupted by user E. 10/03 14:12:38. Handler for event 'event1' caused SQLSTATE '57014' E. 10/03 14:12:38. Statement interrupted by user E. 10/03 14:12:38. Handler for event 'event1' caused SQLSTATE '57014' E. 10/03 14:12:38. Statement interrupted by user E. 10/03 14:12:38. Handler for event 'event1' caused SQLSTATE '57014' E. 10/03 14:12:38. Statement interrupted by user E. 10/03 14:12:38. Handler for event 'event1' caused SQLSTATE '57014' E. 10/03 14:12:38. Statement interrupted by user E. 10/03 14:12:38. Handler for event 'event1' caused SQLSTATE '57014' E. 10/03 14:12:38. Statement interrupted by user E. 10/03 14:12:38. Handler for event 'event1' caused SQLSTATE '57014' E. 10/03 14:12:38. Statement interrupted by user E. 10/03 14:12:38. Handler for event 'event1' caused SQLSTATE '57014' E. 10/03 14:12:38. Statement interrupted by user E. 10/03 14:12:38. Handler for event 'event1' caused SQLSTATE '57014' E. 10/03 14:12:38. Statement interrupted by user E. 10/03 14:12:38. Handler for event 'event1' caused SQLSTATE '57014' E. 10/03 14:12:38. Statement interrupted by user E. 10/03 14:12:38. Handler for event 'event1' caused SQLSTATE '57014' E. 10/03 14:12:38. Statement interrupted by user E. 10/03 14:12:38. Handler for event 'event1' caused SQLSTATE '57014' E. 10/03 14:12:38. Statement interrupted by user E. 10/03 14:12:38. Handler for event 'event1' caused SQLSTATE '57014' E. 10/03 14:12:38. Statement interrupted by user E. 10/03 14:12:38. Handler for event 'event1' caused SQLSTATE '57014' E. 10/03 14:12:38. Statement interrupted by user E. 10/03 14:12:38. Handler for event 'event1' caused SQLSTATE '57014' E. 10/03 14:12:38. Statement interrupted by user E. 10/03 14:12:38. Handler for event 'event1' caused SQLSTATE '57014' E. 10/03 14:12:38. Statement interrupted by user E. 10/03 14:12:38. Handler for event 'event2' caused SQLSTATE '57014' E. 10/03 14:12:38. Statement interrupted by user I. 10/03 14:12:38. Starting checkpoint of "d" (d.db) at Sun Oct 03 2010 14:12 I. 10/03 14:12:38. Finished checkpoint of "d" (d.db) at Sun Oct 03 2010 14:12 I. 10/03 14:12:40. Database server stopped at Sun Oct 03 2010 14:12 CREATE EVENT event1 HANDLER BEGIN ... EXCEPTION WHEN OTHERS THEN SELECT SQLCODE, SQLSTATE, ERRORMSG() INTO @sqlcode, @sqlstate, @errormsg; IF ( @sqlcode = 0 AND @sqlstate = '00000' AND TRIM ( @errormsg ) = '' ) OR ( @sqlcode = -299 AND @sqlstate = '57014' AND TRIM ( @errormsg ) = 'Statement interrupted by user' ) THEN -- Note: This is not an "exception" worth recording via CALL record_exception. ELSE CALL record_exception ( STRING ( ' SQLCODE = ', @sqlcode, ', SQLSTATE = ', @sqlstate, ', ERRORMSG() = ', @errormsg ) ); END IF; END; -- event1 |