互联网服务

应用批量提交报错,是怎么回事

后台应用程序批量提交4万多的数据时,报如下:com.ibm.db2.jcc.a.um: [jcc][t4][2045][11187][3.51.90] 超过了最大链接请求数 0x7FFF。 ERRORCODE=-4499, SQLSTATE=null请问有人知道是怎么回事吗?环境为DB2/AIX64 9.1.7后台应用程序为JAVA写的通过JDBC连接数据库进行批量提交...显示全部
后台应用程序批量提交4万多的数据时,报如下:com.ibm.db2.jcc.a.um: [jcc][t4][2045][11187][3.51.90] 超过了最大链接请求数 0x7FFF。 ERRORCODE=-4499, SQLSTATE=null

请问有人知道是怎么回事吗?

环境为DB2/AIX64 9.1.7
后台应用程序为JAVA写的通过JDBC连接数据库进行批量提交的应用收起
参与8

查看其它 5 个回答ljbupc的回答

ljbupcljbupc软件开发工程师上海安硕科技
用java 的preparestatement,单次提交的量不是越大越好,不建议过大;
看sql的复杂程度2000~10000就可以了;比较复杂的2000~5000,简单的可以多点;
批量提交的意义在于提高网络的效率;
量大了,应用端占用java虚拟机的内存会很大,会消耗过多资源;
数据库去解析这批对象也是需要资源的。
你可以去看看数据库的DB2DIAG,可能会有内存的变动(如果是自动调节);
一批sql执行也需要一定的时间,然后才提交,提交了连接才会接受下一批数据。

我猜想可能是这样的:
4W的量还是不小,写日志会不少,数据读写也不会少,执行sql时间不短,下一批sql发到数据库的时候还没有执行完,就会等待;等待达到某个时间,然后就抛出这个错了。
4W和1W的执行时间差距能达到这个程度,极有可能是缓冲池不够,你可以增大缓冲池试试。不过还是不建议用那么大的提交量,而且越大不一定越快。
互联网服务 · 2012-10-16
浏览1271

回答者

ljbupc
软件开发工程师上海安硕科技

ljbupc 最近回答过的问题

回答状态

  • 发布时间:2012-10-16
  • 关注会员:1 人
  • 回答浏览:1271
  • X社区推广