메시지 신뢰성 레벨 - JMS 전달 모드 및 서비스 통합 서비스 품질(QoS)
메시지에는 신뢰할 수 있는 메시지가 전달되는 방법을 지정할 때 사용할 수 있는 서비스 품질(QoS) 속성이 있습니다. JMS 애플리케이션은 JMS 전달 모드(persistent 또는 nonpersistent)로 메시지를 전송하고 서비스 통합은 JMS 연결 팩토리 설정을 사용하여 JMS 전달 모드를 서비스 통합 메시지 신뢰성 설정으로 맵핑합니다. 버스 대상의 추가 설정(외부 대상 및 별명 대상 포함)은 이 메시지 신뢰성을 대체할 수 있습니다.
- 서비스 품질(QoS)(서비스 통합 메시징)
- 전달 모드(JMS)
- 지속성(IBM MQ )
- 최상의 비지속적 상태
- 메시징 엔진이 중지하거나 실패할 때 메시지가 버려집니다. 메시지 전송에 사용된 연결이 사용 불가능하게 되거나 시스템 자원이 제한될 경우에도 메시지는 버려질 수 있습니다.
- 명확한 비지속적 상태
- 메시징 엔진이 중지하거나 실패할 때 메시지가 버려집니다. 메시지 전송에 사용된 연결이 사용 불가능하게 될 경우에도 메시지는 버려질 수 있습니다.
- 신뢰 가능한 비지속적 상태
- 메시징 엔진이 중지하거나 실패할 때 메시지가 버려집니다.
- 신뢰 가능한 지속적 상태
- 메시지는 메시징 엔진이 실패할 때 버려질 수 있습니다.
- 확실한 지속적 상태
- 메시지가 버려지지 않습니다.
JMS 애플리케이션은 JMS 전달 모드(지속적 또는 비지속적)로 메시지를 전송합니다. 애플리케이션은 이 전달 모드를 JMS send() 메소드의 매개변수로 지정하지만 선택적으로 send() 메소드를 JMS 대상 속성으로 대체하는 전달 모드를 지정할 수도 있습니다.
서비스 통합은 JMS 연결 팩토리 설정을 사용하여 JMS 전달 모드(지속적 및 비지속적)를 서비스 통합 메시지 신뢰성 레벨로 맵핑합니다. 이 맵핑을 사용하여 고성능, 고신뢰성 또는 둘 사이에서 선택할 수 있습니다. JMS 연결 팩토리 설정에 필요한 맵핑을 지정합니다. 예를 들어, 기본 메시징 제공자 통합 연결 팩토리 [Settings]의 내용을 참조하십시오.
기본 및 최대 서비스 통합 신뢰성 레벨을 버스 대상 속성(외부 대상 및 별명 대상 포함)으로 지정합니다. 프로듀서 지정 신뢰성이 대상의 기본 신뢰성을 대체하는지도 지정할 수 있습니다. 그렇지 않으면 서비스 통합은 메시지의 신뢰성 레벨을 대상의 기본 신뢰성으로 재설정합니다. 별명 대상의 경우, 신뢰성 설정이 대상 목적지에서 상속되도록 지정할 수도 있습니다.
IBM MQ와의 상호 운용을 위해 서비스 통합 메시지의 신뢰성 설정을 IBM MQ 메시지의 지속적 설정으로 맵핑합니다. 자세한 정보는 JMS 전달 옵션 및 메시지 신뢰성과 IBM MQ 지속성 값 사이의 맵핑의 내용을 참조하십시오.
최상의 비지속적 상태 | 명확한 비지속적 상태 | 신뢰 가능한 비지속적 상태 | 신뢰 가능한 지속적 상태 | 확실한 지속적 상태 | |
---|---|---|---|---|---|
JMS 전달 모드: | 비지속적 | 비지속적 | 비지속적 | 지속적 | 지속적 |
트랜잭션 아토믹: | 아니오, 개별 메시지가 제거 가능 | 예: 메시지가 제거되지 않으며 서버 다시 시작 후에는 보유되지 않음 | 예: 메시지가 제거되지 않으며 서버 다시 시작 후에는 보유되지 않음 | 예 | 예 |
메시지 굳히기: | 아니오 | 가능: 메시지가 대상에서 빌드되는 경우 | 가능: 메시지가 대상에서 빌드되는 경우 | 예: 비동기 | 예: 동기 |
정상 조작 중에 메시지 버리기: | 예 | 아니오 | 아니오 | 아니오 | 아니오 |
메시지 중복: | 아니오 | 가능: 상태 서버는 서버 장애 시 유실되어 중복 초래 | 가능: 상태 서버는 서버 장애 시 유실되어 중복 초래 | 가능: 데이터베이스에서 삭제되며 사용자 요청과 비동기화 | 아니오 |
계획된 시스템 종료 이후에 메시지 유지: | 아니오 | 아니오 | 아니오 | 예: 굳어진 메시지가 복구됨, 계획된 시스템 종료가 캐시된 메시지를 굳히기 | 예 |
클라이언트 통신 실패 이후에도 메시지 유지: | 아니오 | 아니오 | 예 | 예 | 예 |
엔진 통신 실패 이후에도 메시지 유지: | 아니오 | 예 | 예 | 예 | 예 |
엔진 충돌 이후에도 메시지 유지: | 아니오 | 아니오 | 아니오 | 가능: 굳어진 메시지가 복구 | 예 |
백업 및 복원 이후에도 메시지 유지: | 아니오 | 아니오 | 아니오 | 가능: 굳어진 메시지가 백업 및 복구 가능 | 예 |
- JMS 전달 모드
- 연결 팩토리 및 대상과 같은 JMS 오브젝트의 경우, JMS 전달 모드와 신뢰성 설정 사이의 맵핑입니다. JMS 비지속적 전달 모드의 기본 맵핑은 분명한 비지속적입니다. JMS 지속적 전달 모드의 기본 맵핑은 신뢰 가능 지속적입니다.
- 트랜잭션 가능 아토믹
- 메시지가 동일한 트랜잭션에서 작성 또는 이용되는 다른 메시지에 대해 아토믹인지 여부를 나타냅니다. 최상의 메시지는 다른 메시지에 대하여 작성되는 시기에는 트랜잭션 가능한 아토믹은 아니기 때문에 이런 메시지가 유실되는 경우(메시지가 유실되는 방법에 대한 자세한 내용은 이 주제의 앞에 있는 최상의 비지속적 설명 참조) 동일 트랜잭션에서 처리 중인 다른 메시지가 트랜잭션 커미트 시에 여전히 제대로 전달될 수 있습니다(트랜잭션이 롤백되고 메시지의 모든 조작이 해당 신뢰성에 상관없이 롤백되는 경우). 높은 신뢰성의 메시지인 경우, 트랜잭션에서 메시지 중 하나가 유실되는 장애가 발생하면 트랜잭션 및 해당 트랜잭션에서 수행 중인 모든 작업은 롤백되어 조작이 트랜잭션 가능한 아토믹이 됩니다.
- 메시지 굳히기
- 메시지가 데이터 저장소 또는 파일 저장소의 디스크에 기록되는지 여부입니다. 시스템 성능은
메시지가 디스크에 기록되는 빈도의 영향을 받고 일반적으로
메시징 엔진에 파일 저장소를 사용하면 성능이 향상될 수 있습니다. 최상의 비지속적
신뢰성의 메시지는 디스크로 기록되지 않으며
분명한 비지속적 및 신뢰 가능 비지속적 메시지는 메시지가
대상에서 빌드되는 경우 기록되며 신뢰 가능 지속적 및
확실한 지속적 메시지는 항상 디스크로 기록됩니다.
신뢰 가능 지속적 신뢰성 메시지는 디스크로 기록되지만 작성 애플리케이션에 대하여 비동기로 수행됩니다. 이를 사용하여 데이터베이스 업데이트의 스케줄링 및 일괄처리 융통성이 확대되고 처리량 증가에 사용할 수 있습니다. 메시지는 정상 작동 조건에서는 유실되지 않지만 메시지는 메시징 엔진이 이 비동기 쓰기 완료 전에 실패하면 유실될 수 있습니다.
확실한 지속적 신뢰성의 메시지는 작성 애플리케이션에 대하여 동기화되어 디스크에 기록됩니다.
메시지가 작성된 후 바로 이용되지 않아서 대상에서 빌드가 허용되는 경우 메시징 엔진은 메모리 사용을 관리하기 위해 데이터를 디스크에 기록하도록 선택할 수 있습니다.
서비스 품질(QoS) 속성이 최상의 비지속적보다 좋은 메시지가 디스크로 기록되면 메모리 버퍼에서 캐시될 수 있습니다.
- 정상 조작 중에 메시지 버리기
- 메시지가 정상 조작 중에 삭제되는지 여부를 나타냅니다.
- 참고:비트랜잭션 메시지 구동 Bean이 있으면 시스템에서는 Bean이 시작되는 경우 또는 Bean이 완료되는 경우 메시지가 삭제됩니다. Bean에서 예외가 발생하여 완료되지 않으면 시스템에서는 다음 중 한 가지 조치를 취합니다.
- Bean 완료 시 메시지를 삭제하도록 시스템이 구성된 경우 해당 메시지는 Bean의 새 인스턴스로 디스패치되므로 해당 메시지를 처리할 수 있는 다른 기회가 생깁니다.
- Bean 시작 시 메시지를 삭제하도록 시스템이 구성되면 해당 메시지가 유실됩니다.
서비스 품질이 최상의 비지속적 상태로 설정된 경우 Bean이 시작되면 메시지가 삭제됩니다. 다른 모든 서비스 품질의 경우 Bean이 완료되면 메시지가 삭제됩니다.
- 메시지 중복
- 서버 장애 후에 메시지가 중복되는지를 나타냅니다.
- 계획된 시스템 종료 이후에 메시지 유지
- 메시지가 계획된 시스템 종료 또는 시작 이후에도 유지되는지를 나타냅니다.
- 클라이언트 통신 실패 이후에도 메시지 유지
- 메시지가 클라이언트 메시징 엔진 통신 실패 이후에도 유지되는지를 나타냅니다.
- 엔진 통신 실패 이후에도 메시지 유지
- 메시지가 상호 엔진 통신 실패 이후에도 유지되는지를 나타냅니다.
- 엔진 충돌 이후에도 메시지 유지
- 메시지가 메시징 엔진 또는 서버 장애 이후에도 유지되는지를 나타냅니다.
- 백업 및 복원 이후에도 메시지 유지
- 메시지가 온라인 백업 및 복원 프로세스 이후에도 유지되는지를 나타냅니다.