나는 글래스 피쉬 3.1 매우 매우 낮은 자바 EE의 성능 (EJB + JSF) 애플리케이션 및 최대 절전 모드 (3.6.8.Final 및 4.1.7.Final)에 직면 .2. 약 300 개의 선택 쿼리를 보내는 데 약 20 초가 걸립니다. 이것은 받아 들일 수 없다.매우 낮은 성능
나는 정확히 같은 응용 프로그램 보스와 TomEE에 배포 있습니다. 동일한 300 개의 선택 쿼리에는 약 1,5 초가 걸립니다.
Google에서 발견 한 답변이 hibernate.show_sql
인 경우 true
또는 hibernate.hbm2ddl
이면 응용 프로그램이 느려집니다. 그러나 그것은 사실이 아닙니다. 나는 hibernate.show_sql
을 끈다. 그러나 문제가되지 않는다. 더욱이 JBoss 및 TomEE 버전에서 이러한 옵션이 적용되며 10 배 빠른 속도로 작동합니다! 이것이 Glasfish와 Hibernate 사이의 문제라고 생각했습니다. 하지만 나는 같은 비즈니스 로직을 가진 다음 애플리케이션을 가지고있다. Hibernate가 제공하지만 Spring과 함께 구성되는 EntityManager와 동일한 DAO이다. 그리고 성능이 좋습니다. 이상하지 않니? 결함 버전
persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
<persistence-unit name="jee_project" transaction-type="JTA">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>jdbc/PostgreSQL</jta-data-source>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
<property name="hibernate.show_sql" value="false"/>
<property name="current_session_context_class" value="thread"/>
</properties>
</persistence-unit>
</persistence>
글래스 피쉬 JDBC 구성
<jdbc-connection-pool driver-classname="" datasource-classname="org.postgresql.ds.PGConnectionPoolDataSource" res-type="javax.sql.ConnectionPoolDataSource" description="" name="PostgreSQLPool">
<property name="User" value="postgresql"></property>
<property name="DatabaseName" value="qazxsw"></property>
<property name="LogLevel" value="0"></property>
<property name="Password" value="1234"></property>
<property name="ServerName" value="localhost"></property>
<property name="Ssl" value="false"></property>
<property name="ProtocolVersion" value="0"></property>
<property name="TcpKeepAlive" value="false"></property>
<property name="SocketTimeout" value="0"></property>
<property name="PortNumber" value="5432"></property>
<property name="LoginTimeout" value="0"></property>
<property name="UnknownLength" value="2147483647"></property>
<property name="PrepareThreshold" value="5"></property>
</jdbc-connection-pool>
<jdbc-resource pool-name="PostgreSQLPool" description="" jndi-name="jdbc/PostgreSQL__pm"></jdbc-resource>
<jdbc-resource pool-name="PostgreSQLPool" description="" jndi-name="jdbc/PostgreSQL__nontx"></jdbc-resource>
풀의 최소/최대 연결 수는 얼마입니까? – ewernli
초기 및 최소 풀 크기 : 8, 초기 및 최소 풀 크기 : 32 – LancerX
파일이 persistence.xml이 아닌 persistence.xml이라고 생각합니다. –