ERROR "Response Limit exceeded" in JDBC Driver

Connectivity
Teradata Employee

ERROR "Response Limit exceeded" in JDBC Driver

I got following error in my application(Web app deploying on JBoss EAP).

It seems exception generated at "CheckValidConnectionSQL.isValidConnection", when JDBC Driver try to check validity of connection.

I checked the JDBC User guide and SET LOB_SUPPORT to OFF, but still getting the same error.

Any advice?

2012-10-10 21:15:29,796 WARN  [org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory] (http-0.0.0.0-18080-43) Destroying connection that is not valid, due to the following exception: com.teradata.jdbc.jdbc_3.ifjdbc_4.TeraLocalConnection@36caf2d4

com.teradata.jdbc.jdbc_4.util.JDBCException: [Teradata Database] [TeraJDBC 13.00.00.16] [Error 3130] [SQLState HY000] Response limit exceeded.

at com.teradata.jdbc.jdbc_4.util.ErrorFactory.makeDatabaseSQLException(ErrorFactory.java:317)

at com.teradata.jdbc.jdbc_4.statemachine.ReceiveInitSubState.action(ReceiveInitSubState.java:104)

at com.teradata.jdbc.jdbc_4.statemachine.StatementReceiveState.subStateMachine(StatementReceiveState.java:286)

at com.teradata.jdbc.jdbc_4.statemachine.StatementReceiveState.action(StatementReceiveState.java:177)

at com.teradata.jdbc.jdbc_4.statemachine.StatementController.runBody(StatementController.java:111)

at com.teradata.jdbc.jdbc_4.statemachine.StatementController.run(StatementController.java:102)

at com.teradata.jdbc.jdbc_4.Statement.executeStatement(Statement.java:339)

at com.teradata.jdbc.jdbc_4.Statement.executeStatement(Statement.java:281)

at com.teradata.jdbc.jdbc_4.Statement.execute(Statement.java:254)

at com.teradata.jdbc.jdbc_3.ifjdbc_4.TeraLocalStatement.execute(TeraLocalStatement.java:365)

at com.teradata.jdbc.jdbc_3.ifjdbc_4.TeraLocalStatement.execute(TeraLocalStatement.java:329)

at org.jboss.resource.adapter.jdbc.CheckValidConnectionSQL.isValidConnection(CheckValidConnectionSQL.java:58)

at org.jboss.resource.adapter.jdbc.BaseWrapperManagedConnectionFactory.isValidConnection(BaseWrapperManagedConnectionFactory.java:560)

at org.jboss.resource.adapter.jdbc.BaseWrapperManagedConnection.checkValid(BaseWrapperManagedConnection.java:323)

at org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory.matchManagedConnections(LocalManagedConnectionFactory.java:402)

at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.getConnection(InternalManagedConnectionPool.java:225)

at org.jboss.resource.connectionmanager.JBossManagedConnectionPool$BasePool.getConnection(JBossManagedConnectionPool.java:690)

at org.jboss.resource.connectionmanager.BaseConnectionManager2.getManagedConnection(BaseConnectionManager2.java:404)

at org.jboss.resource.connectionmanager.TxConnectionManager.getManagedConnection(TxConnectionManager.java:424)

at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:496)

at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:941)

at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:89)

at com.ncr.twr.common.DataBase.doConnect(DataBase.java:2166)

at com.ncr.twr.common.DataBase.doConnectFromDDCName(DataBase.java:2075)

at com.ncr.twr.common.DataBase.execSqlCsv(DataBase.java:1477)

at com.ncr.twr.http.TwrStreamingResponse.dataStream(TwrStreamingResponse.java:104)

at com.ncr.twr.http.TwrServlet.doResponse(TwrServlet.java:549)

at com.ncr.twr.http.TwrServlet.doPost(TwrServlet.java:93)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at com.planetj.servlet.filter.compression.CompressingFilter.doFilter(CompressingFilter.java:266)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)

at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:183)

at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:95)

at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)

at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)

at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:567)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)

at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:905)

at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:593)

at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:2036)

at java.lang.Thread.run(Thread.java:662)

Tags (1)
2 REPLIES
Teradata Employee

Re: ERROR "Response Limit exceeded" in JDBC Driver

Detailed advice is listed in the Teradata JDBC Driver Reference:

http://developer.teradata.com/doc/connectivity/jdbc/reference/current/jdbcug_chapter_5.html#CHDGCHBB

"To solve this issue, examine applications to verify that they have proper exception handling, with finally blocks coded to ensure that ResultSet objects, Statement objects, LOB InputStream, and LOB Reader objects are always closed as soon as they are no longer needed. If the application modifies LOBs, then Blob and Clob objects must be freed in finally blocks."

"Beginning with Teradata JDBC Driver version 14.00.00.08, if the LOG=INFO connection parameter is specified, then the Teradata JDBC Driver will log information about all outstanding open responses when a Teradata Database Error 3130 occurs. The logged information will include each open response's request number, date/time of submission, submitter thread ID, SQL request text, and submitter call stack. This information can be useful to an application developer to help pinpoint which places in the application are submitting SQL requests and not subsequently closing them."

Also, you are using an old version of the Teradata JDBC Driver (version 13.00.00.16), and you should upgrade to the latest version available here on Developer Exchange.

http://downloads.teradata.com/download/connectivity/jdbc-driver

Teradata Employee

Re: ERROR "Response Limit exceeded" in JDBC Driver

This was a bug, and fixed in current version.