JMS용 일반 자원 어댑터는 IBM Websphere MQ, Tibco EMS 및 Sonic MQ와 같은 외부 JMS 공급자의 JMS 클라이언트 라이브러리를 래핑할 수 있으며 이에 따라 모든 JMS 공급자를 Sun Java System Application Server와 같은 Java EE 1.4 응용 프로그램 서버에 통합할 수 있는 Java EE Connector 1.5 자원 어댑터입니다. 이 어댑터는 .rar 아카이브로서, Java EE 1.4 응용 프로그램 서버의 관리 도구를 사용하여 배포 및 구성할 수 있습니다.
응용 프로그램 서버의 관리 도구를 사용하여 JMS용 일반 자원 어댑터를 배포하고 구성할 수 있습니다. 이 절에서는 Sun Java System Application Server에 JMS용 일반 자원 어댑터를 구성하는 방법에 대해 설명합니다. 일반적으로 자원 어댑터는 JMS 공급자가 XA를 지원하는지 여부를 나타내도록 구성할 수 있습니다. 또한, JMS 공급자와의 가능한 통합 모드를 나타내도록 구성할 수도 있습니다. 자원 어댑터는 두 가지 통합 모드를 지원합니다. 첫 번째 모드는 JNDI를 통합 수단으로 사용합니다. 이 경우, 관리 대상 객체는 JMS 공급자의 JNDI 트리에 설정되며 일반 자원 어댑터에서 사용할 목적으로 조회됩니다. 해당 모드가 통합에 적합하지 않은 경우 JMS 관리 대상 객체 javabean 클래스의 Java 리플렉션을 통합 모드로 사용할 수도 있습니다. Sun Java System Application Server의 관리 콘솔 또는 CLI를 사용하여 자원 어댑터를 구성할 수 있습니다. 이 방법은 다른 자원 어댑터를 구성하는 방법과 다르지 않습니다.
자원 어댑터를 배포하기 전에 JMS 클라이언트 라이브러리를 Application Server에 사용할 수 있어야 합니다. 일부 JMS 공급자의 경우 클라이언트 라이브러리에 원시 라이브러리가 포함되어 있을 수도 있습니다. 이 경우, 원시 라이브러리도 Application Server JVM에 사용할 수 있어야 합니다.
커넥터 모듈을 배포한 것과 동일한 방식으로 일반 자원 어댑터를 배포합니다.
이에 대한 작업 단계는 관리 콘솔 온라인 도움말을 참조하십시오. 배포 중 install-dir/lib/addons/resourceadapters/genericjmsra/genericra.rar을 일반 자원 어댑터의 위치로 지정해야 합니다. 또한, 자원 어댑터 등록 정보 절에 설명된 등록 정보를 지정해야 합니다.
커넥터 연결 풀을 만듭니다.
이에 대한 작업 단계는 관리 콘솔 온라인 도움말을 참조하십시오. 새 커넥터 연결 풀 페이지의 자원 어댑터 콤보 상자에서 genericra를 선택하고 연결 정의 콤보 상자에서 javax.jms.QueueConnectionFactory를 선택합니다. 또한, ManagedConnectionFactory 등록 정보 절에 설명된 등록 정보를 지정합니다.
커넥터 자원을 만듭니다.
이 작업에 대한 자세한 절차는 관리 콘솔 온라인 도움말을 참조하십시오. 새 커넥터 자원 페이지에서, 이전 단계에서 만든 풀을 선택합니다.
관리 대상 객체 자원을 만듭니다.
이 작업에 대한 자세한 절차는 관리 콘솔 온라인 도움말을 참조하십시오. 새 관리 객체 자원 페이지에서 genericra를 자원 어댑터로, javax.jms.Queue를 자원 유형으로 선택합니다. 다음을 누르고 두 번째 페이지에서 등록 정보 추가를 누릅니다. 추가 등록 정보 테이블에서 DestinationProperties라는 새 등록 정보를 Name\\=clientQueue 값으로 지정합니다. 다른 등록 정보에 대한 자세한 내용은 관리 대상 객체 자원 등록 정보 절을 참조하십시오.
Sun Java System Application Server의 보안 정책을 다음과 같이 변경합니다.
sjsas_home/domains/domain1/config/server.policy를 수정하여 java.util.logging.LoggingPermission "control"을 추가합니다.
sjsas_home/lib/appclient/client.policy를 수정하여 permission javax.security.auth.PrivateCredentialPermission "javax.resource.spi.security.PasswordCredential * \"*\"","read";를 추가합니다.
다음 표는 자원 어댑터를 만들 때 사용할 등록 정보를 나타냅니다.
ManagedConnectionFactory 등록 정보는 connector-connection-pool을 만들 때 지정됩니다. 자원 어댑터를 만들 때 지정된 모든 ManagedConnectionFactory 등록 정보는 대체될 수 있습니다. ManagedConnectionFactory에만 사용할 수 있는 추가 등록 정보는 다음과 같습니다.
등록 정보 이름 |
유효 값 |
기본값 |
설명 |
---|---|---|---|
ClientId |
유효 클라이언트 아이디 |
없음 |
JMS 1.1 사양으로 지정된 ClientID입니다. |
ConnectionFactoryJndiName |
JNDI 이름 |
없음 |
JMS 공급자의 JNDI 트리에 바인딩된 연결 팩토리의 JNDI 이름입니다. 관리자는 JMS 공급자에 모든 연결 팩토리 등록 정보(clientID 제외)를 제공해야 합니다. 이 등록 정보 이름은 ProviderIntegrationMode가 jndi로 지정된 경우에만 사용됩니다. |
ConnectionValidationEnabled |
true/false |
false |
true로 설정하면 자원 어댑터는 예외 Listener를 사용하여 연결 예외를 포착하고 CONNECTION_ERROR_OCCURED 이벤트를 Application Server에 보냅니다. |
이 등록 정보는 관리 대상 객체 자원을 만들 때 지정됩니다. 관리 대상 객체 자원의 모든 자원 어댑터 등록 정보는 대체될 수 있습니다. 관리 대상 객체 자원에만 사용할 수 있는 추가 등록 정보는 다음과 같습니다.
등록 정보 이름 |
유효 값 |
기본값 |
설명 |
---|---|---|---|
DestinationJndiName |
JNDI 이름 |
없음 |
JMS 공급자의 JNDI 트리에 바인딩된 대상의 JNDI 이름입니다. 관리자는 JMS 공급자에 모든 등록 정보를 제공해야 합니다. 이 등록 정보 이름은 ProviderIntegrationMode가 jndi로 지정된 경우에만 사용됩니다. |
DestinationProperties |
쉼표로 구분된 이름 값 쌍 |
없음 |
이 등록 정보는 javabean 등록 정보 이름 및 JMS 클라이언트의 대상 값을 지정합니다. ProviderIntegrationMode가 javabean으로 지정된 경우에만 사용됩니다. |
이 등록 정보는 MDB의 Sun 특정 배포 설명자에 activation-config-properties로 지정되어 있습니다. 활성화 사양의 모든 자원 어댑터 등록 정보는 대체될 수 있습니다. 활성화 사양에만 사용할 수 있는 추가 등록 정보는 다음과 같습니다.
등록 정보 이름 |
유효한 값 |
기본값 |
설명 |
---|---|---|---|
MaxPoolSize |
정수 |
8 |
동시 메시지 전달을 수행하기 위해 자원 어댑터에서 내부적으로 만든 서버 세션 풀의 최대 크기입니다. 이 값은 MDB 객체의 최대 풀 크기와 같아야 합니다. |
MaxWaitTime |
정수 |
3 |
자원 어댑터는 이 등록 정보에 지정된 시간(초) 동안 내부 풀에서 서버 세션을 가져오기 위해 대기합니다. 이 제한이 초과되면 메시지 전달이 실패합니다. |
SubscriptionDurability |
영구적 또는 비영구적 |
비영구적 |
JMS 1.1 사양에서 지정된 SubscriptionDurability입니다. |
SubscriptionName |
없음 |
JMS 1.1 사양에서 지정된 SubscriptionName입니다. |
|
MessageSelector |
유효 메시지 선택기 |
없음 |
JMS 1.1 사양에서 지정된 MessageSelector입니다. |
ClientID |
유효 클라이언트 아이디 |
없음 |
JMS 1.1 사양에서 지정된 ClientID입니다. |
ConnectionFactoryJndiName |
유효 JNDI 이름 |
없음 |
JMS 공급자에 만들어진 연결 팩토리의 JNDI 이름입니다. 자원 어댑터가 이 연결 팩토리를 사용하여 메시지를 수신하기 위한 연결을 만듭니다. ProviderIntegrationMode가 jndi로 지정된 경우에만 사용됩니다. |
DestinationJndiName |
유효 JNDI 이름 |
없음 |
JMS 공급자에 만들어진 대상의 JNDI 이름입니다. 자원 어댑터가 이 대상을 사용하여 메시지를 수신하기 위한 연결을 만듭니다. ProviderIntegrationMode가 jndi로 지정된 경우에만 사용됩니다. |
DestinationType |
javax.jms.Queue 또는 javax.jms.Topic |
null |
MDB가 수신할 대상 유형입니다. |
DestinationProperties |
쉼표로 구분된 이름 값 쌍 |
없음 |
이 등록 정보는 javabean 등록 정보 이름 및 JMS 클라이언트의 대상 값을 지정합니다. ProviderIntegrationMode가 javabean으로 지정된 경우에만 사용됩니다. |
RedeliveryAttempts |
정수 |
메시지로 인해 MDB 런타임 예외가 발생한 경우 메시지를 전달할 시간입니다. |
|
RedeliveryInterval |
시간(초) |
메시지로 인해 MDB 런타임 예외가 발생한 경우의 재전달 시도 간격입니다. |
|
SendBadMessagesToDMD |
true/false |
false |
전달 시도 횟수가 초과된 경우 자원 어댑터가 해당 메시지를 사용 불능 메시지 대상으로 보내야 할지를 나타냅니다. |
DeadMessageDestinationJndiName |
유효한 JNDI 이름 |
없음 |
JMS 공급자에 만들어진 대상의 JNDI 이름입니다. 이 값은 사용 불능 메시지를 위한 목표 대상입니다. ProviderIntegrationMode가 jndi로 지정된 경우에만 사용됩니다. |
DeadMessageDestinationClassName |
대상 객체의 클래스 이름 |
없음 |
ProviderIntegrationMode가 javabean으로 지정된 경우에 사용됩니다. |
DeadMessageDestinationProperties |
쉼표로 구분된 이름 값 쌍 |
없음 |
이 등록 정보는 javabean 등록 정보 이름 및 JMS 클라이언트의 대상 값을 지정합니다. 이는 ProviderIntegrationMode가 javabean으로 지정된 경우에만 사용됩니다. |
ReconnectAttempts |
정수 |
연결 시 예외 Listener에서 오류를 포착한 경우 다시 연결을 시도할 시간입니다. |
|
ReconnectInterval |
시간(초) |
다시 연결 시도 간격입니다. |