JCA 구성 요소 개요
JCA(Java Platform, Enteprise Edition Connector Architecture) 기능은 연결 팩토리, 관리 오브젝트 및 활성화 스펙의 인스턴스를 정의하고 이 인스턴스를 설치된 자원 어댑터와 연관시키는 데 필요한 구성 요소를 제공합니다. 각각의 JCA 구성 요소는 최상위 레벨 요소와 하위 요소라는 두 개의 기본 파트로 구성되며 구성된 인스턴스를 위해 두 파트 모두 필요합니다.
최상위 레벨 요소는 Liberty 서버가 제공하는 일반 기능(예:
JNDI 이름, 연결 관리 및 컨테이너 인증)을 구성합니다. 하위 요소는 인스턴스를 설치된 자원 어댑터에 결합하고
사용자가 공급업체가 정의한 구성 특성을 지정할 수 있게 합니다.
일반 JCA 사전 정의 최상위 레벨 구성 요소:
- connectionFactory
- adminObject
- activationSpec
JMS 기능이 사용으로 설정된 경우에는
JMS를 위한 사전 정의 일반 구성 요소도 있습니다.
- jmsConnectionFactory
- jmsQueueConnectionFactory
- jmsTopicConnectionFactory
- jmsDestination
- jmsQueue
- jmsTopic
- jmsActivationSpec
자원 어댑터가 설치될 때 자원 어댑터 배치 디스크립터 및 어노테이션에서 하위 요소가 생성됩니다. 사용 가능한 서버 구성 요소에 대한 정적 문서에는 사용 가능한 하위 요소의 문서가 표시되지 않습니다.
다음의 규칙을 사용하여 서버 구성 하위 요소의 이름을 생성하십시오.
참고: 다음 예제에서
<rar_identifier>는 확장자 또는 디렉토리 경로 정보 없이
resourceAdapter 구성 요소의 위치 속성에 지정된 파일 이름입니다.
- 자원 어댑터가 connectionFactory 또는 adminObject 등의 나열된 카테고리 중 하나에 있는 정확하게 하나의 인터페이스를 제공하는 경우 하위 요소는 properties.<rar_identifier>입니다.
- 인터페이스 이름이 패키지 이름 없이 고유한 경우 하위 요소는 properties.<rar_identifier>.<InterfaceName>입니다.
- 구현 이름이 패키지 이름 없이 고유한 경우 하위 요소는 properties.<rar_identifier>.<ImplementationName>입니다.
- 기타 경우 하위 요소 이름은 properties.<rar_identifier>.<fully.qualified.InterfaceName> 또는 properties.<rar_identifier>.<fully.qualified.ImplementationName>입니다.
다음 예제에서는 ID가 MyAdapter인 자원 어댑터가 각 카테고리 내 하나의 인스턴스만 제공하는 경우를 보여줍니다.
<connectionFactory jndiName="eis/cf1" containerAuthDataRef="auth1">
<properties.MyAdapter portNumber="1234" someVendorProperty="100"/>
</connectionFactory>
<connectionFactory jndiName="eis/cf2" containerAuthDataRef="auth2">
<properties.MyAdapter portNumber="1234" someVendorProperty="200"/>
</connectionFactory>
<jmsConnectionFactory jndiName="jms/cf">
<properties.MyAdapter serverName="localhost" anotherProperty="40"/>
</jmsConnectionFactory>
<jmsQueueConnectionFactory jndiName="jms/qcf">
<properties.MyAdapter serverName="localhost" vendorProp1="1"/>
</jmsQueueConnectionFactory>
<jmsTopicConnectionFactory jndiName="jms/tcf">
<properties.MyAdapter serverName="localhost" prop1="A" prop2="B"/>
</jmsTopicConnectionFactory>
<adminObject jndiName="eis/interactionSpec">
<properties.MyAdapter functionName="find" executionTimeout="5000"/>
</adminObject>
<jmsDestination jndiName="jms/destination1">
<properties.MyAdapter name="DEST1"/>
</jmsDestination>
<jmsQueue jndiName="jms/queue1">
<properties.MyAdapter queueName="QUEUE1"/>
</jmsQueue>
<jmsTopic id="topic1" jndiName="jms/topic1">
<properties.MyAdapter topicName="TOPIC1"/>
</jmsTopic>
<activationSpec id="app1/module1/MyMessageDrivenBean">
<properties.MyAdapter prop1="a" prop2="b" prop3="c"/>
</activationSpec>
<jmsActivationSpec id="app1/module1/MyJMSMessageDrivenBean">
<properties.MyAdapter destinationRef="topic1"/>
</jmsActivationSpec>