statelessSession

时间:2016-05-30 17:44:24

标签: java hibernate session

我已经激活了Hibernate统计信息,并且我正在运行一个存储过程,该过程通过从sessionFactory检索到的 StatelessSession 返回大量记录。稍后,结果将使用 ScrollableResultset 写入文件。

Hibernate配置为使用连接池,会话上下文是线程。

这是我的代码:

StatelessSession session= sessionFactory.openStatelessSession();
Query query = session.createSQLQuery("EXEC myStoredProcedure");
sessionFactory.getStatistics().logSummary();

然后,可滚动的结果集将被传递给一个写入者,并且最终在所有记录被写入文件之后它将被关闭。

我运行了这部分代码几次,如下所示:

第一次

  

会议开幕:11   会议结束:10   交易:6   成功交易:6   乐观锁失败:0   冲洗:3   获得的连接:11   编制的声明:9   声明已结束:0

第二次

  

会议开幕:17   会议结束:16   交易:12   成功交易:12   乐观锁失败:0   冲:5   获得的连接数:17   编制的声明:12   声明已结束:0

第三次

  

会议开幕:20   会议结束:19   交易:15   成功交易:15   乐观锁失败:0   冲:6   获得的连接数:20   编制的声明:13   声明已结束:0

第四次

  

会议开幕:23   会议结束:22   交易:18   成功交易:18   乐观锁失败:0   冲:7   获得的连接数:23   编制的声明:14   声明已结束:0

第二次之后,您可以看到获得的连接数每次增加3。

我的问题是: 1)为什么数字增加3而不仅仅是1? 2)为什么总会少一个Sessions关闭?我的意思是我们(在第三次的情况下)20开放和19关闭。

0 个答案:

没有答案