2013-04-24 3 views
1

우리는 WAS 8.5에서 EAR을 실행 중이며 모든 DAO는 31 회 복제됩니다. persistence.xml에 30 개의 JNDI 데이터 소스가 있다는 것을 알았 기 때문에 테스트를 통해 숫자를 줄였습니다. 실제로 중복 카운트는 줄어 듭니다.Websphere의 persistence-unit마다 중복 ClassLoaders 생성

하지만 모든 불필요한 줄을 연속적으로 제거해 보았습니다. 그리고 여전히 중복 된 것을 얻습니다. 마지막 줄을 제거하면 NestedJarException이 발생합니다.

<persistence-unit name="unitTest" 
      transaction-type="JTA">  
      <jta-data-source>jdbc/Testing/Ds</jta-data-source> 
      <mapping-file>META-INF/default-mappings.xml</mapping-file> 
      <exclude-unlisted-classes>false</exclude-unlisted-classes> 
    </persistence-unit> 

내 영속성 단위에 대해 EJB 클래스가 복제 될 수있는 다른 사람이 있습니까?

감사

+0

30 개의 다른 데이터 소스가 있습니까? 그리고 당신은 그들 각각을 사용합니까? –

+0

그래, 각 고객은 자신의 데이터베이스를 가져옵니다. – djb

답변

1

당신은 JPA 2.0 specification 76 페이지 항목을 선택하면 3.2 "엔티티 인스턴스의 라이프 사이클 "당신은 아래를 참조로 :

3.2 엔티티 인스턴스의 라이프 사이클이 섹션에서는 엔티티를 관리하는 EntityManager의 작업을 설명합니다 인스턴스의 라이프 사이클.

엔티티 인스턴스는 새 것으로 관리되고 이 분리되거나 제거 된 것으로 특성화 될 수 있습니다.

• 새 엔터티 인스턴스는 영구적 인 ID가없고 아직 지속성 컨텍스트와 연결되어 있지 않습니다.

• 관리되는 엔터티 인스턴스는 현재이 지속성 컨텍스트와 연결된 영구 ID가있는 인스턴스입니다.

• 분리 된 엔티티 인스턴스는 지속성 컨텍스트와 연결된 (또는 더 이상 없음)이 아닌 영구 ID가있는 인스턴스입니다. •

는 엔티티 인스턴스 트랜잭션에 데이터베이스 에서 제거 커밋됩니다 persis- 탕스 컨텍스트와 관련된 지속적인 정체성과 인스턴스 제거. 나는 당신의 상황을 상상하는 것보다

는 각 데이터베이스 하나를 가리키는 30 JPA 영속 객체 (1) 지속 컨텍스트 (지속성 정체성)에 대한 매핑 하나 하나를 가지고 당신은 아마없는 1 분리 및/또는 새를 의미 영구 신원.

이것은 사양에 따라 Entity 인스턴스 수명주기가 구현되어야하는지 결정하기 때문에 발생합니다.

감사합니다.

+0

이것은 엔티티 인스턴스 관리에 관련됩니다. 불행히도, 제 경우에는 중복되는 EJB입니다. EJB는 영속 객체가 아닙니다. 예를 들어 DB를 쿼리 할 때 EntityManagerFactory가 EntityManager를 제공하게됩니다. EntityManager는 필요에 따라 사용되며 위의 내용이 관련 될 때 사용됩니다. – djb