7.5. JMS 연결 풀 사용
이 섹션에서는 JMS 연결/세션 풀링 옵션에 대해 설명합니다. JDBC에 대한 선택 사항보다 적은 선택 사항이 있습니다. 정보는 다음 주제로 구성됩니다.
XA 복구를 사용하려면 pax-jms-pool-transx 또는 pax-jms-pool-narayana 연결 풀 모듈을 사용해야 합니다.
7.5.1. JMS 연결 풀 사용 소개 링크 복사링크가 클립보드에 복사되었습니다!
지금까지 브로커별 연결 팩토리 를 등록했습니다. 연결 팩토리 자체는 연결 팩토리 의 팩토리이기 때문에 org.ops4j.pax.jms.service.ConnectionFactoryFactory 서비스는 메타 팩토리 로 취급될 수 있습니다. 두 종류의 연결 팩토리를 생성할 수 있어야 합니다.
-
javax.jms.ConnectionFactory -
javax.jms.XAConnectionFactory
pax-jms-pool-* 번들은 org.ops4j.pax.jms.service.ConnectionFactoryFactory 서비스와 원활하게 작동합니다. 이러한 번들은 속성 세트와 원래 org.ops4j.pax.service.ConnectionFactoryfactory를 사용하여 풀링된 연결 팩토리를 생성하는 데 사용할 수 있는 factory의 구현을 제공합니다. 예를 들면 다음과 같습니다.
org.ops4j.pax.pax.jms.service.service.service.service.service.Pooled ConnectionFactory
public interface PooledConnectionFactoryFactory {
ConnectionFactory create(ConnectionFactoryFactory cff, Map<String, Object> props);
}
public interface PooledConnectionFactoryFactory {
ConnectionFactory create(ConnectionFactoryFactory cff, Map<String, Object> props);
}
다음 표에서는 풀링된 연결 팩토리 팩토리 팩토리를 등록하는 번들을 보여줍니다. 표에서 o.o.p.j.p 는 org.ops4j.pax.jms.pool 을 나타냅니다.
| 번들 | PooledConnectionFactoryFactory | 풀 키 |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
pax-jms-pool-narayana 팩토리를 pooled-jms 라이브러리를 기반으로 하므로 PooledJms(XA)PooledConnectionFactoryFactory 라고 합니다. XA 복구를 위한 Narayana 트랜잭션 관리자와의 통합을 추가합니다.
위의 번들은 연결 팩토리만 설치합니다. 연결 팩토리를 직접 설치하지 않는 번들입니다. 결과적으로 javax.jms.ConnectionFactory org.ops4j.pax.jms.service.PooledConnectionFactoryFactory.create() 메서드를 호출하는 데 필요한 것이 있습니다.
7.5.2. pax-jms-pool-pooledjms 연결 풀 모듈 사용 링크 복사링크가 클립보드에 복사되었습니다!
pax-jms-pooledjms 번들을 사용하는 방법을 이해하면 번들뿐만 아니라 pax-jms-pool-pooledjms pax-jms-pool-pool 번들도 사용할 수 있습니다.
- narayna
pax-jms-config 번들은 다음을 추적합니다.
-
org.ops4j.pax.jms.service.ConnectionFactoryFactoryservices -
org.ops4j.connection factory팩토리 PID -
factory의 인스턴스입니다.pax-jms-pool-*번들 중 하나로 등록된 org.ops4j.pax.jms.service.PooledConnectionFactory
팩토리 구성에 pool 속성이 포함된 경우 pax-jms-config 번들에 의해 등록된 궁극적인 연결 팩토리는 브로커별 연결 팩토리입니다. pool=pooledjms 인 경우 연결 팩토리는 다음 중 하나로 래핑됩니다.
-
org.messaginghub.pooled.jms.JmsPoolConnectionFactory(xa=false) -
org.messaginghub.pooled.jms.JmsPoolXAConnectionFactory(xa=true)
pool 속성(및 비xa/xa 연결 팩토리 중 하나를 선택하는 부울 xa 속성 외에도 org.ops4j.connectionfactory factory PID 에는 풀 접두사가 있는 속성이 포함될 수 있습니다. .
pooled-jms 라이브러리의 경우 다음과 같은 접두사가 지정된 속성이 ( 접두사를 제거한 후) 사용하여 인스턴스를 구성합니다.
-
org.messaginghub.pooled.jms.JmsPoolConnectionFactory, or -
org.messaginghub.pooled.jms.JmsPoolXAConnectionFactory
다음 목록은 jms와 함께 편리한 구문을 사용하는 -prefixed properties:
pooled-jms 풀(org.ops4j.connectionfactory-artemis factory PID)의 비현실적 구성입니다.
위의 구성에서 pool 및 xa 키는 등록된 org.ops4j.pax.jms.service.PooledConnectionFactoryfactory 서비스 중 하나를 선택하는 힌트 (서비스 필터 속성)입니다. pooled-jms 라이브러리의 경우 다음과 같습니다.
다음은 연결 풀을 생성하고 구성하는 단계의 전체 예입니다.
필요한 기능을 설치합니다.
karaf@root()> feature:install -v pax-jms-pool-pooledjms pax-jms-artemis Adding features: pax-jms-pool-pooledjms/[1.0.0,1.0.0] ...
karaf@root()> feature:install -v pax-jms-pool-pooledjms pax-jms-artemis Adding features: pax-jms-pool-pooledjms/[1.0.0,1.0.0] ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow jms기능을 설치합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 팩토리 구성 을 생성합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow pax-jms-config가javax.jms.ConnectionFactory서비스로 구성을 처리했는지 확인합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 연결 팩토리를 사용합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.5.3. pax-jms-pool-narayana 연결 풀 모듈 사용 링크 복사링크가 클립보드에 복사되었습니다!
pax-jms-pool-narayna 모듈은 pax-jms-pool-pooledjms 로 거의 모든 작업을 수행합니다. XA 및 비 XA 시나리오에 대해 pooled-jms-specific org.ops4j.pax.jms.service.PooledConnectionFactoryFactory 를 설치합니다. 유일한 차이점은 XA 시나리오에서는 추가 통합 포인트가 있다는 것입니다. org.jboss.tm.XAResourceRecovery OSGi 서비스는 com.arjuna.ats.arjuna.recovery.Recovery.RecoveryManager 에서 선택할 수 있도록 등록되었습니다.
7.5.4. pax-jms-pool-transx 연결 풀 모듈 사용 링크 복사링크가 클립보드에 복사되었습니다!
pax-jms-pool-transx 모듈은 서비스의 구현을 제공합니다. pax-transx-jms 번들을 기반으로 하는 org.ops4j.pax.service.PooledConnectionFactoryFactorypax-transx-jms 번들은 org.ops4j.pax.transx.jms.ManagedConnectionFactoryBuilder 기능을 사용하여 javax.jms.ConnectionFactory 풀을 생성합니다. 이는 8.3절. “pax-transx 프로젝트 정보” 에서 설명하는 JCA(Java™ Connector Architecture) 솔루션입니다.