2011-11-11 8 views
0

웹 서비스 (하위 : org.apache.axis2.client.Stub)에 연결하기 위해 org.apache.commons.pool.impl.GenericObjectPool의 하위 객체를 사용하고 있습니다.GenericObjectPool에서 만료 된 세션

풀을 설정하는 방법, 만료 된 세션이 자동으로 풀에서 제거됩니까? 메서드 borrowConnection()은 항상 유효한 세션을 반환해야합니다.

수영장 개체의 일부 매개 변수를 사용해야 만 연결이 끊어 지거나 자동 삭제 연결에 대한 시간 초과가 설정되거나 서버 측에서 세션이 만료되었는지 확인하는 방법이 있습니까? 지금까지 내가 ... 내 웹 서비스가 세션의 유효성을 확인하기 위해 저렴한 방법을 제공하지 않습니다 알고

내 코드 :

SDConnection sd 
    = (SDConnection)connector.getConnectionManager().borrowConnection(); 

sd.someServiceMethod(); 

someServiceMethod() 호출은 OK이지만, 비 활동 시간 후 내가 얻을 :

AxisFault : SID는

답변

2

당신이 validateObject 방법을 조사 했 시간 초과? 여기에 조건을 입력하고 false을 반환하면 풀 안의 개체를 유효하지 않은 것으로 표시 할 수 있습니다.

+0

이제 BasePoolableObjectFactory 클래스의 validateObject 메서드를 재정의합니다. 세션 유효성 테스트를 위해 나는 "cheap"로 표시된 개발자가 웹 서비스 작업을 사용하고 테스트 또는 세션 유지에 사용할 수 있습니다. genericObjectPoolConnectionManager.setTestOnBorrow (true);를 설정해야합니다. – Martin