지정된 시간(초) 이전에 실행이 완료되지 못하면 SQL(Structured Query Language)문이 인터럽트되도록 애플리케이션의 데이터 소스에 조회 제한시간을 구성할 수 있습니다.
시작하기 전에
이 태스크 정보
- webSphereDefaultQueryTimeout은 제한시간이 초과하기 전에 SQL문이 실행할 수 있는 시간(초)인 기본 조회 제한시간을 설정합니다. 이 기본값은syncQueryTimeoutWithTransactionTimeout 사용자 정의 특성이 사용된 경우 JTA(Java Transaction API) 트랜잭션 중에 대체됩니다.
- syncQueryTimeoutWithTransactionTimeout은 SQL문의 기본 조회 제한시간으로 JTA 트랜잭션에 남아 있는(있는 경우) 시간을 사용합니다.
- TM(Transaction Manager) 제한시간 설정을 기반으로 현재 JTA 트랜잭션에 남아 있는 시간 - syncQueryTimeoutWithTransactionTimeout
- 구성에 지정된 절대 시간(초) - webSphereDefaultQueryTimeout
프로시저
결과
예
다음 예는 데이터 소스 사용자 정의 특성 webSphereDefaultQueryTimeout = 20 및 syncQueryTimeoutWithTransactionTimeout = false를 설정한 영향을 설명합니다. webSphereDefaultQueryTimeout만 설정한 경우, JTA 트랜잭션 내에서 실행되는지 여부에 관계 없이 모든 명령문에 기본 제한시간 값이 사용됩니다.
애플리케이션 코드에서 java.sql.Statement.setQueryTimeout 인터페이스를 호출하여 언제든 명령문의 조회 제한시간을 대체할 수 있습니다. Question
Does the Data Server Driver for JDBC have a QueryTimeout property?
Cause
Unable to find query timeout property for the Data Server Driver for JDBC and SQLJ.
Answer
The Data Server Driver for JDBC and SQLJ does not support a QueryTimeout property. Developers must use the setQueryTimeout method on the java.sql.Statement object. However, the Data Server Driver for Type 4 connectivity does provide a property that will close the connection socket upon a hang or wait condition on socketRead() for a long running query.
blockingReadConnectionTimeout specifies the amount of time in seconds before a connection socket read times out. This property affects all requests that are sent to the datasource after a connection is successfully established. The default is 0, which means that there is no timeout.
Configure this property in the server.properties file:
Read timeout while reading from the socket. Timeout is in milliseconds.
If you are using Oracle data sources and are experiencing frequent timeouts, you can increase the value of this option by adding an entry to the server.properties file.
The default value is 600000 milliseconds.
oracle.jdbc.ReadTimeout=milliseconds
oracle.jdbc.ReadTimeout=900000
댓글 없음:
댓글 쓰기