728x90
반응형
SMALL
C#에서 Oracle.ManagedDataAccess.Client를 사용하고 있는데,
C#에서 프로그램 실행 시, 아래와 같은 예외가 발생하는 것을 볼 수 있었다.
'OracleInternal.NotificationServices.ONSException'(Oracle.ManagedDataAccess.dll)
프로그램에는 크게 지장은 없는 거 같지만 거슬리기에 예외 안 나게 처리하는 방법을 알아보도록 하자.

 

■ 방법 1 - ConnectionString을 바꾸는 방법

1. 아래 문자열 맨 뒤에 load balancing=false; ha events=false; 를 추가한다.

  - "Data Source = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = x.x.x.x)(PORT = xxxx)) (CONNECT_DATA = (SERVER =

      DEDICATED) (SERVICE_NAME = xxx))); User Id = xxx; Password = xxx; load balancing=false; ha events=false;"

 

■ 방법 2 - 소스에서 직접 추가

1. Connection 하는 소스 부분에 아래 소스를 추가한다. (하여튼 최종 접속 전에만 코딩해 주면 된다.)

  - OracleConfiguration.HAEvents = false;

  - OracleConfiguration.LoadBalancing = false;

 

■ ONS란?

1. ONS(Oracle Notification Services)는 Oracle Real Application Clusters(RAC) 및 Data Guard 환경에서 이벤트를 전달하는 기능이다. 

    즉, 데이터베이스 노드의 상태를 모니터링하여 장애 조치(Failover)나 상태 변경을 빠르게 알리기 위한 푸시 알림 시스템이다.

2. ONS를 사용하기 위해서는 ons.conf 파일을 구성해야 한다.

 

■ 예외 원인

1. Oracle ONS(Notification Services)가 정상적으로 구성되지 않았거나 필요하지 않은데 로드되었기 때문이다.

2. 단일 데이터베이스와 같은 경우, 위와 같이 처리하고, 그렇지 않으면 ons.conf파일을 구성하여 예외 처리를 해결해야 한다.

728x90
반응형
LIST

+ Recent posts