     AND DATE = (SELECT MAX(DATE) FROM LOGDATA.LOGS)
     AND LEVEL_ID = 3;
 
-  CALL DB2UNIT.ASSERT_STRING_EQUALS('Test10: Limit achieved to ROOT with warn',
-    EXPECTED, ACTUAL);
- END @
-
--- Test11: Limit passed logging to ROOT with warn.
-CREATE OR REPLACE PROCEDURE TEST_11()
- BEGIN
-  DECLARE EXPECTED ANCHOR DATA TYPE TO LOGDATA.LOGS.MESSAGE;
-  DECLARE CASCADE SMALLINT; -- Cascade calls.
-  DECLARE ACTUAL ANCHOR DATA TYPE TO LOGDATA.LOGS.MESSAGE;
-  DECLARE RAISED_LG001 BOOLEAN DEFAULT FALSE; -- Just one ROOT.
-  DECLARE CONTINUE HANDLER FOR SQLSTATE 'LG001'
-    SET RAISED_LG001 = TRUE;
-
-  SET EXPECTED = 'TRUE';
-  SET CASCADE = VAL_57A;
+  CALL DB2UNIT.ASSERT_STRING_EQUALS('Test07: Limit achieved to ROOT with warn',
+    EXPECTED, ACTUAL);
+ END @
+
+-- Test08C: Limit passed logging to ROOT with fatal.
+CREATE OR REPLACE PROCEDURE TEST_09C()
+ BEGIN
+  DECLARE EXPECTED ANCHOR DATA TYPE TO LOGDATA.LOGS.MESSAGE;
+  DECLARE CASCADE SMALLINT; -- Cascade calls.
+  DECLARE ACTUAL ANCHOR DATA TYPE TO LOGDATA.LOGS.MESSAGE;
+  DECLARE RAISED_LG001 BOOLEAN DEFAULT FALSE; -- Just one ROOT.
+  DECLARE CONTINUE HANDLER FOR SQLSTATE 'LG001'
+    SET RAISED_LG001 = TRUE;
+
+  SET EXPECTED = 'TRUE';
+  SET CASCADE = VAL_C_57;
+  CALL LOGGING(1, 1, CASCADE);
+
+  CALL DB2UNIT.ASSERT_BOOLEAN_TRUE('Test08: Limit passed to ROOT with fatal',
+    RAISED_LG001);
+
+  SELECT 'TRUE' INTO ACTUAL
+    FROM LOGS
+    WHERE MESSAGE LIKE 'LG001. Cascade call limit achieved, for FATAL: (0) '
+    || 'Cascade call for "LOGGING" enters with %'
+    AND DATE = (SELECT MAX(DATE) FROM LOGDATA.LOGS);
+
+  CALL DB2UNIT.ASSERT_STRING_EQUALS('Test08: Limit passed to ROOT with fatal',
+    EXPECTED, ACTUAL);
+  DELETE FROM LOGS
+    WHERE MESSAGE LIKE 'LG001. Cascade call limit achieve, for %';
+ END @
+
+-- Test09: Limit passed logging to ROOT with error.
+CREATE OR REPLACE PROCEDURE TEST_09C()
+ BEGIN
+  DECLARE EXPECTED ANCHOR DATA TYPE TO LOGDATA.LOGS.MESSAGE;
+  DECLARE CASCADE SMALLINT; -- Cascade calls.
+  DECLARE ACTUAL ANCHOR DATA TYPE TO LOGDATA.LOGS.MESSAGE;
+  DECLARE RAISED_LG001 BOOLEAN DEFAULT FALSE; -- Just one ROOT.
+  DECLARE CONTINUE HANDLER FOR SQLSTATE 'LG001'
+    SET RAISED_LG001 = TRUE;
+
+  SET EXPECTED = 'TRUE';
+  SET CASCADE = VAL_C_57;
+  CALL LOGGING(1, 2, CASCADE);
+
+  CALL DB2UNIT.ASSERT_BOOLEAN_TRUE('Test09: Limit passed to ROOT with error',
+    RAISED_LG001);
+
+  SELECT 'TRUE' INTO ACTUAL
+    FROM LOGS
+    WHERE MESSAGE LIKE 'LG001. Cascade call limit achieved, for ERROR: (0) '
+    || 'Cascade call for "LOGGING" en%'
+    AND DATE = (SELECT MAX(DATE) FROM LOGDATA.LOGS);
+
+  CALL DB2UNIT.ASSERT_STRING_EQUALS('Test09: Limit passed to ROOT with error',
+    EXPECTED, ACTUAL);
+--  DELETE FROM LOGS
+--    WHERE MESSAGE LIKE 'LG001. Cascade call limit achieve, for %';
+ END @
+
+-- Test10: Limit passed logging to ROOT with warn.
+CREATE OR REPLACE PROCEDURE TEST_10C()
+ BEGIN
+  DECLARE EXPECTED ANCHOR DATA TYPE TO LOGDATA.LOGS.MESSAGE;
+  DECLARE CASCADE SMALLINT; -- Cascade calls.
+  DECLARE ACTUAL ANCHOR DATA TYPE TO LOGDATA.LOGS.MESSAGE;
+  DECLARE RAISED_LG001 BOOLEAN DEFAULT FALSE; -- Just one ROOT.
+  DECLARE CONTINUE HANDLER FOR SQLSTATE 'LG001'
+    SET RAISED_LG001 = TRUE;
+
+  SET EXPECTED = 'TRUE';
+  SET CASCADE = VAL_C_57;
   CALL LOGGING(1, 3, CASCADE);
 
