각 트랜잭션에서 세션 Bean은 로컬 인터페이스를 사용하여 컨테이너 관리 지속(CMP) 엔터프라이즈 Bean을 호출해야 합니다. CMP 엔터프라이즈 Bean의 원격 인터페이스는 예상치 않은 작동을 발생시킬 수 있으므로 지원되지 않습니다. 따라서 세션 Bean에서 로컬 인터페이스를 사용하여 CMP 엔터프라이즈 Bean을 호출해야 합니다. 일부 세션 Bean이 프록시 데이터 소스 지원을 통해 CMP EJB에 액세스하는 동일한 트랜잭션과 관련된 경우 이 세션 Bean에 대한 모든 호출에서 로컬 인터페이스를 사용해야 합니다. 프록시 데이터 소스 지원을 사용하는 CMP EJB 또는 이 CMP EJB에 액세스하는 세션 Bean에 액세스할 때 원격 인터페이스를 사용할 수 없습니다.
모든 트랜잭션(메소드) 시작 시 세션 Bean은 API WSProxyDataSourceHelper.setCurrentDataSourceJNDIName을 사용하여 현재 트랜잭션이 사용할 데이터 소스를 지정해야 합니다. 세션 Bean이 데이터 소스 JNDI 이름을 지정하지 않으면 프록시 데이터 소스의 jndiNames 사용자 정의 특성에서 첫 번째 데이터 소스 JNDI 이름이 사용되고 경고가 로그됩니다.
발생한 문제점은 PMI(Performance Monitoring Instrumentation)를 프록시 데이터 소스에서 사용되는 명령문 캐시에 사용할 수 없다는 점입니다.
프록시 데이터 소스는 준비된 명령문을 캐시하는 데 특수 명령문 캐시를 사용합니다. 이 릴리스에는 이 명령문 캐시를 위한 성능 모니터 기능이 없습니다.
발생한 문제점은 프록시 데이터 소스에서 연결 테스트가 작동하지 않는다는 점입니다.
관리 콘솔의 연결 테스트 단추가 프록시 데이터 소스에서 작동하지 않습니다. 프록시 데이터 소스를 올바르게 구성한 경우 연결 테스트 단추를 클릭하면 예외가 표시됩니다. MBean에서 testConnection 기능을 사용해도 작동하지 않습니다.
데이터 소스가 구성되었는지 확인하려면 프록시 데이터 소스에서 기본 데이터 소스의 연결 테스트 단추를 클릭하십시오. 예를 들어 프록시 데이터 소스에 사용자 정의 특성 jdbc/dsName1;jdbc/dsName2가 있으면 JNDI 이름 jdbc/dsName1 및 jdbc/dsName2를 사용하여 데이터 소스에 대한 연결을 테스트할 수 있습니다.
프록시 데이터 소스의 올바른 명령문 캐시 크기를 구성하십시오.
프록시 데이터 소스를 작성할 때 데이터 소스 패널에서 명령문 캐시 크기를 0으로 설정하십시오. 사용자 정의 특성 statementCacheSizes를 사용하여 프록시 데이터 소스의 명령문 캐시 크기를 구성하십시오. 값이 하나의 정수인 경우 모든 기본 데이터 소스의 명령문 캐시 크기는 이 값으로 설정됩니다. 또는 세미콜론 분리자를 사용하여 value1;value2;...;value2 형식으로 개별 기본 데이터 소스의 명령문 캐시 크기를 설정할 수 있습니다. 예를 들어, 10;20;30은 기본 데이터 소스 1의 명령문 캐시 크기는 10이고 기본 데이터 소스 2의 명령문 캐시 크기는 20이고 기본 데이터 소스 3의 명령문 캐시 크기는 30임을 의미합니다.
프록시 데이터 소스 작성 시 datastore helper 클래스를 대체하십시오.
현재 지원되는 모든 데이터베이스에서 두 개의 프록시 데이터 소스 JDBC 프로바이더만 있습니다(하나는 비XA용, 다른 하나는 XA용). 데이터 소스를 작성할 때 올바른 Datastore Helper 클래스를 지정하십시오. 잘못된 Datastore Helper 클래스를 지정하면 예외가 발생합니다. 예를 들어 기본 데이터 소스에서 DB2 Universal JDBC 프로바이더를 사용하는 경우 Datastore Helper 클래스는 com.ibm.websphere.proxyds.helper.DB2UniversalDSProxyDataStoreHelper로 대체해야 합니다.
연결 팩토리가 프록시 데이터 소스에 맵핑된 엔터프라이즈 Bean을 사용하는 경우 글로벌 트랜잭션에서 엔터프라이즈 Bean에 액세스해야 합니다.
Related reference
문제점 해결