WebLogic ~ Oracle RAC를 연동하는 data source에 대한 정리글이다.
WebLogic에서 자체적으로 RAC 드라이버를 사용할 수도 있긴 하지만, 여기서 다루고자 하는 것은 MDS(Multi-DataSource)와 AGL(Active GridLink-DataSource)의 차이점이다.
Generic Data Source Handling for Oracle RAC Outages It is possible to use a generic data source with Oracle RAC with some limitations. These limitations complicate transaction processing, monitoring, and graceful handling of RAC outages. Note: Oracle recommends using MDS or AGL with an Oracle RAC database. See Using Active GridLink Data Sources or Using Multi Data Sources with Oracle RAC. The following limitations are due to WebLogic Server instances not being aware of the RAC instances associated with the connections in the pool: A generic data source does not have the ability to disable a single instance in the pool that a MDS or AGL data source provides. If one of the RAC instances goes down (planned or unplanned), the data source tests all connections in the pool for the down instance, disabling them individually. In addition to more overhead and application delays, the pool sees multiple failures which cause the entire pool to be disabled. To prevent the pool from being disabled, set the value of Count Of Test Failures Till Flush to 0. See the JDBC Data Source: Configuration: Connection Pool page in the WebLogic Server Administration Console or see "JDBCConnectionPoolParamsBean" in the MBean Reference for Oracle WebLogic Server. JTA or global transactions should not be used with this configuration. Because WebLogic Server is not aware of the RAC instances, it cannot guarantee transaction affinity. This is a problem if the transaction spans multiple servers or if a failure occurs such that another connection is used to complete the transaction. Since the additional connections required to complete the transaction may not be within the same RAC instance, transaction processing may fail. It is not possible to monitor the connections based on the RAC instances. Multi Data Source can also be used with RAC, but Gridlink is easier to configure and more robust. |
MOS 2421861.1 문서에서 가져온 글이다.
확인해보면 MDS나 AGL 모두 RAC에서 사용할 수 있는데 Oracle에서는 AGL을 더욱 권고하고 있다.
MDS는 일반 데이터소스들을 연결하는 멀티 데이터소스 개념이니 이해가 되는데, AGL이 무엇인지 확인이 필요하다.
AGL은 weblogic 12c, Oracle RAC version 11.1.0.6 이상부터 사용이 가능한 데이터소스이며, Oracle RAC 환경에서만 사용이 가능하다.
AGL의 장점 중 하나는 DB의 ONS (노드 간의 상태 체크하는 ONS Demon process)를 활용하여 RAC 인스턴스의 상태 변경에 응답하는 이벤트 기반 데이터 소스라는 점이다.
AGL의 경우 통합 솔루션으로 Data Guard를 완벽하게 지원하며. Oracle Connection Pool로 구현이 가능하다.
(참조 : https://blog.naver.com/kletgdgo/222579084759)
======================================================================
※ 구성 시 확인해야 할 점
- 위와 같이 호스트 및 포트를 개별적으로 작성하여 추가해줄 수 있다
- URL에 대한 확인과 리스너 테스트를 각각 또는 모든 리스너 테스트를 할 수 있다.
- Oracle FAN(Fast Application Notification) enable에 대한 체크 (JVM 옵션으로도 활성화/비활성화 가능)
- ONS 정보 기입 (ONS client를 사용하는 경우)
=> 특이 사항 이슈
weblogic.application.ModuleException : Oracle.ons.NoServersAvailable : Subscription time out이 나타나는 경우
=> ONS 포트에 대한 방화벽 등의 이슈 확인
'Oracle > Weblogic' 카테고리의 다른 글
RAC datasource (TAF, SCAN IP) (0) | 2023.02.27 |
---|---|
JMS in weblogic (0) | 2023.01.04 |
WebLogic state Admin (0) | 2022.12.14 |
WebLogic Cluster 관련 정리 글 (0) | 2022.11.04 |
Admin console 접속 시 j_security_check (1) | 2022.10.13 |