Informix를 위한 데이터 소스 최소 필수 설정
이러한 특성은 JDBC 드라이버 구현에 대한 데이터베이스 공급업체 요구사항에 따라 달라집니다. 사용자가 구성하는 데이터 소스마다 적합한 특성을 설정해야 합니다. 이들 설정은 Informix® 데이터 소스를 위한 것입니다.
- Informix JDBC
드라이버
Informix JDBC 드라이버는 Informix 데이터베이스에 대한 JDBC 액세스를 제공하는 유형 4 JDBC 드라이버입니다.
Informix JDBC 드라이버는 1단계 데이터 소스를 지원합니다.
다음 JDBC 드라이버 파일이 필요합니다.com.informix.jdbcx.IfxConnectionPoolDataSource
다음 DataStoreHelper 클래스가 필요합니다.ifxjdbc.jar ifxjdbcx.jar
유효한 인증 별명이 필요합니다.com.ibm.websphere.rsadapter.InformixDataStoreHelper
다음 특성이 필요합니다.- serverName
서버의 Informix 인스턴스의 이름입니다. 예: ol_myserver.
- portNumber
인스턴스가 청취하는 포트입니다. 예: 1526.
- ifxIFXHOST
연결하려는 Informix 데이터베이스를 실행 중인 시스템의 호스트 이름 또는 IP 주소입니다. 예: myserver.mydomain.com.
IPv6를 지원하려면, AIX 및 Solaris에서는 수정팩 1을 포함하는 IBM Informix Dynamic Server 10.00이 IPv6 표준을 지원합니다. 이러한 Informix 릴리스 중 하나와 WebSphere Application Server의 연결에서 IPv6을 사용 가능하게 하려면 ifxIFXHOST 특성에 대한 전체 IPv6 호스트 이름을 입력하십시오.
- databaseName
데이터 소스가 연결을 확보하려는 데이터베이스의 이름입니다. 예: Sample.
- informixLockModeWait
필수는 아니지만 이 특성을 통해 Informix 소프트웨어가 잠길 때까지 대기하는 시간(초)을 설정할 수 있습니다. 기본적으로, Informix 코드는 즉시 잠금되지 않는 경우 예외를 발생시킵니다(예: 2).
- serverName
- Informix JDBC 드라이버(XA)
Informix JDBC 드라이버(XA)는 Informix 데이터베이스에 대한 XA 호환 JDBC 액세스를 제공하는 유형 4 JDBC 드라이버입니다.
Informix JDBC 드라이버(XA)는 다음 2단계 데이터 소스를 지원합니다.
다음 JDBC 드라이버 파일이 필요합니다.com.informix.jdbcx.IfxXADataSource
ifxjdbc.jar ifxjdbcx.jar
SQLJ를 사용하기 위해 이 제공자는 조회를 위해 SQLJ를 사용할 계획인 경우 드라이버 파일 ifxsqlj.jar도 필요합니다.
다음 DataStoreHelper 클래스가 필요합니다.com.ibm.websphere.rsadapter.InformixDataStoreHelper
유효한 인증 별명이 필요합니다.
다음 특성이 필요합니다.- serverName
서버의 Informix 인스턴스의 이름입니다. 예: ol_myserver.
- portNumber
인스턴스가 청취하는 포트입니다. 예: 1526.
- ifxIFXHOST
연결하려는 Informix 데이터베이스를 실행 중인 시스템의 호스트 이름 또는 IP 주소입니다. 예: myserver.mydomain.com.
IPv6를 지원하려면, AIX 및 Solaris에서는 수정팩 1을 포함하는 IBM Informix Dynamic Server 10.00이 IPv6 표준을 지원합니다. 이러한 Informix 릴리스 중 하나와 WebSphere Application Server의 연결에서 IPv6을 사용 가능하게 하려면 ifxIFXHOST 특성에 대한 전체 IPv6 호스트 이름을 입력하십시오.
- databaseName
데이터 소스가 연결을 확보하려는 데이터베이스의 이름입니다. 예: Sample.
- ifxIFX_XASPEC
여러 사용자가 동일한 데이터베이스에 액세스하는 경우 이 특성을 활성화하십시오. 이 특성을 활성화하면 동일한 글로벌 트랜잭션 ID에서 강력한 XA 트랜잭션 커플링을 강제 실행하므로 트랜잭션 간에 잠금 공간을 공유해야 합니다.
이러한 매개변수를 사용하면 다중 클라이언트 요청에서 트랜잭션 관리 오류가 발생하는 것을 막을 수 있습니다.
Y 또는 y의 값을 지정하여 ifxIFX_XASPEC 특성을 켜십시오. 설정은 대소문자를 구분하지 않기 때문에 어느 문자든 작동합니다. N 또는 n의 값을 지정하여 특성을 끄십시오. WebSphere Application Server는 다른 값은 모두 무시합니다. 이 특성에 대한 사용자 설정이 Informix 데이터베이스 시스템 설정을 대체합니다.
- informixLockModeWait
필수는 아니지만 이 특성을 통해 Informix 소프트웨어가 잠길 때까지 대기하는 시간(초)을 설정할 수 있습니다. 기본적으로, Informix 코드는 즉시 잠금되지 않는 경우 예외를 발생시킵니다(예: 2).
- serverName
- IBM JCC를 사용하는 Informix
드라이버
Informix IBM JCC 드라이버는 JDBC 및 SQLJ용 IBM Data Server Driver를 사용하는 Informix를 위한 1단계 커미트 제공자입니다. IBM Data Server Driver는 JDBC 4.0을 준수하며 차세대 Universal JCC 드라이버입니다.
이 제공자는 버전 7.0 이상의 노드에서 구성할 수 있습니다.
다음 1단계 데이터 소스가 지원됩니다.com.ibm.db2.jcc.DB2ConnectionPoolDataSource
다음 JDBC 드라이버 파일이 필요합니다.
다음 DataStoreHelper 클래스도 필요합니다.db2jcc4.jar db2jcc_license_cu.jar db2jcc_license_cisuz.jar
com.ibm.websphere.rsadapter.InformixJccDataStoreHelper
이 제공자는 유효한 인증 별명이 필요합니다.
다음 특성이 필수입니다.- serverName - Informix 서버의 TCP/IP 주소나 호스트 이름입니다.
- portNumber - Informix 서버가 상주하는 TCP/IP 포트 번호입니다.
- databaseName - 데이터 소스가 연결을 확보하는 데이터베이스의 이름(예: Sample)
- IBM JCC 드라이버(XA)를 사용하는 Informix
Informix IBM JCC 드라이버(XA)는 JDBC 및 SQLJ용 IBM Data Server Driver를 사용하는 Informix를 위한 2단계 커미트 제공자입니다. IBM Data Server Driver는 JDBC 4.0을 준수하며 차세대 Universal JCC 드라이버입니다.
이 제공자는 버전 7.0 이상의 노드에서 구성할 수 있습니다.
다음 2단계 데이터 소스가 지원됩니다.com.ibm.db2.jcc.DB2XADataSource
다음 JDBC 드라이버 파일이 필요합니다.
다음 DataStoreHelper 클래스도 필요합니다.db2jcc4.jar db2jcc_license_cu.jar db2jcc_license_cisuz.jar
com.ibm.websphere.rsadapter.InformixJccDataStoreHelper
문제점 방지: 조회를 위해 SQLJ를 사용할 계획인 경우, 이 제공자는 드라이버 파일 ifxsqlj.jar도 필요합니다. gotcha
이 제공자는 유효한 인증 별명이 필요합니다.
다음 특성이 필수입니다.- serverName - Informix 서버의 TCP/IP 주소나 호스트 이름입니다.
- portNumber - Informix 서버가 상주하는 TCP/IP 포트 번호입니다.
- databaseName - 데이터 소스가 연결을 확보하는 데이터베이스의 이름(예: Sample)
문제점 방지: SQL문이 글로벌 트랜잭션 대신 로컬 트랜잭션에서 실행되는 경우 ANSI 데이터베이스에서 Informix XA 데이터 소스를 사용할 수 없습니다. 이 시나리오는 애플리케이션 코드 또는 스케줄러 같은 애플리케이션 서버의 컴포넌트 안에서 발생할 수 있습니다. 이 문제점이 발생하는 경우 다음 메시지가 로깅될 수 있습니다.
gotchajava.sql.SQLException: Already in transaction. at com.informix.util.IfxErrMsg.getSQLException(IfxErrMsg.java:398) at com.informix.jdbc.IfxSqli.a(IfxSqli.java:3247) at com.informix.jdbc.IfxSqli.E(IfxSqli.java:3556) at com.informix.jdbc.IfxSqli.dispatchMsg(IfxSqli.java:2382) at com.informix.jdbcx.IfxXASqli.receiveMessage(IfxXASqli.java:120) at com.informix.jdbc.IfxSqli.X(IfxSqli.java:7926) at com.informix.jdbc.IfxSqli.a(IfxSqli.java:854) at com.informix.jdbc.IfxSqli.executeCommand(IfxSqli.java:749) at com.informix.jdbc.IfxResultSet.b(IfxResultSet.java:293) at com.informix.jdbc.IfxStatement.c(IfxStatement.java:1269) at com.informix.jdbc.IfxStatement.b(IfxStatement.java:423) at com.informix.jdbc.IfxStatement.executeUpdate(IfxStatement.java:277) at com.informix.jdbc.IfxSqliConnect.setTransactionIsolation(IfxSqliConnect.java:2565)
이 문제점을 방지하려면 다음을 수행하십시오.- 비ANSI 데이터베이스로 전환하십시오.
- 오류가 애플리케이션에 의해 트리거되는 경우, 항상 글로벌 트랜잭션에서 실행하도록 애플리케이션을 업데이트하십시오.
- IBM DB2 JDBC 유니버셜 드라이버를 사용하는 Informix
Informix JDBC 드라이버는 JDBC 3.0을 준수하고 Informix 데이터베이스에 대한 액세스를 제공하는 유형 4 JDBC 드라이버입니다.
이 제공자는 다음 1단계 데이터 소스를 지원합니다.com.ibm.db2.jcc.DB2ConnectionPoolDataSource
다음 JDBC 드라이버 파일이 필요합니다.
다음 DataStoreHelper 클래스도 필요합니다.db2jcc.jar db2jcc_license_cu.jar db2jcc_license_cisuz.jar
com.ibm.websphere.rsadapter.InformixJccDataStoreHelper
이 제공자는 유효한 인증 별명이 필요합니다.
다음 특성이 필수입니다.- serverName - Informix 서버의 TCP/IP 주소나 호스트 이름입니다.
- portNumber - Informix 서버가 상주하는 TCP/IP 포트 번호입니다.
- databaseName - 데이터 소스가 연결을 확보하는 데이터베이스의 이름(예: Sample)
- IBM DB2 JDBC 유니버셜 드라이버를 사용하는
Informix(XA)
JDBC 드라이버를 사용하는 Informix(XA)는 JDBC 3.0을 준수하고 Informix 데이터베이스에 대한 XA 준수 JDBC 액세스를 제공하는 유형 4 JDBC 드라이버입니다.
이 제공자는 다음 2단계 데이터 소스를 지원합니다.com.ibm.db2.jcc.DB2XADataSource
다음 JDBC 드라이버 파일이 필요합니다.
다음 DataStoreHelper 클래스도 필요합니다.db2jcc.jar db2jcc_license_cu.jar db2jcc_license_cisuz.jar
com.ibm.websphere.rsadapter.InformixJccDataStoreHelper
이 제공자는 유효한 인증 별명이 필요합니다.
다음 특성이 필수입니다.- serverName - Informix 서버의 TCP/IP 주소나 호스트 이름입니다.
- portNumber - Informix 서버가 상주하는 TCP/IP 포트 번호입니다.
- databaseName - 데이터 소스가 연결을 확보하는 데이터베이스의 이름(예: Sample)
문제점 방지: SQL문이 글로벌 트랜잭션 대신 로컬 트랜잭션에서 실행되는 경우 ANSI 데이터베이스에서 Informix XA 데이터 소스를 사용할 수 없습니다. 이 시나리오는 애플리케이션 코드 또는 스케줄러 같은 애플리케이션 서버의 컴포넌트 안에서 발생할 수 있습니다. 이 문제점이 발생하는 경우 다음 메시지가 로깅될 수 있습니다.
gotchajava.sql.SQLException: Already in transaction. at com.informix.util.IfxErrMsg.getSQLException(IfxErrMsg.java:398) at com.informix.jdbc.IfxSqli.a(IfxSqli.java:3247) at com.informix.jdbc.IfxSqli.E(IfxSqli.java:3556) at com.informix.jdbc.IfxSqli.dispatchMsg(IfxSqli.java:2382) at com.informix.jdbcx.IfxXASqli.receiveMessage(IfxXASqli.java:120) at com.informix.jdbc.IfxSqli.X(IfxSqli.java:7926) at com.informix.jdbc.IfxSqli.a(IfxSqli.java:854) at com.informix.jdbc.IfxSqli.executeCommand(IfxSqli.java:749) at com.informix.jdbc.IfxResultSet.b(IfxResultSet.java:293) at com.informix.jdbc.IfxStatement.c(IfxStatement.java:1269) at com.informix.jdbc.IfxStatement.b(IfxStatement.java:423) at com.informix.jdbc.IfxStatement.executeUpdate(IfxStatement.java:277) at com.informix.jdbc.IfxSqliConnect.setTransactionIsolation(IfxSqliConnect.java:2565)