일부 서버는 일괄처리 디스패처로 작동하고 다른 서버는 일괄처리 실행기로 작동하도록 일괄처리 환경을 설정할 수 있습니다.
일괄처리 디스패처는 외부 클라이언트의 요청을 수락하고 일괄처리 실행기에서 이 요청을 사용할 수 있게 합니다. 일괄처리 실행기는
자신의 정의된 기능과 일치하는 요청을 수신하고 이러한 요청을 실행합니다. 일괄처리 디스패처와 일괄처리 실행기는 Java Messaging Service(JMS)를 사용하여 통신합니다.
시작하기 전에
임베디드 메시지 엔진이 호스팅되는 위치를 판별하십시오. 임베디드 메시지 엔진은 일괄처리 디스패치 서버, 일괄처리 실행기 서버 또는
별도의 서버에서 호스팅될 수 있습니다. 이 태스크를 완료하기 전에 이 서버가 구성되어 있어야 합니다. JMS 연결 팩토리와 활성화 스펙은 해당 구성에 있는
메시지 엔진 서버를 참조합니다. 메시지 엔진을 구성하려면 다음을 수행하십시오.
- wasJmsServer-1.0 기능을 server.xml에 추가하십시오.
- messageEngine 요소를 추가하여 메시지 엔진을 정의하십시오. 일괄처리 디스패처 및 일괄처리 실행기에 사용되는 큐를 정의하십시오.
다음 예는 server.xml의 메시지 엔진 구성을 보여줍니다.
<!-specify the ports for the message engine.
The ports in this example are the default ports.
This element is not needed when the default ports are used. -->
<wasJmsExecutor host="*"
wasJmsPort="7280"
wasJmsSSLPort="7290"
enabled="true">
</wasJmsExecutor>
<messagingEngine>
<!- queue for batch jms message. -->
<queue id="batchLibertyQueue"
forceReliability="ReliablePersistent"
receiveAllowed="true"/>
</messagingEngine>
이 태스크 정보
이 태스크는 Liberty 프로파일 임베디드 메시징 제공자를 사용하여 일괄처리 디스패치 서버 및 일괄처리 실행기를 구성하는 데 도움을 줍니다.
프로시저
Liberty 프로파일 임베디드 메시징 제공자를 사용하는 일괄처리 디스패처 및 실행기를 구성하려면 다음 작업을 수행하십시오.
- 일괄처리 JMS 디스패처를 구성하십시오.
- server.xml에서 wasJmsClient-2.0 기능을 기능 관리자에 추가하여 JMS 지원을 사용으로 설정하십시오.
- 일괄처리 디스패처를 호스팅하는 서버의 server.xml에 batchJmsDispatcher 요소를 추가하십시오.
<batchJmsDispatcher connectionFactoryRef={reference to a configured JMS connection factory}
queueRef={reference to a configured JMS queue} />
참고: connectionFactoryRef 및 queueRef 속성을 지정하지 않으면 connectionFactoryRef의 기본값은
batchConnectionFactory이며 queueRef의 기본값은 batchJobSubmissionQueue입니다.
이와 같이 batchJmsDispatcher 요소를 <batchJmsDispatcher />로 지정할 수 있습니다.
batchConnectionFactory JMS 연결 팩토리 및 JMS batchJobSubmissionQueue 큐는 여전히
server.xml 파일에 구성해야 합니다.
- 해당 JMS 연결 팩토리와 JMS 큐를 서버 구성에 추가하십시오. 이는 일괄처리 구성에만 적용되는 것은 아닙니다. 다음 예는 일괄처리 JMS 디스패처 구성과 해당 JMS 구성을 보여줍니다.
참고: remoteServerAddress 속성은 Liberty 프로파일 메시지
엔진을 호스팅하고 있는 서버의 host:port를 가리킵니다.
<batchJmsDispatcher connectionFactoryRef="batchConnectionFactory"
queueRef="batchJobSubmissionQueue" />
<jmsConnectionFactory id="batchConnectionFactory"
jndiName="jms/batch/connectionFactory">
<properties.wasJms remoteServerAddress="host:7280:BootstrapBasicMessaging">
</properties.wasJms>
</jmsConnectionFactory>
<jmsQueue id='batchJobSubmissionQueue"
jndiName="jms/batch/jobSubmissionQueue">
<properties.wasJms deliveryMode="Persistent"
queuename="batchLibertyQueue">
</properties.wasJms>
</jmsQueue>
- 일괄처리 JMS 실행기를 구성하십시오.
- wasJmsClient-2.0 지원을 server.xml의 기능 관리자에 추가하여 JMS 지원을 사용으로 설정하십시오.
- 일괄처리 실행기를 호스팅하는 서버의 server.xml 파일에 batchJmsExecutor 요소를 추가하십시오.
<batchJmsExecutor activationSpecRef={configured activation specification or batch executor}
queueRef={reference to the configured JMS queue} />
참고: activationSpecRef 및 queueRef 속성을 지정하지 않으면 activationSpecRef의 기본값은 batchActivationSpec이며
queueRef의 기본값은 batchJobSubmissionQueue입니다. 따라서 batchJmsExecutor 요소를 <batchJmsExecutor />로 지정할 수 있습니다.
batchActivationSpec의 JMS 활성화 스펙 및 batchJobSubmissionQueue JMS 큐는 server.xml 파일에 여전히 구성해야 합니다.
- 해당 JMS 활성화 스펙과 JMS 큐를 서버 구성에 추가하십시오. 이는 일괄처리 구성에만 적용되는 것은 아닙니다.
- 활성화 스펙에 JMS 메시지 선택기를 포함시켜 일괄처리 실행기 서버 기능을 정의하십시오.
- 시스템 정의 특성을 기반으로 하는 필터링:
일괄처리 JMS 메시지에는 일괄처리 실행기가 인바운드 메시지 필터링에 사용할 수 있는 일괄처리 디스패처 특성 세트가 있습니다.
- com_ibm_ws_batch_applicationName: 작업 요청에 대한 일괄처리 애플리케이션의 이름
- com_ibm_ws_batch_moduleName: 작업 요청에 대한 일괄처리 애플리케이션의 모듈 이름
- com_ibm_ws_batch_componentName: 작업 요청에 대한 일괄처리 애플리케이션의 컴포넌트 이름
참고: 실행기에서 처리할 수 있는 작업만 수신하도록 하기 위해
최소한 com_ibm_ws_batch_applicationName 특성을 사용하여 메시지 선택기를 지정하는 것이 좋습니다.
다음 예제는 애플리케이션
SimpleBatchJob 및
BonusPayout에 대한 작업을 수락하는 실행기의
messageSelector 속성을 나타냅니다.
messageSelector="com_ibm_ws_batch_applicationName = 'SimpleBatchJob' OR com_ibm_ws_batch_applicationName = 'BonusPayout'">
다음 예제는 애플리케이션
SimpleBatchJob에 대한 작업을 수락하는 실행기의
messageSelector 속성을 나타냅니다.
messageSelector="com_ibm_ws_batch_applicationName = 'SimpleBatchJob'">
- 사용자 정의 특성 기반 필터링:
일괄처리 디스패처는 일괄처리 디스패처 요청 메시지에 적절한 JMS 메시지 특성을 따르는 모든 작업 매개변수를 설정합니다.
이러한 특성은 메시지 선택기에 필터링 기능을 추가하기 위해 메시지 선택기에 의해 사용될 수도 있습니다. 따라서 특성 이름 또는 ID는 JMS 메시지 특성 제한조건을 따라야 합니다.
예를 들어, 특성이 무제한의 길이를 갖는 문자 또는 숫자의 시퀀스이며 첫 번째 글자가 문자여야 합니다. 문자는 메소드 Character.isJavaLetter가
true를 리턴하는 임의의 문자이며 '_' 및 '$'를 포함합니다. 문자 또는 숫자는 메소드 Character.isJavaLetterOrDigit이 true를
리턴하는 임의의 문자입니다. JMS 메시지 선택기에 대한 자세한 정보는 JMS Javadoc을 참조하십시오.
다음 예제는
com_ibm_ws_batch_applicationName 특성 및 작업 매개변수
specialCapability를 사용하는 가능한 메시지 선택기를 나타냅니다.
messageSelector="com_ibm_ws_batch_applicationName = 'SimpleBatchJob' AND specialCapability = 'superCapability'">
다음 예제는 일괄처리 JMS 실행기 구성과 해당 JMS 구성을 나타냅니다.
<batchJmsExecutor activationSpecRef="batchActivationSpec"
queueRef="batchJobSubmissionQueue"/>
<jmsActivationSpec id="batchActivationSpec" >
<properties.wasJms destinationRef="batchJobSubmissionQueue"
messageSelector="com_ibm_ws_batch_applicationName = 'SimpleBatchJob' OR com_ibm_ws_batch_applicationName = 'BonusPayoutCDI'"
destinationRef="batchJobSubmissionQueue"
destinationType="javax.jms.Queue"
remoteServerAddress="host:7280:BootstrapBasicMessaging">
</properties.wasJms>
</jmsActivationSpec>
<jmsQueue id="batchJobSubmissionQueue"
jndiName="jms/batch/jobSubmissionQueue">
<properties.wasJms deliveryMode="Persistent"
queueName="batchLibertyQueue">
</properties.wasJms>
</jmsQueue>
- 일괄처리 애플리케이션을 서버에 설치하십시오. 자세한 정보는 Liberty 프로파일에 애플리케이션 배치의 내용을 참조하십시오.