Sophie

Sophie

distrib > Mageia > 2 > i586 > by-pkgid > 810230cc82a9e066bb26dbfa2e6e043f > files > 82

castor-doc-1.3.2-1.mga2.noarch.rpm

<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Castor JDO and JBoss</title><link href="default.css" rel="stylesheet"></head><body marginwidth="0" marginheight="0" leftmargin="0" bottommargin="0" topmargin="0" vlink="#6763a9" link="#6763a9" bgcolor="#ffffff"><a name="top"></a><table height="400" cellspacing="0" cellpadding="0" border="0"><tr><td bgcolor="#7270c2" align="left" valign="top" width="10"><img border="0" height="1" width="1" src="images/dotTrans.gif"></td><td bgcolor="#7270c2" align="left" valign="top" width="150"><img border="0" height="1" width="1" src="images/dotTrans.gif"></td><td align="left" valign="top" width="7"><img height="1" width="1" border="0" src="images/dotTrans.gif"></td><td align="left" valign="top" width="70"><img border="0" height="6" width="70" src="images/dotTrans.gif"></td><td align="left" valign="top" width="100%"><img border="0" height="6" width="100%" src="images/top_2.gif"></td></tr><tr><td align="left" valign="top" bgcolor="#7270c2" width="10"><img height="1" width="1" border="0" src="images/dotTrans.gif"></td><td align="left" valign="top" bgcolor="#7270c2" width="150"><img height="1" width="1" border="0" src="images/dotTrans.gif"></td><td align="left" valign="top" bgcolor="#ffffff" width="7"></td><td align="left" valign="top" width="70"><img border="0" height="1" width="1" src="images/dotTrans.gif"></td><td align="left" valign="middle" width="100%"><a href="license.html"><span class="menuTopOff">License</span></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.codehaus.org"><span class="menuTopOff">Codehaus</span></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://openejb.org"><span class="menuTopOff">OpenEJB</span></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://openjms.sf.net"><span class="menuTopOff">OpenJMS</span></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://openorb.sf.net"><span class="menuTopOn">OpenORB</span></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://tyrex.sf.net"><span class="menuTopOff">Tyrex</span></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img border="0" height="2" width="1" src="images/dotTrans.gif"></td></tr><tr><td align="left" valign="top" bgcolor="#7270c2" width="10"><img border="0" height="3" width="10" src="images/dotTrans.gif"></td><td align="right" valign="top" bgcolor="#7270c2" width="150"><img border="0" height="3" width="105" src="images/line_sm.gif"></td><td align="left" valign="top" bgcolor="#a9a5de" width="7"><img border="0" height="3" width="7" src="images/line_sm.gif"></td><td align="left" valign="top" width="70"><img border="0" height="3" width="70" src="images/line_light.gif"></td><td align="left" valign="top" width="100%"><img border="0" height="3" width="100%" src="images/line_light.gif"></td></tr><tr><td align="left" valign="top" bgcolor="#7270c2"><img border="0" height="10" width="10" src="images/dotTrans.gif"></td><td align="left" valign="top" bgcolor="#7270c2" width="150"><img border="0" height="2" width="1" src="images/dotTrans.gif"><br><table cellspacing="0" cellpadding="10" border="0"><tr><td><script src="http://www.ohloh.net/p/3635/widgets/project_users_logo.js" type="text/javascript"></script></td></tr></table><table cellspacing="0" cellpadding="0" border="0"><tr><td align="left" valign="top"><span class="subMenuOn">Old releases</span></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="releases-old.html"><span class="subMenuOff">General</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="http://www.castor.org/1.3/index.html"><span class="subMenuOff">Release 1.3</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="http://www.castor.org/1.3rc1/index.html"><span class="subMenuOff">Release 1.3rc1</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="http://www.castor.org/1.2/index.html"><span class="subMenuOff">Release 1.2</span></a></td></tr></table><br><table cellspacing="0" cellpadding="0" border="0"><tr><td align="left" valign="top"><span class="subMenuOn">Main</span></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="index.html"><span class="subMenuOff">Home</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="about.html"><span class="subMenuOff">About</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="features.html"><span class="subMenuOff">Features</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="download.html"><span class="subMenuOff">Download</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="dependencies.html"><span class="subMenuOff">Dependencies</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="reference-guide.html"><span class="subMenuOffHighlighted">Reference guide</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="presentations.html"><span class="subMenuOff">Publications</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="javadoc/overview-summary.html"><span class="subMenuOff">JavaDoc</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="maven-integration.html"><span class="subMenuOff">Maven 2 support</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="maven-archetypes.html"><span class="subMenuOff">Maven 2 archetypes</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="schema.html"><span class="subMenuOff">DTD &amp; Schemas</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="changes.html"><span class="subMenuOff">Recent HTML changes</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="news.html"><span class="subMenuOff">News Archive</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="http://castor.codehaus.org/rss/castor-announce.xml"><span class="subMenuOff">RSS news feed</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="http://docs.codehaus.org/display/CASTOR/"><span class="subMenuOffHighlighted">Project Wiki</span></a></td></tr></table><br><table cellspacing="0" cellpadding="0" border="0"><tr><td align="left" valign="top"><span class="subMenuOn">Development/Support</span></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="lists.html"><span class="subMenuOff">Mailing Lists</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="scm.html"><span class="subMenuOff">SVN/JIRA</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="contributing.html"><span class="subMenuOff">Contributing</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="support.html"><span class="subMenuOff">Support</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="http://bamboo.ci.codehaus.org/browse/CASTOR"><span class="subMenuOff">Continuous builds</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="professional-services.html"><span class="subMenuOffHighlighted">Prof. services</span></a></td></tr></table><br><table cellspacing="0" cellpadding="0" border="0"><tr><td align="left" valign="top"><span class="subMenuOn">Related projects</span></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="spring-orm-integration.html"><span class="subMenuOff">Spring ORM support</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="spring-xml-intro.html"><span class="subMenuOff">Spring XML factories</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="ws-integration.html"><span class="subMenuOff">WS frameworks</span></a></td></tr></table><br><table cellspacing="0" cellpadding="0" border="0"><tr><td align="left" valign="top"><span class="subMenuOn">XML</span></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="xml-link.html"><span class="subMenuOff">XML</span></a></td></tr></table><br><table cellspacing="0" cellpadding="0" border="0"><tr><td align="left" valign="top"><span class="subMenuOn">XML Code Generator</span></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="srcgen-link.html"><span class="subMenuOff">XML Code Generator</span></a></td></tr></table><br><table cellspacing="0" cellpadding="0" border="0"><tr><td align="left" valign="top"><span class="subMenuOn">JDO</span></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="jdo-introduction.html"><span class="subMenuOff">Introduction</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="jdo-starter-tutorial.html"><span class="subMenuOff">First steps</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="jdo.html"><span class="subMenuOff">Using JDO</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="jdo-database-conf.html"><span class="subMenuOff">JDO Config</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="types.html"><span class="subMenuOff">Types</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="jdo-mapping.html"><span class="subMenuOff">JDO Mapping</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="jdo-faq.html"><span class="subMenuOff">JDO FAQ</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="jdo-examples.html"><span class="subMenuOff">JDO Examples</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="jdo-howto.html"><span class="subMenuOffHighlighted">JDO HOW-TOs</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="jdo-tips-tricks.html"><span class="subMenuOffHighlighted">Tips &amp; Tricks</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="jdo-other-features.html"><span class="subMenuOff">Other Features</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="jdo-self-executable-examples.html"><span class="subMenuOff">JDO sample JAR</span></a></td></tr></table><br><table cellspacing="0" cellpadding="0" border="0"><tr><td align="left" valign="top"><span class="subMenuOn">Tools</span></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="schemaGen-anttask.html"><span class="subMenuOff">Schema generator</span></a></td></tr></table><br><table cellspacing="0" cellpadding="0" border="0"><tr><td align="left" valign="top"><span class="subMenuOn">Advanced JDO</span></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="jdo-caching-detail.html"><span class="subMenuOff">Caching</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="oql.html"><span class="subMenuOff">OQL</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="locking.html"><span class="subMenuOff">Trans. &amp; Locks</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="design-persist.html"><span class="subMenuOff">Design</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="key-generator.html"><span class="subMenuOff">KeyGen</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="long-transact.html"><span class="subMenuOff">Long Trans.</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="nested-attr.html"><span class="subMenuOff">Nested Attrs.</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="jdo-pooling.html"><span class="subMenuOff">Pooling Examples</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="postgresql-blobs.html"><span class="subMenuOff">LOBs</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="jdo-best-practice.html"><span class="subMenuOff">Best practice</span></a></td></tr></table><br><table cellspacing="0" cellpadding="0" border="0"><tr><td align="left" valign="top"><span class="subMenuOn">DDL Generator</span></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="ddlgen.html"><span class="subMenuOff">Using DDL Generator</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="ddlgen-properties.html"><span class="subMenuOff">Properties</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="ddlgen-anttask.html"><span class="subMenuOff">Ant task</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="ddlgen-mapping.html"><span class="subMenuOff">Type Mapping</span></a></td></tr></table><br><table cellspacing="0" cellpadding="0" border="0"><tr><td align="left" valign="top"><span class="subMenuOn">More</span></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="examples.html"><span class="subMenuOff">The Examples</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="extras.html"><span class="subMenuOff">3rd Party Tools</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="test-framework.html"><span class="subMenuOff">JDO Tests</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="ctf.html"><span class="subMenuOff">XML Tests</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="conf-lib.html"><span class="subMenuOff">Configuration</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href=""><span class="subMenuOff"></span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="http://www.java.net/"><span class="subMenuOff"><img border="0" src="images/javanet_button_90.gif"></span></a></td></tr></table><br><table cellspacing="0" cellpadding="0" border="0"><tr><td align="left" valign="top"><span class="subMenuOn">About</span></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="license.html"><span class="subMenuOff">License</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="user-experience.html"><span class="subMenuOffHighlighted">User stories</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="contributors.html"><span class="subMenuOff">Contributors</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="marketplace.html"><span class="subMenuOff">Marketplace</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="status.html"><span class="subMenuOff">Status, Todo</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="release-notes.html"><span class="subMenuOff">Changelog</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="library.html"><span class="subMenuOff">Library</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="contacts.html"><span class="subMenuOff">Contact</span></a></td></tr><tr><td align="left" valign="top">
        &nbsp;
                <a href="origins.html"><span class="subMenuOff">Project Name</span></a></td></tr></table><br></td><td align="left" valign="top" bgcolor="#a9a5de" width="7">&nbsp;</td><td align="left" valign="top" width="70">&nbsp;</td><td valign="top" width="100%" rowspan="4"><table width="100%" cellspacing="0" cellpadding="0" border="0" rows="2" cols="2"><tr><td align="left" valign="top"><br><img width="115" vspace="0" src="images/castor.gif" hspace="0" height="34" border="0"><br><img src="images/dotTrans.gif" hspace="0" height="10" border="0"></td><td align="right" valign="top" height="5" width="120"></td></tr></table><p></p><p></p><br><h2 align="center">Castor JDO and JBoss</h2><p align="center">
              Documentation Author(s):<br>Patrick van Kann<br>Bruce Snyder<br></p><HR size="1"><span class="bodyGrey"><b><a href="#Introduction">Introduction</a></b><br></span><span class="bodyGrey"><b><a href="#Dependencies">Dependencies</a></b><br></span><span class="bodyGrey"><b><a href="#Configuring-JBoss-3.2.1">Configuring JBoss 3.2.1</a></b><br></span><span class="bodyGrey"><a href="#Install-The-Dependencies">&nbsp;&nbsp;&nbsp;&nbsp;Install The Dependencies</a><br></span><span class="bodyGrey"><a href="#Create-A-Datasource">&nbsp;&nbsp;&nbsp;&nbsp;Create A Datasource</a><br></span><span class="bodyGrey"><a href="#Configure-Castor">&nbsp;&nbsp;&nbsp;&nbsp;Configure Castor</a><br></span><span class="bodyGrey"><a href="#Configure-Castor-JDO-MBean">&nbsp;&nbsp;&nbsp;&nbsp;Configure Castor JDO MBean</a><br></span><span class="bodyGrey"><a href="#Test-And-Troubleshoot">&nbsp;&nbsp;&nbsp;&nbsp;Test And Troubleshoot</a><br></span><span class="bodyGrey"><b><a href="#Developing-Applications-With-Castor-JDO-and-JBoss-3.x">Developing Applications With Castor JDO and JBoss 3.x</a></b><br></span><span class="bodyGrey"><b><a href="#Frequently-Asked-Questions">Frequently Asked Questions</a></b><br></span><HR size="1"><br><a name="Introduction"><h2>Introduction</h2></a>
      <p><span class="bodyGrey">
        This document describes the advantages of using Castor with
        JBoss, an overview of the JBoss MBean approach and directions on
        configuring JBoss to use Castor JDO. The advantage of using Castor
        JDO within JBoss is that you have access to key J2EE features
        such as JNDI, JDBC datasources and transaction management
        (JTA). Although it is possible in principle to achieve this
        with other commercial J2EE servers, a ready-to-use plug-in
        is available to integrate Castor JDO within JBoss.
      </span></p>

      <p><span class="bodyGrey">
      Once integrated, Castor JDO can be used with session beans and
      BMP entity beans as an alternative to CMP entity beans and in many
      cases is faster and more efficient. An example of using Castor JDO
      with a stateless session bean has been created and is available <a href="/castor/examples/CastorJDO/rooms2.zip">here</a>. This is a
      demonstration of the transient entity design pattern, described <a href="http://theserverside.com/patterns/thread.jsp?thread_id=8536&amp;article_count=19">here</a>.
      </span></p>
      <p><span class="bodyGrey">

      Castor JDO is integrated with JBoss through the <a href="http://www.jboss.org/index.html?module=html&amp;op=userdisplay&amp;id=developers/projects/jboss/jbossmx">JMX</a>
      server environment provided by JBoss. The plug-in consists
      of a JMX MBean or managed bean that implements the Castor <a href="http://castor.codehaus.org/javadoc/org/exolab/castor/jdo/DataObjects.html">DataObjects</a>
      interface by wrapping a <a href="http://castor.codehaus.org/javadoc/org/exolab/castor/jdo/JDO.html">JDO</a>
      object. The MBean accomplishes the following tasks at the startup
      of JBoss 3.x:
      <ol>
        <li>
        Creates a Castor <a href="http://castor.codehaus.org/javadoc/org/exolab/castor/jdo/JDO.html">JDO</a> 
        object
        </li>
        <li>
        Obtains the JDO configuration information (see below) and configures 
        the JDO object.
        </li>
        <li>Registers itself in the JBoss JNDI tree using the name supplied in 
        the configuration. As it implements DataObject, it therefore provides 
        access to the JDO functionality.
        </li>
        <li>
        Calls setTransactionManager() on the JDO object with the JNDI address of 
        the JBoss TransactionManager to provide Container Managed Transactions.
        </li>
      </ol>
      </span></p>
    <a name="Dependencies"><h2>Dependencies</h2></a>
      <p><span class="bodyGrey">
      There are two jars needed to use Castor JDO with JBoss:
      <table cellspacing="2" cellpadding="2" border="0"><tr><td height="5" colspan="2"></td></tr><span class="bodyGrey">
        <tr><td width="10" valign="top" align="left">-</td><td valign="top" align="left"><span class="bodyGrey">
        Castor 0.9.5 (<a href="http://www.castor.org/download.html">download</a>)
        </span></td></tr>
        <tr><td width="10" valign="top" align="left">-</td><td valign="top" align="left"><span class="bodyGrey">
        Castor JDO plugin for JBoss 3.2.1 (<a href="ftp://ftp.exolab.org/pub/castor/examples/CastorJDO/">download</a>)
        </span></td></tr>
        
      </span></table> 
      Note: Xerces is required also, but is distributed with JBoss 3.2.1.
      </span></p>
      <a name="Configuring-JBoss-3.2.1"><h2>Configuring JBoss 3.2.1</h2></a>
            <p><span class="bodyGrey">
            This section details the steps required to integrate Castor JDO with JBoss 3.x.
            In brief, these are:
            <ol>
                <li>Install the dependencies</li>
                <li>Configuring a datasource in JBoss. Many people automatically assume that
                it is necessary to get a <tt>java.sql.Datasource</tt> from JBoss. This 
                is an incorrect assumption... Explain further</li>
                <li>Put Castor's configuration files for your application in the correct location</li>
                <li>Configuring the Castor JDO Mbean</li>
                <li>Test and troubleshoot</li>
            </ol>
            </span></p>
            
            
            <a name="Install-The-Dependencies"><h3>Install The Dependencies</h3></a>
            <p><span class="bodyGrey">
            Installing JBoss 3.x is outside of the scope of this discussion and is 
            adequately covered by the JBoss documentation. Once JBoss is installed 
            it is necessary to copy the two other dependencies (Castor and the Castor 
            plugin) to the <tt>lib</tt> directory of the JBoss server instance you 
            wish to install Castor for. The following path assumes you wish to install 
            Castor on the "default" server: <tt>(JBOSS_HOME/server/default/lib)</tt>.
            </span></p>
          

          <a name="Create-A-Datasource"><h3>Create A Datasource</h3></a>
            <p><span class="bodyGrey">
            It is desirable to use Castor with a javax.sql.Datasource as this will 
            allow you to use connection pooling and distributed transactions, assuming 
            your driver supports these. Datasources are configured by placing a config 
            file ending in -ds.xml in the <tt>deploy</tt> directory of the server 
            instance you wish to use. For example, to configure a Microsoft SQL Server 
            XADatasource for the default server using the InetSoft Opta 2000 driver 
            you would place a file with the information below in the <tt>JBOSS_HOME/server/default/deploy</tt> 
            directory:
