Avec le "resumable timeout", vous pouvez, au niveau de la session ou de la base de données, déterminer le nombre de secondes à attendre avant que le script/programme ne sorte en erreur si aucune action n'est faite pour corriger le problème. Vous serez averti dans l'alert log d'Oracle du manque d'espace pour un tablespace particulier. Ainsi, à la lecture du message, vous agrandissez le tablespace et quelques secondes plus tard, votre script/programme continuera son exécution.
L'utilisateur doit pouvoir exécuter le package dbms_resumable:
grant execute on dbms_resumable to ORACLE;Enuite, dans sa session, on modifie le paramètre pour avoir un délais de une heure (3600 secondes) et on donne un nom à ce timeout:
ALTER SESSION ENABLE RESUMABLE TIMEOUT 3600 NAME 'TEST_ORACLE';On peut voir les détails dans la vue DBA_RESUMABLE:
20:12:47 ORACLE@orcl > desc dba_resumable
Nom NULL ? Type
----------------------------------------------------- -------- ----------------
USER_ID NUMBER
SESSION_ID NUMBER
INSTANCE_ID NUMBER
COORD_INSTANCE_ID NUMBER
COORD_SESSION_ID NUMBER
STATUS VARCHAR2(9)
TIMEOUT NUMBER
START_TIME VARCHAR2(20)
SUSPEND_TIME VARCHAR2(20)
RESUME_TIME VARCHAR2(20)
NAME VARCHAR2(4000)
SQL_TEXT VARCHAR2(1000)
ERROR_NUMBER NUMBER
ERROR_PARAMETER1 VARCHAR2(80)
ERROR_PARAMETER2 VARCHAR2(80)
ERROR_PARAMETER3 VARCHAR2(80)
ERROR_PARAMETER4 VARCHAR2(80)
ERROR_PARAMETER5 VARCHAR2(80)
ERROR_MSG VARCHAR2(4000)
20:12:55 ORACLE@orcl > select user_id, status, timeout from dba_resumable;
USER_ID STATUS TIMEOUT
---------- --------- ----------
90 NORMAL 3600
20:13:13 ORACLE@orcl >
Pour plus d'informations sur les autres utilisations du "resumable timeout", consultez la documentation officielle.

