4장. Message-Driven Bean
4.1. Message-Driven Bean
MDB(Message-driven Bean)는 애플리케이션 개발을 위한 이벤트 중심 모델을 제공합니다. MDB 메서드는 클라이언트 코드에 삽입되거나 클라이언트 코드에서 호출되지 않지만 자카르타 메시징 서버와 같은 메시징 서비스에서 메시지 수신에 의해 트리거됩니다. 자카르타 EE 사양에서는 자카르타 메시징이 지원되어야 하지만 다른 메시징 시스템도 지원할 수 있습니다.
MDB는 특별한 종류의 상태 비저장 세션 빈입니다. onMessage(Message message)
라는 메서드를 구현합니다. 이 메서드는 MDB가 수신 대기 중인 Jakarta Messaging 대상에서 메시지를 수신할 때 트리거됩니다. 즉, MDB는 Jakarta Enterprise Beans 클라이언트가 일반적으로 메서드를 호출하는 상태 비저장 세션 빈과 달리 Jakarta Messaging 공급자의 메시지를 수신하여 트리거됩니다.
MDB는 메시지를 비동기적으로 처리합니다. 기본적으로 각 MDB에는 각 세션이 메시지를 처리하는 최대 16개의 세션이 있을 수 있습니다. 주문 보장 메시지는 없습니다. 메시지 순서를 지정하려면 MDB의 세션 풀을 1
로 제한해야 합니다.
예제: 세션 풀을 1
로 설정하는 관리 CLI 명령 :
/subsystem=ejb3/strict-max-bean-instance-pool=mdb-strict-max-pool:write-attribute(name=derive-size,value=undefined) /subsystem=ejb3/strict-max-bean-instance-pool=mdb-strict-max-pool:write-attribute(name=max-pool-size,value=1) reload