306.2. 구성 요소 옵션 및 구성
Simple JMS Batch 구성 요소는 아래에 나열된 5 가지 옵션을 지원합니다.
| 이름 | 설명 | Default | 유형 |
|---|---|---|---|
| ConnectionFactory (advanced) | SjmsBatchComponent를 활성화하려면 ConnectionFactory가 필요합니다. | ConnectionFactory | |
| asyncStartListener (고급) | 경로를 시작할 때 소비자 메시지 리스너를 비동기식으로 시작할지 여부입니다. 예를 들어 JmsConsumer가 원격 JMS 브로커에 연결할 수 없는 경우 다시 시도 및/또는 페일오버하는 동안 차단될 수 있습니다. 이로 인해 경로를 시작하는 동안 Camel이 차단됩니다. 이 옵션을 true로 설정하면 JmsConsumer가 비동기 모드에서 전용 스레드를 사용하여 JMS 브로커에 연결하는 동안 시작 경로를 라우팅하도록 합니다. 이 옵션을 사용하는 경우 연결을 설정할 수 없는 경우 예외가 WARN 수준에서 기록되고 소비자가 메시지를 수신할 수 없습니다. 그런 다음 경로를 다시 시작하여 다시 시작할 수 있습니다. | false | boolean |
| recoveryInterval (advanced) | 복구 시도 사이의 간격(예: 연결이 새로 고쳐질 때 밀리초)을 지정합니다. 기본값은 5000 ms, 즉 5초입니다. | 5000 | int |
| headerFilterStrategy (filter) | 사용자 정의 org.apache.camel.spi.HeaderFilterStrategy를 사용하여 Camel 메시지로의 헤더를 필터링합니다. | HeaderFilterStrategy | |
| resolveProperty Placeholders (advanced) | 구성 요소 시작 시 속성 자리 표시자를 자체적으로 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다. | true | boolean |
Simple JMS Batch 끝점은 URI 구문을 사용하여 구성됩니다.
sjms-batch:destinationName
다음 경로 및 쿼리 매개변수를 사용합니다.
306.2.1. 경로 매개변수(1 매개변수): 링크 복사링크가 클립보드에 복사되었습니다!
| 이름 | 설명 | Default | 유형 |
|---|---|---|---|
| destinationName | 대상 이름입니다. 대기열만 지원되며 이름 앞에 'queue:'가 붙을 수 있습니다. | 문자열 |
306.2.2. 쿼리 매개변수(23 매개변수): 링크 복사링크가 클립보드에 복사되었습니다!
| 이름 | 설명 | Default | 유형 |
|---|---|---|---|
| aggregationStrategy (consumer) | 필수 필수: 배치된 모든 메시지를 단일 메시지로 병합하는 집계 전략 | AggregationStrategy | |
| allowNullBody (consumer) | 본문 없이 메시지를 보낼 수 있는지 여부입니다. 이 옵션이 false이고 메시지 본문이 null이면 JMSException이 발생합니다. | true | boolean |
| bridgeErrorHandler (consumer) | Camel 라우팅 오류 처리기에 소비자를 브리징할 수 있습니다. 즉, 소비자가 들어오는 메시지를 선택하려고 하는 동안 발생한 모든 예외가 이제 메시지로 처리되고 라우팅 오류 처리기에서 처리됩니다. 기본적으로 소비자는 org.apache.camel.spi.ExceptionHandler를 사용하여 WARN 또는 ERROR 수준에서 기록되고 무시됩니다. | false | boolean |
| completionInterval (consumer) | 완료 간격(밀리초)으로 인해 간격마다 예약된 고정 속도로 배치가 완료됩니다. 시간 초과가 트리거되고 배치에 메시지가 없는 경우 배치가 비어 있을 수 있습니다. 완료 제한 시간 및 완료 간격을 동시에 사용할 수 없으며 하나만 구성할 수 있습니다. | 1000 | int |
| completionPredicate (Consumer) | 서술자가 true로 평가될 때 배치를 완료하도록 하는 완료 서술자입니다. 서술자는 문자열 구문을 사용하여 간단한 언어를 사용하여 구성할 수도 있습니다. 서술자가 들어오는 메시지와 일치하도록 하려면 옵션을 eagerCheckCompletion을 true로 설정하면 집계된 메시지와 일치하도록 할 수 있습니다. | 문자열 | |
| completionSize (consumer) | 배치가 완료될 때 소비되는 메시지 수 | 200 | int |
| completionTimeout (consumer) | 일괄 처리가 완료될 때 첫 번째 메시지가 수신되는 시간 초과(밀리초)입니다. 시간 초과가 트리거되고 배치에 메시지가 없는 경우 배치가 비어 있을 수 있습니다. 완료 제한 시간 및 완료 간격을 동시에 사용할 수 없으며 하나만 구성할 수 있습니다. | 500 | int |
| consumerCount (consumer) | 사용할 JMS 세션 수 | 1 | int |
| eagerCheckCompletion (consumer) | 즉시 완료 검사를 사용하면 completionPredicate에서 들어오는 교환을 사용합니다. completionPredicate를 신속하게 확인하지 않고는 집계된 교환을 사용합니다. | false | boolean |
| 모든 JMSXProperties(consumer) 포함 | JMS에서 Camel Message로 매핑할 때 모든 JMSXxxx 속성을 포함할지 여부입니다. 이 값을 true로 설정하면 JMSXAppID 및 JMSXUserID 등과 같은 속성이 포함됩니다. 참고: 사용자 정의 headerFilterStrategy를 사용하는 경우 이 옵션이 적용되지 않습니다. | false | boolean |
| mapJmsMessage (consumer) | Camel이 수신된 JMS 메시지를 javax.jms. CryostatMessage와 같은 적절한 페이로드 유형에 자동으로 매핑해야 하는지를 지정합니다. 자세한 내용은 아래에서 매핑 작동 방법에 대한 섹션을 참조하십시오. | true | boolean |
| pollDuration (consumer) | 메시지에 대한 각 폴링의 지속 시간(밀리초)입니다. completionTimeOut은 더 짧고 일괄 처리가 시작된 경우 사용됩니다. | 1000 | int |
| sendEmptyMessagewhenIdle (consumer) | 완료 시간 초과 또는 간격을 사용하는 경우 시간 초과가 트리거되고 배치에 메시지가 없는 경우 배치가 비어 있을 수 있습니다. 이 옵션이 true이고 배치가 비어 있으면 빈 메시지가 배치에 추가되므로 빈 메시지가 라우팅됩니다. | false | boolean |
| exceptionHandler (consumer) | 사용자가 사용자 지정 ExceptionHandler를 사용하도록 하려면 다음을 수행합니다. bridgeErrorHandler 옵션이 활성화되어 있으면 이 옵션이 사용되지 않습니다. 기본적으로 소비자는 WARN 또는 ERROR 수준에서 기록되고 무시됩니다. | ExceptionHandler | |
| exchangePattern (Consumer) | 소비자가 교환을 생성할 때 교환 패턴을 설정합니다. | ExchangePattern | |
| asyncStartListener (고급) | 경로를 시작할 때 소비자 메시지 리스너를 비동기식으로 시작할지 여부입니다. 예를 들어 JmsConsumer가 원격 JMS 브로커에 연결할 수 없는 경우 다시 시도 및/또는 페일오버하는 동안 차단될 수 있습니다. 이로 인해 경로를 시작하는 동안 Camel이 차단됩니다. 이 옵션을 true로 설정하면 JmsConsumer가 비동기 모드에서 전용 스레드를 사용하여 JMS 브로커에 연결하는 동안 시작 경로를 라우팅하도록 합니다. 이 옵션을 사용하는 경우 연결을 설정할 수 없는 경우 예외가 WARN 수준에서 기록되고 소비자가 메시지를 수신할 수 없습니다. 그런 다음 경로를 다시 시작하여 다시 시작할 수 있습니다. | false | boolean |
| headerFilterStrategy (advanced) | 사용자 정의 HeaderFilterStrategy를 사용하여 Camel 메시지로의 헤더를 필터링하려면 다음을 수행합니다. | HeaderFilterStrategy | |
| jmsKeyFormatStrategy (advanced) | JMS 키를 인코딩 및 디코딩하여 JMS 사양을 준수할 수 있도록 플러그형 전략입니다. Camel은 기본적으로 default 및 passthrough의 두 가지 구현을 제공합니다. 기본 전략은 점과 하이픈(. and -)을 안전하게 마샬링합니다. passthrough 전략에서는 키를 그대로 둡니다. 는 JMS 헤더 키에 잘못된 문자가 포함되어 있는지와 관련이 없는 JMS 브로커에 사용할 수 있습니다. org.apache.camel.component.jms.JmsKeyFormatStrategy의 자체 구현을 제공하고 # 표기법을 사용하여 참조할 수 있습니다. | JmsKeyFormatStrategy | |
| keepAliveDelay (고급) | 유효한 세션을 다시 설정하려는 시도 사이의 지연 시간(밀리초)입니다. 이 값이 양수인 경우 SjmsBatchConsumer는 메시지 사용 중에 IllegalStateException이 표시되는 경우 새 세션을 생성하려고 합니다. 이 지연 값을 사용하면 로그 스팸을 방지하기 위해 시도 간에 일시 중지할 수 있습니다. 이 값이 음수 값(기본값)이면 SjmsBatchConsumer는 이전과 같이 작동합니다. 즉, IllegalStateException이 표시되면 경로가 종료됩니다. | -1 | int |
| messageCreatedStrategy (advanced) | Camel이 JMS 메시지를 보낼 때 javax.jms.Message 오브젝트의 새 인스턴스를 생성할 때 호출되는 지정된 MessageCreatedStrategy를 사용합니다. | MessageCreatedStrategy | |
| recoveryInterval (advanced) | 복구 시도 사이의 간격(예: 연결이 새로 고쳐질 때 밀리초)을 지정합니다. 기본값은 5000 ms, 즉 5초입니다. | 5000 | int |
| 동기 (고급) | 동기 처리를 엄격하게 사용해야 하는지 또는 Camel이 비동기 처리를 사용할 수 있는지 여부를 설정합니다(지원되는 경우). | false | boolean |
| timeoutCheckerExecutor 서비스 (고급) | completionInterval 옵션을 사용하는 경우 백그라운드 스레드가 완료 간격을 트리거하도록 생성됩니다. 모든 소비자에 대해 새 스레드를 생성하는 대신 사용할 사용자 지정 스레드 풀을 제공하려면 이 옵션을 설정합니다. | ScheduledExecutor 서비스 |