关于用JDBC连接数据库服务器,非活动超时的问题,请教高手

麻烦问下各位高手,我用JDBC和AS400上DB2进行连接,但是一般过30分钟左右,400就自动把连接给断了,必须重新连接一下才行,哪位大侠知道这个是什么原因?多谢了这30分钟,我没有做任何操作!我问了一下AS400的大侠们,他们说数据库都有非活动超时的时间设置,需要在应用服务器上设置一个定时...显示全部
麻烦问下各位高手,我用JDBC和AS400上DB2进行连接,但是一般过30分钟左右,400就自动把连接给断了,必须重新连接一下才行,哪位大侠知道这个是什么原因?多谢了
这30分钟,我没有做任何操作!
我问了一下AS400的大侠们,他们说数据库都有非活动超时的时间设置,需要在应用服务器上设置一个定时发送虚语句的参数,请教各位高手,在什么地方设置这个参数啊?
还有从现象上看,貌似和服务器关系不是很大,因为,我用同一个JDBC的驱动连不同的AS400的db2数据库,其中一个有这个问题,一个就没有收起
参与8

查看其它 5 个回答Xiao Qing的回答

Xiao QingXiao Qing系统工程师浪潮商用机器有限公司

Db2 for IBM i和TCP配置中没有空闲超时的设置,这个问题主要是由于网络中的空闲计时器引起的,计时器一般在交换机或防火墙上。报错信息一般在QZDASOINIT作业日志中,系统日志和系统操作员日志中也会有相关记录。
建议
1.调整交换机和防火墙的idle timeout。
2.调整连接池的idle timeout,使之小于网络的idle timeout。
Connection pool代码的片段,可以用setMaxIdleTime方法设置idle timeout的时间。

public class TestJDBCConnPoolSnippet
{
    void test()
    {
        AS400JDBCManagedConnectionPoolDataSource cpds0 = new AS400JDBCManagedConnectionPoolDataSource();

        // Set general datasource properties.  Note that both connection pool datasource (CPDS) and managed
               // datasource (MDS) have these properties, and they might have different values.
        cpds0.setServerName(host);
        cpds0.setDatabaseName(host);//iasp can be here
        cpds0.setUser(userid);
        cpds0.setPassword(password);
   

        cpds0.setSavePasswordWhenSerialized(true);

        // Set connection pooling-specific properties.
        cpds0.setInitialPoolSize(initialPoolSize_);
        cpds0.setMinPoolSize(minPoolSize_);
        cpds0.setMaxPoolSize(maxPoolSize_);
        cpds0.setMaxLifetime((int)(maxLifetime_/1000));  // convert to seconds
        cpds0.setMaxIdleTime((int)(maxIdleTime_/1000));  // convert to seconds
        cpds0.setPropertyCycle((int)(propertyCycle_/1000));  // convert to seconds
        //cpds0.setReuseConnections(false);  // do not re-use connections

3.用命令CHGTCPA减少AS/400的TCP keep-alive时间,使之小于防火墙的idle timer。

仅供参考

系统集成 · 2021-07-09
浏览801

回答者

Xiao Qing
系统工程师浪潮商用机器有限公司
擅长领域: 服务器新核心系统存储

Xiao Qing 最近回答过的问题

回答状态

  • 发布时间:2021-07-09
  • 关注会员:1 人
  • 回答浏览:801
  • X社区推广