자동으로 실행하는 프로그램을 만들었는데, 오라클 예외가 발생하였는데도 연결이 끊어진 상태로 계속 실행하는 문제가 발생하였어요. 그리하여 특정 오류가 발생하였을 때에는 프로그램을 재시작 하려고 합니다.
오류 코드 ORA-06508과 ORA-04068는 다음과 같은 상황에서 발생합니다:
- ORA-06508: 호출 중인 PL/SQL 프로그램 단위를 찾을 수 없을 때 발생하는 오류입니다. 보통 패키지나 프로시저가 컴파일되지 않았거나, 접근할 수 없을 때 나타납니다.
- ORA-04068: 패키지의 기존 상태가 버려졌을 때 발생하는 오류입니다. 보통 패키지의 상태가 손상되었거나 재컴파일되었을 때 발생합니다.
try
{
//
}
catch (Exception ex)
{
if (ex is OracleException oe)
{
if (oe.Code == 6508 || oe.Code == 4068)
{
//Program.Restart();
}
}
throw ex;
}
위 코드에서 핵심은 OracleException의 코드가 6508 또는 4068일 때, 프로그램을 재실행하도록 하는 부분입니다. OracleException.Code 는 반환값이 정수형이기에 06508 같은 경우, 6508로 조건을 설정하면 된답니다.
