WebSphere 7 및 OpenJPA에 대해 작업합니다. 실행 후메소드 완료 후 중첩 트랜잭션이 잠금을 해제합니까?
<persistence-unit name="ASAP_Main">
<jta-data-source>jdbc/ASAPDB</jta-data-source>
<properties>
<property name="openjpa.Optimistic" value="false"/>
<property name="openjpa.ReadLockLevel" value="none"/>
<property name="openjpa.WriteLockLevel" value="none"/>
<property name="openjpa.LockManager" value="pessimistic(VersionCheckOnReadLock=false,VersionUpdateOnWriteLock=false)"/>
<property name="openjpa.LockTimeout" value="20000"/>
</properties>
</persistence-unit>
@PersistenceContext(unitName = "ASAP_Main")
private EntityManager em;
@MessageDriven
public class A implements MessageListener {
@EJB
private B b;
@TransactionAttribute(TransactionAttributeType.REQUIRED)
public void onMessage(Message message) {
b.processWithLock(message.getObject());
...
}
}
@Stateless
public class B{
@TransactionAttribute(TransactionAttributeType.REQUIRED)
public void processWithLock(Object obj){
em.lock(obj)
...
}
}
하는가가 processWithLock 분리 잠금 :
여기 persistance.xml 두 콩, 부분입니까?
여기서 'entityManager'는 어디에서 왔습니까? 'persistence.xml'을 보여주십시오. 'processWithLock'의 완전한 소스를 추가하십시오. – Beryllium
관련없는 댓글이지만 ...이 모든 주석. 이 모든 생각이 계속 이어지고 있습니다. 저는 JPA로 시작하고 있습니다 만, 이런 식으로 데이터를 관리하기위한 성능 세금은 너무 높아야 할 것 같습니다. – scottb
@Beryllium 내 게시물을 편집 해 주셔서 감사합니다. 엔티티가없는 persistance.xml을 추가했습니다. –