제5장 External Resource

내용 목차

5.1. 리소스 종류
5.2. 리소스 설정
5.2.1. 데이터소스 설정
5.2.2. 메일 소스 설정
5.2.3. URL 소스 설정
5.2.4. Custom Resource 설정
5.2.5. External Source 설정
5.2.6. External Resource 설정

본 장에서는 JEUS와 연동하여 하나의 시스템을 구축할 수 있는 다양한 외부 리소스(External Resource)에 대한 소개와 설정 방법에 대해 설명한다. 외부 리소스에 대한 설정이나 사용법에 관한 자세한 내용들은 각 외부 리소스의 안내서를 참고한다.

External Resource는 애플리케이션이 JEUS를 통해서 접근할 수 있는 JEUS 외부에 존재하는 리소스로 DB가 대표적인 예이다. 이러한 리소스들은 JEUS에 관련 설정을 추가함으로써 연결이 가능하다.

참고

만약 External Resource에서 JCA 표준 호환의 리소스 어댑터를 제공하는 경우에는 리소스 어댑터를 deploy해서 사용하길 권장한다.

다음은 JEUS에 설정할 수 있는 리소스이다.

본 절에서는 각각의 리소스를 WebAdmin을 통해 설정하는 방법을 설명한다.

리소스는 도메인 범위에 설정하고, 서버가 부팅할 때 이 정보를 읽어 자신의 서버에 리소스를 등록한다.

JEUS Master 설정 화면 상단 메뉴에서 [리소스]를 선택하면 각 리소스를 조회할 수 있는 메뉴를 볼 수 있다.


Custom Resource는 Java Bean 형태의 리소스를 JNDI ObjectFactory를 통해 Lookup하여 사용할 수 있도록 하는 일반적인 리소스이다. 본 절에서는 Custom Resource 구현 방법과 등록 방법에 대해서 설명한다.

다음은 Java Bean 형태의 리소스 클래스와 리소스 인스턴스를 생성할 ObjectFactory 클래스에 대한 예제이다. 이 클래스는 SERVER_HOME/lib/application 또는 DOMAIN_HOME/lib/application에 있어야 한다.



참고

Custom Resource를 동적으로 추가하기 위해서는 이미 해당 클래스들이 서버의 클래스 로더에 클래스 패스로 잡혀있어야 가능하다. 만약 서버의 클래스 로더에서 이 클래스를 로딩할 수 없으면 동적 추가 명령은 pending 처리된다. 이럴 경우 Custom Resource 클래스를 SERVER_HOME/lib/application 또는 DOMAIN_HOME/lib/application에 추가하고 서버를 재기동해야 한다.

Custom Resource를 삭제하는 동작은 Graceful하게 수행되지 않는다. 즉, 진행 중인 요청이 있더라도 이를 완료하지 않기 때문에 사용자 애플리케이션에서는 에러가 발생할 수 있음을 유의한다.

WebAdmin 사용

다음은 WebAdmin에서 동적으로 Custom Resource를 등록하는 방법에 대해 알아본다.

콘솔 툴 사용

Custom Resource는 콘솔 툴을 통해서 서버에 등록된 리소스에 대한 조회 명령이 가능하다. 또한 새로운 Custom Resource를 동적으로 추가, 삭제하는 것이 가능하다.

[MASTER]domain1.adminServer>add-custom-resource custom/dog -resource dog.Dog -factory dog.DogFactory
Successfully performed the ADD operation for A custom resource.
Check the results using "list-custom-resources or add-custom-resource"

[MASTER]domain1.adminServer>list-custom-resources
List of Custom Resources
================================================================================
+-------------+--------------------+--------------------------+----------------+
| Export Name |   Resource Class   |       Factory Class      |   Properties   |
+-------------+--------------------+--------------------------+----------------+
| custom/dog  | dog.Dog            | dog.DogFactory           | [test=1,       |
|             |                    |                          |test1=2]        |
+-------------+--------------------+--------------------------+----------------+
================================================================================

[MASTER]domain1.adminServer>add-custom-resource-to-servers custom/dog -servers server1
Successfully performed the ADD operation for A custom resource.
Check the results using "list-custom-resources"

[MASTER]domain1.adminServer>remove-custom-resource custom/dog
Successfully performed the REMOVE operation for A custom resource.
Check the results using "list-custom-resources or remove-custom-resource"

[MASTER]domain1.adminServer>list-custom-resources
List of Custom Resources
================================================================================
+-------------+--------------------+--------------------------+----------------+
| Export Name |   Resource Class   |       Factory Class      |   Properties   |
+-------------+--------------------+--------------------------+----------------+
(No data available)
================================================================================

외부 소스는 크게 JMS 소스와 Connector로 나뉜다. JEUS Master 설정 화면 상단 메뉴에서 [리소스]를 선택한 후 [External Source]를 선택하면 나타나는 External Source 설정 화면에서 설정할 수 있다.


JMS Source

