179.4. 옵션
JMS Configuration Cryostat의 속성에 매핑되는 JMS 끝점에서 다양한 속성을 구성할 수 있습니다.
Spring JMS에 매핑
이러한 속성 중 대부분은 Camel이 메시지를 보내고 받는 데 사용하는 Spring JMS의 속성에 매핑됩니다. 따라서 관련 Spring 설명서를 참조하여 이러한 속성에 대한 자세한 정보를 얻을 수 있습니다.
179.4.1. 구성 요소 옵션
JMS 구성 요소는 아래에 나열된 81 옵션을 지원합니다.
이름 | 설명 | 기본 | 유형 |
---|---|---|---|
구성 (고급) | 공유 JMS 구성 사용 | JmsConfiguration | |
acceptMessagesWhile Stopping (consumer) | 소비자가 중지되는 동안 메시지를 수락하는지 여부를 지정합니다. 큐에 계속 표시되는 메시지가 있는 동안 런타임에 JMS 경로를 시작하고 중지하는 경우 이 옵션을 활성화할 수 있습니다. 이 옵션이 false이고 JMS 경로를 중지한 경우 메시지가 거부되고 JMS 브로커가 재전송을 시도해야 하며, 다시 거부될 수 있으며 결국 JMS 브로커의 dead letter 큐로 메시지를 이동할 수 있습니다. 이 옵션을 활성화하는 것이 좋습니다. | false | boolean |
allowReplyManagerQuick stop (consumer) | 응답 관리자에 대한 응답 관리자에 사용되는 DefaultMessageListenerContainer를 사용하면 JmsConfiguration#isAcceptMessagesWhileStopping이 활성화된 경우 DefaultMessageListenerContainer.runningAllowed 플래그를 빠르게 중지할 수 있으며 org.apache.camel.CamelContext가 현재 중지되고 있습니다. 이 빠른 중지 기능은 일반 JMS 소비자에서 기본적으로 활성화되지만 응답 관리자를 위해 활성화하려면 이 플래그를 활성화해야 합니다. | false | boolean |
acknowledgementMode (consumer) | Integer로 정의된 JMS 승인 모드입니다. 벤더별 확장을 승인 모드로 설정할 수 있습니다. 일반 모드에서는 대신 acknowledgementModeName을 사용하는 것이 좋습니다. | int | |
eagerLoadingOf 속성 (consumer) | JMS 속성이 필요하지 않을 수 있으므로 일반적으로 비효율적인 메시지가 로드되는 즉시 JMS 속성을 신속하게 로드할 수 있지만 기본 JMS 공급자와 관련된 모든 문제를 조기에 파악할 수 있는 경우가 있습니다. | false | boolean |
acknowledgementModeName (consumer) | SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE 중 하나인 JMS 승인 이름 | AUTO_ ACKNOWLEDGE | 문자열 |
autoStartup (consumer) | 소비자 컨테이너가 자동으로 시작되어야 하는지 여부를 지정합니다. | true | boolean |
cacheLevel (consumer) | 기본 JMS 리소스의 ID로 캐시 수준을 설정합니다. 자세한 내용은 cacheLevelName 옵션을 참조하십시오. | int | |
cacheLevelName (consumer) | 기본 JMS 리소스의 이름으로 캐시 수준을 설정합니다. 가능한 값은 CACHE_AUTO, CACHE_CONNECTION, CACHE_CONSUMER, CACHE_NONE, CACHE_SESSION입니다. 기본 설정은 CACHE_AUTO입니다. 자세한 내용은 Spring 문서 및 트랜잭션 캐시 수준을 참조하십시오. | CACHE_AUTO | 문자열 |
replyToCacheLevelName (producer) | JMS를 통해 요청/거부할 때 응답 소비자의 이름으로 캐시 수준을 설정합니다. 이 옵션은 고정 응답 대기열(임시 아님)을 사용하는 경우에만 적용됩니다. Camel은 기본적으로 다음을 사용합니다. CACHE_CONSUMER for exclusive or shared w/ replyToSelectorName. replyToSelectorName 없이 공유되는 CACHE_SESSION. IBM Cryostat와 같은 일부 JMS 브로커는 replyToCacheLevelName=CACHE_NONE을 작동하도록 설정해야 할 수 있습니다. 참고: 임시 큐를 사용하는 경우 CACHE_NONE은 허용되지 않으며 CACHE_CONSUMER 또는 CACHE_SESSION과 같은 더 높은 값을 사용해야 합니다. | 문자열 | |
ClientID (공용) | 사용할 JMS 클라이언트 ID를 설정합니다. 이 값은 지정된 경우 고유해야 하며 단일 JMS 연결 인스턴스에서만 사용할 수 있습니다. 일반적으로 항목 서브스크립션에만 필요합니다. Apache ActiveMQ를 사용하는 경우 대신 가상 주제를 사용하는 것을 선호할 수 있습니다. | 문자열 | |
concurrentConsumer (consumer) | JMS에서 사용할 때 동시 소비자의 기본 수를 지정합니다( JMS를 통한 요청/응답 대상 아님). 스레드의 동적 확장/다운을 제어하는 maxMessagesPerTask 옵션도 참조하십시오. JMS를 통해 요청/거부할 때 옵션 replyToConcurrentConsumers를 사용하여 응답 메시지 리스너에서 동시 소비자 수를 제어합니다. | 1 | int |
replyToConcurrent 소비자 (producer) | JMS를 통해 요청/응답을 수행할 때 동시 소비자의 기본 수를 지정합니다. 스레드의 동적 확장/다운을 제어하는 maxMessagesPerTask 옵션도 참조하십시오. | 1 | int |
ConnectionFactory (공용) | 사용할 연결 팩토리입니다. 연결 팩토리를 구성 요소 또는 끝점에 구성해야 합니다. | ConnectionFactory | |
사용자 이름 (보안) | ConnectionFactory와 함께 사용할 사용자 이름입니다. ConnectionFactory에서 직접 사용자 이름/암호를 구성할 수도 있습니다. | 문자열 | |
암호 (보안) | ConnectionFactory와 함께 사용할 암호입니다. ConnectionFactory에서 직접 사용자 이름/암호를 구성할 수도 있습니다. | 문자열 | |
deliveryPersistent (producer) | 영구 전달이 기본적으로 사용되는지 여부를 지정합니다. | true | boolean |
deliveryMode (producer) | 사용할 전달 모드를 지정합니다. 가능한 값은 javax.jms.DeliveryMode에서 정의한 Possibles 값입니다. NON_PERSISTENT = 1 및 PERSISTENT = 2. | 정수 | |
CryostatSubscriptionName (common) | topic subscriptions를 지정하는 데 사용되는 Cryostat 구독자 이름입니다. clientId 옵션도 구성해야 합니다. | 문자열 | |
exceptionListener (고급) | 기본 JMS 예외에 대해 알림을 받을 JMS Exception Listener를 지정합니다. | ExceptionListener | |
errorHandler (advanced) | Message를 처리하는 동안 발생한 예기치 않은 예외가 있는 경우 org.springframework.util.ErrorHandler를 지정합니다. 기본적으로 이러한 예외는 오류 처리기가 구성되지 않은 경우 WARN 수준에서 기록됩니다. 로깅 수준을 구성하고 errorHandlerLoggingLevel 및 errorHandlerLogStackTrace 옵션을 사용하여 스택 추적을 로깅해야 하는지 여부를 구성할 수 있습니다. 이렇게 하면 사용자 지정 오류 처리기를 코딩하는 것보다 훨씬 쉽게 구성할 수 있습니다. | ErrorHandler | |
errorHandlerLogging Level (logging) | 로깅 uncaught 예외에 대한 기본 errorHandler 로깅 수준을 구성할 수 있습니다. | WARN | LoggingLevel |
errorHandlerLogStack 추적 (로깅) | 기본 오류 처리기에서 stacktrace를 로깅할지 여부를 제어할 수 있습니다. | true | boolean |
explicitQosEnabled (producer) | 메시지를 전송할 때 deliveryMode, priority 또는 timeToLive의 서비스를 사용해야 하는지 설정합니다. 이 옵션은 Spring의 JmsTemplate을 기반으로 합니다. deliveryMode, priority 및 timeToLive 옵션은 현재 끝점에 적용됩니다. 이는 메시지 단위로 작동하는 preserveMessageQos 옵션과 대조하여 Camel In 메시지 헤더에서만 QoS 속성을 읽습니다. | false | boolean |
exposeListenerSession (consumer) | 메시지를 사용할 때 리스너 세션을 노출해야 하는지 여부를 지정합니다. | false | boolean |
idleTaskExecutionLimit (advanced) | 수신 작업의 유휴 실행 제한을 지정하고 실행 중 메시지를 받지 않음을 지정합니다. 이 제한에 도달하면 작업이 종료되고 다른 실행 중인 작업에 수신을 남겨 둡니다(동적 스케줄링의 경우 maxConcurrentConsumers 설정 참조). Spring에서 추가 doc를 사용할 수 있습니다. | 1 | int |
idleConsumerLimit (advanced) | 지정된 시간에 유휴 상태로 설정할 수 있는 소비자 수에 대한 제한을 지정합니다. | 1 | int |
maxConcurrentConsumers (consumer) | JMS에서 사용할 때 동시 소비자의 최대 수를 지정합니다( JMS를 통한 요청/응답 대상 아님). 스레드의 동적 확장/다운을 제어하는 maxMessagesPerTask 옵션도 참조하십시오. JMS를 통해 요청/거부할 때 옵션 replyToMaxConcurrentConsumers를 사용하여 응답 메시지 리스너에서 동시 소비자 수를 제어합니다. | int | |
replyToMaxConcurrent 소비자 (producer) | JMS를 통해 request/reply를 사용할 때 최대 동시 소비자 수를 지정합니다. 스레드의 동적 확장/다운을 제어하는 maxMessagesPerTask 옵션도 참조하십시오. | int | |
replyOnTimeoutToMax ConcurrentConsumers (producer) | JMS를 통해 request/reply를 사용할 때 시간 초과가 발생한 경우 계속 라우팅에 대한 동시 소비자의 최대 수를 지정합니다. | 1 | int |
maxMessagesPerTask (고급) | 작업당 메시지 수입니다. -1은 무제한입니다. 동시 소비자(예: min max)에 범위를 사용하는 경우 이 옵션을 사용하여 값이 100으로 설정하여 적은 작업이 필요할 때 소비자가 축소되는 속도를 제어할 수 있습니다. | -1 | int |
messageConverter (advanced) | 사용자 정의 Spring org.springframework.jms.support.converter.MessageConverter를 사용하면 javax.jms.Message로 매핑하거나 매핑하는 방법을 제어할 수 있습니다. | MessageConverter | |
mapJmsMessage (advanced) | Camel이 수신된 JMS 메시지를 javax.jms. CryostatMessage와 같은 적절한 페이로드 유형에 자동으로 매핑해야 하는지를 지정합니다. 자세한 내용은 아래에서 매핑 작동 방법에 대한 섹션을 참조하십시오. | true | boolean |
messageIdEnabled (advanced) | 전송할 때 메시지 ID를 추가해야 하는지 여부를 지정합니다. 이는 JMS 브로커에 대한 힌트일 뿐입니다. JMS 공급자가 이 힌트를 허용하는 경우 이러한 메시지에는 메시지 ID가 null로 설정되어 있어야 합니다. 공급자가 힌트를 무시하면 메시지 ID를 일반 고유 값으로 설정해야 합니다. | true | boolean |
messageTimestampEnabled (advanced) | 메시지 전송 시 기본적으로 타임스탬프를 활성화해야 하는지 여부를 지정합니다. | true | boolean |
alwaysCopyMessage (producer) | true인 경우 Camel은 전송을 위해 생산자에 전달될 때 항상 메시지의 JMS 메시지 사본을 만듭니다. replyToDestinationSelectorName이 설정된 경우와 같이 메시지를 복사하는 것이 필요합니다(즉, Camel은 replyToDestinationSelectorName이 설정된 경우 alwaysCopyMessage 옵션을 true로 설정합니다.) | false | boolean |
useMessageIDAs CorrelationID (advanced) | JMSMessageID를 InOut 메시지의 JMSCorrelationID로 항상 사용해야 하는지 여부를 지정합니다. | false | boolean |
우선 순위 (producer) | 1보다 큰 값은 전송 시 메시지 우선 순위를 지정합니다(여기서 0은 가장 낮은 우선순위이고 9가 가장 높은 우선 순위임). 이 옵션을 적용하려면 explicitQosEnabled 옵션도 활성화해야 합니다. | 4 | int |
pubSubNoLocal (advanced) | 자체 연결에서 게시한 메시지의 전달을 억제할지 여부를 지정합니다. | false | boolean |
receiveTimeout (advanced) | 메시지를 수신하기 위한 제한 시간(밀리초)입니다. | 1000 | long |
recoveryInterval (advanced) | 복구 시도 사이의 간격(예: 연결이 새로 고쳐질 때 밀리초)을 지정합니다. 기본값은 5000 ms, 즉 5초입니다. | 5000 | long |
taskExecutor (consumer) | 메시지 사용에 대한 사용자 지정 작업 실행자를 지정할 수 있습니다. | TaskExecutor | |
deliveryDelay (producer) | JMS에 대한 send 호출에 사용할 전달 지연을 설정합니다. 이 옵션에는 JMS 2.0 호환 브로커가 필요합니다. | -1 | long |
TimeToLive (producer) | 메시지를 전송할 때 메시지의 실시간(밀리초)을 지정합니다. | -1 | long |
트랜잭션됨 ( Cryostat) | Transacted 모드를 사용할지 여부를 지정합니다. | false | boolean |
lazyCreateTransaction Manager ( Cryostat) | true인 경우 Camel은 옵션을 transacted=true할 때 주입되는 transactionManager가 없는 경우 JmsTransactionManager를 생성합니다. | true | boolean |
TransactionManager (TransactionManager) | 사용할 Spring 트랜잭션 관리자입니다. | PlatformTransaction Manager | |
TransactionName ( Cryostat) | 사용할 트랜잭션의 이름입니다. | 문자열 | |
TransactionTimeout (TransactionTimeout) | 트랜잭션 모드를 사용하는 경우 트랜잭션의 시간 초과 값(초)입니다. | -1 | int |
testConnectionOn 시작 (공용) | 시작 시 연결을 테스트할지 여부를 지정합니다. 이렇게 하면 Camel이 모든 JMS 소비자가 JMS 브로커에 대한 유효한 연결이 있는지 확인합니다. 연결을 부여할 수 없는 경우 Camel은 시작 시 예외를 throw합니다. 이렇게 하면 Camel이 실패한 연결로 시작되지 않습니다. JMS 생산자도 테스트되었습니다. | false | boolean |
asyncStartListener (고급) | 경로를 시작할 때 JmsConsumer 메시지 리스너를 비동기식으로 시작할지 여부입니다. 예를 들어 JmsConsumer가 원격 JMS 브로커에 연결할 수 없는 경우 다시 시도 및/또는 페일오버하는 동안 차단될 수 있습니다. 이로 인해 경로를 시작하는 동안 Camel이 차단됩니다. 이 옵션을 true로 설정하면 JmsConsumer가 비동기 모드에서 전용 스레드를 사용하여 JMS 브로커에 연결하는 동안 시작 경로를 라우팅하도록 합니다. 이 옵션을 사용하는 경우 연결을 설정할 수 없는 경우 예외가 WARN 수준에서 기록되고 소비자가 메시지를 수신할 수 없습니다. 그런 다음 경로를 다시 시작하여 다시 시작할 수 있습니다. | false | boolean |
asyncStopListener (advanced) | 경로를 중지할 때 JmsConsumer 메시지 리스너를 비동기식으로 중지할지 여부입니다. | false | boolean |
forceSendOriginal Message (producer) | mapJmsMessage=false Camel을 사용하는 경우 경로 중 헤더(get 또는 set)를 터치하면 새 JMS 대상으로 보낼 새 JMS 메시지가 생성됩니다. Camel이 수신한 원래 JMS 메시지를 전송하도록 하려면 이 옵션을 true로 설정합니다. | false | boolean |
requestTimeout (producer) | InOut Exchange Pattern (밀리초)을 사용할 때 응답을 기다리는 시간 시간입니다. 기본값은 20초입니다. CamelJmsRequestTimeout 헤더를 포함하여 이 끝점이 구성된 시간 초과 값을 재정의하여 메시지 개별 시간 초과 값을 가질 수 있습니다. requestTimeoutCheckerInterval 옵션도 참조하십시오. | 20000 | long |
requestTimeoutChecker Interval (advanced) | JMS를 통해 요청/응답을 수행할 때 Camel에서 시간 초과 교환을 확인하는 빈도를 구성합니다. 기본적으로 Camel은 초당 한 번 확인합니다. 그러나 시간 초과가 발생할 때 더 빨리 반응해야 하는 경우 이 간격을 낮추어 더 자주 확인할 수 있습니다. 시간 초과는 requestTimeout 옵션에 의해 결정됩니다. | 1000 | long |
transferExchange (advanced) | 교환은 본문과 헤더가 아닌 유선을 통해 전송할 수 있습니다. body, Out body, Fault body, In headers, Out headers, Fault headers, exchange properties, exchange exception. 이렇게 하려면 개체를 직렬화할 수 있어야 합니다. Camel은 직렬화되지 않은 오브젝트를 제외하고 WARN 수준에서 기록합니다. 생산자 및 소비자 측 모두에서 이 옵션을 활성화해야 하므로 Camel은 페이로드가 일반 페이로드가 아닌 교환임을 알고 있어야 합니다. | false | boolean |
transferException (advanced) | 활성화되고 요청 거부 메시징(InOut)을 사용하고 소비자 측에서 교환에 실패한 경우, 발생한 예외는 javax.jms.ObjectMessage로 응답으로 다시 전송됩니다. 클라이언트가 Camel인 경우 반환된 Exception이 다시 검색됩니다. 이를 통해 라우팅에서 Camel JMS를 브리지로 사용할 수 있습니다. 예를 들어 영구 대기열을 사용하여 강력한 라우팅을 활성화할 수 있습니다. transferExchange도 활성화된 경우 이 옵션이 우선합니다. catch된 예외는 직렬화 가능해야 합니다. 소비자 측의 원래 예외는 생산자로 반환되면 org.apache.camel.RuntimeCamelException과 같은 외부 예외로 래핑될 수 있습니다. | false | boolean |
transferFault (advanced) | 활성화된 경우 요청 거부 메시징(InOut)을 사용하고 교환이 소비자 측에서 Cryostat 오류(예: 예외 아님)로 실패한 경우 org.apache.camel.Message#isFault()의 fault 플래그는 JmsConstants#JMS_TRANSFER_ULT 키를 사용하여 JMS 헤더로 응답에 다시 전송됩니다. 클라이언트가 Camel인 경우 반환된 fault 플래그가 org.apache.camel.Message#setFault(boolean)에 설정됩니다. cxf 또는 Spring-ws와 같은 Cryostat 기반 오류를 지원하는 Camel 구성 요소를 사용할 때 이를 활성화할 수 있습니다. | false | boolean |
jmsOperations (advanced) | org.springframework.jms.core.JmsOperations 인터페이스의 자체 구현을 사용할 수 있습니다. Camel은 JmsTemplate을 기본값으로 사용합니다. 테스트 목적으로 사용할 수 있지만 Spring API 문서에 명시된 대로 많이 사용되지는 않습니다. | JmsOperations | |
destinationResolver (고급) | 자체 확인자를 사용할 수 있는 플러그형 org.springframework.jms.support.destination.DestinationResolver입니다(예: JNDI 레지스트리에서 실제 대상을 조회하는 방법). | DestinationResolver | |
replyToType (producer) | JMS를 통해 request/reply를 수행할 때 replyTo 큐에 사용할 전략 유형을 명시적으로 지정할 수 있습니다. 가능한 값은 임시, 공유 또는 제외입니다. 기본적으로 Camel은 임시 큐를 사용합니다. 그러나 replyTo가 구성된 경우 기본적으로 Shared가 사용됩니다. 이 옵션을 사용하면 공유 대기열 대신 배타적 큐를 사용할 수 있습니다. 자세한 내용은 Camel JMS 문서, 특히 클러스터형 환경에서 실행하는 경우 의미에 대한 참고 사항 및 공유 응답 대기열이 대체 시간 및 Exclusive보다 성능이 저하된다는 사실을 참조하십시오. | ReplyToType | |
preserveMessageQos (producer) | JMS 끝점의 QoS 설정 대신 메시지에 지정된 QoS 설정을 사용하여 메시지를 보내려면 true로 설정합니다. 다음 세 가지 헤더는 JMSPriority, JMSDeliveryMode 및 JMSExpiration으로 간주됩니다. 전부 또는 일부만 제공할 수 있습니다. 제공되지 않는 경우 Camel은 대신 엔드포인트의 값을 사용하도록 대체됩니다. 따라서 이 옵션을 사용할 때 헤더는 끝점의 값을 재정의합니다. 반면 explicitQosEnabled 옵션은 메시지 헤더의 값이 아닌 끝점에 설정된 옵션만 사용합니다. | false | boolean |
asyncConsumer (consumer) | JmsConsumer에서 교환을 비동기적으로 처리하는지 여부입니다. 활성화된 경우 JmsConsumer는 JMS 대기열에서 다음 메시지를 선택할 수 있지만 이전 메시지는 비동기 라우팅 엔진에 의해 비동기적으로 처리됩니다. 즉, 메시지를 순서대로 100% 엄격하게 처리할 수 없습니다. 비활성화된 경우 JmsConsumer가 JMS 대기열에서 다음 메시지를 선택하기 전에 교환이 완전히 처리됩니다. Transacted가 활성화된 경우 트랜잭션이 동기적으로 실행되어야 하므로 asyncConsumer=true가 비동기적으로 실행되지 않습니다(Camel 3.0에서 async 트랜잭션을 지원할 수 있음). | false | boolean |
allowNullBody (producer) | 본문 없이 메시지를 보낼 수 있는지 여부입니다. 이 옵션이 false이고 메시지 본문이 null이면 JMSException이 발생합니다. | true | boolean |
includeSentJMS MessageID (producer) | InOnly를 사용하여 JMS 대상으로 전송할 때만 적용됩니다(예: 실행 및 잊어버림). 이 옵션을 활성화하면 메시지가 JMS 대상으로 전송될 때 JMS 클라이언트가 사용한 실제 JMSMessageID와 Camel 교환이 강화됩니다. | false | boolean |
모든 JMSX 속성(advanced) 포함 | JMS에서 Camel Message로 매핑할 때 모든 JMSXxxx 속성을 포함할지 여부입니다. 이 값을 true로 설정하면 JMSXAppID 및 JMSXUserID 등과 같은 속성이 포함됩니다. 참고: 사용자 정의 headerFilterStrategy를 사용하는 경우 이 옵션이 적용되지 않습니다. | false | boolean |
defaultTaskExecutor Type (consumer) | 소비자 끝점 및 생산자 끝점의 ReplyTo 소비자 모두에 대해 DefaultMessageListenerContainer에서 사용할 기본 TaskExecutor 유형을 지정합니다. 가능한 값: SimpleAsync(S Spring의 SimpleAsyncTaskExecutor 사용) 또는 ThreadPool(S Spring의 ThreadPoolTaskExecutor 사용)을 최적의 값으로 사용하여 캐시된 threadpool-like. 설정하지 않으면 기본적으로 이전 동작으로, 소비자 끝점에 캐시된 스레드 풀을 사용하고 응답 소비자에 대해 SimpleAsync를 사용합니다. ThreadPool은 동시 소비자를 동적으로 늘리고 감소하여 탄력적 구성에서 스레드 휴지통을 줄이는 것이 좋습니다. | DefaultTaskExecutor Type | |
jmsKeyFormatStrategy (advanced) | JMS 키를 인코딩 및 디코딩하여 JMS 사양을 준수할 수 있도록 플러그형 전략입니다. Camel은 기본적으로 default 및 passthrough의 두 가지 구현을 제공합니다. 기본 전략은 점과 하이픈(. and -)을 안전하게 마샬링합니다. passthrough 전략에서는 키를 그대로 둡니다. 는 JMS 헤더 키에 잘못된 문자가 포함되어 있는지와 관련이 없는 JMS 브로커에 사용할 수 있습니다. org.apache.camel.component.jms.JmsKeyFormatStrategy의 자체 구현을 제공하고 # 표기법을 사용하여 참조할 수 있습니다. | JmsKeyFormatStrategy | |
allowAdditionalHeaders (producer) | 이 옵션은 JMS 사양에 따라 유효하지 않은 값이 있을 수 있는 추가 헤더를 허용하는 데 사용됩니다. 예를 들어 WMQ와 같은 일부 메시지 시스템은 바이트 배열 또는 기타 잘못된 유형이 있는 값을 포함하는 JMS_IBM_MQMD_ 접두사를 사용하여 헤더 이름으로 이 작업을 수행합니다. 쉼표로 구분된 여러 헤더 이름을 지정하고 와일드카드 일치에 접미사로 사용할 수 있습니다. | 문자열 | |
queueBrowseStrategy (advanced) | 대기열을 검색할 때 사용자 정의 QueueBrowseStrategy 사용 | QueueBrowseStrategy | |
messageCreatedStrategy (advanced) | Camel이 JMS 메시지를 보낼 때 javax.jms.Message 오브젝트의 새 인스턴스를 생성할 때 호출되는 지정된 MessageCreatedStrategy를 사용합니다. | MessageCreatedStrategy | |
waitForProvision CorrelationToBeUpdated Cryostat (advanced) | JMS를 통해 요청/거부를 수행할 때 및 옵션 useMessageIDAsCorrelationID가 활성화된 경우 임시 상관 관계 ID가 실제 상관 관계 ID로 업데이트될 때까지 대기하는 횟수입니다. | 50 | int |
waitForProvision CorrelationToBeUpdated ThreadSleepingTime (advanced) | 프로비저닝 상관 관계 ID가 업데이트되기를 기다리는 동안 밀리 초 단위의 간격입니다. | 100 | long |
correlationProperty (producer) | 이 JMS 속성을 사용하여 JMSCorrelationID 속성 대신 InOut 교환 패턴(request-reply)의 메시지를 상관시킵니다. 이를 통해 JMSCorrelationID JMS 속성을 사용하여 메시지의 상관 관계가 없는 시스템과 메시지를 교환할 수 있습니다. 사용된 JMSCorrelationID는 Camel에서 사용하거나 설정하지 않습니다. 여기에서 named 속성의 값은 동일한 이름의 메시지 헤더에 제공되지 않는 경우 생성됩니다. | 문자열 | |
subscriptionDurable (consumer) | 서브스크립션을 만들지 여부를 설정합니다. 사용할 Cryostat 서브스크립션 이름을 subscriptionName 속성을 통해 지정할 수 있습니다. 기본값은 false입니다. 일반적으로 subscriptionName 값과 함께 Cryostat 서브스크립션을 등록하려면 이 값을 true로 설정합니다(메시지 리스너 클래스 이름이 서브스크립션 이름으로 충분하지 않은 경우). 주제(pub-sub 도메인)만 수신할 때 의미가 있으므로 이 방법은 pubSubDomain 플래그를 전환합니다. | false | boolean |
subscriptionShared (consumer) | 서브스크립션을 공유할지 여부를 설정합니다. 사용할 공유 서브스크립션 이름은 subscriptionName 속성을 통해 지정할 수 있습니다. 기본값은 false입니다. 일반적으로 subscriptionName 값과 함께 공유 서브스크립션을 등록하려면 true로 설정합니다(메시지 리스너 클래스 이름이 서브스크립션 이름으로 충분하지 않은 경우). 공유 서브스크립션도 적용할 수 있으므로 이 플래그는 subscriptionDurable과 결합될 수 있습니다. 주제(pub-sub 도메인)만 수신할 때 의미가 있으므로 이 방법은 pubSubDomain 플래그를 전환합니다. JMS 2.0 호환 메시지 브로커가 필요합니다. | false | boolean |
subscriptionName (consumer) | 생성할 서브스크립션의 이름을 설정합니다. 공유 또는 Cryostat 서브스크립션이 있는 주제(pub-sub 도메인)의 경우 적용됩니다. 서브스크립션 이름은 이 클라이언트의 JMS 클라이언트 ID 내에서 고유해야 합니다. 기본값은 지정된 메시지 리스너의 클래스 이름입니다. 참고: JMS 2.0이 필요한 공유 서브스크립션을 제외하고 각 서브스크립션에 대해 1개의 동시 소비자(이 메시지 리스너 컨테이너의 기본값)만 허용됩니다. | 문자열 | |
streamMessageType Enabled (producer) | StreamMessage 유형이 활성화되어 있는지 여부를 설정합니다. 파일, InputStream 등과 같은 스트리밍 유형의 메시지 페이로드는 CryostatsMessage 또는 StreamMessage로 전송됩니다. 이 옵션은 사용할 유형을 제어합니다. 기본적으로 CryostatsMessage는 전체 메시지 페이로드를 메모리로 읽어오는 데 사용됩니다. 이 옵션을 활성화하면 메시지 페이로드가 청크에서 메모리로 읽혀지고 각 청크는 더 이상 데이터가 없을 때까지 StreamMessage에 기록됩니다. | false | boolean |
formatDateHeadersTo Iso8601 (producer) | ISO 8601 표준에 따라 날짜 헤더를 포맷해야 하는지 여부를 설정합니다. | false | boolean |
headerFilterStrategy (filter) | 사용자 정의 org.apache.camel.spi.HeaderFilterStrategy를 사용하여 Camel 메시지로의 헤더를 필터링합니다. | HeaderFilterStrategy | |
resolveProperty Placeholders (advanced) | 구성 요소 시작 시 속성 자리 표시자를 자체적으로 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다. | true | boolean |
179.4.2. 끝점 옵션
JMS 끝점은 URI 구문을 사용하여 구성됩니다.
jms:destinationType:destinationName
다음 경로 및 쿼리 매개변수를 사용합니다.
179.4.3. 경로 매개변수 (2 매개변수):
이름 | 설명 | 기본 | 유형 |
---|---|---|---|
destinationType | 사용할 대상의 종류 | 대기열 | 문자열 |
destinationName | required 대상으로 사용할 큐 또는 항목의 이름 | 문자열 |
179.4.4. 쿼리 매개변수(93 매개변수):
이름 | 설명 | 기본 | 유형 |
---|---|---|---|
ClientID (공용) | 사용할 JMS 클라이언트 ID를 설정합니다. 이 값은 지정된 경우 고유해야 하며 단일 JMS 연결 인스턴스에서만 사용할 수 있습니다. 일반적으로 항목 서브스크립션에만 필요합니다. Apache ActiveMQ를 사용하는 경우 대신 가상 주제를 사용하는 것을 선호할 수 있습니다. | 문자열 | |
ConnectionFactory (공용) | setTemplateConnectionFactory(ConnectionFactory) 또는 setListenerConnectionFactory(ConnectionFactory)에 대해 연결 팩토리를 지정하지 않은 경우 사용할 기본 연결 팩토리를 설정합니다. | ConnectionFactory | |
disableReplyTo (common) | Camel이 메시지의 JMSReplyTo 헤더를 무시하는지 여부를 지정합니다. true인 경우 Camel은 JMSReplyTo 헤더에 지정된 대상으로 응답을 다시 보내지 않습니다. Camel을 경로에서 사용하려는 경우 이 옵션을 사용할 수 있으며 코드의 다른 구성 요소에서 응답 메시지를 처리하므로 Camel에서 자동으로 응답 메시지를 보내지 않도록 할 수 있습니다. 또한 다른 메시지 브로커 간에 Camel을 프록시로 사용하고 한 시스템에서 다른 시스템으로 메시지를 라우팅하려는 경우에도 이 옵션을 사용할 수 있습니다. | false | boolean |
CryostatSubscriptionName (common) | topic subscriptions를 지정하는 데 사용되는 Cryostat 구독자 이름입니다. clientId 옵션도 구성해야 합니다. | 문자열 | |
jmsMessageType (공용) | JMS 메시지를 전송하기 위해 특정 javax.jms.Message 구현을 강제로 사용할 수 있습니다. 가능한 값은 다음과 같습니다: Cryostats, Map, Object, Stream, text. 기본적으로 Camel은 In 본문 유형에서 사용할 JMS 메시지 유형을 결정합니다. 이 옵션을 사용하면 지정할 수 있습니다. | JmsMessageType | |
testConnectionOnStartup (common) | 시작 시 연결을 테스트할지 여부를 지정합니다. 이렇게 하면 Camel이 모든 JMS 소비자가 JMS 브로커에 대한 유효한 연결이 있는지 확인합니다. 연결을 부여할 수 없는 경우 Camel은 시작 시 예외를 throw합니다. 이렇게 하면 Camel이 실패한 연결로 시작되지 않습니다. JMS 생산자도 테스트되었습니다. | false | boolean |
acknowledgementModeName (consumer) | SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE 중 하나인 JMS 승인 이름 | AUTO_ ACKNOWLEDGE | 문자열 |
asyncConsumer (consumer) | JmsConsumer에서 교환을 비동기적으로 처리하는지 여부입니다. 활성화된 경우 JmsConsumer는 JMS 대기열에서 다음 메시지를 선택할 수 있지만 이전 메시지는 비동기 라우팅 엔진에 의해 비동기적으로 처리됩니다. 즉, 메시지를 순서대로 100% 엄격하게 처리할 수 없습니다. 비활성화된 경우 JmsConsumer가 JMS 대기열에서 다음 메시지를 선택하기 전에 교환이 완전히 처리됩니다. Transacted가 활성화된 경우 트랜잭션이 동기적으로 실행되어야 하므로 asyncConsumer=true가 비동기적으로 실행되지 않습니다(Camel 3.0에서 async 트랜잭션을 지원할 수 있음). | false | boolean |
autoStartup (consumer) | 소비자 컨테이너가 자동으로 시작되어야 하는지 여부를 지정합니다. | true | boolean |
bridgeErrorHandler (consumer) | Camel 라우팅 오류 처리기에 소비자를 브리징할 수 있습니다. 즉, 소비자가 들어오는 메시지를 선택하려고 하는 동안 발생한 모든 예외가 이제 메시지로 처리되고 라우팅 오류 처리기에서 처리됩니다. 기본적으로 소비자는 org.apache.camel.spi.ExceptionHandler를 사용하여 WARN 또는 ERROR 수준에서 기록되고 무시됩니다. | false | boolean |
cacheLevel (consumer) | 기본 JMS 리소스의 ID로 캐시 수준을 설정합니다. 자세한 내용은 cacheLevelName 옵션을 참조하십시오. | int | |
cacheLevelName (consumer) | 기본 JMS 리소스의 이름으로 캐시 수준을 설정합니다. 가능한 값은 CACHE_AUTO, CACHE_CONNECTION, CACHE_CONSUMER, CACHE_NONE, CACHE_SESSION입니다. 기본 설정은 CACHE_AUTO입니다. 자세한 내용은 Spring 문서 및 트랜잭션 캐시 수준을 참조하십시오. | CACHE_AUTO | 문자열 |
concurrentConsumer (consumer) | JMS에서 사용할 때 동시 소비자의 기본 수를 지정합니다( JMS를 통한 요청/응답 대상 아님). 스레드의 동적 확장/다운을 제어하는 maxMessagesPerTask 옵션도 참조하십시오. JMS를 통해 요청/거부할 때 옵션 replyToConcurrentConsumers를 사용하여 응답 메시지 리스너에서 동시 소비자 수를 제어합니다. | 1 | int |
ArtemisConsumerPriority (Consumer) | 소비자 우선순위를 사용하면 높은 우선 순위의 소비자가 활성화된 동안 메시지를 수신할 수 있습니다. 일반적으로 큐에 연결된 활성 소비자는 라운드 로빈 방식으로 메시지를 수신합니다. 소비자 우선순위가 사용 중인 경우 우선순위가 동일한 여러 활성 소비자가 있는 경우 메시지가 라운드 로빈 방식으로 전달됩니다. 메시지는 높은 우선 순위가 높은 소비자가 메시지를 사용할 수 있는 신용이 없는 경우에만 우선 순위가 낮은 소비자로 이동하거나 메시지를 수락하는 것을 거부했습니다(예: 소비자와 연결된 선택기 기준을 충족하지 않기 때문에). | int | |
maxConcurrentConsumers (consumer) | JMS에서 사용할 때 동시 소비자의 최대 수를 지정합니다( JMS를 통한 요청/응답 대상 아님). 스레드의 동적 확장/다운을 제어하는 maxMessagesPerTask 옵션도 참조하십시오. JMS를 통해 요청/거부할 때 옵션 replyToMaxConcurrentConsumers를 사용하여 응답 메시지 리스너에서 동시 소비자 수를 제어합니다. | int | |
replyTo (consumer) | Message.getJMSReplyTo()의 들어오는 값을 재정의하는 명시적 ReplyTo 대상을 제공합니다. | 문자열 | |
replyToDeliveryPersistent (consumer) | 응답에 기본적으로 영구 전달을 사용할지 여부를 지정합니다. | true | boolean |
선택기 (consumer) | 사용할 JMS 선택기를 설정합니다. | 문자열 | |
subscriptionDurable (consumer) | 서브스크립션을 만들지 여부를 설정합니다. 사용할 Cryostat 서브스크립션 이름을 subscriptionName 속성을 통해 지정할 수 있습니다. 기본값은 false입니다. 일반적으로 subscriptionName 값과 함께 Cryostat 서브스크립션을 등록하려면 이 값을 true로 설정합니다(메시지 리스너 클래스 이름이 서브스크립션 이름으로 충분하지 않은 경우). 주제(pub-sub 도메인)만 수신할 때 의미가 있으므로 이 방법은 pubSubDomain 플래그를 전환합니다. | false | boolean |
subscriptionName (consumer) | 생성할 서브스크립션의 이름을 설정합니다. 공유 또는 Cryostat 서브스크립션이 있는 주제(pub-sub 도메인)의 경우 적용됩니다. 서브스크립션 이름은 이 클라이언트의 JMS 클라이언트 ID 내에서 고유해야 합니다. 기본값은 지정된 메시지 리스너의 클래스 이름입니다. 참고: JMS 2.0이 필요한 공유 서브스크립션을 제외하고 각 서브스크립션에 대해 1개의 동시 소비자(이 메시지 리스너 컨테이너의 기본값)만 허용됩니다. | 문자열 | |
subscriptionShared (consumer) | 서브스크립션을 공유할지 여부를 설정합니다. 사용할 공유 서브스크립션 이름은 subscriptionName 속성을 통해 지정할 수 있습니다. 기본값은 false입니다. 일반적으로 subscriptionName 값과 함께 공유 서브스크립션을 등록하려면 true로 설정합니다(메시지 리스너 클래스 이름이 서브스크립션 이름으로 충분하지 않은 경우). 공유 서브스크립션도 적용할 수 있으므로 이 플래그는 subscriptionDurable과 결합될 수 있습니다. 주제(pub-sub 도메인)만 수신할 때 의미가 있으므로 이 방법은 pubSubDomain 플래그를 전환합니다. JMS 2.0 호환 메시지 브로커가 필요합니다. | false | boolean |
acceptMessagesWhileStopping (consumer) | 소비자가 중지되는 동안 메시지를 수락하는지 여부를 지정합니다. 큐에 계속 표시되는 메시지가 있는 동안 런타임에 JMS 경로를 시작하고 중지하는 경우 이 옵션을 활성화할 수 있습니다. 이 옵션이 false이고 JMS 경로를 중지한 경우 메시지가 거부되고 JMS 브로커가 재전송을 시도해야 하며, 다시 거부될 수 있으며 결국 JMS 브로커의 dead letter 큐로 메시지를 이동할 수 있습니다. 이 옵션을 활성화하는 것이 좋습니다. | false | boolean |
allowReplyManagerQuickStop (consumer) | 응답 관리자에 대한 응답 관리자에 사용되는 DefaultMessageListenerContainer의 경우 JmsConfiguration#isAcceptMessagesWhileStopping()이 활성화되어 있고 org.apache.camel.CamelContext가 현재 중지되는 경우 DefaultMessageListenerContainer#runningAllowed() 플래그를 사용할 수 있습니다. 이 빠른 중지 기능은 일반 JMS 소비자에서 기본적으로 활성화되지만 응답 관리자를 위해 활성화하려면 이 플래그를 활성화해야 합니다. | false | boolean |
consumerType (consumer) | 사용할 소비자 유형(Simple, Default 또는 Custom) 중 하나일 수 있습니다. 소비자 유형에 따라 사용할 Spring JMS 리스너가 결정됩니다. Default는 org.springframework.jms.listener.DefaultMessageListenerContainer를 사용합니다. Simple는 org.springframework.jms.listener.SimpleMessageListenerContainer를 사용합니다. Custom이 지정되면 messageListenerContainerFactory 옵션에 정의된 MessageListenerContainerFactory에서 사용할 org.springframework.jms.listener.AbstractMessageListenerContainer를 결정합니다. | 기본 | ConsumerType |
defaultTaskExecutorType (consumer) | 소비자 끝점 및 생산자 끝점의 ReplyTo 소비자 모두에 대해 DefaultMessageListenerContainer에서 사용할 기본 TaskExecutor 유형을 지정합니다. 가능한 값: SimpleAsync(S Spring의 SimpleAsyncTaskExecutor 사용) 또는 ThreadPool(S Spring의 ThreadPoolTaskExecutor 사용)을 최적의 값으로 사용하여 캐시된 threadpool-like. 설정하지 않으면 기본적으로 이전 동작으로, 소비자 끝점에 캐시된 스레드 풀을 사용하고 응답 소비자에 대해 SimpleAsync를 사용합니다. ThreadPool은 동시 소비자를 동적으로 늘리고 감소하여 탄력적 구성에서 스레드 휴지통을 줄이는 것이 좋습니다. | DefaultTaskExecutor Type | |
eagerLoadingOfProperties (consumer) | JMS 속성이 필요하지 않을 수 있으므로 일반적으로 비효율적인 메시지가 로드되는 즉시 JMS 속성 및 페이로드를 신속하게 로드할 수 있지만 기본 JMS 공급자와 관련된 문제를 조기에 파악할 수 있는 경우가 있습니다. | false | boolean |
exceptionHandler (consumer) | 사용자가 사용자 지정 ExceptionHandler를 사용하도록 하려면 다음을 수행합니다. bridgeErrorHandler 옵션이 활성화되어 있으면 이 옵션이 사용되지 않습니다. 기본적으로 소비자는 WARN 또는 ERROR 수준에서 기록되고 무시됩니다. | ExceptionHandler | |
exchangePattern (consumer) | 소비자가 교환을 생성할 때 교환 패턴을 설정합니다. | ExchangePattern | |
exposeListenerSession (consumer) | 메시지를 사용할 때 리스너 세션을 노출해야 하는지 여부를 지정합니다. | false | boolean |
replyToSameDestination 허용 (consumer) | JMS 소비자가 소비자가 사용하는 것과 동일한 대상에 응답 메시지를 보낼 수 있는지 여부입니다. 이렇게 하면 동일한 메시지를 자체 소비하고 다시 전송하여 무한 루프를 방지할 수 있습니다. | false | boolean |
taskExecutor (consumer) | 메시지 사용에 대한 사용자 지정 작업 실행자를 지정할 수 있습니다. | TaskExecutor | |
deliveryDelay (producer) | JMS에 대한 send 호출에 사용할 전달 지연을 설정합니다. 이 옵션에는 JMS 2.0 호환 브로커가 필요합니다. | -1 | long |
deliveryMode (producer) | 사용할 전달 모드를 지정합니다. 가능한 값은 javax.jms.DeliveryMode로 정의된 값입니다. NON_PERSISTENT = 1 및 PERSISTENT = 2. | 정수 | |
deliveryPersistent (producer) | 영구 전달이 기본적으로 사용되는지 여부를 지정합니다. | true | boolean |
explicitQosEnabled (producer) | 메시지를 전송할 때 deliveryMode, priority 또는 timeToLive의 서비스를 사용해야 하는지 설정합니다. 이 옵션은 Spring의 JmsTemplate을 기반으로 합니다. deliveryMode, priority 및 timeToLive 옵션은 현재 끝점에 적용됩니다. 이는 메시지 단위로 작동하는 preserveMessageQos 옵션과 대조하여 Camel In 메시지 헤더에서만 QoS 속성을 읽습니다. | false | 부울 |
formatDateHeadersToIso8601 (producer) | ISO 8601 표준에 따라 날짜 헤더를 포맷해야 하는지 여부를 설정합니다. | false | boolean |
preserveMessageQos (producer) | JMS 끝점의 QoS 설정 대신 메시지에 지정된 QoS 설정을 사용하여 메시지를 보내려면 true로 설정합니다. 다음 세 가지 헤더는 JMSPriority, JMSDeliveryMode 및 JMSExpiration으로 간주됩니다. 전부 또는 일부만 제공할 수 있습니다. 제공되지 않는 경우 Camel은 대신 엔드포인트의 값을 사용하도록 대체됩니다. 따라서 이 옵션을 사용할 때 헤더는 끝점의 값을 재정의합니다. 반면 explicitQosEnabled 옵션은 메시지 헤더의 값이 아닌 끝점에 설정된 옵션만 사용합니다. | false | boolean |
우선 순위 (producer) | 1보다 큰 값은 전송 시 메시지 우선 순위를 지정합니다(여기서 0은 가장 낮은 우선순위이고 9가 가장 높은 우선 순위임). 이 옵션을 적용하려면 explicitQosEnabled 옵션도 활성화해야 합니다. | 4 | int |
replyToConcurrentConsumers (producer) | JMS를 통해 요청/응답을 수행할 때 동시 소비자의 기본 수를 지정합니다. 스레드의 동적 확장/다운을 제어하는 maxMessagesPerTask 옵션도 참조하십시오. | 1 | int |
replyToMaxConcurrent 소비자 (producer) | JMS를 통해 request/reply를 사용할 때 최대 동시 소비자 수를 지정합니다. 스레드의 동적 확장/다운을 제어하는 maxMessagesPerTask 옵션도 참조하십시오. | int | |
replyToOnTimeoutMax ConcurrentConsumers (producer) | JMS를 통해 request/reply를 사용할 때 시간 초과가 발생한 경우 계속 라우팅에 대한 동시 소비자의 최대 수를 지정합니다. | 1 | int |
replyToOverride (producer) | replyTo 설정을 재정의하는 JMS 메시지의 명시적 ReplyTo 대상을 제공합니다. 메시지를 원격 큐로 전달하고 ReplyTo 대상에서 응답 메시지를 수신하려는 경우 유용합니다. | 문자열 | |
replyToType (producer) | JMS를 통해 request/reply를 수행할 때 replyTo 큐에 사용할 전략 유형을 명시적으로 지정할 수 있습니다. 가능한 값은 임시, 공유 또는 제외입니다. 기본적으로 Camel은 임시 큐를 사용합니다. 그러나 replyTo가 구성된 경우 기본적으로 Shared가 사용됩니다. 이 옵션을 사용하면 공유 대기열 대신 배타적 큐를 사용할 수 있습니다. 자세한 내용은 Camel JMS 문서, 특히 클러스터형 환경에서 실행하는 경우 의미에 대한 참고 사항 및 공유 응답 대기열이 대체 시간 및 Exclusive보다 성능이 저하된다는 사실을 참조하십시오. | ReplyToType | |
requestTimeout (producer) | InOut Exchange Pattern (밀리초)을 사용할 때 응답을 기다리는 시간 시간입니다. 기본값은 20초입니다. CamelJmsRequestTimeout 헤더를 포함하여 이 끝점이 구성된 시간 초과 값을 재정의하여 메시지 개별 시간 초과 값을 가질 수 있습니다. requestTimeoutCheckerInterval 옵션도 참조하십시오. | 20000 | long |
TimeToLive (producer) | 메시지를 전송할 때 메시지의 실시간(밀리초)을 지정합니다. | -1 | long |
allowAdditionalHeaders (producer) | 이 옵션은 JMS 사양에 따라 유효하지 않은 값이 있을 수 있는 추가 헤더를 허용하는 데 사용됩니다. 예를 들어 WMQ와 같은 일부 메시지 시스템은 바이트 배열 또는 기타 잘못된 유형이 있는 값을 포함하는 JMS_IBM_MQMD_ 접두사를 사용하여 헤더 이름으로 이 작업을 수행합니다. 쉼표로 구분된 여러 헤더 이름을 지정하고 와일드카드 일치에 접미사로 사용할 수 있습니다. | 문자열 | |
allowNullBody (producer) | 본문 없이 메시지를 보낼 수 있는지 여부입니다. 이 옵션이 false이고 메시지 본문이 null이면 JMSException이 발생합니다. | true | boolean |
alwaysCopyMessage (producer) | true인 경우 Camel은 전송을 위해 생산자에 전달될 때 항상 메시지의 JMS 메시지 사본을 만듭니다. replyToDestinationSelectorName이 설정된 경우와 같이 메시지를 복사하는 것이 필요합니다(즉, Camel은 replyToDestinationSelectorName이 설정된 경우 alwaysCopyMessage 옵션을 true로 설정합니다.) | false | boolean |
correlationProperty (producer) | 이 JMS 속성을 사용하여 JMSCorrelationID 속성 대신 InOut 교환 패턴(request-reply)의 메시지를 상관시킵니다. 이를 통해 JMSCorrelationID JMS 속성을 사용하여 메시지의 상관 관계가 없는 시스템과 메시지를 교환할 수 있습니다. 사용된 JMSCorrelationID는 Camel에서 사용하거나 설정하지 않습니다. 여기에서 named 속성의 값은 동일한 이름의 메시지 헤더에 제공되지 않는 경우 생성됩니다. | 문자열 | |
disableTimeToLive (producer) | 이 옵션을 사용하여 활성화 시간을 강제로 비활성화합니다. 예를 들어 JMS를 통해 요청/거부하는 경우 Camel은 기본적으로 requestTimeout 값을 전송되는 메시지에 라이브로 사용합니다. 문제는 발신자와 수신자 시스템에 클럭이 동기화되어 동기화되어 있어야 한다는 것입니다. 압축하기가 항상 쉽지는 않습니다. 따라서 disableTimeToLive=true를 사용하여 전송된 메시지의 라이브 값을 설정하지 않도록 할 수 있습니다. 그러면 수신자 시스템에서 메시지가 만료되지 않습니다. 자세한 내용은 아래 섹션의 라이브 시간 정보를 참조하십시오. | false | boolean |
forceSendOriginalMessage (producer) | mapJmsMessage=false Camel을 사용하는 경우 경로 중 헤더(get 또는 set)를 터치하면 새 JMS 대상으로 보낼 새 JMS 메시지가 생성됩니다. Camel이 수신한 원래 JMS 메시지를 전송하도록 하려면 이 옵션을 true로 설정합니다. | false | boolean |
includeSentJMSMessageID (producer) | InOnly를 사용하여 JMS 대상으로 전송할 때만 적용됩니다(예: 실행 및 잊어버림). 이 옵션을 활성화하면 메시지가 JMS 대상으로 전송될 때 JMS 클라이언트가 사용한 실제 JMSMessageID와 Camel 교환이 강화됩니다. | false | boolean |
replyToCacheLevelName (producer) | JMS를 통해 요청/거부할 때 응답 소비자의 이름으로 캐시 수준을 설정합니다. 이 옵션은 고정 응답 대기열(임시 아님)을 사용하는 경우에만 적용됩니다. Camel은 기본적으로 다음을 사용합니다. CACHE_CONSUMER for exclusive or shared w/ replyToSelectorName. replyToSelectorName 없이 공유되는 CACHE_SESSION. IBM Cryostat와 같은 일부 JMS 브로커는 replyToCacheLevelName=CACHE_NONE을 작동하도록 설정해야 할 수 있습니다. 참고: 임시 큐를 사용하는 경우 CACHE_NONE은 허용되지 않으며 CACHE_CONSUMER 또는 CACHE_SESSION과 같은 더 높은 값을 사용해야 합니다. | 문자열 | |
replyToDestinationSelector 이름 (producer) | 공유 대기열을 사용할 때 다른 사용자의 응답을 필터링할 수 있도록 사용할 고정 이름을 사용하여 JMS Selector를 설정합니다(즉, 임시 응답 큐를 사용하지 않는 경우). | 문자열 | |
streamMessageTypeEnabled (producer) | StreamMessage 유형이 활성화되어 있는지 여부를 설정합니다. 파일, InputStream 등과 같은 스트리밍 유형의 메시지 페이로드는 CryostatsMessage 또는 StreamMessage로 전송됩니다. 이 옵션은 사용할 유형을 제어합니다. 기본적으로 CryostatsMessage는 전체 메시지 페이로드를 메모리로 읽어오는 데 사용됩니다. 이 옵션을 활성화하면 메시지 페이로드가 청크에서 메모리로 읽혀지고 각 청크는 더 이상 데이터가 없을 때까지 StreamMessage에 기록됩니다. | false | boolean |
allowSerializedHeaders (advanced) | 직렬화된 헤더를 포함할지 여부를 제어합니다. isTransferExchange()가 true인 경우에만 적용됩니다. 이렇게 하려면 개체를 직렬화할 수 있어야 합니다. Camel은 직렬화되지 않은 오브젝트를 제외하고 WARN 수준에서 기록합니다. | false | boolean |
asyncStartListener (고급) | 경로를 시작할 때 JmsConsumer 메시지 리스너를 비동기식으로 시작할지 여부입니다. 예를 들어 JmsConsumer가 원격 JMS 브로커에 연결할 수 없는 경우 다시 시도 및/또는 페일오버하는 동안 차단될 수 있습니다. 이로 인해 경로를 시작하는 동안 Camel이 차단됩니다. 이 옵션을 true로 설정하면 JmsConsumer가 비동기 모드에서 전용 스레드를 사용하여 JMS 브로커에 연결하는 동안 시작 경로를 라우팅하도록 합니다. 이 옵션을 사용하는 경우 연결을 설정할 수 없는 경우 예외가 WARN 수준에서 기록되고 소비자가 메시지를 수신할 수 없습니다. 그런 다음 경로를 다시 시작하여 다시 시작할 수 있습니다. | false | boolean |
asyncStopListener (advanced) | 경로를 중지할 때 JmsConsumer 메시지 리스너를 비동기식으로 중지할지 여부입니다. | false | boolean |
destinationResolver (고급) | 자체 확인자를 사용할 수 있는 플러그형 org.springframework.jms.support.destination.DestinationResolver입니다(예: JNDI 레지스트리에서 실제 대상을 조회하는 방법). | DestinationResolver | |
errorHandler (advanced) | Message를 처리하는 동안 발생한 예기치 않은 예외가 있는 경우 org.springframework.util.ErrorHandler를 지정합니다. 기본적으로 이러한 예외는 오류 처리기가 구성되지 않은 경우 WARN 수준에서 기록됩니다. 로깅 수준을 구성하고 errorHandlerLoggingLevel 및 errorHandlerLogStackTrace 옵션을 사용하여 스택 추적을 로깅해야 하는지 여부를 구성할 수 있습니다. 이렇게 하면 사용자 지정 오류 처리기를 코딩하는 것보다 훨씬 쉽게 구성할 수 있습니다. | ErrorHandler | |
exceptionListener (고급) | 기본 JMS 예외에 대해 알림을 받을 JMS Exception Listener를 지정합니다. | ExceptionListener | |
headerFilterStrategy (advanced) | 사용자 정의 HeaderFilterStrategy를 사용하여 Camel 메시지로의 헤더를 필터링하려면 다음을 수행합니다. | HeaderFilterStrategy | |
idleConsumerLimit (advanced) | 지정된 시간에 유휴 상태로 설정할 수 있는 소비자 수에 대한 제한을 지정합니다. | 1 | int |
idleTaskExecutionLimit (advanced) | 수신 작업의 유휴 실행 제한을 지정하고 실행 중 메시지를 받지 않음을 지정합니다. 이 제한에 도달하면 작업이 종료되고 다른 실행 중인 작업에 수신을 남겨 둡니다(동적 스케줄링의 경우 maxConcurrentConsumers 설정 참조). Spring에서 추가 doc를 사용할 수 있습니다. | 1 | int |
모든 JMSXProperties(advanced) 포함 | JMS에서 Camel Message로 매핑할 때 모든 JMSXxxx 속성을 포함할지 여부입니다. 이 값을 true로 설정하면 JMSXAppID 및 JMSXUserID 등과 같은 속성이 포함됩니다. 참고: 사용자 정의 headerFilterStrategy를 사용하는 경우 이 옵션이 적용되지 않습니다. | false | boolean |
jmsKeyFormatStrategy (advanced) | JMS 키를 인코딩 및 디코딩하여 JMS 사양을 준수할 수 있도록 플러그형 전략입니다. Camel은 기본적으로 default 및 passthrough의 두 가지 구현을 제공합니다. 기본 전략은 점과 하이픈(. and -)을 안전하게 마샬링합니다. passthrough 전략에서는 키를 그대로 둡니다. 는 JMS 헤더 키에 잘못된 문자가 포함되어 있는지와 관련이 없는 JMS 브로커에 사용할 수 있습니다. org.apache.camel.component.jms.JmsKeyFormatStrategy의 자체 구현을 제공하고 # 표기법을 사용하여 참조할 수 있습니다. | 문자열 | |
mapJmsMessage (advanced) | Camel이 수신된 JMS 메시지를 javax.jms. CryostatMessage와 같은 적절한 페이로드 유형에 자동으로 매핑해야 하는지를 지정합니다. | true | boolean |
maxMessagesPerTask (고급) | 작업당 메시지 수입니다. -1은 무제한입니다. 동시 소비자(예: min max)에 범위를 사용하는 경우 이 옵션을 사용하여 값이 100으로 설정하여 적은 작업이 필요할 때 소비자가 축소되는 속도를 제어할 수 있습니다. | -1 | int |
messageConverter (advanced) | 사용자 정의 Spring org.springframework.jms.support.converter.MessageConverter를 사용하면 javax.jms.Message로 매핑하거나 매핑하는 방법을 제어할 수 있습니다. | MessageConverter | |
messageCreatedStrategy (advanced) | Camel이 JMS 메시지를 보낼 때 javax.jms.Message 오브젝트의 새 인스턴스를 생성할 때 호출되는 지정된 MessageCreatedStrategy를 사용합니다. | MessageCreatedStrategy | |
messageIdEnabled (advanced) | 전송할 때 메시지 ID를 추가해야 하는지 여부를 지정합니다. 이는 JMS 브로커에 대한 힌트일 뿐입니다. JMS 공급자가 이 힌트를 허용하는 경우 이러한 메시지에는 메시지 ID가 null로 설정되어 있어야 합니다. 공급자가 힌트를 무시하면 메시지 ID를 일반 고유 값으로 설정해야 합니다. | true | boolean |
messageListenerContainer factory (advanced) | 메시지를 사용하는 데 사용할 org.springframework.jms.listener.AbstractMessageListenerContainer를 결정하는 데 사용되는 MessageListenerContainer의 레지스트리 ID입니다. 이 설정을 설정하면 consumerType이 자동으로 Custom으로 설정됩니다. | MessageListener ContainerFactory | |
messageTimestampEnabled (advanced) | 메시지 전송 시 기본적으로 타임스탬프를 활성화해야 하는지 여부를 지정합니다. 이는 JMS 브로커에 대한 힌트일 뿐입니다. JMS 공급자가 이 힌트를 수락하는 경우 이러한 메시지에는 타임스탬프가 0으로 설정되어 있어야 합니다. 공급자가 힌트를 무시하면 타임스탬프를 일반 값으로 설정해야 합니다. | true | boolean |
pubSubNoLocal (advanced) | 자체 연결에서 게시한 메시지의 전달을 억제할지 여부를 지정합니다. | false | boolean |
receiveTimeout (advanced) | 메시지를 수신하기 위한 제한 시간(밀리초)입니다. | 1000 | long |
recoveryInterval (advanced) | 복구 시도 사이의 간격(예: 연결이 새로 고쳐질 때 밀리초)을 지정합니다. 기본값은 5000 ms, 즉 5초입니다. | 5000 | long |
requestTimeoutChecker Interval (advanced) | JMS를 통해 요청/응답을 수행할 때 Camel에서 시간 초과 교환을 확인하는 빈도를 구성합니다. 기본적으로 Camel은 초당 한 번 확인합니다. 그러나 시간 초과가 발생할 때 더 빨리 반응해야 하는 경우 이 간격을 낮추어 더 자주 확인할 수 있습니다. 시간 초과는 requestTimeout 옵션에 의해 결정됩니다. | 1000 | long |
동기 (고급) | 동기 처리를 엄격하게 사용해야 하는지 또는 Camel이 비동기 처리를 사용할 수 있는지 여부를 설정합니다(지원되는 경우). | false | boolean |
transferException (advanced) | 활성화되고 요청 거부 메시징(InOut)을 사용하고 소비자 측에서 교환에 실패한 경우, 발생한 예외는 javax.jms.ObjectMessage로 응답으로 다시 전송됩니다. 클라이언트가 Camel인 경우 반환된 Exception이 다시 검색됩니다. 이를 통해 라우팅에서 Camel JMS를 브리지로 사용할 수 있습니다. 예를 들어 영구 대기열을 사용하여 강력한 라우팅을 활성화할 수 있습니다. transferExchange도 활성화된 경우 이 옵션이 우선합니다. catch된 예외는 직렬화 가능해야 합니다. 소비자 측의 원래 예외는 생산자로 반환되면 org.apache.camel.RuntimeCamelException과 같은 외부 예외로 래핑될 수 있습니다. | false | boolean |
transferExchange (advanced) | 교환은 본문과 헤더가 아닌 유선을 통해 전송할 수 있습니다. body, Out body, Fault body, In headers, Out headers, Fault headers, exchange properties, exchange exception. 이렇게 하려면 개체를 직렬화할 수 있어야 합니다. Camel은 직렬화되지 않은 오브젝트를 제외하고 WARN 수준에서 기록합니다. 생산자 및 소비자 측 모두에서 이 옵션을 활성화해야 하므로 Camel은 페이로드가 일반 페이로드가 아닌 교환임을 알고 있어야 합니다. | false | boolean |
transferFault (advanced) | 활성화된 경우 요청 거부 메시징(InOut)을 사용하고 교환이 소비자 측에서 Cryostat 오류(예: 예외 아님)로 실패한 경우 org.apache.camel.Message#isFault()의 fault 플래그는 JmsConstants#JMS_TRANSFER_ULT 키를 사용하여 JMS 헤더로 응답에 다시 전송됩니다. 클라이언트가 Camel인 경우 반환된 fault 플래그가 org.apache.camel.Message#setFault(boolean)에 설정됩니다. cxf 또는 Spring-ws와 같은 Cryostat 기반 오류를 지원하는 Camel 구성 요소를 사용할 때 이를 활성화할 수 있습니다. | false | boolean |
useMessageIDAsCorrelation ID (advanced) | JMSMessageID를 InOut 메시지의 JMSCorrelationID로 항상 사용해야 하는지 여부를 지정합니다. | false | boolean |
waitForProvisionCorrelation ToBeUpdatedCounter (advanced) | JMS를 통해 요청/거부를 수행할 때 및 옵션 useMessageIDAsCorrelationID가 활성화된 경우 임시 상관 관계 ID가 실제 상관 관계 ID로 업데이트될 때까지 대기하는 횟수입니다. | 50 | int |
waitForProvisionCorrelation ToBeUpdatedThreadSleeping Time (advanced) | 프로비저닝 상관 관계 ID가 업데이트되기를 기다리는 동안 밀리 초 단위의 간격입니다. | 100 | long |
errorHandlerLoggingLevel (logging) | 로깅 uncaught 예외에 대한 기본 errorHandler 로깅 수준을 구성할 수 있습니다. | WARN | LoggingLevel |
errorHandlerLogStackTrace (logging) | 기본 오류 처리기에서 stacktrace를 로깅할지 여부를 제어할 수 있습니다. | true | boolean |
암호 (보안) | ConnectionFactory와 함께 사용할 암호입니다. ConnectionFactory에서 직접 사용자 이름/암호를 구성할 수도 있습니다. | 문자열 | |
사용자 이름 (보안) | ConnectionFactory와 함께 사용할 사용자 이름입니다. ConnectionFactory에서 직접 사용자 이름/암호를 구성할 수도 있습니다. | 문자열 | |
트랜잭션됨 ( Cryostat) | Transacted 모드를 사용할지 여부를 지정합니다. | false | boolean |
lazyCreateTransaction Manager ( Cryostat) | true인 경우 Camel은 옵션을 transacted=true할 때 주입되는 transactionManager가 없는 경우 JmsTransactionManager를 생성합니다. | true | boolean |
TransactionManager (TransactionManager) | 사용할 Spring 트랜잭션 관리자입니다. | PlatformTransaction Manager | |
TransactionName ( Cryostat) | 사용할 트랜잭션의 이름입니다. | 문자열 | |
TransactionTimeout (TransactionTimeout) | 트랜잭션 모드를 사용하는 경우 트랜잭션의 시간 초과 값(초)입니다. | -1 | int |