예 2: 시스템 자원을 사용할 수 없게 될 때 MDB 자동 중지
시스템 자원을 사용할 수 없게 되는 경우에 대비하기 위해 몇 번의 메시지 실패 후 메시지 구동 Bean(MDB)이 자동으로 중지되고 문제점을 경고하도록 시스템을 구성하십시오.
시작하기 전에
MDB가 청취하는 대상은 예외 대상을 사용해야 합니다. 이 예외 목적지는 시스템 기본값이거나 목적지에 특별히 구성된 항목일 수 있습니다.
- MDB를 포함하는 배치된 엔터프라이즈 애플리케이션을 탐색하십시오.
- 종속 외부 시스템 자원
- 실패한 순차 메시지 임계값에 대한 3의 값. 이는 메시지 전달의 최대 연속 실패 수이며, 이 이후에 MDB가 중지됩니다. 이 특성은 메시지 세트에 적용됩니다.
- 실패 메시지 재시도 간 지연에 대한 값 5000. 이는 실패 메시지를 MDB에 전달할 수 있게 될 때까지의 시간(밀리초)입니다. 다른 메시지는 실패한 순차 메시지 임계값 및 최대 동시성이 1로 설정되지 않는 경우 이 기간 중에 전달될 수 있습니다.
- 메시지당 실패한 최대 전달 수 에 대한 5의 값. 이 값은 메시지를 의도된 목적지에서 예외 목적지로 전달한 후 메시지를 처리하는 데 실패한 최대 시도 수입니다. 이 특성은 개별 메시지에 적용됩니다.
이 태스크 정보
이 시나리오에서 엔터프라이즈 또는 비즈니스 레벨 애플리케이션은 외부 시스템 자원에 액세스하기 위해 배치된 MDB를 사용하는 연속적으로 실행되는 시스템입니다.
외부 자원에 문제점이 발생하여 사용할 수 없는 경우, 배치된 MDB가 해당 자원에 액세스할 수 없으므로 MDB와 연관된 트랜잭션이 롤백되고 메시지, msg1은 큐에 다시 지정됩니다.
메시지 msg1은 MDB에서 사용 가능해지기 전에 5초의 재시도 지연 동안(실패 메시지 재시도 간 지연에 설정됨) 숨겨집니다.
그 동안 MDB는 큐의 다음 메시지, msg2를 처리합니다. 외부 자원은 아직 계속 사용 불가능하므로, 이 메시지 처리도 실패합니다. 메시지 트랜잭션은 롤백되며 메시지는 5초 동안 숨겨집니다. 큐의 다음 메시지, msg3,은 처리되지만 실패하고 마찬가지로 숨겨집니다.
숨겨진 메시지의 수가 실패한 순차 메시지 임계값에 도달하면 MDB는 숨겨진 메시지 중 하나가 다시 사용 가능해질 때까지 메시지를 더 이상 처리하지 않습니다.
msg1에 대해 실패 메시지 재시도 간 지연이 만료되면 msg1을 숨김 해제하고 재처리합니다. 자원은 아직 계속 사용 불가능하므로 메시지를 다시 숨깁니다. msg2 및 msg3에서도 동일한 상황이 나타납니다.
메시지가 메시지당 실패한 최대 전달 수 한계(이 시나리오에서 5회)보다 1개 적은 횟수로 롤백되면 메시지는 실패한 메시지로 간주됩니다. 따라서 msg1이 4회 동안 숨김 해제된 후에 다시 숨기면 순차적 실패 횟수가 증가합니다. 이 시점에서 msg2는 숨김 해제되고 롤백된 후 다시 숨깁니다. 마찬가지로 msg3도 숨김 해제되고 롤백된 후 다시 숨깁니다. 연속 실패 수가 실패한 순차 메시지 임계값에 도달하면 MDB가 자동으로 중지됩니다. JMX 알림이 JCA MBean에서 생성되며, 로그 항목은 시스템 관리자에게 MDB가 중지되었음을 경고합니다.