WebAdmin에서는 도메인에 설정된 JMS 소스를 조회하고, JMS 소스를 추가, 변경, 삭제할 수 있다. JMS 리소스를 추가하기 위해서 External Source 설정 화면에서 Jms Source 탭 하단의 [+추가] 버튼을 클릭한다.


다음은 JMS 소스 설정 항목에 대한 설명이다.

항목설명
Vendor

JMS 벤더를 설정한다. 다음의 값 중 하나를 설정한다.

  • ibmmq : IBM사의 제품이다.

  • sonicmq : Sonic MQ이다.

  • others : 그 외의 제품들이다.

Factory Class Name해당 JMS 리소스의 Factory Class의 이름을 지정한다.
Resource Type

해당하는 JMS의 타입을 결정한다.

다음의 8가지 값 중에 하나를 설정한다.

  • QCF

  • TCF

  • Q

  • T

  • XAQCF

  • XATCF

  • LOCALXAQCF

  • LOCALXATCF

Export NameJNDI에 바인딩될 이름을 지정한다. 사용자는 이 이름을 이용하여 JMS의 ConnectionFactory, Destination 등을 이용할 수 있다.
Queue'Rresource Type'이 'Q'일 때만 사용한다.
Queue Manager'Rresource Type'이 'Q'일 때만 사용한다.
Topic'Rresource Type'이 'T'일 때만 사용한다.
PropertyJMS 리소스에 필요한 속성들을 기록한다. 이 설정은 name, type, value로 구성된다.

참고

각 태그에 대한 자세한 내용은 자세한 것은 IBM MQ나 Sonic MQ의 매뉴얼을 참조한다.

Connector 추가

WebAdmin에서는 도메인에 설정된 Connector를 조회하고, 추가, 변경, 삭제할 수 있다. Connector에 대한 자세한 설명은 "JEUS JCA 안내서"를 참고한다.

JEUS에서는 Tmax나 InfiniCache와 같이 타 제품을 JEUS에서 연동하기 위해서 External Resource를 설정할 수 있다. Tmax와의 연동을 위해서는 JEUS에서 Tmax로 연결해서 Tmax의 트랜잭션 서비스를 사용하는 아웃바운드(Outbound)인 WebT와 Tmax에서 JEUS로 온 서비스 요청을 받아주는 인바운드(Inbound)인 JTmax를 설정할 수 있다. 자세한 내용은 관련된 Tmax 매뉴얼의 "JTmax Server Guide"를 참고한다.

본 절에서는 External Resource 구현 방법과 등록 방법에 대해서 설명한다.

다음은 jeus.external.ResourceBootstrapper 인터페이스이다. 이 인터페이스를 구현한 클래스는 SERVER_HOME/lib/application 또는 DOMAIN_HOME/lib/application에 있어야 한다.


참고

External Resource를 동적으로 추가하기 위해서는 이미 해당 클래스들이 서버의 클래스 로더에 클래스 패스로 잡혀있어야 가능하다. 만약 서버의 클래스 로더에서 이 클래스를 로딩할 수 없으면 동적 추가 명령은 pending 처리된다. 이럴 경우 External Resource 클래스를 SERVER_HOME/lib/application 또는 DOMAIN_HOME/lib/application에 추가하고 서버를 재기동해야 한다.

External Resource를 삭제하는 동작은 Graceful하게 수행되지 않는다. 즉, 진행 중인 요청이 있더라도 이를 완료하지 않기 때문에 사용자 애플리케이션에서는 에러가 발생할 수 있음을 유의한다.

WebAdmin 사용

다음은 WebAdmin에서 동적으로 External Resource를 등록하는 방법에 대해 알아본다.

콘솔 툴 사용

External Resource는 콘솔 툴을 통해서 서버에 등록된 리소스에 대한 조회 명령이 가능하다. 또한 새로운 External Resource를 동적으로 추가, 삭제하는 것이 가능하다.

[MASTER]domain1.adminServer>add-external-resource test/ext -resource test.ext.TestResourceBootstrapper
Successfully performed the ADD operation for A external resource.
Check the results using "list-external-resources or add-external-resource"

[MASTER]domain1.adminServer>list-external-resources
List of External Resources
=============================================================================
+----------+---------------------------------------------------+------------+
| Name     |                   Resource Class                  | Properties |
+----------+---------------------------------------------------+------------+
| test/ext | test.ext.TestResourceBootstrapper                 | []         |
+----------+---------------------------------------------------+------------+
=============================================================================

[MASTER]domain1.adminServer>add-external-resource-to-servers test/ext -servers server1
Successfully performed the ADD operation for A external resource.
Check the results using "list-external-resources"

[MASTER]domain1.adminServer>remove-external-resource test/ext
Successfully performed the REMOVE operation for A external resource.
Check the results using "list-external-resources or remove-external-resource"

[MASTER]domain1.adminServer>list-external-resources
List of External Resources
=========================================================================
+------+---------------------------------------------------+------------+
| Name |                   Resource Class                  | Properties |
+------+---------------------------------------------------+------------+
(No data available)
=========================================================================