0

실행되는 애플리케이션은 Struts 2.0을 기반으로합니다. 많은 사람들이이 애플리케이션에 동시에 액세스합니다. 매일 밤 같은 시간에이 응용 프로그램이 계속됩니다. 브라우저에서 응용 프로그램을 다시로드하면 절대로 로그인 페이지보다 먼저 이동하지 않습니다. 서버에 대한 로그를 보면 마지막 메시지가 "스레드 잠"임을 알 수 있습니다.IBM Websphere의 ConnectionWaitTimeoutException

일부 연구를하면서 나는 스프링 프레임 워크에 대한 주석을 사용했다. Struts2에서도 동일한 작업을 수행합니까? 가능한 경우 struts 파일에서 사용법을 설명 할 수 있습니까?

[4/25/12 15:20:19:595 GMT+05:30] 00000029 SystemOut  O 25 Apr 2012 15:20:19,595 DEBUG [Thread-64][GreeceSynchronizer] thread sleep 
action [[email protected]] 
[4/25/12 15:20:26:293 GMT+05:30] 00000030 SystemOut  O 25 Apr 2012 15:20:26,293 DEBUG [WebContainer : 5][I18nInterceptor] intercept '//doLogin' { 
[4/25/12 15:20:26:293 GMT+05:30] 00000030 SystemOut  O 25 Apr 2012 15:20:26,293 DEBUG [WebContainer : 5][I18nInterceptor] requested_locale=null 
[4/25/12 15:20:26:293 GMT+05:30] 00000030 SystemOut  O 25 Apr 2012 15:20:26,293 DEBUG [WebContainer : 5][I18nInterceptor] before Locale=en_US 
[4/25/12 15:20:26:293 GMT+05:30] 00000030 SystemOut  O 25 Apr 2012 15:20:26,293 DEBUG [WebContainer : 5][InstantiatingNullHandler] Entering nullPropertyValue [target=[[email protected], [email protected]], property=struts] 
[4/25/12 15:20:26:294 GMT+05:30] 00000030 SystemOut  O 25 Apr 2012 15:20:26,294 DEBUG [WebContainer : 5][FileUploadInterceptor] Bypassing // doLogin 
[4/25/12 15:20:26:294 GMT+05:30] 00000030 SystemOut  O 25 Apr 2012 15:20:26,294 DEBUG [WebContainer : 5][StaticParametersInterceptor] Setting static parameters {} 
[4/25/12 15:20:26:294 GMT+05:30] 00000030 SystemOut  O 25 Apr 2012 15:20:26,294 DEBUG [WebContainer : 5][ParametersInterceptor] Setting params password => [ DEMO9 ] changePassword => [ false ] forgotPassword => [ ] username => [ DEMO9 ] 
[4/25/12 15:20:26:294 GMT+05:30] 00000030 SystemOut  O 25 Apr 2012 15:20:26,294 DEBUG [WebContainer : 5][XWorkConverter] Property: changePassword 
[4/25/12 15:20:26:294 GMT+05:30] 00000030 SystemOut  O 25 Apr 2012 15:20:26,294 DEBUG [WebContainer : 5][XWorkConverter] Class: cape.base.lbxoutclearing.ui.action.LoginAction 
[4/25/12 15:20:26:294 GMT+05:30] 00000030 SystemOut  O 25 Apr 2012 15:20:26,294 DEBUG [WebContainer : 5][XWorkConverter] field-level type converter for property [changePassword] = none found 
[4/25/12 15:20:26:294 GMT+05:30] 00000030 SystemOut  O 25 Apr 2012 15:20:26,294 DEBUG [WebContainer : 5][XWorkConverter] global-level type converter for property [changePassword] = none found 
[4/25/12 15:20:26:294 GMT+05:30] 00000030 SystemOut  O 25 Apr 2012 15:20:26,294 DEBUG [WebContainer : 5][XWorkConverter] falling back to default type converter [[email protected]] 
[4/25/12 15:20:26:294 GMT+05:30] 00000030 SystemOut  O 25 Apr 2012 15:20:26,294 DEBUG [WebContainer : 5][CompoundRootAccessor] No object in the CompoundRoot has a publicly accessible property named 'forgotPassword' (no setter could be found). 
[4/25/12 15:20:26:294 GMT+05:30] 00000030 SystemOut  O 25 Apr 2012 15:20:26,294 DEBUG [WebContainer : 5][CompoundRootAccessor] No object in the CompoundRoot has a publicly accessible property named 'password' (no setter could be found). 
[4/25/12 15:20:26:294 GMT+05:30] 00000030 SystemOut  O 25 Apr 2012 15:20:26,294 DEBUG [WebContainer : 5][CompoundRootAccessor] No object in the CompoundRoot has a publicly accessible property named 'username' (no setter could be found). 
[4/25/12 15:20:26:294 GMT+05:30] 00000030 SystemOut  O 25 Apr 2012 15:20:26,294 DEBUG [WebContainer : 5][LoginAction] Validating login 
[4/25/12 15:20:26:295 GMT+05:30] 00000030 SystemOut  O 25 Apr 2012 15:20:26,295 DEBUG [WebContainer : 5][LoginAction] 1 
[4/25/12 15:20:31:256 GMT+05:30] 00000036 FreePool  E J2CA0045E: Connection not available while invoking method createOrWaitForConnection for resource lockBoxDSJNDI. 
[4/25/12 15:20:31:292 GMT+05:30] 00000036 SystemOut  O 25 Apr 2012 15:20:31,289 ERROR [WebContainer : 8][BaseDAO] Exception in getConnection() 
com.ibm.websphere.ce.cm.ConnectionWaitTimeoutException: Connection not available, Timed out waiting for 180007 
    at com.ibm.ws.rsadapter.AdapterUtil.toSQLException(AdapterUtil.java:1252) 
    at com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection(WSJdbcDataSource.java:444) 
    at com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection(WSJdbcDataSource.java:400) 
    at cape.base.lbxoutclearing.ui.dao.BaseDAO.getConnection(BaseDAO.java:49) 
Caused by: com.ibm.websphere.ce.j2c.ConnectionWaitTimeoutException: Connection not available, Timed out waiting for 180007 
    at com.ibm.ejs.j2c.FreePool.createOrWaitForConnection(FreePool.java:1496) 
    at com.ibm.ejs.j2c.PoolManager.reserve(PoolManager.java:2273) 
    at com.ibm.ejs.j2c.ConnectionManager.allocateMCWrapper(ConnectionManager.java:903) 
    at com.ibm.ejs.j2c.ConnectionManager.allocateConnection(ConnectionManager.java:603) 
    at com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection(WSJdbcDataSource.java:431) 
    ... 130 more 

답변

2

이것은 Struts/Spring과 관련이 없습니다.

컨테이너에 연결 풀에서 연결을 가져올 수 없다고 표시되었습니다.

A 연결 시간 초과 기간이 데이터 원본에 지정됩니다. 해당 기간 동안 대기 한 후 WAS 런타임이 응용 프로그램에 풀의 연결을 제공 할 수없는 경우이 예외가 발생합니다.

풀의 연결을 누가 보류하고 있는지 확인하고 연결이 해제되었는지 확인해야합니다.

이 tracestring ConnLeakLogic = finest로 추적을 켭니다. 이 예외가 발생하면 해당 시점에 연결을 사용하고있는 모든 스레드를 나열하는 상태를 덤프합니다. 이것은 당신을위한 출발점이되어야합니다.

HTH

Manglu

관련 문제