please crosspost to jboss-docs... if we don't keep track of these, that is
how we end up with great code that isn't used, cause nobody remembers how to
use it :)

marc


|-----Original Message-----
|From: [EMAIL PROTECTED]
|[mailto:[EMAIL PROTECTED]]On Behalf Of [EMAIL PROTECTED]
|Sent: Sunday, January 21, 2001 8:08 AM
|To: [EMAIL PROTECTED]
|Cc: [EMAIL PROTECTED]
|Subject: [jBoss-User] Re: MessageDrivenBeans for JBoss (with terse
|howto)
|
|
|On 20 Jan, Michel de Groot wrote:
|> Hi peter,
|>
|> are you still working on MessageDrivenBeans for JBoss?
|
|It's been a couple of weeks since I commited any code, but thats mostly
|because it works for me, and nobody else seems to be using MDB (at least
|there has been no problems reported hierto, plus that I have a pile of
|other work to do).
|
|>I've tried to use
|> them, but without success so far. In the source, I noticed that some
|> fields in the deployment descriptor are named differently in the EJB 2.0
|> spec.
|Hm, which fields? I thought I verrifyed the stuff agains the ejb2.0 DTD.
|
|> I changed this, but still no luck. There is something wrong with
|> the standardjboss.xml I think, because some required configuration
|> fields are not filled, which throws NullPointer in line 406 of
|> org.jboss.ejb.ContainterFactory.
|
|standardjboss.xml have no MDB support, see further down.
|>
|> Also, could you explain to me how the MDB gets mapped to a Topic or
|> Queue? Where is it defined what the name is of the Topic/Queue?
|
|In jboss.xml, see further down
|
|>Where do
|> I need to find which Topics/Queues exist?
|
|That is a question of wich JMS provider you use. Currently MDB works
|with spyderMQ and OpenEJB (the default on jboss.jcml is SpyderMQ).
|
|>
|> Sincerely,
|> Michel de Groot
|>
|
|Here is *verry* terse howto:
|
|Six steps to MDB nirvana in Jboss.
|==================================
|Peter Antman
|
|The easies way to get up and working with Message Driven Beans in jboss is
|the check out the jbosstest from cvs and look into the mdb test.
|
|But here are also the steps you need to go through to get it working.
|
|1. Check out the latest jboss from cvs and compile.
|
|2. Write the sourcecode for a Message Driven Bean.
|
|3. Write the ejb-jar.xml descriptor.
|
|Here is an example for a bean listening on a queue with bean
|managed transactions :
|
|<?xml version="1.0"?>
|<!DOCTYPE ejb-jar>
|<!--
| PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans
|2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd"
|-->
|<ejb-jar>
|    <enterprise-beans>
|      <message-driven>
|       <ejb-name>QueueBean</ejb-name>
|       <ejb-class>org.jboss.test.mdb.bean.QueueBean</ejb-class>
|        <jms-message-selector></jms-message-selector>
|        <transaction-type>Bean</transaction-type>
|        <acknowledge-mode>AUTO_ACKNOWLEDGE</acknowledge-mode>
|       <message-driven-destination>
|           <jms-destination-type>javax.jms.Queue</jms-destination-type>
|           <subscription-durability>NonDurable</subscription-durability>
|        </message-driven-destination>
|      </message-driven>
|</enterprise-beans>
|</ejb-jar>
|
|And here are one for a durable topic with containermanaged transactions:
|
|<?xml version="1.0"?>
|<!DOCTYPE ejb-jar>
|<message-driven>
|       <ejb-name>DurableTopicBean</ejb-name>
|       <ejb-class>org.jboss.test.mdb.bean.TopicBean</ejb-class>
|        <jms-message-selector></jms-message-selector>
|         <transaction-type>Container</transaction-type>
|        <message-driven-destination>
|            <jms-destination-type>javax.jms.Topic</jms-destination-type>
|            <subscription-durability>Durable</subscription-durability>
|        </message-driven-destination>
|      </message-driven>
|    </enterprise-beans>
|    <assembly-descriptor>
|      <container-transaction>
|       <method>
|         <ejb-name>DurableTopicBean</ejb-name>
|         <method-name>*</method-name>
|       </method>
|       <trans-attribute>Required</trans-attribute>
|       </container-transaction>
|   </assembly-descriptor>
|</ejb-jar>
|
|
|4. Write the jboss.xml deployment descriptor (this MUST allways be
|done with
|MDB in  jboss)
|
|The destination-jndi-name element points to the queue
|
|Here are the one for the queue bean:
|
|<?xml version="1.0" encoding="Cp1252"?>
|
|<jboss>
|     <enterprise-beans>
|       <message-driven>
|         <ejb-name>QueueBean</ejb-name>
|        <configuration-name>Default MesageDriven Bean</configuration-name>
|         <destination-jndi-name>queue/testQueue</destination-jndi-name>
|       </message-driven>
|     </enterprise-beans>
|     <resource-managers />
|     <container-configurations>
|        <container-configuration
|configuration-class="org.jboss.ejb.deployment.StatelessSessionConta
|inerConfiguration">
|        <container-name>Default MesageDriven Bean</container-name>
|
|<container-invoker>org.jboss.ejb.plugins.jms.JMSContainerInvoker</c
|ontainer-invoker>
|
|<instance-pool>org.jboss.ejb.plugins.MessageDrivenInstancePool</ins
|tance-pool>
|        <instance-cache></instance-cache>
|        <persistence-manager></persistence-manager>
|        <transaction-manager>org.jboss.tm.TxManager</transaction-manager>
|        <container-invoker-conf>
|          <Optimized>False</Optimized>
|
|<JMSProviderAdapterJNDI>DefaultJMSProvider</JMSProviderAdapterJNDI>
|
|<ServerSessionPoolFactoryJNDI>StdJMSPool</ServerSessionPoolFactoryJNDI>
|           <MaximumSize>15</MaximumSize>
|           <MaxMessages>1</MaxMessages>
|        </container-invoker-conf>
|        <container-pool-conf>
|          <MaximumSize>100</MaximumSize>
|          <MinimumSize>10</MinimumSize>
|        </container-pool-conf>
|       </container-configuration>
|     </container-configurations>
|</jboss>
|
|
|And here for the durable topic:
|
|<?xml version="1.0" encoding="Cp1252"?>
|
|<jboss>
|     <enterprise-beans>
|       <message-driven>
|         <ejb-name>DurableTopicBean</ejb-name>
|        <configuration-name>Default MesageDriven Bean</configuration-name>
|
|<destination-jndi-name>topic/testDurableTopic</destination-jndi-name>
|         <mdb-user>john</mdb-user>
|         <mdb-passwd>needle</mdb-passwd>
|         <mdb-client-id>DurableSubscriberExample</mdb-client-id>
|       </message-driven>
|        <secure>false</secure>
|     </enterprise-beans>
|     <resource-managers />
|     <container-configurations>
|        <container-configuration
|configuration-class="org.jboss.ejb.deployment.StatelessSessionConta
|inerConfiguration">
|        <container-name>Default MesageDriven Bean</container-name>
|
|<container-invoker>org.jboss.ejb.plugins.jms.JMSContainerInvoker</c
|ontainer-invoker>
|
|<instance-pool>org.jboss.ejb.plugins.MessageDrivenInstancePool</ins
|tance-pool>
|        <instance-cache></instance-cache>
|        <persistence-manager></persistence-manager>
|        <transaction-manager>org.jboss.tm.TxManager</transaction-manager>
|        <container-invoker-conf>
|          <Optimized>False</Optimized>
|
|<JMSProviderAdapterJNDI>DefaultJMSProvider</JMSProviderAdapterJNDI>
|
|<ServerSessionPoolFactoryJNDI>StdJMSPool</ServerSessionPoolFactoryJNDI>
|           <MaximumSize>15</MaximumSize>
|           <MaxMessages>1</MaxMessages>
|        </container-invoker-conf>
|        <container-pool-conf>
|          <MaximumSize>100</MaximumSize>
|          <MinimumSize>10</MinimumSize>
|        </container-pool-conf>
|       </container-configuration>
|     </container-configurations>
|</jboss>
|
|5. Edit spyderMQ.xml in conf/default and ad the queue or topic
|
|Eg:
|
|        <Queue>
|                <Name>testQueue</Name>
|        </Queue>
|
|For the queue, and
|
|        <Topic>
|                <Name>testDurableTopic</Name>
|        </Topic>
|
|
|plus
|                 <User>
|                        <Name>john</Name>
|                        <Password>needle</Password>
|                        <Id>DurableSubscriberExample</Id>
|                        <DurableSubscription>
|                                <Name>DurableSubscriberExample</Name>
|                                <TopicName>testDurableTopic</TopicName>
|                        </DurableSubscription>
|                </User>
|
|
|for the durable topic.
|
|
|6.Deploy the bean, for example by packing it in a jar and copy it into the
|jboss deploy directory.
|
|This works for me at least.
|
|//Peter
|--
|------------------------------------------------------------
|Peter Antman             Technology in Media, Box 34105 100 26 Stockholm
|Systems Architect        WWW: http://www.tim.se
|Email: [EMAIL PROTECTED]  WWW: http://www.backsource.org
|Phone: +46-(0)8-506 381 11 Mobile: 070-675 3942
|------------------------------------------------------------
|
|
|
|--
|--------------------------------------------------------------
|To subscribe:        [EMAIL PROTECTED]
|To unsubscribe:      [EMAIL PROTECTED]
|List Help?:          [EMAIL PROTECTED]
|



--
--------------------------------------------------------------
To subscribe:        [EMAIL PROTECTED]
To unsubscribe:      [EMAIL PROTECTED]
List Help?:          [EMAIL PROTECTED]

Reply via email to