为什么@jdbc查询因连接超时而失败?

时间:2016-03-07 22:07:10

标签: java jdbc xpages

这是我在DB2表中插入行的代码:

for(i=0; i<1000000; i++){
    var myData = {
        USERNAME:   "user1",
        SOMEID:     i
    };
    @JdbcInsert("db2", "MYTABLE", myData);
} 

在某些时候失败并出现此错误:

Error while executing JavaScript action expression
Script interpreter error, line=211, col=22: Error while executing function '@JdbcInsert'
Error while creating connection
Time expired getting a connection (=10000 ms). Try again.

我发现无法控制JDBC驱动程序超时。我错了吗? 或者我应该添加像

这样的东西
java.lang.Thread.sleep(1000);

在每个@JdbcInsert语句之前?

2 个答案:

答案 0 :(得分:1)

为什么添加Thread.sleep(1000)会解决您的问题?这里的问题是您希望在连接超时为10秒的DB2中插入1,000,000条记录。

您需要:A)增加连接超时或B)一次插入更少的记录(即插入10k或100k记录然后获得新连接)

显然,A听起来像是最好的解决方案,因为B只会增加额外连接的开销。

答案 1 :(得分:0)