0 Replies Latest reply on Aug 19, 2002 12:34 PM by Leslie A. Turner

    OSSJ SA RI on JBoss 3.0

    Leslie A. Turner Newbie

      Hi Folks,
      Well, I finally got the OSSJ SA RI to deploy to JBoss 3.0, using the MS SQL Server for its DB. I haven't done testing yet, but at least the deployment proceeds without apparent errors.

      I'd be interested in anyone's feedback who has also deployed to JBoss 3.0. It appears to me that JBoss 3.0 requires the <ejb-link> tag in the <ejb-ref> tag in the ejb-jar.xml file rather than reading the <ejb-ref> with its enclosed <ejb-ref-name> and <jndi-name> in the jboss.xml file. The hint for this came from the following reference: http://www.geocrawler.com/archives/3/10767/2002/1/50/7652983/

      Anyone know if it's possible to get the source to the client app for the OSSJ SA RI? I seem to only have the compiled version.

      Also, is there some documentation somewhere about this JBoss deployment stuff, that I've just missed? I've been searching feverishly. ;-)

      Below are the ejb-jar.xml and the jboss.xml files for reference. Perhaps this will reduce the slogging efforts of others.

      ejb-jar.xml:

      <?xml version="1.0" encoding="UTF-8"?>
      <!-- edited with XML Spy v4.0 U (http://www.xmlspy.com) by Andreas Ebbert (Nokia Networks GmbH) -->
      <!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>
      <display-name>ServiceActivation</display-name>
      <enterprise-beans>

      <ejb-name>JVTActivation</ejb-name>
      javax.oss.order.JVTActivationHome
      javax.oss.order.JVTActivationSession
      <ejb-class>com.nokia.oss.ossj.sa.ri.order.JVTActivationBean</ejb-class>
      <session-type>Stateless</session-type>
      <transaction-type>Container</transaction-type>
      <env-entry>
      <!--
      Seperated list of supported Services.
      Valid values are SubInterfaces of the standard Reference Implementation Service Value Interface or this interface itself:
      com.nokia.oss.ossj.sa.ri.service.RiServiceValue
      Separators are any seperating characters, which are understood by java.util.StringTokenizer
      In order to use a specified service value interface, an implementation class must be provided, named like the interface with
      "Impl" appended. This implementation class must be instatiatable by Class.forName("...").newInstance();
      -->
      <env-entry-name>SupportedServices</env-entry-name>
      <env-entry-type>java.lang.String</env-entry-type>
      <env-entry-value>com.nokia.oss.ossj.sa.ri.service.RiServiceValue</env-entry-value>
      </env-entry>
      <env-entry>
      <env-entry-name>ApplicationDN</env-entry-name>
      <env-entry-type>java.lang.String</env-entry-type>
      <env-entry-value>/System/System1/ApplicationType/ServiceActivation/Application/1-0;1-0;ReferenceImplementation/</env-entry-value>
      </env-entry>
      <env-entry>
      <env-entry-name>loggingEnabled</env-entry-name>
      <env-entry-type>java.lang.Boolean</env-entry-type>
      <env-entry-value>true</env-entry-value>
      </env-entry>
      <!-- ENV_ENTRY_TEMPLATE
      <env-entry>
      <env-entry-name></env-entry-name>
      <env-entry-type></env-entry-type>
      <env-entry-value></env-entry-value>
      </env-entry>
      -->
      <ejb-ref>
      Is responsible for sending out all JMS Events
      <ejb-ref-name>ejb/JmsSender</ejb-ref-name>
      <ejb-ref-type>Session</ejb-ref-type>
      com.nokia.oss.ossj.sa.ri.order.JmsSenderHome
      com.nokia.oss.ossj.sa.ri.order.JmsSender
      <ejb-link>JmsSender</ejb-link>
      </ejb-ref>
      <ejb-ref>
      Persistency for OrderValues
      <ejb-ref-name>ejb/Order</ejb-ref-name>
      <ejb-ref-type>Entity</ejb-ref-type>
      com.nokia.oss.ossj.sa.ri.order.OrderHome
      com.nokia.oss.ossj.sa.ri.order.Order
      <ejb-link>Order</ejb-link>
      </ejb-ref>
      <ejb-ref>
      Persistency for Service
      <ejb-ref-name>ejb/Service</ejb-ref-name>
      <ejb-ref-type>Entity</ejb-ref-type>
      com.nokia.oss.ossj.sa.ri.service.ServiceHome
      com.nokia.oss.ossj.sa.ri.service.Service
      <ejb-link>Service</ejb-link>
      </ejb-ref>
      <ejb-ref>
      Is responsible for processing started Orders
      <ejb-ref-name>ejb/OrderProcessor</ejb-ref-name>
      <ejb-ref-type>Session</ejb-ref-type>
      com.nokia.oss.ossj.sa.ri.order.OrderProcessorHome
      com.nokia.oss.ossj.sa.ri.order.OrderProcessor
      <ejb-link>OrderProcessor</ejb-link>
      </ejb-ref>
      <ejb-ref>
      Iterates through OrderValues
      <ejb-ref-name>ejb/OrderValueIterator</ejb-ref-name>
      <ejb-ref-type>Session</ejb-ref-type>
      com.nokia.oss.ossj.sa.ri.order.OrderValueIteratorHome
      com.nokia.oss.ossj.sa.ri.order.RemoteOrderValueIterator
      <ejb-link>OrderValueIterator</ejb-link>
      </ejb-ref>
      <ejb-ref>
      generates unique keys
      <ejb-ref-name>ejb/UniqueKeyGenerator</ejb-ref-name>
      <ejb-ref-type>Session</ejb-ref-type>
      com.nokia.oss.ossj.sa.ri.UniqueKeyGeneratorHome
      com.nokia.oss.ossj.sa.ri.UniqueKeyGenerator
      <ejb-link>UniqueKeyGenerator</ejb-link>
      </ejb-ref>
      <!-- EJB_REF_TEMPLATE
      <ejb-ref>

      <ejb-ref-name>ejb/</ejb-ref-name>
      <ejb-ref-type>Entity</ejb-ref-type>


      </ejb-ref>
      -->



      <ejb-name>JmsSender</ejb-name>
      com.nokia.oss.ossj.sa.ri.order.JmsSenderHome
      com.nokia.oss.ossj.sa.ri.order.JmsSender
      <ejb-class>com.nokia.oss.ossj.sa.ri.order.JmsSenderBean</ejb-class>
      <session-type>Stateless</session-type>
      <transaction-type>Container</transaction-type>
      <env-entry>
      <env-entry-name>ApplicationDN</env-entry-name>
      <env-entry-type>java.lang.String</env-entry-type>
      <env-entry-value>/System/System1/ApplicationType/ServiceActivation/Application/1-0;1-0;ReferenceImplementation/</env-entry-value>
      </env-entry>
      <ejb-local-ref>
      Is responsible for do-coding xml
      <ejb-ref-name>ejb/XmlCoDec</ejb-ref-name>
      <ejb-ref-type>Session</ejb-ref-type>
      <local-home>com.nokia.oss.ossj.sa.ri.xml.XmlCoDecHome</local-home>
      com.nokia.oss.ossj.sa.ri.xml.XmlCoDec
      <ejb-link>XmlCoDec</ejb-link>
      </ejb-local-ref>
      <resource-ref>
      <res-ref-name>jms/TopicFactory</res-ref-name>
      <res-type>javax.jms.TopicConnectionFactory</res-type>
      <res-auth>Container</res-auth>
      </resource-ref>
      <resource-ref>
      <res-ref-name>jms/QueueFactory</res-ref-name>
      <res-type>javax.jms.QueueConnectionFactory</res-type>
      <res-auth>Container</res-auth>
      </resource-ref>
      <resource-env-ref>
      <resource-env-ref-name>jms/JvtEventTopic</resource-env-ref-name>
      <resource-env-ref-type>javax.jms.Topic</resource-env-ref-type>
      </resource-env-ref>
      <resource-env-ref>
      <resource-env-ref-name>jms/XvtEventTopic</resource-env-ref-name>
      <resource-env-ref-type>javax.jms.Topic</resource-env-ref-type>
      </resource-env-ref>


      <ejb-name>OrderProcessor</ejb-name>
      com.nokia.oss.ossj.sa.ri.order.OrderProcessorHome
      com.nokia.oss.ossj.sa.ri.order.OrderProcessor
      <ejb-class>com.nokia.oss.ossj.sa.ri.order.OrderProcessorBean</ejb-class>
      <session-type>Stateless</session-type>
      <transaction-type>Container</transaction-type>
      <env-entry>
      <env-entry-name>loggingEnabled</env-entry-name>
      <env-entry-type>java.lang.Boolean</env-entry-type>
      <env-entry-value>true</env-entry-value>
      </env-entry>
      <env-entry>
      <env-entry-name>ApplicationDN</env-entry-name>
      <env-entry-type>java.lang.String</env-entry-type>
      <env-entry-value>/System/System1/ApplicationType/ServiceActivation/Application/1-0;1-0;ReferenceImplementation/</env-entry-value>
      </env-entry>
      <ejb-ref>
      Is responsible for sending out all JMS Events
      <ejb-ref-name>ejb/JmsSender</ejb-ref-name>
      <ejb-ref-type>Session</ejb-ref-type>
      com.nokia.oss.ossj.sa.ri.order.JmsSenderHome
      com.nokia.oss.ossj.sa.ri.order.JmsSender
      <ejb-link>JmsSender</ejb-link>
      </ejb-ref>
      <ejb-ref>
      Persistency for Service
      <ejb-ref-name>ejb/Service</ejb-ref-name>
      <ejb-ref-type>Entity</ejb-ref-type>
      com.nokia.oss.ossj.sa.ri.service.ServiceHome
      com.nokia.oss.ossj.sa.ri.service.Service
      <ejb-link>Service</ejb-link>
      </ejb-ref>
      <ejb-ref>
      Persistency for OrderValues
      <ejb-ref-name>ejb/Order</ejb-ref-name>
      <ejb-ref-type>Entity</ejb-ref-type>
      com.nokia.oss.ossj.sa.ri.order.OrderHome
      com.nokia.oss.ossj.sa.ri.order.Order
      <ejb-link>Order</ejb-link>
      </ejb-ref>
      <ejb-ref>
      generates unique keys
      <ejb-ref-name>ejb/UniqueKeyGenerator</ejb-ref-name>
      <ejb-ref-type>Session</ejb-ref-type>
      com.nokia.oss.ossj.sa.ri.UniqueKeyGeneratorHome
      com.nokia.oss.ossj.sa.ri.UniqueKeyGenerator
      <ejb-link>UniqueKeyGenerator</ejb-link>
      </ejb-ref>


      <ejb-name>DummyServiceActivator</ejb-name>
      com.nokia.oss.ossj.sa.ri.service.ServiceActivatorHome
      com.nokia.oss.ossj.sa.ri.service.ServiceActivator
      <ejb-class>com.nokia.oss.ossj.sa.ri.service.ServiceActivatorBean</ejb-class>
      <session-type>Stateless</session-type>
      <transaction-type>Container</transaction-type>


      <ejb-name>OrderValueIterator</ejb-name>
      com.nokia.oss.ossj.sa.ri.order.OrderValueIteratorHome
      com.nokia.oss.ossj.sa.ri.order.RemoteOrderValueIterator
      <ejb-class>com.nokia.oss.ossj.sa.ri.order.OrderValueIteratorBean</ejb-class>
      <session-type>Stateful</session-type>
      <transaction-type>Container</transaction-type>
      <ejb-ref>
      Persistency for OrderValues
      <ejb-ref-name>ejb/Order</ejb-ref-name>
      <ejb-ref-type>Entity</ejb-ref-type>
      com.nokia.oss.ossj.sa.ri.order.OrderHome
      com.nokia.oss.ossj.sa.ri.order.Order
      <ejb-link>Order</ejb-link>
      </ejb-ref>


      <ejb-name>UniqueKeyGenerator</ejb-name>
      com.nokia.oss.ossj.sa.ri.UniqueKeyGeneratorHome
      com.nokia.oss.ossj.sa.ri.UniqueKeyGenerator
      <ejb-class>com.nokia.oss.ossj.sa.ri.UniqueKeyGeneratorBean</ejb-class>
      <session-type>Stateless</session-type>
      <transaction-type>Container</transaction-type>
      <resource-ref>
      <res-ref-name>jdbc/RiDB</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
      </resource-ref>


      <ejb-name>XmlCoDec</ejb-name>
      <local-home>com.nokia.oss.ossj.sa.ri.xml.XmlCoDecHome</local-home>
      com.nokia.oss.ossj.sa.ri.xml.XmlCoDec
      <ejb-class>com.nokia.oss.ossj.sa.ri.xml.XmlCoDecBean</ejb-class>
      <session-type>Stateless</session-type>
      <transaction-type>Container</transaction-type>
      <env-entry>
      <env-entry-name>loggingEnabled</env-entry-name>
      <env-entry-type>java.lang.Boolean</env-entry-type>
      <env-entry-value>true</env-entry-value>
      </env-entry>

      <ejb-ref>
      <ejb-ref-name>ejb/JVTActivationSession</ejb-ref-name>
      <ejb-ref-type>Session</ejb-ref-type>
      javax.oss.order.JVTActivationHome
      javax.oss.order.JVTActivationSession
      <ejb-link>JVTActivation</ejb-link>
      </ejb-ref>



      <display-name>Service</display-name>
      <ejb-name>Service</ejb-name>
      com.nokia.oss.ossj.sa.ri.service.ServiceHome
      com.nokia.oss.ossj.sa.ri.service.Service
      <ejb-class>com.nokia.oss.ossj.sa.ri.service.ServiceBean</ejb-class>
      <persistence-type>Container</persistence-type>
      <prim-key-class>com.nokia.oss.ossj.sa.ri.service.CMPServiceDeltaKey</prim-key-class>
      True
      <cmp-version>2.x</cmp-version>
      <abstract-schema-name>Service</abstract-schema-name>
      <cmp-field>
      no description
      <field-name>additionalAttributesCmp</field-name>
      </cmp-field>
      <cmp-field>
      no description
      <field-name>failedCmp</field-name>
      </cmp-field>
      <cmp-field>
      no description
      <field-name>failedExceptionCmp</field-name>
      </cmp-field>
      <cmp-field>
      no description
      <field-name>lastModifiedCmp</field-name>
      </cmp-field>
      <cmp-field>
      no description
      <field-name>mevType</field-name>
      </cmp-field>
      <cmp-field>
      no description
      <field-name>mevPrimaryKey</field-name>
      </cmp-field>
      <cmp-field>
      no description
      <field-name>orderPrimaryKey</field-name>
      </cmp-field>
      <cmp-field>
      no description
      <field-name>positionInOrderValueArrayCmp</field-name>
      </cmp-field>
      <cmp-field>
      no description
      <field-name>serviceActivatorHomeJndiNameCmp</field-name>
      </cmp-field>
      <cmp-field>
      no description
      <field-name>stateCmp</field-name>
      </cmp-field>
      <cmp-field>
      no description
      <field-name>subscriberIdCmp</field-name>
      </cmp-field>
      <env-entry>
      <env-entry-name>ApplicationDN</env-entry-name>
      <env-entry-type>java.lang.String</env-entry-type>
      <env-entry-value>/System/System1/ApplicationType/ServiceActivation/Application/1-0;1-0;ReferenceImplementation/</env-entry-value>
      </env-entry>
      <security-identity>

      <use-caller-identity/>
      </security-identity>

      <query-method>
      <method-name>findByOrderKey</method-name>
      <method-params>
      <method-param>java.lang.String</method-param>
      </method-params>
      </query-method>
      <ejb-ql><![CDATA[SELECT OBJECT(aService) FROM Service AS aService WHERE aService.orderPrimaryKey = ?1]]></ejb-ql>


      <query-method>
      <method-name>findByServiceKey</method-name>
      <method-params>
      <method-param>java.lang.String</method-param>
      </method-params>
      </query-method>
      <ejb-ql><![CDATA[SELECT OBJECT(aService) FROM Service AS aService WHERE aService.mevPrimaryKey = ?1]]></ejb-ql>


      <query-method>
      <method-name>findExistingService</method-name>
      <method-params>
      <method-param>java.lang.String</method-param>
      </method-params>
      </query-method>
      <ejb-ql><![CDATA[SELECT OBJECT(aService) FROM Service AS aService, Order AS anOrder WHERE aService.mevPrimaryKey = ?1 AND aService.orderPrimaryKey = anOrder.mevPrimaryKey AND anOrder.mevType = '---INVENTORY---']]></ejb-ql>



      <display-name>Order</display-name>
      <ejb-name>Order</ejb-name>
      com.nokia.oss.ossj.sa.ri.order.OrderHome
      com.nokia.oss.ossj.sa.ri.order.Order
      <ejb-class>com.nokia.oss.ossj.sa.ri.order.OrderBean</ejb-class>
      <persistence-type>Container</persistence-type>
      <prim-key-class>com.nokia.oss.ossj.sa.ri.CMPManagedEntityKey</prim-key-class>
      True
      <cmp-version>2.x</cmp-version>
      <abstract-schema-name>Order</abstract-schema-name>
      <cmp-field>
      no description
      <field-name>apiClientIdCmp</field-name>
      </cmp-field>
      <cmp-field>
      no description
      <field-name>stateCmp</field-name>
      </cmp-field>
      <cmp-field>
      no description
      <field-name>lastModifiedCmp</field-name>
      </cmp-field>
      <cmp-field>
      no description
      <field-name>actualCompletionDateCmp</field-name>
      </cmp-field>
      <cmp-field>
      no description
      <field-name>mevPrimaryKey</field-name>
      </cmp-field>
      <cmp-field>
      no description
      <field-name>orderDateCmp</field-name>
      </cmp-field>
      <cmp-field>
      no description
      <field-name>requestedCompletionDateCmp</field-name>
      </cmp-field>
      <cmp-field>
      no description
      <field-name>priorityCmp</field-name>
      </cmp-field>
      <cmp-field>
      no description
      <field-name>descriptionCmp</field-name>
      </cmp-field>
      <cmp-field>
      no description
      <field-name>mevType</field-name>
      </cmp-field>
      <cmp-field>
      no description
      <field-name>purchaseOrderCmp</field-name>
      </cmp-field>
      <env-entry>
      <env-entry-name>ApplicationDN</env-entry-name>
      <env-entry-type>java.lang.String</env-entry-type>
      <env-entry-value>/System/System1/ApplicationType/ServiceActivation/Application/1-0;1-0;ReferenceImplementation/</env-entry-value>
      </env-entry>
      <ejb-ref>
      <ejb-ref-name>ejb/Service</ejb-ref-name>
      <ejb-ref-type>Entity</ejb-ref-type>
      com.nokia.oss.ossj.sa.ri.service.ServiceHome
      com.nokia.oss.ossj.sa.ri.service.Service
      <ejb-link>Service</ejb-link>
      </ejb-ref>
      <security-identity>

      <use-caller-identity/>
      </security-identity>
      <resource-ref>
      <res-ref-name>jdbc/RiDB</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
      </resource-ref>

      <query-method>
      <method-name>findAllOrders</method-name>
      <method-params/>
      </query-method>
      <ejb-ql><![CDATA[SELECT OBJECT(o) FROM Order AS o WHERE NOT o.mevType = '---INVENTORY---']]></ejb-ql>


      <query-method>
      <method-name>findInventoryOrder</method-name>
      <method-params/>
      </query-method>
      <ejb-ql><![CDATA[SELECT OBJECT(o) FROM Order AS o WHERE o.mevType = '---INVENTORY---']]></ejb-ql>


      <query-method>
      <method-name>findUrgentOrders</method-name>
      <method-params>
      <method-param>java.sql.Timestamp</method-param>
      </method-params>
      </query-method>
      <ejb-ql><![CDATA[SELECT OBJECT(urgentOrder ) FROM Order AS urgentOrder WHERE urgentOrder.stateCmp LIKE 'open.running%' AND urgentOrder.requestedCompletionDateCmp IS NOT NULL AND NOT urgentOrder.requestedCompletionDateCmp > ?1 AND NOT urgentOrder.mevType = '---INVENTORY---']]></ejb-ql>


      <query-method>
      <method-name>findNextOrders</method-name>
      <method-params>
      <method-param>java.sql.Timestamp</method-param>
      <method-param>java.sql.Timestamp</method-param>
      </method-params>
      </query-method>
      <ejb-ql><![CDATA[SELECT OBJECT(nextOrder ) FROM Order AS nextOrder WHERE nextOrder.stateCmp LIKE 'open.running%' AND nextOrder.requestedCompletionDateCmp IS NOT NULL AND nextOrder.requestedCompletionDateCmp > ?1 AND NOT nextOrder.requestedCompletionDateCmp > ?2 AND NOT nextOrder.mevType = '---INVENTORY---']]></ejb-ql>


      <message-driven>
      <ejb-name>XmlJmsActivation</ejb-name>
      <ejb-class>com.nokia.oss.ossj.sa.ri.xml.XmlJmsActivationBean</ejb-class>
      <transaction-type>Container</transaction-type>
      <message-driven-destination>
      <destination-type>javax.jms.Queue</destination-type>
      </message-driven-destination>
      <env-entry>
      <env-entry-name>loggingEnabled</env-entry-name>
      <env-entry-type>java.lang.Boolean</env-entry-type>
      <env-entry-value>true</env-entry-value>
      </env-entry>

      <ejb-ref>
      <ejb-ref-name>ejb/JVTActivationSession</ejb-ref-name>
      <ejb-ref-type>Session</ejb-ref-type>
      javax.oss.order.JVTActivationHome
      javax.oss.order.JVTActivationSession
      <ejb-link>JVTActivation</ejb-link>
      </ejb-ref>
      <ejb-ref>
      Is responsible for sending out all JMS Events
      <ejb-ref-name>ejb/JmsSender</ejb-ref-name>
      <ejb-ref-type>Session</ejb-ref-type>
      com.nokia.oss.ossj.sa.ri.order.JmsSenderHome
      com.nokia.oss.ossj.sa.ri.order.JmsSender
      <ejb-link>JmsSender</ejb-link>
      </ejb-ref>

      <ejb-local-ref>
      Is responsible for do-coding xml
      <ejb-ref-name>ejb/XmlCoDec</ejb-ref-name>
      <ejb-ref-type>Session</ejb-ref-type>
      <local-home>com.nokia.oss.ossj.sa.ri.XmlCoDecHome</local-home>
      com.nokia.oss.ossj.sa.ri.XmlCoDec
      <ejb-link>XmlCoDec</ejb-link>
      </ejb-local-ref>
      </message-driven>
      <message-driven>
      <ejb-name>JvtToXvtEventBridge</ejb-name>
      <ejb-class>com.nokia.oss.ossj.sa.ri.xml.JvtToXvtEventBridgeBean</ejb-class>
      <transaction-type>Container</transaction-type>
      <message-driven-destination>
      <destination-type>javax.jms.Topic</destination-type>
      <subscription-durability>NonDurable</subscription-durability>
      </message-driven-destination>
      <env-entry>
      <env-entry-name>loggingEnabled</env-entry-name>
      <env-entry-type>java.lang.Boolean</env-entry-type>
      <env-entry-value>true</env-entry-value>
      </env-entry>
      <ejb-local-ref>
      Is responsible for do-coding xml
      <ejb-ref-name>ejb/XmlCoDec</ejb-ref-name>
      <ejb-ref-type>Session</ejb-ref-type>
      <local-home>com.nokia.oss.ossj.sa.ri.XmlCoDecHome</local-home>
      com.nokia.oss.ossj.sa.ri.XmlCoDec
      <ejb-link>XmlCoDec</ejb-link>
      </ejb-local-ref>
      <resource-ref>
      <res-ref-name>jms/TopicFactory</res-ref-name>
      <res-type>javax.jms.TopicConnectionFactory</res-type>
      <res-auth>Container</res-auth>
      </resource-ref>
      <resource-env-ref>
      <resource-env-ref-name>jms/XvtEventTopic</resource-env-ref-name>
      <resource-env-ref-type>javax.jms.Topic</resource-env-ref-type>
      </resource-env-ref>
      </message-driven>
      </enterprise-beans>

      <ejb-relation>
      <ejb-relation-name>OrderHasServices</ejb-relation-name>
      <ejb-relationship-role>
      <ejb-relationship-role-name>OrderRole</ejb-relationship-role-name>
      One
      <relationship-role-source>
      <ejb-name>Order</ejb-name>
      </relationship-role-source>
      <cmr-field>
      <cmr-field-name>servicesCmr</cmr-field-name>
      <cmr-field-type>java.util.Collection</cmr-field-type>
      </cmr-field>
      </ejb-relationship-role>
      <ejb-relationship-role>
      <ejb-relationship-role-name>ServiceDeltaRole</ejb-relationship-role-name>
      Many
      <cascade-delete/>
      <relationship-role-source>
      <ejb-name>Service</ejb-name>
      </relationship-role-source>
      <cmr-field>
      <cmr-field-name>orderCmr</cmr-field-name>
      </cmr-field>
      </ejb-relationship-role>
      </ejb-relation>

      <assembly-descriptor>
      <container-transaction>

      <ejb-name>JVTActivation</ejb-name>
      <method-name>getOrderTypes</method-name>


      <ejb-name>JVTActivation</ejb-name>
      <method-name>getServiceTypes</method-name>


      <ejb-name>JVTActivation</ejb-name>
      <method-name>makeOrderValue</method-name>


      <ejb-name>JVTActivation</ejb-name>
      <method-name>makeServiceValue</method-name>

      <trans-attribute>Supports</trans-attribute>
      </container-transaction>
      <container-transaction>

      <ejb-name>JVTActivation</ejb-name>
      <method-name>*</method-name>

      <trans-attribute>Required</trans-attribute>
      </container-transaction>
      <container-transaction>

      <ejb-name>JmsSender</ejb-name>
      <method-name>*</method-name>

      <trans-attribute>Required</trans-attribute>
      </container-transaction>
      <container-transaction>

      <ejb-name>OrderProcessor</ejb-name>
      <method-name>*</method-name>

      <trans-attribute>Supports</trans-attribute>
      </container-transaction>
      <container-transaction>

      <ejb-name>DummyServiceActivator</ejb-name>
      <method-name>*</method-name>

      <trans-attribute>Required</trans-attribute>
      </container-transaction>
      <container-transaction>

      <ejb-name>OrderValueIterator</ejb-name>
      <method-name>*</method-name>

      <trans-attribute>Required</trans-attribute>
      </container-transaction>
      <container-transaction>

      <ejb-name>UniqueKeyGenerator</ejb-name>
      <method-name>*</method-name>

      <trans-attribute>Required</trans-attribute>
      </container-transaction>
      <container-transaction>

      <ejb-name>Service</ejb-name>
      <method-name>*</method-name>

      <trans-attribute>Required</trans-attribute>
      </container-transaction>
      <container-transaction>

      <ejb-name>Order</ejb-name>
      <method-name>*</method-name>

      <trans-attribute>Required</trans-attribute>
      </container-transaction>
      </assembly-descriptor>
      </ejb-jar>

      and jboss.xml:

      <?xml version="1.0" encoding="UTF-8"?>

      <!DOCTYPE jboss PUBLIC
      "-//JBoss//DTD JBOSS 3.0//EN"
      "http://www.jboss.org/j2ee/dtd/jboss_3_0.dtd">


      <enterprise-beans>

      <ejb-name>JVTActivation</ejb-name>
      <reference-descriptor>
      <ejb-reference-description>
      <ejb-ref-name>ejb/JmsSender</ejb-ref-name>
      <jndi-name>System/System1/ApplicationType/ServiceActivation/Application/1-0;1-0;ReferenceImplementation/Comp/JmsSenderHome</jndi-name>
      </ejb-reference-description>
      <ejb-reference-description>
      <ejb-ref-name>ejb/Order</ejb-ref-name>
      <jndi-name>System/System1/ApplicationType/ServiceActivation/Application/1-0;1-0;ReferenceImplementation/Comp/OrderHome</jndi-name>
      </ejb-reference-description>
      <ejb-reference-description>
      <ejb-ref-name>ejb/Service</ejb-ref-name>
      <jndi-name>System/System1/ApplicationType/ServiceActivation/Application/1-0;1-0;ReferenceImplementation/Comp/ServiceHome</jndi-name>
      </ejb-reference-description>
      <ejb-reference-description>
      <ejb-ref-name>ejb/OrderProcessor</ejb-ref-name>
      <jndi-name>System/System1/ApplicationType/ServiceActivation/Application/1-0;1-0;ReferenceImplementation/Comp/OrderProcessorHome</jndi-name>
      </ejb-reference-description>
      <ejb-reference-description>
      <ejb-ref-name>ejb/OrderValueIterator</ejb-ref-name>
      <jndi-name>System/System1/ApplicationType/ServiceActivation/Application/1-0;1-0;ReferenceImplementation/Comp/OrderValueIteratorHome</jndi-name>
      </ejb-reference-description>
      <ejb-reference-description>
      <ejb-ref-name>ejb/UniqueKeyGenerator</ejb-ref-name>
      <jndi-name>System/System1/ApplicationType/ServiceActivation/Application/1-0;1-0;ReferenceImplementation/Comp/UniqueKeyGeneratorHome</jndi-name>
      </ejb-reference-description>
      </reference-descriptor>
      <jndi-name>System/System1/ApplicationType/ServiceActivation/Application/1-0;1-0;ReferenceImplementation/Comp/JVTHome</jndi-name>


      <ejb-name>JmsSender</ejb-name>
      <reference-descriptor>
      <resource-description>
      <res-ref-name>jms/TopicFactory</res-ref-name>
      <jndi-name>System/System1/ApplicationType/ServiceActivation/Application/1-0;1-0;ReferenceImplementation/Comp/TopicConnectionFactory</jndi-name>
      </resource-description>
      <resource-description>
      <res-ref-name>jms/QueueFactory</res-ref-name>
      <jndi-name>System/System1/ApplicationType/ServiceActivation/Application/1-0;1-0;ReferenceImplementation/Comp/QueueConnectionFactory</jndi-name>
      </resource-description>
      <resource-env-description>
      <res-env-ref-name>jms/JvtEventTopic</res-env-ref-name>
      <jndi-name>System/System1/ApplicationType/ServiceActivation/Application/1-0;1-0;ReferenceImplementation/Comp/JVTEventTopic</jndi-name>
      </resource-env-description>
      <resource-env-description>
      <res-env-ref-name>jms/XvtEventTopic</res-env-ref-name>
      <jndi-name>System/System1/ApplicationType/ServiceActivation/Application/1-0;1-0;ReferenceImplementation/Comp/XVTEventTopic</jndi-name>
      </resource-env-description>
      <ejb-local-reference-description>
      <ejb-ref-name>ejb/XmlCoDec</ejb-ref-name>
      <jndi-name>System/System1/ApplicationType/ServiceActivation/Application/1-0;1-0;ReferenceImplementation/Comp/local/XmlCoDec</jndi-name>
      </ejb-local-reference-description>
      </reference-descriptor>
      <jndi-name>System/System1/ApplicationType/ServiceActivation/Application/1-0;1-0;ReferenceImplementation/Comp/JmsSenderHome</jndi-name>


      <ejb-name>OrderProcessor</ejb-name>
      <reference-descriptor>
      <ejb-reference-description>
      <ejb-ref-name>ejb/JmsSender</ejb-ref-name>
      <jndi-name>System/System1/ApplicationType/ServiceActivation/Application/1-0;1-0;ReferenceImplementation/Comp/JmsSenderHome</jndi-name>
      </ejb-reference-description>
      <ejb-reference-description>
      <ejb-ref-name>ejb/Service</ejb-ref-name>
      <jndi-name>System/System1/ApplicationType/ServiceActivation/Application/1-0;1-0;ReferenceImplementation/Comp/ServiceHome</jndi-name>
      </ejb-reference-description>
      <ejb-reference-description>
      <ejb-ref-name>ejb/Order</ejb-ref-name>
      <jndi-name>System/System1/ApplicationType/ServiceActivation/Application/1-0;1-0;ReferenceImplementation/Comp/OrderHome</jndi-name>
      </ejb-reference-description>
      <ejb-reference-description>
      <ejb-ref-name>ejb/UniqueKeyGenerator</ejb-ref-name>
      <jndi-name>System/System1/ApplicationType/ServiceActivation/Application/1-0;1-0;ReferenceImplementation/Comp/UniqueKeyGeneratorHome</jndi-name>
      </ejb-reference-description>
      </reference-descriptor>
      <jndi-name>System/System1/ApplicationType/ServiceActivation/Application/1-0;1-0;ReferenceImplementation/Comp/OrderProcessorHome</jndi-name>


      <ejb-name>DummyServiceActivator</ejb-name>
      <jndi-name>System/System1/ApplicationType/ServiceActivation/Application/1-0;1-0;ReferenceImplementation/Comp/ServiceActivatorHome</jndi-name>


      <ejb-name>OrderValueIterator</ejb-name>
      <reference-descriptor>
      <ejb-reference-description>
      <ejb-ref-name>ejb/Order</ejb-ref-name>
      <jndi-name>System/System1/ApplicationType/ServiceActivation/Application/1-0;1-0;ReferenceImplementation/Comp/OrderHome</jndi-name>
      </ejb-reference-description>
      </reference-descriptor>
      <jndi-name>System/System1/ApplicationType/ServiceActivation/Application/1-0;1-0;ReferenceImplementation/Comp/OrderValueIteratorHome</jndi-name>


      <ejb-name>UniqueKeyGenerator</ejb-name>
      <reference-descriptor>
      <resource-description>
      <res-ref-name>jdbc/RiDB</res-ref-name>
      <jndi-name>jdbc/com/nokia/oss/ossj/sa/ri/DataSource</jndi-name>
      </resource-description>
      </reference-descriptor>
      <jndi-name>System/System1/ApplicationType/ServiceActivation/Application/1-0;1-0;ReferenceImplementation/Comp/UniqueKeyGeneratorHome</jndi-name>


      <ejb-name>XmlCoDec</ejb-name>
      <local-jndi-name>System/System1/ApplicationType/ServiceActivation/Application/1-0;1-0;ReferenceImplementation/Comp/local/XmlCoDec</local-jndi-name>
      <reference-descriptor>
      <!--
      <ejb-reference-description>
      <ejb-ref-name>ejb/JVTActivationSession</ejb-ref-name>
      <jndi-name>System/System1/ApplicationType/ServiceActivation/Application/1-0;1-0;ReferenceImplementation/Comp/JVTHome</jndi-name>
      </ejb-reference-description>
      -->
      </reference-descriptor>


      <ejb-name>Order</ejb-name>
      <entity-descriptor>
      <entity-cache>
      <!-- This has to be set to "Database", otherwise there are LockTimeOutExceptions for WLS6.1SP1 and later -->
      <concurrency-strategy>Database</concurrency-strategy>
      </entity-cache>

      <persistence-type>
      <type-identifier>WebLogic_CMP_RDBMS</type-identifier>
      <type-version>6.0</type-version>
      <type-storage>META-INF/weblogic-cmp-rdbms-jar.xml</type-storage>
      </persistence-type>
      <!--This has to be set to "True", otherwise there are LockTimeOutExceptions for WLS6.1SP1 and later-->
      <db-is-shared>True</db-is-shared>
      <persistence-use>
      <type-identifier>WebLogic_CMP_RDBMS</type-identifier>
      <type-version>6.0</type-version>
      </persistence-use>

      </entity-descriptor>
      <reference-descriptor>
      <resource-description>
      <res-ref-name>jdbc/RiDB</res-ref-name>
      <jndi-name>jdbc/com/nokia/oss/ossj/sa/ri/DataSource</jndi-name>
      </resource-description>
      <ejb-reference-description>
      <ejb-ref-name>ejb/Service</ejb-ref-name>
      <jndi-name>System/System1/ApplicationType/ServiceActivation/Application/1-0;1-0;ReferenceImplementation/Comp/ServiceHome</jndi-name>
      </ejb-reference-description>
      </reference-descriptor>
      <jndi-name>System/System1/ApplicationType/ServiceActivation/Application/1-0;1-0;ReferenceImplementation/Comp/OrderHome</jndi-name>


      <ejb-name>Service</ejb-name>
      <entity-descriptor>
      <entity-cache>
      <!--This has to be set to "Database", otherwise there are LockTimeOutExceptions for WLS6.1SP1 and later-->
      <concurrency-strategy>Database</concurrency-strategy>
      </entity-cache>

      <persistence-type>
      <type-identifier>WebLogic_CMP_RDBMS</type-identifier>
      <type-version>6.0</type-version>
      <type-storage>META-INF/weblogic-cmp-rdbms-jar.xml</type-storage>
      </persistence-type>
      <!--This has to be set to "True", otherwise there are LockTimeOutExceptions for WLS6.1SP1 and later-->
      <db-is-shared>True</db-is-shared>
      <persistence-use>
      <type-identifier>WebLogic_CMP_RDBMS</type-identifier>
      <type-version>6.0</type-version>
      </persistence-use>

      </entity-descriptor>
      <jndi-name>System/System1/ApplicationType/ServiceActivation/Application/1-0;1-0;ReferenceImplementation/Comp/ServiceHome</jndi-name>


      <message-driven>
      <ejb-name>XmlJmsActivation</ejb-name>
      <destination-jndi-name>System/System1/ApplicationType/ServiceActivation/Application/1-0;1-0;ReferenceImplementation/Comp/MessageQueue</destination-jndi-name>
      <!--
      <reference-descriptor>
      <ejb-reference-description>
      -->
      <!--
      </ejb-reference-description>
      <ejb-reference-description>
      -->
      <!--
      <ejb-ref>
      <ejb-ref-name>ejb/JVTActivationSession</ejb-ref-name>
      <jndi-name>System/System1/ApplicationType/ServiceActivation/Application/1-0;1-0;ReferenceImplementation/Comp/JVTHome</jndi-name>
      </ejb-ref>
      -->
      <!--
      <ejb-ref>
      <ejb-ref-name>ejb/JmsSender</ejb-ref-name>
      <jndi-name>System/System1/ApplicationType/ServiceActivation/Application/1-0;1-0;ReferenceImplementation/Comp/JmsSenderHome</jndi-name>
      </ejb-ref>
      -->
      <!--
      </ejb-reference-description>
      -->
      <!--
      <ejb-local-reference-description>
      -->
      <!--
      <ejb-local-ref>
      <ejb-ref-name>ejb/XmlCoDec</ejb-ref-name>
      <local-jndi-name>System/System1/ApplicationType/ServiceActivation/Application/1-0;1-0;ReferenceImplementation/Comp/local/XmlCoDec</local-jndi-name>
      </ejb-local-ref>
      -->
      <!--
      </ejb-local-reference-description>
      -->
      <!--
      </reference-descriptor>
      -->
      <jndi-name>System/System1/ApplicationType/ServiceActivation/Application/1-0;1-0;ReferenceImplementation/Comp/XmlJmsActivation</jndi-name>
      </message-driven>
      <message-driven>
      <ejb-name>JvtToXvtEventBridge</ejb-name>
      <destination-jndi-name>System/System1/ApplicationType/ServiceActivation/Application/1-0;1-0;ReferenceImplementation/Comp/JVTEventTopic</destination-jndi-name>
      <reference-descriptor>
      <resource-description>
      <res-ref-name>jms/TopicFactory</res-ref-name>
      <jndi-name>System/System1/ApplicationType/ServiceActivation/Application/1-0;1-0;ReferenceImplementation/Comp/TopicConnectionFactory</jndi-name>
      </resource-description>
      <resource-env-description>
      <res-env-ref-name>jms/XvtEventTopic</res-env-ref-name>
      <jndi-name>System/System1/ApplicationType/ServiceActivation/Application/1-0;1-0;ReferenceImplementation/Comp/XVTEventTopic</jndi-name>
      </resource-env-description>
      <ejb-local-reference-description>
      <ejb-ref-name>ejb/XmlCoDec</ejb-ref-name>
      <jndi-name>System/System1/ApplicationType/ServiceActivation/Application/1-0;1-0;ReferenceImplementation/Comp/local/XmlCoDec</jndi-name>
      </ejb-local-reference-description>
      </reference-descriptor>
      <jndi-name>System/System1/ApplicationType/ServiceActivation/Application/1-0;1-0;ReferenceImplementation/Comp/JvtToXvtEventBridge</jndi-name>
      </message-driven>
      </enterprise-beans>


      -Leslie