ERROR ~ [Teradata DBMS] : Response limit exceeded.

Tools & Utilities
N/A

ERROR ~ [Teradata DBMS] : Response limit exceeded.

I MOVED THIS TO A MORE APPROPRIATE FORUM

Our Java app is throwing this error :

com.ncr.teradata.jdbc_4.util.JDBCException: [NCR] [Teradata DBMS] : Response limit exceeded.

Anyone ever had this error before ?
This seems to happen right after an insert of 108 rows into a Teradata table.

TIA
Jay
11 REPLIES
Fan

Re: ERROR ~ [Teradata DBMS] : Response limit exceeded.

I try to modify my jdbc url like this : jdbc:teradata://10.46.9.111/LOB_SUPPORT=off , but I got the same error info.

code like this :

connection.prepareStatement(sql);
connection.executeUpdate();
connection.commit();

What is the problem? Thanks!
Teradata Employee

Re: ERROR ~ [Teradata DBMS] : Response limit exceeded.

Hello,

What sort of query you execute when this error is generated?

Regards,

Adeel
Teradata Employee

Re: ERROR ~ [Teradata DBMS] : Response limit exceeded.

After trying Wale's solution if the problem persists, do try by closing all the requests as soon as possible before sending new requests.

Regards,

Adeel
Fan

Re: ERROR ~ [Teradata DBMS] : Response limit exceeded.

insert into cfg_ccms_model(model_id, model_desc) values(?,?);
sql like this...
Thanks!
Fan

Re: ERROR ~ [Teradata DBMS] : Response limit exceeded.

I use a loop to executeUpdate, and commit out of loop
code like this
for (int i =0; i < 100; i ++) {
String sql = "update aaa";
conn.prepareStatement(sql);
conn.executeUpdate();
}
conn.commit();
Teradata Employee

Re: ERROR ~ [Teradata DBMS] : Response limit exceeded.

Try by lowering the loop, e.g. 100 => 10 if it works fine, then you are hitting a limit somehow, and also try by putting the commit part in the loop and then slowly increasing the loop till 100 (or whatever you like :))

HTH.

Regards,

Adeel

Re: ERROR ~ [Teradata DBMS] : Response limit exceeded.

I am facing the same issue. Can you please update me if there is a solution.
Teradata Employee

Re: ERROR ~ [Teradata DBMS] : Response limit exceeded.

First, the code posted above is not the right way to use a PreparedStatement. You should not prepare a SQL request over and over again inside a loop.

Instead, the SQL request should be prepared once, before entering the loop. Inside the loop, parameter values should be bound to the question-mark parameter markers.

The code should look like:

String sql = "update aaa set bbb = ? where ccc = ?";
PreparedStatement ps = conn.prepareStatement(sql);
for (int i =0; i < 100; i ++)
{
ps.setInt(1,i);
ps.setInt(2,i);
ps.executeUpdate();
}

You can get better performance by using a PreparedStatement batch.

String sql = "update aaa set bbb = ? where ccc = ?";
PreparedStatement ps = conn.prepareStatement(sql);
for (int i =0; i < 100; i ++)
{
ps.setInt(1,i);
ps.setInt(2,i);
ps.addBatch();
}
ps.executeBatch();

This article discusses how to use PreparedStatements for better performance:

http://developer.teradata.com/connectivity/articles/speed-up-your-jdbcodbc-applications

Finally,
With respect to the Database Error 3130 "Response Limit Exceeded", please refer to the Troubleshooting section in the Teradata JDBC Driver User Guide about this topic.

The Teradata JDBC Driver User Guide can be found here in the Download Center:

http://www.teradata.com/DownloadCenter/Forum98-1.aspx

Go to Appendix B Troubleshooting,
Section "Large Object Interface"
Subsection "Response Limit Exceeded Error".
N/A

Re: ERROR ~ [Teradata DBMS] : Response limit exceeded.

I could not find the Teradata JDBC Driver User Guide. Link is broken, googling it also did not bring any results. I am getting SQLException : "Data size bigger than max size for this type: 4057" on some machines (all Macs), although all machines are using same version of drivers, java and execute same query.