当连接池在休眠状态下没有连接时,将调用打开的会话

时间:2017-07-12 09:43:50

标签: java mysql multithreading hibernate session

我正在使用hibernate 5.2.10和MySQL数据库。此外,我正在使用C3PO来处理我的连接池。我的C3PO配置如下:

<property name="hibernate.c3p0.min_size">10</property>
<property name="hibernate.c3p0.max_size">50</property>

然而,在我的应用程序中,我有几乎100个线程处理此连接池,通过调用来询问连接:

sessionFactory.openSession();

完成会话后,他们会使用以下内容关闭它:

session.close();

到目前为止应用程序正常运行,但我觉得缺少了一些东西。据我所知,会话号码与连接数有关。那么,如果发生所有100个线程同时调用openSession,将会发生什么?

  • 此调用会阻塞50个线程(由于我的连接池的最大大小为50),并且在前50个线程完成后它可以逐个继续吗?

  • 50个线程是否会设法获取会话而其他50个线程会抛出异常?

  • 会话编号与连接池中的连接数无关,我可以打开任意数量的会话吗?

我对第一个和第三个选项很好,但这是我害怕的第二个选项。

0 个答案:

没有答案