Liberty 임베디드 메시징 제공자를 사용하여 다중 서버 지원 사용
일부 서버는 일괄처리 디스패처로 작동하고 다른 서버는 일괄처리 실행기로 작동하도록 일괄처리 환경을 설정할 수 있습니다. 일괄처리 디스패처는 외부 클라이언트의 요청을 수락하고 일괄처리 실행기에서 이 요청을 사용할 수 있게 합니다. 일괄처리 실행기는 자신의 정의된 기능과 일치하는 요청을 수신하고 이러한 요청을 실행합니다. 일괄처리 디스패처와 일괄처리 실행기는 Java Messaging Service(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. -->
<wasJmsEndpoint host="*"
wasJmsPort="7280"
wasJmsSSLPort="7290"
enabled="true">
</wasJmsEndpoint>
<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>
참고: 예제에 표시된 대로 jmsQueueConnectionFactory 요소가 아니라 jmsConnectionFactory 요소를 참조 중인지 확인하십시오. jmsQueueConnectionFactory 요소를 사용하면 작동되지 않습니다. 구성은 jmsQueueConnectionFactory 요소가 아니라 jmsConnectionFactory 요소 및 jmsQueue 요소를 둘 다 포함해야 합니다.
- 일괄처리 JMS 실행기를 구성하십시오.
- server.xml에서 wasJmsClient-2.0 기능을 기능 관리자에 추가하여 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 파일에 여전히 구성해야 합니다.배치 그룹 보안 적용을 원하면 app-Security-2.0 기능을 server.xml 파일의 기능 관리자에 추가하여 Liberty 보안을 사용으로 설정하십시오. 또한 다음 예제와 같이 batchOperationGroupRef 속성을 batchJmsExecutor 요소에 추가하십시오.
<batchJmsExecutor activationSpecRef={configured activation specification or batch executor} queueRef={reference to the configured JMS queue} />
- 해당 JMS 활성화 스펙과 JMS 큐를 서버 구성에 추가하십시오. 이는 일괄처리 구성에만 적용되는 것은 아닙니다.
- 옵션:
배치 그룹 보안 적용을 원하면, 다음 예제와 같이 해당하는 조작 그룹 이름 스탠자를 batchJmsExecutor 요소에 추가하십시오.
<batchJmsExecutor activationSpecRef={configured activation specification or batch executor} queueRef={reference to the configured JMS queue} > <operationGroup>GroupA</operationGroup> </batchJmsExecutor>
참고: 이전에 나열된 그룹 이름을 지원하기 위해 보안 레지스트리를 구성해야 합니다. - 활성화 스펙에 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'">
다음 예제는 IBM MQ 결합 모드를 사용하여 조작 그룹과 JMS 구성으로 구성되는 일괄처리 JMS 실행자를 설명합니다.
<batchJmsExecutor activationSpecRef="batchActivationSpec" queueRef="batchJobSubmissionQueue"/> <operationGroup>GroupA</operationGroup> </batchJmsExecutor> <!-- wmq resource adapter --> <variable name="wmqJmsClient.rar.location" value="${server.config.dir}/wmq.wlp.rar"/> <!-- nativeLibraryPath is required for BINDING mode --> <!-- the startup retry and reconnect retry properties are recommended to ensure robustness of the system.--> <wmqJmsClient nativeLibraryPath="/mqm/jms/java/lib" startupRetryCount=999 startupRetryInterval="1000ms" reconnectionRetryCount=10 reconnectionRetryInterval="5m"> </wmqJmsClient> <authData password="pwd" user="user"> </authData> <jmsActivationSpec id="batchActivationSpec" > <properties.wasJms destinationRef="batchJobSubmissionQueue" messageSelector="com_ibm_ws_batch_applicationName = 'SimpleBatchJob' OR com_ibm_ws_batch_applicationName = 'BonusPayoutCDI'" destinationType="javax.jms.Queue" remoteServerAddress="host:7280:BootstrapBasicMessaging"> </properties.wasJms> </jmsActivationSpec> <!-- baseQueueName is the queue defined on WMQ system --> <jmsQueue id="batchJobSubmissionQueue" jndiName="jms/batch/jobSubmissionQueue"> <properties.wmqJms baseQueueName="BATCHQ" priority="QDEF" baseQueueManagerName="WMQX"> </properties.wmqJms> </jmsQueue>
다음 예제는 IBM MQ 클라이언트 모드를 사용하여 조작 그룹과 JMS 구성으로 구성되는 일괄처리 JMS 실행자를 설명합니다.
<batchJmsExecutor activationSpecRef="batchActivationSpec" queueRef="batchJobSubmissionQueue"/> <operationGroup>GroupA</operationGroup> </batchJmsExecutor> <!-- wmq resource adapter --> <variable name="wmqJmsClient.rar.location" value="${server.config.dir}/wmq.wlp.rar"/> <!-- the startup retry and reconnect retry properties are recommended to ensure robustness of the system.--> <wmqJmsClient startupRetryCount=999 startupRetryInterval="1000ms" reconnectionRetryCount=10 reconnectionRetryInterval="5m"> </wmqJmsClient> <authData password="pwd" user="user"> </authData> <JmsActivationSpec id="batchActivationSpec" > <properties.wmqJms destinationRef="batchJobSubmissionQueue" messageSelector="com_ibm_ws_batch_applicationName = SimpleBatchJob' OR com_ibm_ws_batch_applicationName = 'BonusPayout'" transportType="CLIENT" channel="WAS.JMS.SVRCONN" destinationType="javax.jms.Queue" queueManager="WMQX" hostName="webs24.pok.stglabs.ibm.com" port="1414"> </properties.wmqJms> </jmsActivationSpec> <!-- baseQueueName is the queue defined on WMQ system --> <jmsQueue id="batchJobSubmissionQueue" jndiName="jms/batch/jobSubmissionQueue"> <properties.wmqJms baseQueueName="BATCHQ" baseQueueManagerName="WMQX"> </properties.wmqJms> </jmsQueue>
- 시스템 정의 특성을 기반으로 하는 필터링:
- 일괄처리 애플리케이션을 서버에 설치하십시오. 추가 정보는 Liberty에서 애플리케이션 배치의 내용을 참조하십시오. 참고: 작업 메시지 전달을 지연시키려면, 밀리초로 설정되는 com_ibm_ws_batch_message_deliveryDelay 작업 매개변수를 지정하는 작업을 제출하여 실행기 서버로의 메시지 전달을 지연시키십시오.
작업 메시지의 우선순위를 변경하려면, 유효한 JMS 메시지 우선순위(0-9)로 설정되는 com_ibm_ws_batch_message_priority 작업 매개변수를 지정하는 작업을 제출하십시오. JMS 스펙에서는 기본 메시지 우선순위를 '4'(최저 0 및 최고 9)로 정의합니다.
실패한 작업을 재시작하는 경우 재시작 시 다른 값을 작업 매개변수로 지정하지 않는 한 동일한 지연과 우선순위가 원래 작업으로 사용됩니다. 우선순위는 여러 서버 파티션의 메시지에 전파되지만 전달 지연은 전파되지 않습니다.

파일 이름: twlp_batch_multiJVMembed.html