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파일을 구성하여 예외 처리를 해결해야 한다.
'C#' 카테고리의 다른 글
.NET Framework와 .Net 8.0과의 차이점, 버전별 지원 상태 (0) | 2025.01.18 |
---|---|
코드 조각 자동으로 편하게 만들기 (with Snippet Designer) (1) | 2024.09.16 |
Visual Studio 2022 Community 설치 방법 (C# 사용) (0) | 2024.09.15 |
Visual Studio 2019 vs Visual Studio 2022 (0) | 2024.07.20 |
Visual Studio 관리자 권한 실행 설정 (0) | 2024.04.15 |