나는 비 웹 응용 프로그램에서 봄을 활용하고 DB를 사용하기 위해 최대 절전 모드를 사용하고 있습니다. 문제는 내가 발생하는 동안 "registerShutdownHook();" close Spring 컨텍스트 컨테이너가 제대로 종료되지 않고 JPA에 대한 자원을 닫아 DB에 대한 연결이 최대가되고있다.봄 JPA/독립 실행 형 응용 프로그램에서 최대 절전 모드
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="persistenceUnitName" value="pu" />
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="generateDdl" value="false" />
<property name="showSql" value="false" />
<property name="databasePlatform" value="org.hibernate.dialect.MySQL5Dialect" />
</bean>
</property>
</bean>
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>
<tx:annotation-driven transaction-manager="transactionManager"/>
<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
<bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor"/>
나는 JPA 층을 화재 및 EM은 DAO의로의 주입 "@Transactional"주석을 사용하여 위에서 제시된 구성을 사용합니다.
어쩌면 누군가가 내가 누락 된 부분이나 독립 실행 형 환경에서 JPA 세션의 적절한 종료를 처리하는 방법을 도와 줄 수 있습니까?
감사합니다.
P. 나는 점점 오전 예외는 다음과 같습니다 java.net.SocketException의 : 사용 가능한 버퍼 공간 (최대 연결 수에 도달?) : persistance.xml 구석 구석
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" >
<property name="persistenceUnitName" value="persistanceUnit"/>
<property name="dataSource" ref="dataSource"/>
<property name="persistenceXmlLocation" value="classpath:persistence.xml"/>
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="showSql" value="${db.orm.showsql}" />
<property name="generateDdl" value="${db.orm.generateDdl}" />
<property name="database" value="${db.type}"/>
<property name="databasePlatform" value="${db.orm.dialect}" />
</bean>
</property>
<property name="jpaProperties">
<props>
<prop key="hibernate.hbm2ddl.auto">create</prop>
</props>
</property>
</bean>
: 다음과 같이
@Transactional은 EM을 주사하는 것이 아닙니다. 그렇습니까? –
PersistenceAnnotationBeanPostProcessor - 내가 이해하는 한 EM을 주입하기 위해 @ Transactional 주석을 스캔합니다. – Xeperis
나는 대신에 @ PersistenceUnit과 @ PersistenceContext를 스캔한다고 생각한다. –