Message-driven bean deployment descriptor properties
Here are the deployment descriptor properties that are used for message-driven beans.
- Transaction type
- Whether the message-driven bean manages its own transactions or the container manages transactions on behalf of the bean.
- Bean
- The message-driven bean manages its own transactions
- Container
- The container manages transactions on behalf of the bean
- Message selector
- The JMS message selector to be used to determine which messages the message-driven bean receives; for example:
JMSType='car' AND color='blue' AND weight>2500The selector string can refer to fields in the JMS message header and fields in the message properties. Message selectors cannot reference message body values.
- Acknowledge mode
- How the session acknowledges any messages it receives.
This property applies only to message-driven beans that uses bean-managed transaction demarcation (Transaction type is set to Bean).
- Auto Acknowledge
- The session automatically acknowledges a message when it has either successfully returned from a call to receive, or the message listener it has called to process the message successfully returns.
- Dups OK Acknowledge
- The session lazily acknowledges the delivery of messages. This is likely to result in the delivery of some duplicate messages if JMS fails, so it should be used only by consumers that are tolerant of duplicate messages.
As defined in the EJB specification, clients cannot use using Message.acknowledge() to acknowledge messages. If a value of CLIENT_ACKNOWLEDGE is passed on the createxxxSession call, then messages are automatically acknowledged by the appserver and Message.acknowledge() is not used.
- Destination type
- Whether the message-driven bean uses a queue or topic destination.
- Queue
- The message-driven bean uses a queue destination.
- Topic
- The message-driven bean uses a topic destination.
- Subscription durability
- Whether a JMS topic subscription is durable or nondurable.
- Durable
- A subscriber registers a durable subscription with a unique identity that is retained by JMS. Subsequent subscriber objects with the same identity resume the subscription in the state it was left in by the earlier subscriber. If there is no active subscriber for a durable subscription, JMS retains the subscription's messages until they are received by the subscription or until they expire.
- Nondurable
- Non-durable subscriptions last for the lifetime of their subscriber object. This means that a client sees the messages published on a topic only while its subscriber is active. If the subscriber is not active, the client is missing messages published on its topic.
A non-durable subscriber can only be used in the same transactional context (for example, a global transaction or an unspecified transaction context) that existed when the subscriber was created. For more information about this context restriction, see The effect of transaction context on non-durable subscribers.
- ActivationSpec name
- Type the JNDI name of the J2C activation specification that is to be used to deploy this message-driven bean. This name must match the name of an activation specification that you define to WAS.
Related tasks
Developing an enterprise application to use message-driven beans
Reference topic