@MessageDriven(name="test/mdb", activationConfig = { @ActivationConfigProperty(propertyName="messagingType", propertyValue="javax.jms.MessageListener"), @ActivationConfigProperty(propertyName="destinationType", propertyValue="javax.jms.Queue"), @ActivationConfigProperty(propertyName="Destination", propertyValue="testqueue"), @ActivationConfigProperty(propertyName="ConnectionFactoryName", propertyValue="ConnectionFactory"), @ActivationConfigProperty(propertyName="Transacted", propertyValue="true"), @ActivationConfigProperty(propertyName="Xa", propertyValue="true"), @ActivationConfigProperty(propertyName="DeliveryOption", propertyValue="B"), @ActivationConfigProperty(propertyName="SubscriptionDurability", propertyValue="Durable"), @ActivationConfigProperty(propertyName="MaxPoolSize", propertyValue="20"), @ActivationConfigProperty(propertyName="MaxMessages", propertyValue="1"), @ActivationConfigProperty(propertyName="resourceAdaptorName", propertyValue="swiftmq.rar") }) @ResourceAdapter("swiftmq.rar")
These annotations correspond the following deployment descriptors:
NOTE: these properties could equally go in jboss.xml if you want to avoid polluting ejb-jar.xml with vendor specific properties.
Here we define jboss specific stuff. There are two main items: * We define we want to use the jca 1.5 message inflow container * We tell jboss which rar will provide the inflow
* Make sure you have the Swift jmsxaasf swiftlet installed within SwiftMQ
* Add swiftmq.rar to the deploy directory
* Change build.properties to point at your JBoss installation
* Deploy the mdb by typing "ant" to run the deploy target in build.xml
* Use the swiftmq example {{{SimpleQueueSender}}} to send a message to the queue
You should get some output like the following on the jboss console:
12:47:29,515 INFO [STDOUT] [TextMessageImpl com.swiftmq.jms.TextMessageImpl@4065c4 messageIndex = 5_0 messageId = ID:/10.10.10.115-11333728494210 userId = anonymous clientId = null timeStamp = 113337849421 correlationId = null replyTo = null destination = testqueue@router1 deliveryMode = 2 redelivered = false deliveryCount = 1 type = null expiration = 0 priority = 4 props = null readOnly = true sourceRouter = null destRouter = null destQueue = testqueue@router1 text=Here is a message]