225장. MLLP Component

Camel 버전 2.17에서 사용 가능

MLLP 구성 요소는 MLLP 프로토콜의 미묘함을 처리하고 MLLP 프로토콜을 사용하여 다른 시스템과 통신하는 데 필요한 기능을 제공하도록 특별히 설계되었습니다.  MLLP 구성 요소는 간단한 구성 URI, 자동화된 HL7 승인 생성 및 자동 승인 간격을 제공합니다.

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>

225.1. MLLP 옵션

MLLP 구성 요소는 아래에 나열된 5 가지 옵션을 지원합니다.

이름설명Default유형

logPhi (고급)

구성 요소를 logECDHEI 데이터로 설정합니다.

true

부울

logPhiMaxBytes (advanced)

로그 항목에 로깅될 최대 바이트 수를 설정합니다.

5120

정수

defaultCharset (advanced)

바이트에 사용할 기본 문자 집합을 String 변환으로 설정합니다.

ISO-8859-1

문자열

구성 (공용)

MLLP 엔드포인트를 생성할 때 사용할 기본 구성을 설정합니다.

 

MllpConfiguration

resolvePropertyECDHEholders (advanced)

구성 요소가 시작할 때 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders.

true

boolean

MLLP 끝점은 URI 구문을 사용하여 구성됩니다.

mllp:hostname:port

다음 경로 및 쿼리 매개변수를 사용합니다.

225.1.1. 경로 매개변수 (2 매개변수):

이름설명Default유형

hostname

TCP 연결에 필요한 호스트 이름 또는 IP 기본값은 null이며, 이는 모든 로컬 IP 주소를 의미합니다.

 

문자열

port

TCP 연결에 필요한 포트 번호

 

int

225.1.2. 쿼리 매개변수(27 매개변수):

이름설명Default유형

autoAck (common)

MLLP 지원 MLLP 소비자의 자동 생성만 활성화/비활성화

true

boolean

bufferWrites (common)

더 이상 사용되지 않는 소켓을 쓰기 전에 HL7 페이로드의 버퍼링을 활성화/비활성화합니다.

false

boolean

hl7Headers (common)

HL7 Message MLLP Consumers에서만 메시지 헤더 자동 생성을 활성화/비활성화

true

boolean

requireEndOfData (common)

MLLP 표준에 대한 엄격한 준수를 활성화/비활성화합니다. MLLP 표준은ECDHE_OF_BLOCKhl7 페이로드END_OF_BLOCKEND_OF_DATA를 지정하지만 일부 시스템은 최종 END_OF_DATA 바이트를 전송하지 않습니다. 이 설정은 최종 END_OF_DATA 바이트가 필요한지 여부를 제어합니다.

true

boolean

stringPayload (common)

페이로드를 String으로 변환/비활성화합니다. 활성화된 경우 외부 시스템에서 수신되는 HL7 Payloads의 유효성이 String으로 변환됩니다. ECDHEsetName 속성이 설정된 경우 변환에 해당 문자 세트가 사용됩니다. ResticsetName 속성이 설정되지 않은 경우 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

예외 처리기 (consumer)

소비자가 사용자 지정 예외 처리기를 사용하도록 하려면 다음을 수행합니다. 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 Consumer 연결 수입니다. 새 연결이 수신되고 최대값이 이미 설정된 경우 새 연결이 즉시 재설정됩니다.

5

int

reuseAddress (tcp)

SO_REUSEADDR 소켓 옵션을 활성화/비활성화합니다.

false

부울

acceptTimeout (timeout)

TCP 연결 TCP Server만 대기하는 동안 시간 초과(밀리초)

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

knativesetName (codec)

교환에서 CamelCharsetName 속성 설정

 

문자열