버스에서 JMS 애플리케이션이 메시징 엔진에 연결되는 방법
JMS 애플리케이션이 서비스 통합 버스에 연결되는 방법에 영향을 주는 몇 가지 요인이 있기 때문에 버스에서 제공되는 자원을 사용할 수 있습니다.
서비스 통합 버스에 연결하기 위해 애플리케이션은 실제로 버스의 메시징 엔진에 연결됩니다.
기본적으로, 환경에서는 애플리케이션이 버스에서 사용 가능한 메시징 엔진으로 자동 연결됩니다. 추가 구성 세부사항을 지정하여 연결 프로세스를 제어할 수 있습니다(예: 특별한 부트스트랩 서버 식별, 사용 가능한 메시징 엔진의 하위 그룹에 대한 연결 제한, 가용성 또는 성능 향상 또는 수신된 메시지의 순차적 처리 보장).
애플리케이션 서버에서 실행 중인 애플리케이션: 기본 구성
애플리케이션 서버에서 실행 중인 애플리케이션은 WebSphere® Application Server 환경에서 사용 가능한 메시징 엔진으로 경로 지정됩니다.
메시징 엔진이 동일한 서버에 있는 경우, 연결은 메시징 엔진에 대해 가장 빨리 사용 가능한 연결을 애플리케이션에 제공하도록 작성됩니다. 그렇지 않으면 메시징 엔진이 동일한 또는 다른 호스트에서 다른 프로세스에 있는 경우 원격 연결이 작성됩니다. 적합한 메시징 엔진이 없는 경우에는 애플리케이션의 버스 연결이 실패합니다.

그림은 애플리케이션 서버에서 실행 중인 두 개의 애플리케이션을 보여줍니다. server3의 애플리케이션 X는 동일한 서버에서 실행 중인 메시징 엔진에 연결됩니다. server1의 애플리케이션 Y는 서버와 호스트는 다른 동일한 버스에서 실행 중인 메시징 엔진에 연결됩니다. 이는 server1이 적합한 메시징 엔진을 가지고 있지 않기 때문입니다.
애플리케이션 서버 밖에서 실행 중인 애플리케이션
애플리케이션 서버 밖에서 실행 중인 클라이언트 애플리케이션(예: 클라이언트 컨테이너 내에서 실행 또는 WebSphere Application Server 환경 외부에서 실행)은 적합한 메시징 엔진을 직접 찾을 수 없으며 부트스트랩 서버를 통해 부트스트랩 프로세스를 완료해야 합니다. 부트스트랩 서버는 SIBService 서비스를 실행하는 애플리케이션 서버이지만 메시징 엔진에서 실행될 필요는 없습니다. 부트스트랩 서버는 필요한 대상 전송 체인을 지원하는 애플리케이션 서버에서 실행 중인 메시징 엔진을 선택합니다.

