
# session_timeout设置导致JDBC业务报错
#### 问题现象
通过JDBC连接集群执行COPY导入时报错：
```
org.postgresql.util.PSQLException: Database connection failed when starting copy at org.postgresql.core.v3.QueryExecutorImpl.startCopy(QueryExecutorImpl.java:804) at org.postgresql.copy.CopyManager.copyIn(CopyManager.java:52) at org.postgresql.copy.CopyManager.copyIn(CopyManager.java:161) at org.postgresql.copy.CopyManager.copyIn(CopyManager.java:146) at copy.main(copy.java:95) Caused by: java.io.EOFExceptionat org.postgresql.core.PGStream.ReceiveChar(PGStream.java:284) at org.postgresql.core.v3.QueryExecutorImpl.processCopyResults(QueryExecutorImpl.java:1008) at org.postgresql.core.v3.QueryExecutorImpl.startCopy(QueryExecutorImpl.java:802) ... 4 more
```
#### 原因分析
数据库默认设置session_timeout=10min，即连接空闲超过10分钟，自动断开连接，导致连接失效。
#### 处理方法
可登录DWS管理控制台，设置session_timeout为0或预期时长，使会话保持长时间连接。
1. 登录[DWS控制台](https://console.huaweicloud.com/dws)。在集群列表中找到所需要的集群，单击集群名称，进入"集群详情"页面。
2. 单击"参数修改"页签，修改session_timeout参数值，然后单击"保存"。
![](https://support.huaweicloud.com/trouble-dws/public_sys-resources/note_3.0-zh-cn.png)
COPY导入执行完成后，建议继续设置session_timeout=10min，因为如果有客户端长时间连接数据库，但对数据库不进行任何操作，该连接将一直占用一个线程，如果这样的客户端连接很多，就会出现大量的线程都被空闲的连接占用，从而导致数据库连接满或者资源浪费。
