[ https://issues.apache.org/jira/browse/IBATIS-502?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12590825#action_12590825 ]
win hwang commented on IBATIS-502: ---------------------------------- I am not using transaction statement actually. protected java.util.List getData(Query query) throws SQLException{ Map parameter = new HashMap(); parameter.put("fields", query.getFields()); parameter.put("table", query.getTable()); parameter.put("condition", query.getConditions()); parameter.put("sortBy", query.getSortBy()); return (List) sqlMapper.queryForList("selectGeneric", parameter); } <select id="selectGeneric" remapResults="true" resultClass="java.util.HashMap" cacheModel="RemoveImmdIfSuspectNotInUse-Cache"> select $fields$ from ($table$) <isNotEmpty property="condition" > $condition$ </isNotEmpty> <isNotEmpty property="sortBy" > $sortBy$ </isNotEmpty> </select> I managed to avoid the same thread hang issue by adding a "order by" to the same query. So, probably there might be some other issue. Thanks for prompt feedback! > Stuck threads and hang forever > ------------------------------ > > Key: IBATIS-502 > URL: https://issues.apache.org/jira/browse/IBATIS-502 > Project: iBatis for Java > Issue Type: Bug > Environment: Solaris 9, ibatis 2.3.0.677, Weblogic 8.1 SP3, Oracle 9i > Reporter: win hwang > Original Estimate: 24h > Remaining Estimate: 24h > > my page hang forever and I found the stuck threads all stop at the same place > from thread dump. > I am at my final stage of testing before rolling out the apps. > Please help, thanks! > "ExecuteThread: '12' for queue: 'weblogic.kernel.Default'" daemon prio=5 > tid=0x004ca408 nid=0x18 runnable [dd5fe000..dd5ffc28] > at java.sql.SQLException.setNextException(SQLException.java:149) > - waiting to lock <0xe3802990> (a java.sql.SQLWarning) > at java.sql.SQLWarning.setNextWarning(SQLWarning.java:107) > at > oracle.jdbc.driver.DatabaseError.addSqlWarning(DatabaseError.java:752) > at > oracle.jdbc.driver.DatabaseError.addSqlWarning(DatabaseError.java:734) > at > oracle.jdbc.driver.DatabaseError.addSqlWarning(DatabaseError.java:787) > at > oracle.jdbc.driver.DatabaseError.addSqlWarning(DatabaseError.java:806) > at > oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:187) > at > oracle.jdbc.driver.T4CPreparedStatement.fetch(T4CPreparedStatement.java:602) > at > oracle.jdbc.driver.OracleResultSetImpl.close_or_fetch_from_next(OracleResultSetImpl.java:265) > - locked <0xe3802de0> (a oracle.jdbc.driver.T4CConnection) > at > oracle.jdbc.driver.OracleResultSetImpl.next(OracleResultSetImpl.java:197) > - locked <0xe3802f50> (a oracle.jdbc.driver.OracleResultSetImpl) > at > com.ibatis.sqlmap.engine.execution.SqlExecutor.handleResults(SqlExecutor.java:380) > at > com.ibatis.sqlmap.engine.execution.SqlExecutor.handleMultipleResults(SqlExecutor.java:301) > at > com.ibatis.sqlmap.engine.execution.SqlExecutor.executeQuery(SqlExecutor.java:190) > at > com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.sqlExecuteQuery(GeneralStatement.java:205) > at > com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:173) > at > com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryForList(GeneralStatement.java:123) > at > com.ibatis.sqlmap.engine.mapping.statement.CachingStatement.executeQueryForList(CachingStatement.java:97) > at > com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:615) > at > com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:589) > at > com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSessionImpl.java:118) > at > com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForList(SqlMapClientImpl.java:95) > at com.csminc.dw.dao.CifBoDao.getData(CifBoDao.java:109) > at com.csminc.dw.dao.KpiMgr.getData(KpiMgr.java:48) > at com.csminc.dw.dao.KpiMgr.select(KpiMgr.java:74) > at > jsp_servlet._bizdashboard.__qry_bk_bl_fcst_dtl._jspService(__qry_bk_bl_fcst_dtl.java:166) > at weblogic.servlet.jsp.JspBase.service(JspBase.java:33) > at > weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:996) > at > weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:419) > at > weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:315) > at > weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6452) > at > weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) > at > weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118) > at > weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3661) > at > weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2630) > at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219) > at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178) > "ExecuteThread: '17' for queue: 'weblogic.kernel.Default'" daemon prio=5 > tid=0x006fd360 nid=0x1d runnable [dd0fe000..dd0ffc28] > at java.sql.SQLException.setNextException(SQLException.java:149) > - waiting to lock <0xe860b1b0> (a java.sql.SQLWarning) > at java.sql.SQLWarning.setNextWarning(SQLWarning.java:107) > at > oracle.jdbc.driver.DatabaseError.addSqlWarning(DatabaseError.java:752) > at > oracle.jdbc.driver.DatabaseError.addSqlWarning(DatabaseError.java:734) > at > oracle.jdbc.driver.DatabaseError.addSqlWarning(DatabaseError.java:787) > at > oracle.jdbc.driver.DatabaseError.addSqlWarning(DatabaseError.java:806) > at > oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:187) > at > oracle.jdbc.driver.T4CPreparedStatement.fetch(T4CPreparedStatement.java:602) > at > oracle.jdbc.driver.OracleResultSetImpl.close_or_fetch_from_next(OracleResultSetImpl.java:265) > - locked <0xe860b288> (a oracle.jdbc.driver.T4CConnection) > at > oracle.jdbc.driver.OracleResultSetImpl.next(OracleResultSetImpl.java:197) > - locked <0xe3802580> (a oracle.jdbc.driver.OracleResultSetImpl) > at > com.ibatis.sqlmap.engine.execution.SqlExecutor.handleResults(SqlExecutor.java:380) > at > com.ibatis.sqlmap.engine.execution.SqlExecutor.handleMultipleResults(SqlExecutor.java:301) > at > com.ibatis.sqlmap.engine.execution.SqlExecutor.executeQuery(SqlExecutor.java:190) > at > com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.sqlExecuteQuery(GeneralStatement.java:205) > at > com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:173) > at > com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryForList(GeneralStatement.java:123) > at > com.ibatis.sqlmap.engine.mapping.statement.CachingStatement.executeQueryForList(CachingStatement.java:97) > at > com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:615) > at > com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:589) > at > com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSessionImpl.java:118) > at > com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForList(SqlMapClientImpl.java:95) > at com.csminc.dw.dao.CifBoDao.getData(CifBoDao.java:109) > at com.csminc.dw.dao.KpiMgr.getData(KpiMgr.java:48) > at com.csminc.dw.dao.KpiMgr.select(KpiMgr.java:74) > at > jsp_servlet._bizdashboard.__qry_bk_bl_fcst_dtl._jspService(__qry_bk_bl_fcst_dtl.java:166) > at weblogic.servlet.jsp.JspBase.service(JspBase.java:33) > at > weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:996) > at > weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:419) > at > weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:315) > at > weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6452) > at > weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) > at > weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118) > at > weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3661) > at > weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2630) > at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219) > at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178) > "ExecuteThread: '22' for queue: 'weblogic.kernel.Default'" daemon prio=5 > tid=0x005a9ba8 nid=0x22 runnable [dcbfe000..dcbffc28] > at java.sql.SQLException.setNextException(SQLException.java:149) > - waiting to lock <0xe38003a0> (a java.sql.SQLWarning) > at java.sql.SQLWarning.setNextWarning(SQLWarning.java:107) > at > oracle.jdbc.driver.DatabaseError.addSqlWarning(DatabaseError.java:752) > at > oracle.jdbc.driver.DatabaseError.addSqlWarning(DatabaseError.java:734) > at > oracle.jdbc.driver.DatabaseError.addSqlWarning(DatabaseError.java:787) > at > oracle.jdbc.driver.DatabaseError.addSqlWarning(DatabaseError.java:806) > at > oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:187) > at > oracle.jdbc.driver.T4CPreparedStatement.fetch(T4CPreparedStatement.java:602) > at > oracle.jdbc.driver.OracleResultSetImpl.close_or_fetch_from_next(OracleResultSetImpl.java:265) > - locked <0xe38007f0> (a oracle.jdbc.driver.T4CConnection) > at > oracle.jdbc.driver.OracleResultSetImpl.next(OracleResultSetImpl.java:197) > - locked <0xe3800960> (a oracle.jdbc.driver.OracleResultSetImpl) > at > com.ibatis.sqlmap.engine.execution.SqlExecutor.handleResults(SqlExecutor.java:380) > at > com.ibatis.sqlmap.engine.execution.SqlExecutor.handleMultipleResults(SqlExecutor.java:301) > at > com.ibatis.sqlmap.engine.execution.SqlExecutor.executeQuery(SqlExecutor.java:190) > at > com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.sqlExecuteQuery(GeneralStatement.java:205) > at > com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:173) > at > com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryForList(GeneralStatement.java:123) > at > com.ibatis.sqlmap.engine.mapping.statement.CachingStatement.executeQueryForList(CachingStatement.java:97) > at > com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:615) > at > com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:589) > at > com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSessionImpl.java:118) > at > com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForList(SqlMapClientImpl.java:95) > at com.csminc.dw.dao.CifBoDao.getData(CifBoDao.java:109) > at com.csminc.dw.dao.KpiMgr.getData(KpiMgr.java:48) > at com.csminc.dw.dao.KpiMgr.select(KpiMgr.java:74) > at > jsp_servlet._bizdashboard.__qry_bk_bl_fcst_dtl._jspService(__qry_bk_bl_fcst_dtl.java:166) > at weblogic.servlet.jsp.JspBase.service(JspBase.java:33) > at > weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:996) > at > weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:419) > at > weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:315) > at > weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6452) > at > weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) > at > weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118) > at > weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3661) > at > weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2630) > at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219) > at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.