이 그림은 애플리케이션 서버 밖에서 실행 중인 클라이언트 애플리케이션을 보여줍니다. 메시징 엔진을 연결하기 위해 애플리케이션은 우선 부트스트랩 서버에 연결합니다. 부트스트랩 서버는 메시징 엔진을 선택하고 클라이언트 애플리케이션에 해당 메시징 엔진 연결을 지시합니다.
부트스트랩 서버는 특정 포트 및 부트스트랩 서버의 엔드포인트 주소의 호스트 이름 양식이 포함된 부트스트랩 전송 체인을 사용합니다.
![[IBM i]](../images/iseries.gif)
애플리케이션 서버를 작성하는 경우, 자동으로 고유한 안전하지 않은 부트스트랩 포트 SIB_ENDPOINT_ADDRESS를 지정하고 안전 부트스트랩 포트 SIB_ENDPOINT_SECURE_ADDRESS를 지정합니다. 애플리케이션 서버를 부트스트랩 서버로 사용하고 서버가 7276 이외의 안전하지 않은 포트로 지정되었거나 안전 포트를 사용하려는 경우, 연결 팩토리의 제공자 엔드포인트 특성에서 서버의 엔드포인트 주소를 지정해야 합니다.
부트스트랩 서버의 엔드포인트 주소는 애플리케이션 서버 밖의 서버에서 사용되는 모든 연결 팩토리에 지정해야 합니다. 부트스트랩 서버에 대해 긴 목록을 지정하지 않기 위해 부트스트랩 서버에 전용되는 몇 개의 가용성이 높은 서버를 제공할 수 있습니다. 그런 다음 각 연결 팩토리에 부트스트랩 서버의 짧은 목록만 지정하면 됩니다.
메시징 엔진 선택 프로세스
- JMS 클라이언트 애플리케이션의 경우 이 정보는 연결 팩토리에서 구성됩니다.
- 메시지 구동 Bean(MDB) 애플리케이션의 경우 이 정보는 활성화 스펙에서 구성됩니다.
- 다른 유형의 애플리케이션인 경우, 이 정보는 애플리케이션이 프로그래밍 방식으로 구성합니다.
- 메시징 엔진이 동일한 애플리케이션 서버 내의 필수 버스에서 실행 중인 경우 애플리케이션에서 메시징 엔진으로 연결이 작성됩니다. 적합한 메시징 엔진이 없는 경우 다음 규칙이 확인됩니다.
- 메시징 엔진이 애플리케이션과 동일한 호스트에서 실행 중인 경우 애플리케이션은 선택한 메시징 엔진에 대해 원격 연결을 작성합니다. 적합한 메시징 엔진이 없는 경우 다음 규칙이 확인됩니다.
- 메시징 엔진이 버스의 임의 위치에서 실행 중인 경우 애플리케이션은 선택한 메시징 엔진에 대해 원격 연결을 작성합니다. 적합한 메시징 엔진이 없는 경우 연결 시도는 성공하지 못합니다.
이 두 경우 모두(즉, 애플리케이션 서버 내에서 실행 중인 애플리케이션 및 애플리케이션 서버 밖에서 실행 중인 애플리케이션) 연결에 사용할 수 있는 메시징 엔진의 범위는 서비스 통합 버스에서 사용 가능한 하위 그룹으로 제한할 수 있습니다. 연결 팩토리 또는 활성화 스펙의 다음 연결 특성을 구성하여 수행합니다.
- 대상
연결 근접성 검색이 적합한 메시징 엔진을 선택하도록 수행되기 전에, 지정된 대상 그룹의 멤버인 메시징 엔진 세트가 선택됩니다. 그런 다음, 연결 근접성 검색이 이들 메시징 엔진으로 제한됩니다. 대상 그룹이 지정되지 않은 경우(기본값), 연결 근접성 검색 중에 버스의 모든 메시징 엔진이 고려됩니다.
예를 들어, 대상 유형 특성이 버스 멤버 이름로 설정된 경우, 대상 특성으로 적합한 메시징 엔진을 선택할 수 있는 버스 멤버의 이름을 지정합니다.
- 대상 유형
- 버스 멤버 이름
- 버스 멤버의 이름입니다. 이 옵션은 이름 지정된 버스 멤버(애플리케이션 서버 또는 서버 클러스터)가 호스트하는 활성 메시징 엔진을 검색합니다.
- 사용자 정의 메시징 엔진 그룹 이름
- 자체 선언 클러스터를 구성하는 메시징 엔진의 사용자 정의 그룹 이름입니다. 이 옵션은 이름 지정된 사용자 정의 그룹으로 등록된 활성 메시징 엔진을 검색합니다.
- 메시징 엔진 이름
- 메시징 엔진의 이름입니다. 이 옵션은 이름 지정된 메시징 엔진에 도달하기 위해 사용할 수 있는 엔드포인트를 검색합니다.
- 대상 중요도
- 이 특성은 연결 근접성 검색이 대상 그룹의 메시징 엔진에만 제한되는지의 여부를 정의합니다.
- 기본
- 대상 그룹에서 메시징 엔진을 선택하는 것이 좋습니다. 사용 가능한 경우 대상 그룹의 메시징 엔진이 선택됩니다. 메시징 엔진이 대상 그룹에서 사용할 수 없을 경우, 동일한 서비스 통합 버스에서 사용 가능하다면 대상 그룹 외부의 메시징 엔진이 선택됩니다.
- 필수
- 대상 그룹에서 메시징 엔진을 선택해야 합니다. 사용 가능한 경우 대상 그룹의 메시징 엔진이 선택됩니다. 메시징 엔진이 대상 그룹에서 사용할 수 없을 경우, 연결 프로세스가 실패합니다.
- 대상 인바운드 전송 체인
별도의 프로세스에서 메시징 엔진을 애플리케이션에 연결 시 애플리케이션이 대상으로 해야하는 메시징 엔진 인바운드 전송 체인 이름입니다.
이러한 전송 체인에서는 클라이언트 애플리케이션이 연결된 애플리케이션 서버와 통신하는 데 사용할 수 있는 통신 프로토콜을 지정합니다. 다른 프로세스의 메시징 엔진이 선택되면 연결은 메시징 엔진이 지정한 전송 체인을 실행하는 서버에서 실행되는 경우에만 작성됩니다.
다음의 사전 정의된 메시징 엔진 인바운드 전송 체인이 제공됩니다.- InboundBasicMessaging
- TCP/IP를 통한 JFAP
- InboundSecureMessaging
- TCP/IP를 통한 SSL의 JFAP
- 연결 근접성
- 애플리케이션 서버에서 실행 중인 애플리케이션의 경우 이 특성은
애플리케이션 서버에 관련된 메시징 엔진의 인접성을 정의합니다. 애플리케이션 서버 밖에서 실행 중인
애플리케이션의 경우 이 특성은 부트스트랩 서버에 관련된 메시징 엔진의 인접성을 정의합니다.
- 버스
- 동일한 버스의 메시징 엔진에 연결할 수 있습니다.
동일한 서버의 적합한 메시징 엔진은 동일한 호스트의 적합한 메시징 엔진, 결국 다른 호스트의 적합한 메시징 엔진 이전에 선택됩니다.
- 클러스터
- 동일한 서버 클러스터의 메시징 엔진에 연결할 수 있습니다. 클러스터된 서버에서
애플리케이션이 실행 중이 아니거나 부트스트랩 서버가 클러스터에 없는 경우 적합한 메시징 엔진은
없습니다.
동일한 서버의 적합한 메시징 엔진은 동일한 호스트의 적합한 메시징 엔진, 결국 다른 호스트의 적합한 메시징 엔진 이전에 선택됩니다.
- 호스트
- 동일한 호스트의 메시징 엔진에 연결할 수 있습니다. 동일한 서버의 적합한 메시징 엔진은 동일한 호스트의 적합한 메시징 엔진 전에 선택됩니다.
- 서버
- 동일한 애플리케이션 서버의 메시징 엔진에 연결할 수 있습니다.
- 클러스터에서 처리 성능을 모두 사용하기 위해 클러스터의 모든 서버가 MDB 애플리케이션에서 메시지를 수신할 수 있습니다.
- 메시지의 순차적 처리를 보장하기 위해 한 번에 하나의 서버가 MDB 애플리케이션에서 메시지를 수신할 수 있습니다.
자세한 정보는 메시지 구동 Bean을 클러스터에 연결하는 방법의 내용을 참조하십시오.