이 절에서는 번들로 제공되는 Sun JDBC 드라이버와 관련된 알려진 문제점과 해결 방법을 설명합니다.
연결을 위해 원하는 격리 수준을 설정하려면 같은 격리 수준에 상응하는 연결 풀을 만들어야 합니다. 연결 풀 구성에 대한 자세한 내용은 Sun Java System Application Server Enterprise Edition 8.2 관리 설명서를 참조하십시오.
응용 프로그램이 하나의 트랜잭션에서 3000개가 넘는 PreparedStatement 객체를 생성하면 DB2에 다음 오류가 발생할 수 있습니다.
[sunm][DB2 JDBC Driver] No more available statements. Please recreate your package with a larger dynamicSections value.
연결 풀 정의에 다음 등록 정보를 추가하여 드라이버에서 더 큰 동적 섹션 값으로 DB2 패키지를 다시 바인드하도록 합니다.
createDefaultPackage=true replacePackage=true dynamicSections=1000
연결 풀 구성에 대한 자세한 내용은 Sun Java System Application Server Enterprise Edition 8.2 관리 설명서를 참조하십시오.
위의 PrepardStatement 오류와 관련하여 발생할 수 있는 다른 오류 메시지는 다음과 같습니다.
[sunm][DB2 JDBC Driver][DB2]Virtual storage or database resource is not available.
DB2 서버 구성 매개 변수 APPLHEAPSZ를 증가시킵니다. 권장 값은 4096입니다.
TRANSACTION_SERIALIZABLE 격리 수준 응용 프로그램에서 TRANSACTION_SERIALIZABLE 격리 수준을 사용하고 위에 제시한 매개 변수 중 하나를 사용하면 연결하는 동안 응용 프로그램이 중단될 수 있습니다.
연결을 위해 바람직한 격리 수준을 설정하려면 상응하는 연결 풀을 같은 격리 수준에 만들어야 합니다. 지침 사항은 Sun Java System Application Server Enterprise Edition 8.2 관리 설명서를 참조하십시오.
번들로 제공되는 Sybase Adaptive Server용 Sun 드라이버와 함께 TRANSACTION_SERIALIZABLE 격리 수준을 사용하는 응용 프로그램은 두 개의 트랜잭션이 병행하여 실행 중이고 그 중 하나가 롤백하면 준비된 명령문을 사용하여 업데이트할 경우 중단됩니다. 연결 롤백은 다음 메시지와 함께 실패하고 롤백한 연결은 더 이상 사용할 수 없습니다.
java.sql.SQLException:[sunm][Sybase JDBC Driver]Request cannot be submitted due to wire contention
Sybase Adaptive Server는 TRANSACTION_REPEATABLE_READ 격리 수준을 지원하지 않습니다. 그러나, DatabaseMetaData에 대해 쿼리를 실행하면 번들로 제공된 Sun 드라이버는 데이터베이스에서 이 격리 수준이 지원된다는 결과를 반환합니다. 이 격리 수준을 사용하는 응용 프로그램은 실패하게 됩니다.
번들로 제공되는 Sun 드라이버를 사용하는 응용 프로그램은 TRANSACTION_READ_UNCOMMITTED 격리 수준을 설정할 수 없습니다. 응용 프로그램은 첫 번째 DataBaseMetaData 액세스에서 다음과 같은 예외를 발생시킵니다.
java.sql.SQLException:[sunm][Sybase JDBC Driver][Sybase]The optimizer could not find a unique index which it could use to perform an isolation level 0 scan on table 'sybsystemprocs.dbo.spt_server_info'.
현재는 해결 방법이 없습니다.
SUN JDBC Oracle 데이터 소스(com.sun)를 사용할 때 JDBC 연결 풀에서 다음 등록 정보를 설정합니다. sql.jdbcx.oracle.OracleDataSource):
<property name="serverType" value="dedicated"/>
등록 정보 값은 Oracle 서버의 수신기가 구성된 방식에 따라 달라집니다. "공유" 모드로 구성되어 있으면 위 값을 "dedicated"로 변경해야 합니다.
CLASSPATH에 두 개 이상의 JDBC jar 파일이 있는 JDBC 10.2 드라이버에서 시작하는 경우 java.lang.SecurityException: Sealing violation exception이 발생할 수 있습니다.
Oracle의 자세한 설명은 다음 Oracle 문서 ID에 기록되어 있습니다.
주: 405446.1 주제: JDBC 드라이버 10.2는 Sealed JAR 파일을 사용하며 May Cause SecurityException Sealing Violation이 발생할 수 있습니다.
(Oracle 제안) CLASSPATH 는 하나의 JDBC 드라이버 JAR 파일만 포함하는지 확인하십시오.