<span class="bodyBlack"><pre>

&lt;datasources&gt;
    &lt;xa-datasource&gt;
        &lt;jndi-name&gt;MSSQLXaDS&lt;/jndi-name&gt;
        &lt;xa-datasource-class&gt;com.inet.tds.XDataSource&lt;/xa-datasource-class&gt;
        &lt;xa-datasource-property name="ServerName"&gt;10.1.8.100&lt;/xa-datasource-property&gt;
        &lt;xa-datasource-property name="DatabaseName"&gt;mydatabase&lt;/xa-datasource-property&gt;
        &lt;xa-datasource-property name="SelectMethod"&gt;cursor&lt;/xa-datasource-property&gt;
        &lt;user-name&gt;secret&lt;/user-name&gt;
        &lt;password&gt;squirrel&lt;/password&gt;
    &lt;/xa-datasource&gt;
&lt;/datasources&gt;

</pre></span>
            </span></p>    
          

          <a name="Configure-Castor"><h3>Configure Castor</h3></a>
            <p><span class="bodyGrey">
            Copy your database.xml and mapping.xml to the configuration directory for 
            your JBoss server instance: for example, <tt>JBOSS_HOME/server/default/conf</tt>.
            </span></p>
            <p><span class="bodyGrey">
            Your database.xml should reference the datasource you created in the 
            previous step. For the datasource above:
<span class="bodyBlack"><pre>

&lt;database name="test" engine="sql-server" &gt;
    &lt;jndi name="java:/MSSQLXaDS"/&gt;
    &lt;mapping href="mapping.xml" /&gt;
&lt;/database&gt;

</pre></span>
            Note that if you are not using Microsoft SQL Server, you should not use 
            the sql-server engine - consult the Castor documents 
            <a href="jdo-database-conf.html">here</a> to find out 
            what engine you should use for your RDBMS. </span></p>    
          
      
          <a name="Configure-Castor-JDO-MBean"><h3>Configure Castor JDO MBean</h3></a>
            <p><span class="bodyGrey">
            The JBoss MBean server looks for MBean configuration files in the deploy 
            directory of a server instance: <tt>JBOSS_HOME/server/default/deploy</tt>. 
            These files will end in -service.xml. The MBean parses the xml file, 
            creates the MBean instance and uses introspection to set properties on the 
            MBean based on the attributes in the configuration. 
            </span></p>
            <p><span class="bodyGrey">
            To configure the JBoss MBean, place a file called <tt>castor-jdo-service.xml</tt> 
            in <tt>JBOSS_HOME/server/default/deploy</tt> with the following contents:
<span class="bodyBlack"><pre>

&lt;server&gt;
    &lt;mbean code="org.jboss.jdo.castor.CastorJDOImpl"  name="jboss:service=CastorJDO,name=CookietimeJDO"&gt;
        &lt;attribute name="Configuration"&gt;../conf/database.xml&lt;/attribute&gt;
        &lt;attribute name="JndiName"&gt;MyAppJDO&lt;/attribute&gt;
        &lt;attribute name="LockTimeout"&gt;10000&lt;/attribute&gt;
        &lt;attribute name="LoggingEnabled"&gt;true&lt;/attribute&gt;
        &lt;attribute name="CommonClassPath"&gt;false&lt;/attribute&gt;
        &lt;attribute name="AutoStore"&gt;true&lt;/attribute&gt;
        &lt;attribute name="DatabasePooling"&gt;true&lt;/attribute&gt;
    &lt;/mbean&gt;