-  CALL DB2UNIT.ASSERT_BOOLEAN_TRUE('Test11: Limit passed to ROOT with warn',
+  CALL DB2UNIT.ASSERT_BOOLEAN_TRUE('Test10: Limit passed to ROOT with warn',
     RAISED_LG001);
 
   SELECT 'TRUE' INTO ACTUAL

-- Test fixtures
CREATE OR REPLACE PROCEDURE ONE_TIME_SETUP()
 BEGIN
  DELETE FROM LOGDATA.CONF_LOGGERS WHERE LOGGER_ID <> 0;
  UPDATE LOGDATA.CONF_LOGGERS
    SET LEVEL_ID = 5
    WHERE LOGGER_ID = 0;
 END @

CREATE OR REPLACE PROCEDURE SETUP()
 BEGIN
 DELETE FROM LOGS;
  -- Empty
 END @


    BEGIN END;

  SET EXPECTED = 'TRUE';
  SET CASCADE = VAL_A_55_56;
  CALL LOGGING(1, 1, CASCADE);
  SELECT 'TRUE' INTO ACTUAL
    FROM LOGS
    WHERE MESSAGE = 'LG001. Cascade call limit achieved, for LOG: Cascade call '
    || 'for "LOGGING" enters with ' || CASCADE
    AND DATE = (SELECT MAX(DATE) FROM LOGDATA.LOGS);

  CALL DB2UNIT.ASSERT_STRING_EQUALS('Test05: Limit logging to ROOT 60',
    EXPECTED, ACTUAL);
 END @

-- Test06: Limit logging to ROOT 56 - 57.
CREATE OR REPLACE PROCEDURE TEST_06A()
 BEGIN
  DECLARE EXPECTED ANCHOR DATA TYPE TO LOGDATA.LOGS.MESSAGE;
  DECLARE CASCADE SMALLINT; -- Cascade calls.
  DECLARE ACTUAL ANCHOR DATA TYPE TO LOGDATA.LOGS.MESSAGE;
  DECLARE CONTINUE HANDLER FOR SQLSTATE 'LG001'
    BEGIN END;

  SET EXPECTED = 'TRUE';
  SET CASCADE = VAL_A_55_56;
  CALL LOGGING(1, 1, CASCADE);
  SELECT 'TRUE' INTO ACTUAL
    FROM LOGS
    WHERE MESSAGE = 'LG001. Cascade call limit achieved, for LOG: Cascade call '
    || 'for "LOGGING" enters with ' || CASCADE
    AND DATE = (SELECT MAX(DATE) FROM LOGDATA.LOGS);

  CALL DB2UNIT.ASSERT_STRING_EQUALS('Test06: Limit logging to ROOT 61',
    EXPECTED, ACTUAL);
 END @

-- Test07: Limit achieved logging to ROOT with warn.
CREATE OR REPLACE PROCEDURE TEST_08B()
 BEGIN
  DECLARE EXPECTED ANCHOR DATA TYPE TO LOGDATA.LOGS.MESSAGE;
  DECLARE CASCADE SMALLINT; -- Cascade calls.
  DECLARE ACTUAL ANCHOR DATA TYPE TO LOGDATA.LOGS.MESSAGE;
  DECLARE RAISED_LG001 BOOLEAN DEFAULT FALSE; -- Just one ROOT.
  DECLARE CONTINUE HANDLER FOR SQLSTATE 'LG001'
    SET RAISED_LG001 = TRUE;

  SET CASCADE = VAL_B_55_57;
  CALL LOGGING(1, 3, CASCADE);

  CALL DB2UNIT.ASSERT_BOOLEAN_TRUE('Test07: Limit achieved to ROOT with warn',
    RAISED_LG001);

  SET RAISED_LG001 = FALSE;
