우선 오라클 10g jdbc driver의 특징 중 하나인  Fast Connection Fail-Over에 대한 이야기다. 

출처는 다음과 같다. 

http://download.oracle.com/docs/cd/B19306_01/java.102/b14355/fstconfo.htm#CIHJBFhttp://www.oracle.com/technology/software/tech/java/sqlj_jdbc/htdocs/jdbc_readme101020.html

1.   10g jdbc driver  특징

A.     Jdbc 3.0, j2ee 1.3 스펙 지원

                i.         Oracle 9ijdbc 3.0 지원

B.     Named Parameters in CallableStatement and PreparedStatement

C.     New Ref interface and Datalink

D.     J2EE Connector Architecture Resource Adapter

E.      Connection Pooling: see Implicit Connection Caching and Fast Connection Fail-Over

F.      Satement Pooling

G.     BLOB and CLOB update


Fast Connection Fail-Over입니다. RAC용이네요. 사용은 아래와 같이 메소드를 호출해야 한다고 하네요.

 

DB Client는 이렇게..

ods.setConnectionCachingEnabled(true);

ods.setFastConnectionFailoverEnabled(true):

 

DB Serverconnection cache, ONS(Oracle Notification Service) 사용하도록 미리 설정을 해야 하

 

RAC랑 연동할 수 있는 구조라고 합니다. FCF connection을 캐시하고 있다가 오라클 DB down 이 된 것을 dectection하고, 깨끗이 종료된 session을 정리 한다고 합니다. 그리고, 로드 밸런스 및 적절하기 리퀘스트를 분산시킨다고 적혀 있습니다.

DB에서 Application Event를 날려주는 모델입니다.

밑에 동영상보면, 저희가 오늘 하는 테스트랑 비슷하게 하네요.

 

원리

FCF를 사용하면, connection을 캐시에 저장에 저장합니다. 어떤 db RAC이벤트를 생성하고 JDBC에 연결된 JVM에 전달이 됩니다.

JVM의 데몬 쓰레드가 RAC 이벤트를 받고, Connection Cache Manager에 전달한다고 합니다. JVM에서는 connection을 정리하고 다른 node로 접속 시도를 하게 된다고 하네요.

Posted by '김용환'
,