&lt;/server&gt;

</pre></span>
            Note the following features of the configuration:
            <table cellspacing="2" cellpadding="2" border="0"><tr><td height="5" colspan="2"></td></tr><span class="bodyGrey">
                <tr><td width="10" valign="top" align="left">-</td><td valign="top" align="left"><span class="bodyGrey">the <tt>org.jboss.jdo.castor.CastorJDOImpl</tt> is inside the castor-jdo-plugin.jar.</span></td></tr>
                <tr><td width="10" valign="top" align="left">-</td><td valign="top" align="left"><span class="bodyGrey">the use of a relative path to the <tt>database.xml</tt> configuration from the previous step.</span></td></tr>
                <tr><td width="10" valign="top" align="left">-</td><td valign="top" align="left"><span class="bodyGrey">JndiName is the name by which you will obtain your JDO object from JNDI within your EJB or DAO.</span></td></tr>
                <tr><td width="10" valign="top" align="left">-</td><td valign="top" align="left"><span class="bodyGrey">Autostore will cause castor to automatically "walk" the object graph 
                on updates in long transactions and attempt to persist every reachable class.</span></td></tr>
            </span></table> 
            </span></p>    
        
      
        <a name="Test-And-Troubleshoot"><h3>Test And Troubleshoot</h3></a>
            <p><span class="bodyGrey">
            To test your configuration, try and start the JBoss server instance you are 
            attempting to configure. Watch the console carefully for any stacktraces 
            or other error messages. With any luck, at some stage you should see something 
            like:
            <span class="bodyBlack"><pre>
            11:12:59,025 INFO  [MainDeployer] Starting deployment of package: file:/C:/jboss
            /server/default/deploy/castor-jdo-service.xml
            11:12:59,181 INFO  [CastorJDOImpl] Creating
            11:12:59,196 INFO  [CastorJDOImpl] Created
            11:12:59,212 INFO  [CastorJDOImpl] Starting
            11:13:00,759 INFO  [CastorJDOImpl] Started
            </pre></span>
            Go to the JMX Console (http://localhost:8080/jmx-console) of your 
            JBoss machine. You should see the following link under the jboss 
            entry:
            <span class="bodyBlack"><pre>name=MyAppJDO,service=CastorJDO</pre></span>
            Click on the link to see the status of the service. It should be started.
            </span></p>
            <p><span class="bodyGrey">
            You can also check the status of your datasource by looking for 
            it under the jca entry in the console.
            </span></p>
          

     <a name="Developing-Applications-With-Castor-JDO-and-JBoss-3.x"><h2>Developing Applications With Castor JDO and JBoss 3.x</h2></a>
        <p><span class="bodyGrey">
        To do:
        <ol>
            <li>Transient Entity (better description of Rooms example) </li>
            <li>Entity Bean with delegates (An example of this needs to be created.)</li>
        </ol>
        </span></p>
     <a name="Frequently-Asked-Questions"><h2>Frequently Asked Questions</h2></a>
        <p><span class="bodyGrey">Check the JDO FAQ <a href="http://www.castor.org/jdo-faq.html">here</a> 
        for common questions regarding JDO usage.
        </span></p>
     </td></tr><tr height="5"><td align="left" valign="top" bgcolor="#7270c2" height="5" width="10">&nbsp;</td><td valign="top" bgcolor="#7270c2" height="5" width="150"><img border="0" height="15" width="1" src="images/dotTrans.gif"><br><img align="right" border="0" height="3" width="105" src="images/line_sm.gif"></td><td align="left" valign="top" bgcolor="#a9a5de" height="5" width="7">&nbsp;</td><td align="left" valign="top" height="5" width="70">&nbsp;</td><td align="left" valign="top" height="5" width="120">&nbsp;</td></tr><tr><td align="left" valign="top" bgcolor="#7270c2" height="5" width="10">&nbsp;</td><td align="left" valign="top" bgcolor="#7270c2" width="150"></td><td align="left" valign="top" bgcolor="#a9a5de" width="7"><img border="0" height="25" width="1" src="images/dotTrans.gif"></td><td align="left" valign="top" width="70"><img border="0" height="25" width="1" src="images/dotTrans.gif"></td><td align="left" valign="top" width="120">&nbsp;</td></tr><tr height="5"><td align="left" valign="bottom" bgcolor="#7270c2" height="100%" rowspan="2" width="10"><img border="0" height="125" width="10" src="images/stripes1.gif"></td><td align="left" valign="bottom" bgcolor="#7270c2" height="100%" rowspan="2" width="150"><img border="0" height="125" width="105" src="images/stripe105.gif"></td><td align="left" valign="top" bgcolor="#a9a5de" height="100%" rowspan="2" width="7">&nbsp;</td><td align="left" valign="top" height="100%" width="70">&nbsp;</td><td align="left" valign="top" height="100%" width="120">&nbsp;</td></tr><tr height="5"><td align="left" valign="top" height="25" width="70">&nbsp;</td><td align="left" valign="bottom" height="25" width="400"><br><br><img height="3" width="400" border="0" src="images/line_light.gif"><br><p></p><span class="bodyGrey"><small><notice>
    Copyright &copy; 1999-2005 <a href="http://www.exolab.org">ExoLab Group</a>, Intalio Inc.,
    and Contributors.  All rights reserved.
  </notice><br>&nbsp;<br></small><small><notice>
    Java, EJB, JDBC, JNDI, JTA, Sun, Sun Microsystems are trademarks or registered
    trademarks of Sun Microsystems, Inc. in the United States and in other
    countries. XML, XML Schema, XSLT and related standards are trademarks or registered
    trademarks of MIT, INRIA, Keio or others, and a product of the World Wide Web
    Consortium. All other product names mentioned herein are trademarks of their respective
    owners.
  </notice><br>&nbsp;<br></small></span><p></p>
          &nbsp;
        </td><td align="left" valign="top" height="25" width="120">&nbsp;</td></tr></table><script type="text/javascript">
        var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
        document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
    </script><script type="text/javascript">
        var pageTracker = _gat._getTracker("UA-3544187-1");
        pageTracker._trackPageview();
    </script></body></html>