Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java hibernate上的阻塞线程_Java_Hibernate - Fatal编程技术网

Java hibernate上的阻塞线程

Java hibernate上的阻塞线程,java,hibernate,Java,Hibernate,我使用JProfiler(测试TomCat+hibernate+postgres)完成了性能研究。我有以下问题: 我运行了两种类型的查询。每种类型的请求-同时我启动了600个单元 测试结果: 第一类请求: 1) 查询时间1毫秒 2) 休眠查询数=500 3) postgresql查询数=150 4) CPU使用率=15% 5) 阻塞线程=0 第二类请求: 1) 查询时间4毫秒 2) 休眠查询数=260 3) postgresql查询数=300-400 4) CPU使用率=30% 5) 阻塞线程=

我使用JProfiler(测试TomCat+hibernate+postgres)完成了性能研究。我有以下问题:

我运行了两种类型的查询。每种类型的请求-同时我启动了600个单元

测试结果:

第一类请求:

1) 查询时间1毫秒

2) 休眠查询数=500

3) postgresql查询数=150

4) CPU使用率=15%

5) 阻塞线程=0

第二类请求:

1) 查询时间4毫秒

2) 休眠查询数=260

3) postgresql查询数=300-400

4) CPU使用率=30%

5) 阻塞线程=260

救命啊,我不知道该怎么办,也不知道阻塞的原因是什么

错误文本:

Caused by: java.net.ConnectException: Connection refused: connect
Caused by: org.postgresql.util.PSQLException:

org.hibernate.exception.JDBCConnectionException: Could not open
connection
屏幕截图中的第二类查询

Hibernate的工作顺序(第二类查询)


我解决了这个问题。已连接
hibernate-c3p0
-无错误

我解决了问题。已连接
hibernate-c3p0
-无错误

查看查询以及如何运行查询会很有趣。@dcernahoschi-I已更新,请查看您可能无法正确关闭连接。你能展示更多的代码吗,包括如何打开和关闭会话。@artbristol--我更新了Hibernate的工作顺序,请看它你有多个线程吗?每个线程都在更新和删除单个实体吗?您的第二类查询中是否有任何查询?查看这些查询以及如何运行它们会很有趣。@dcernahoschi-I已更新,请查看可能是您未能正确关闭连接。你能展示更多的代码吗,包括如何打开和关闭会话。@artbristol--我更新了Hibernate的工作顺序,请看它你有多个线程吗?每个线程都在更新和删除单个实体吗?在第二类查询中是否有任何查询?
1) session = getFactory().openSession();

2) transaction = session.beginTransaction();

- session.update()

- session.delete()

3) transaction.commit();

4) transaction = session.beginTransaction();

- session.update()

- session.delete()

5) transaction.commit();

6) session.close();