2013-01-08 9 views
1

다음과 같이 JBOSS AS.Code에 구성된 데이터 소스에 대해 jndi 조회를 수행하고 있습니다.연결 풀에서 반환 된 연결 개체를 확인하는 방법은 무엇입니까?

initialContext = new InitialContext (props);

dataSource = (DataSource) initialContext.lookup (bundle.getString ("jndiName")));

연결 = dataSource.getConnection();

이 스 니펫은 servlet의 doPost에 있습니다. 또한 내가 안전하게 연결 개체를 사용 후

의 Connection.close()

를 호출하고 있습니다.

내 데이터 소스 설정 내가 최소 및 최대 풀을 지정했기 때문에, 때마다 내가 (datasource .getConnection() 호출에 의해 반환되는 동일한 연결 개체를 서블릿 요청을 항목 연결 풀링에 대한 이해 당으로

<min-pool-size>1</min-pool-size> 
<max-pool-size>1</max-pool-size> 

다음이 크기를 1로 설정하고 close를 호출해도 DB 연결이 완전히 닫히지 않음).

이제 어떻게 동일한 연결 개체가 반환되는지 확인합니까?

+1

왜 연결 개체를 확인 하시겠습니까? 개체를 로컬에서 캐시 한 다음 캐시 된 값을 확인하는 한 가지 방법. –

+0

매번 DB에 연결이 생성되지 않도록하십시오. 풀링을 사용할 수 있는지 여부를 확인할 수있는 방법이 없습니다. –

+1

1 가지 방법은 데이터베이스 서버가 얼마나 많은 연결이 만들어 졌는지 확인하는 것입니다. –

답변

0

실제로 동일한 연결인지 확신 할 수 없습니다. 데이터베이스와의 연결에 문제가있어 다른 연결을 만들어야했습니다. 왜 당신은 연결을 확인하고 싶습니까? 어쩌면 해시 값을 저장하고 비교할 수 있습니까?

+0

매번 DB에 연결이 생성되지 않도록하십시오. 풀링의 활성화 또는 비활성화 여부를 확인할 방법이 없습니다. –

+0

min-pool-size가 0으로 설정되면 풀링이 해제됩니까 ?? –

+0

그냥보고 싶으면 연결 풀링 도구 (아마도 DBCP를 사용하고있는 경우)에 대한 로깅을 켜고 로그에서 무슨 일이 일어나는지보십시오. – partlov

관련 문제