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.ConnectionFactoryFactory
services -
org.ops4j.connection factory팩토리 PID
-
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) 솔루션입니다.