| Oracle® Containers for J2EE Enterprise JavaBeans Developer's Guide 10g (10.1.3.1.0) Part Number B28221-02  | 
  | 
  | 
View PDF | 
You can configure OC4J-proprietary deployment options for an EJB 3.0 message-driven bean using OC4J-proprietary annotations (see "Using Annotations") or using the orion-ejb-jar.xml file (see "Using Deployment XML").
Configuration in the orion-ejb-jar.xml file overrides the corresponding configuration made with OC4J-proprietary annotations.
For more information, see "Message Service Configuration Options: Annotations or XML? Attributes or Activation Configuration Properties?".
You can specify OC4J-proprietary deployment options for an EJB 3.0 message-driven bean using the @MessageDrivenDeployment OC4J-proprietary annotation.
Example 10-16 shows how to configure OC4J-proprietary deployment options for an EJB 3.0 message-driven bean using the @MessageDrivenDeployment annotation. For more information on @MessageDrivenDeployment attributes, see Table A-3.
You can override @MessageDriven annotation activationConfig attribute settings (see "Configuring an EJB 3.0 MDB to Access a Message Service Provider Using J2CA") by configuring activation configuration properties using @MessageDrivenDeployment attributes. You can also override annotation configuration using deployment XML (see "Using Deployment XML").
Example 10-16 @MessageDrivenDeployment
import javax.ejb.MessageDriven;
import oracle.j2ee.ejb.MessageDrivenDeployment;
import javax.ejb.ActivationConfigProperty;
import javax.annotation.Resource;
@MessageDriven(
    activationConfig = {
        @ActivationConfigProperty(
            propertyName="messageListenerInterface",
            propertyValue="javax.jms.MessageListener"),
        @ActivationConfigProperty(
            propertyName="connectionFactoryJndiName",
            propertyValue="jms/TopicConnectionFactory"),
         @ActivationConfigProperty(
            propertyName="destinationName", 
            propertyValue="jms/demoTopic"),
         @ActivationConfigProperty(
            propertyName="destinationType",
            propertyValue="javax.jms.Topic"),
         @ActivationConfigProperty(
            propertyName="messageSelector", 
            propertyValue="RECIPIENT = 'MDB'")
    }
)
@MessageDrivenDeployment(
    maxInstances=10,
    poolCacheTimeout=30
)
public class MessageLogger implements MessageListener, TimedObject {
    @Resource javax.ejb.MessageDrivenContext mc;
    public void onMessage(Message message) {
    ...
    }
    public void ejbTimeout(Timer timer) {
    ...
    }
}
You can specify OC4J-proprietary deployment options for a message-driven bean using the orion-ejb-jar.xml file element <message-driven-deployment> as Example 10-17 shows. For more information on the <message-driven-deployment> element, see "<message-driven-deployment>".
Example 10-17 orion-ejb-jar.xml File <message-driven-deployment> Element
<?xml version="1.0" encoding="utf-8"?>
<orion-ejb-jar
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="http://xmlns.oracle.com/oracleas/schema/orion-ejb-jar-10_0.xsd"
    deployment-version="10.1.3.1.0"
    deployment-time="10b1fb5cdd0"
    schema-major-version="10" 
    schema-minor-version="0"
>
    <enterprise-beans>
        <message-driven-deployment
            name="MessageLogger"
            max-instances="10"
            cache-timeout="30"
            ...
        >
        </message-driven-deployment>
    ...
    </enterprise-beans>
    ...
</orion-ejb-jar>