226장. MLLP 구성 요소
Camel 버전 2.17에서 사용 가능
MLLP 구성 요소는 MLLP 프로토콜의 뉘앙스를 처리하도록 설계되었으며, Cryostat 공급자가 MLLP 프로토콜을 사용하여 다른 시스템과 통신하는 데 필요한 기능을 제공합니다. MLLP 구성 요소는 자동화된 HL7 승인 생성 및 자동 승인 개입을 제공하는 간단한 구성 URI를 제공합니다.
MLLP 프로토콜은 일반적으로 다수의 동시 TCP 연결을 사용하지 않습니다. - 하나의 활성 TCP 연결은 정상적인 경우입니다. 따라서 MLLP 구성 요소는 표준 Java 소켓을 기반으로 하는 간단한 스레드당 연결 모델을 사용합니다. 이렇게 하면 구현을 단순화하고 Camel 자체 이외의 종속성이 제거됩니다.
구성 요소는 다음을 지원합니다.
- TCP 서버를 사용하는 Camel 소비자
- TCP 클라이언트를 사용하는 Camel 생산자
MLLP 구성 요소는 byte[] 페이로드를 사용하고 Camel Type Conversion을 사용하여 byte[]를 다른 유형으로 변환합니다.
Maven 사용자는 이 구성 요소에 대해 pom.xml에 다음 종속성을 추가해야 합니다.
<dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-mllp</artifactId> <version>x.x.x</version> <!-- use the same version as your Camel core version --> </dependency>
226.1. MLLP 옵션
MLLP 구성 요소는 아래에 나열된 5 가지 옵션을 지원합니다.
이름 | 설명 | Default | 유형 |
---|---|---|---|
logPhi (advanced) | 구성 요소를 log CryostatI 데이터를 기록하도록 설정합니다. | true | 부울 |
logPhiMaxBytes (advanced) | 로그 항목에 기록될 최대 bytes 수를 설정합니다. | 5120 | 정수 |
defaultCharset (advanced) | 바이트에 사용할 기본 문자 집합을 문자열 변환으로/에서 설정합니다. | ISO-8859-1 | 문자열 |
구성 (일반) | MLLP 엔드 포인트를 생성할 때 사용할 기본 구성을 설정합니다. | MllpConfiguration | |
resolveProperty Placeholders (advanced) | 구성 요소 시작 시 속성 자리 표시자를 자체적으로 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다. | true | boolean |
MLLP 끝점은 URI 구문을 사용하여 구성됩니다.
mllp:hostname:port
다음 경로 및 쿼리 매개변수를 사용합니다.
226.1.1. 경로 매개변수 (2 매개변수):
이름 | 설명 | Default | 유형 |
---|---|---|---|
hostname | TCP 연결에 필요한 호스트 이름 또는 IP입니다. 기본값은 null입니다. 즉, 로컬 IP 주소 | 문자열 | |
port | TCP 연결에 필요한 포트 번호 | int |
226.1.2. 쿼리 매개변수(27 매개변수):
이름 | 설명 | Default | 유형 |
---|---|---|---|
autoAck (공용) | MLLP Acknowledgement MLLP 소비자만 활성화/해제 가능 | true | boolean |
bufferWrites (공용) | 더 이상 사용되지 않는 소켓에 쓰기 전에 HL7 페이로드의 버퍼링을 활성화/비활성화합니다. | false | boolean |
hl7Headers (공용) | HL7 Message MLLP 소비자에서만 메시지 헤더 자동 생성 활성화/해제 가능 | true | boolean |
requireEndOfData (공용) | MLLP 표준을 엄격하게 준수/사용할 수 있습니다. MLLP 표준은 START_OF_BLOCKhl7 payloadEND_OF_OF_OF_DATA를 지정하지만 일부 시스템은 최종 END_OF_DATA 바이트를 보내지 않습니다. 이 설정은 최종 END_OF_DATA 바이트가 필수인지 또는 선택 사항인지를 제어합니다. | true | boolean |
stringPayload (common) | 페이로드를 문자열로 변환/해제할 수 있습니다. 활성화하면 외부 시스템에서 수신된 HL7 Payloads의 유효성이 검증됩니다. charsetName 속성이 설정되면 해당 문자 집합이 변환에 사용됩니다. charsetName 속성이 설정되지 않은 경우 MSH-18 값은 적절한 문자 세트를 결정하는 데 사용됩니다. MSH-18이 설정되지 않은 경우 기본 ISO-8859-1 문자 세트가 사용됩니다. | true | boolean |
validatePayload (common) | HL7 Payloads가 활성화된 경우 외부 시스템에서 수신된 HL7 Payloads의 유효성 검사를 활성화/해제할 수 있습니다(검증에 대한 자세한 내용은 Hl7Util.generateInvalidPayloadExceptionMessage 참조). 잘못된 페이로드가 감지되면 소비자의 경우 MllpInvalidMessageException (사용자의 경우) 또는 MllpInvalidAcknowledgementException이 발생합니다. | false | boolean |
bridgeErrorHandler (consumer) | Camel 라우팅 오류 처리기에 소비자를 브리징할 수 있습니다. 즉, 소비자가 들어오는 메시지를 수신하려고 하는 동안 발생한 모든 예외가 이제 메시지로 처리되고 라우팅 오류 핸들러에 의해 처리됩니다. 비활성화된 경우 소비자는 org.apache.camel.spi.ExceptionHandler를 사용하여 WARN 또는 ERROR 수준에서 로깅하여 예외를 처리하고 무시됩니다. | true | boolean |
exceptionHandler (consumer) | 사용자가 사용자 지정 ExceptionHandler를 사용하도록 하려면 다음을 수행합니다. bridgeErrorHandler 옵션이 활성화되어 있으면 이 옵션이 사용되지 않습니다. 기본적으로 소비자는 WARN 또는 ERROR 수준에서 기록되고 무시됩니다. | ExceptionHandler | |
exchangePattern (Consumer) | 소비자가 교환을 생성할 때 교환 패턴을 설정합니다. | InOut | ExchangePattern |
동기 (고급) | 동기 처리를 엄격하게 사용해야 하는지 여부를 설정합니다(이 구성 요소는 동기 작업만 지원). | true | boolean |
Backlog (tcp) | 들어오는 연결 표시(연결 요청)의 최대 큐 길이는 backlog 매개변수로 설정됩니다. 큐가 가득 차면 연결 표시가 도착하면 연결이 거부됩니다. | 5 | 정수 |
lenientBind (tcp) | TCP 서버만 - TCP ServerSocket이 바인딩되기 전에 끝점을 시작할 수 있도록 허용합니다. 일부 환경에서는 TCP ServerSocket이 바인딩되기 전에 엔드포인트를 시작하도록 허용하는 것이 좋습니다. | false | boolean |
maxConcurrentConsumers (tcp) | 허용되는 최대 동시 MLLP 소비자 연결 수입니다. 새 연결이 수신되고 최대값이 이미 설정된 경우 새 연결이 즉시 재설정됩니다. | 5 | int |
reuseAddress (tcp) | SO_REUSEADDR 소켓 옵션을 활성화/비활성화합니다. | false | 부울 |
acceptTimeout (timeout) | TCP 연결 TCP 서버만 기다리는 동안 시간 제한(밀리초) | 60000 | int |
bindRetryInterval (timeout) | TCP 서버만 - 바인딩 시도 사이에 대기하는 시간(밀리초)입니다. | 5000 | int |
bindTimeout (timeout) | TCP 서버만 - 서버 포트에 바인딩을 다시 시도하는 시간(밀리초) | 30000 | int |
ConnectTimeout (timeout) | TCP 연결 TCP 클라이언트에 대한 설정 전용 제한 시간(밀리초) | 30000 | int |
IdleTimeout (timeout) | 클라이언트 TCP 연결 전에 허용되는 대략적인 유휴 시간입니다. null 값 또는 0보다 작거나 같은 값은 유휴 시간 제한을 비활성화합니다. | 정수 | |
maxReceiveTimeouts (timeout) | 더 이상 사용되지 않는 TCP 연결을 재설정하기 전에 허용되는 최대 시간 초과( receiveTimeout에 의해 지정됨)입니다. | 정수 | |
keepalive( tcp) | SO_KEEPALIVE 소켓 옵션을 활성화/비활성화합니다. | true | 부울 |
receiveBufferSize (tcp) | SO_RCVBUF 옵션을 지정된 값(바이트)으로 설정합니다. | 8192 | 정수 |
sendBufferSize (tcp) | SO_SNDBUF 옵션을 지정된 값(바이트)으로 설정합니다. | 8192 | 정수 |
tcpNoDelay (tcp) | TCP_NODELAY 소켓 옵션을 활성화/비활성화합니다. | true | 부울 |
readTimeout (timeout) | MLLP 프레임 시작 후 사용되는 SO_TIMEOUT 값(밀리초) | 5000 | int |
receiveTimeout (timeout) | MLLP 프레임의 시작을 기다릴 때 사용되는 SO_TIMEOUT 값(밀리초) | 15000 | int |
charsetName (codec) | 교환에 CamelCharsetName 속성 설정 | 문자열 |