Sun Java System Application Server Enterprise Edition 8.1 2005Q2 릴리스 노트

번들로 제공되는 Sun JDBC 드라이버

이 절에서는 번들로 제공되는 Sun JDBC 드라이버와 관련된 알려진 문제점과 해결 방법을 설명합니다.

버그 ID 

요약 

6165970 

번들로 제공되는 Microsoft SQL Server용 Sun 드라이버와 함께 TRANSACTION_SERIALIZABLE 격리 수준을 사용하는 응용 프로그램은 두 개의 트랜잭션이 병행하여 실행 중이고 그 중 하나가 롤백하면 준비된 명령문을 사용하여 업데이트할 경우 중단됩니다.

연결을 위해 원하는 격리 수준을 설정하려면 같은 격리 수준에 상응하는 연결 풀을 만들어야 합니다. 연결 풀 구성에 대한 자세한 내용은 관리 설명서를 참조하십시오. 

해결 방법

현재는 해결 방법이 없습니다. 

6170432 

PreparedStatement 에러

설명 1

응용 프로그램이 하나의 트랜잭션에서 3000개가 넘는 PreparedStatement 객체를 생성하면 DB2에 다음 오류가 발생할 수 있습니다.

[sunm][DB2 JDBC Driver] No more available statements. Please recreate your package with a larger dynamicSections value.

해결 방법 1

연결 풀 정의에 다음 등록 정보를 추가하여 드라이버에서 더 큰 동적 섹션 값으로 DB2 패키지를 다시 바인드하도록 합니다.  

createDefaultPackage=true replacePackage=true dynamicSections=1000

연결 풀 구성에 대한 자세한 내용은 관리 설명서를 참조하십시오.

설명 2

위의 PrepardStatement 오류와 관련하여 발생할 수 있는 다른 오류 메시지는 다음과 같습니다.

[sunm][DB2 JDBC Driver][DB2]Virtual storage or database resource is not available.

해결 방법 2

DB2 서버 구성 매개 변수 APPLHEAPSZ를 증가시킵니다. 권장 값은 4096입니다.

설명 3

TRANSACTION_SERIALIZABLE 격리 수준 응용 프로그램에서 TRANSACTION_SERIALIZABLE 격리 수준을 사용하고 위에 제시한 매개 변수 중 하나를 사용하면 연결하는 동안 응용 프로그램이 중단될 수 있습니다.

해결 방법 3

연결을 위해 바람직한 격리 수준을 설정하려면 상응하는 연결 풀을 같은 격리 수준에 만들어야 합니다. 자세한 내용은 관리 설명서를 참조하십시오.

6189199 

번들로 제공된 Sybase Adaptive Server용 Sun 드라이버의 격리 수준을 설정할 때 문제가 발생합니다. 

  • 번들로 제공되는 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'.

해결 방법

현재는 해결 방법이 없습니다. 

6247468 

Solaris 10과 Enterprise Linux 3.0에서는 Sun에서 번들로 제공하는 Oracle JDBC 드라이버로 연결을 만들 수 없습니다. 

해결 방법

SUN JDBC Oracle 데이터 소스(com.sun)를 사용할 때 JDBC 연결 풀에서 다음 등록 정보를 설정합니다. sql.jdbcx.oracle.OracleDataSource):

<property name="serverType" value="dedicated"/>

등록 정보 값은 Oracle 서버의 수신기가 구성된 방식에 따라 달라집니다. "공유" 모드로 구성되어 있으면 위 값을 "전용"으로 변경해야 합니다. 

6554602 

CLASSPATH에 두 개 이상의 JDBC jar 파일이 있는 JDBC 10.2 드라이버에서 시작하는 경우 java.lang.SecurityException: Sealing violation exception이 발생할 수 있습니다.

Oracle의 자세한 설명은 다음 Oracle 문서 ID에 기록되어 있습니다. 

주: 405446
주제: DBC Driver 10.2는 Sealed JAR 파일을 사용하며 Security
Exception Sealing Violation이 발생할 수 있습니다.

해결 방법

(Oracle 제안) CLASSPATH 는 하나의 JDBC 드라이버 JAR 파일만 포함하는지 확인하십시오.