gpt4 book ai didi

mysql - NHibernate mysql 连接没有关闭?

转载 作者:可可西里 更新时间:2023-11-01 07:38:13 25 4
gpt4 key购买 nike

我正在将 NHibernate 与 mySQL 5 一起使用,我有点不确定 NHibernate 是否真的关闭了与 mySQL 的连接。

这是我用来将 Player 实体保存到数据库的代码:

        using (ISession session = SessionFactory.OpenSession())
{
using (ITransaction transaction = session.BeginTransaction())
{
session.Save(player);
transaction.Commit();
}
}

运行这段代码后,我使用 mySQL 服务器选择当前连接数

show status like 'Conn%' ;

并且每增加一次数值就增加1!

因此,插入播放器 10 次(= 启动程序 10 次)会使连接计数增加 10。但是 NHibernate Session 的 session.IsClosed 属性为 false。

为了释放 NHibernate 资源并关闭连接,我还需要做任何其他事情吗?连接是否合并/超时?

如果有人能给我提示就太好了。

最佳答案

我很确定连接正在关闭。 ISession 上的 dispose 方法就是这样做的。所以它不太可能在退出 using block 时保持打开状态。

此外,据我所知,连接通常只在写入/读取数据库时打开。 session 可能打开,但这并不意味着连接也打开。

那个,再加上 mysql documentation 中的事实,它表示关键字 Connections 表示:

The number of connection attempts (successful or not) to the MySQL server.

并且没有说明连接的当前状态(打开与否),让我相信连接已关闭。

PS:您应该使用 Threads_connected 来查看打开的连接。

关于mysql - NHibernate mysql 连接没有关闭?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1078673/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com