我正在使用 cloudera hive jdbc https://www.cloudera.com/downloads/connectors/hive/jdbc/2-6-2.html
有时,当 getConnection() 调用失败(并非总是如此,取决于服务器稳定性)时,它会显示此异常:
MyDAO - Cannot create connection from DataSource@21f421b8
at com.cloudera.hiveserver2.hivecommon.api.HS2Client.closeSession(Unknown Source)
at com.cloudera.hiveserver2.hivecommon.core.HiveJDBCCommonConnection.establishConnection(Unknown Source)
at com.cloudera.hiveserver2.jdbc.core.LoginTimeoutConnection.connect(Unknown Source)
at com.cloudera.hiveserver2.jdbc.common.BaseConnectionFactory.doConnect(Unknown Source)
at com.cloudera.hiveserver2.jdbc.common.AbstractDataSource.getSimbaConnection(Unknown Source)
at com.cloudera.hiveserver2.jdbc.common.AbstractDataSource.getConnection(Unknown Source)
当我使用 netstat cmd 检查时:
netstat -an --tcp --program
建立了一个新的套接字连接,我必须等待大约 1 小时然后才能看到 tcp 连接消失了。
问题是:
- 为什么当我调用 getConnection() 时,会调用 closeSession()?
- 是不是因为closeSession()失败,导致tcp连接无法释放?是否视为连接泄漏?