Resumable Statements – Introduzida no 9iR1, esta funcionalidade permite que, durante um processamento (basicamente N transações) não seja inteiramente perdida após algum erro, como um clássico de faltar espaço no tablespace :):)
Esta feature permite que quando haja um erro relacionado a espaço (falta de espaço, limite de quota e etc), a transação que esteja em runtime possa continuar, sem efectuar rollback, assim que o problema seja ultrapassado
Suporta as seguintes situações:
- Queries
- DML Statements
- SQL*Loader operations
- Import operations
- DDL statements
Teste que realizei:
- ALTER SESSION ENABLE RESUMABLE NAME ‘VASCO’ TIMEOUT 3600;
- Inicio das transações;
- Erro ORA-01653 e transação suspensa;
- Após a mensagem de erro, expandi o tablespace;
- E a transação continuou do ponto em que abortou;
No final vemos a mensagem “statement in resumable session ‘VASCO’ was resumed” ….
A view DBA_RESUMABLE contém as informações necessárias para acompanhar as sessões que utilizam esta funcionalidade:
USER_ID – User who own this resumable session
SESSION_ID – Session ID of this resumable session
INSTANCE_ID – Instance ID of this resumable session
COORD_INSTANCE_ID – Instance number of parallel query coordinator
COORD_SESSION_ID – Session number of parallel query coordinator
STATUS – Status of this resumable session
TIMEOUT – Timeout of this resumable session
START_TIME – Start time of the current transaction
SUSPEND_TIME – Suspend time of the current statement
RESUME_TIME – Resume time of the current statement
NAME VARCHAR2 – Name of this resumable session
SQL_TEXT – The current SQL text
ERROR_NUMBER – The current error number
ERROR_PARAMETER1 – The 1st parameter to the current error message
ERROR_PARAMETER2 – The 2nd parameter to the current error message
ERROR_PARAMETER3 – The 3rd parameter to the current error message
ERROR_PARAMETER4 – The 4th parameter to the current error message
ERROR_PARAMETER5 – The 5th parameter to the current error message
ERROR_MSG – The current error message
Saudações Vascaínas….