Java 不关闭休眠会话时的奇怪行为

Java 不关闭休眠会话时的奇怪行为,java,hibernate,jsf,Java,Hibernate,Jsf,我遇到了一个关于关闭hibernate会话的问题,问题详细信息如下: UI(使用JSF2.1实现)在多次执行某些操作后挂起,导致请求为空。问题的原因是hibernate会话在执行任何数据库操作后都没有关闭 那么我的问题是为什么会发生这种绞刑?为什么是一个空的请求?我认为,当发生类似这种情况时,hibernate API会抛出一个异常,比如IllegalStateException,告诉您“您打开了很多会话”,对吗?当您不关闭hibernate会话,因此不释放JDBC连接时,您会遇到通常称为连接泄

我遇到了一个关于关闭hibernate会话的问题,问题详细信息如下: UI(使用JSF2.1实现)在多次执行某些操作后挂起,导致请求为空。问题的原因是hibernate会话在执行任何数据库操作后都没有关闭


那么我的问题是为什么会发生这种绞刑?为什么是一个空的请求?我认为,当发生类似这种情况时,hibernate API会抛出一个异常,比如IllegalStateException,告诉您“您打开了很多会话”,对吗?

当您不关闭hibernate会话,因此不释放JDBC连接时,您会遇到通常称为连接泄漏的情况。因此,在多次请求之后(取决于连接池的大小),服务器将无法获取连接来响应您的请求。事实上服务器将等待连接被释放,并再次在池中可用,它似乎将挂起。

您的意思是操作提交表单两次吗?不,它提交表单一次,但当您多次重复该操作时,它会在firefox中打开firebug时卡住,您将看到每次在池中执行任何操作时都会发送空请求这里有一个已知的问题叫做双击问题,但您的问题似乎不同。你能发一些代码吗?您的页面可能格式不好。是的,我知道问题所在,我读过。它也被称为幂等请求,但与我在这里遇到的问题没有太大区别,很抱歉,我无法发布代码,因为我使用的规则是:S