List:Commits« Previous MessageNext Message »
From:mcbrown Date:January 7 2007 5:33pm
Subject:svn commit - mysqldoc@docsrva: r4390 - trunk/refman-common
View as plain text  
Author: mcbrown
Date: 2007-01-07 18:33:17 +0100 (Sun, 07 Jan 2007)
New Revision: 4390

Log:
Fixing the missing C/MXJ



Added:
   trunk/refman-common/connector-mxj.xml


Added: trunk/refman-common/connector-mxj.xml
===================================================================
--- trunk/refman-common/connector-mxj.xml	                        (rev 0)
+++ trunk/refman-common/connector-mxj.xml	2007-01-07 17:33:17 UTC (rev 4390)
Changed blocks: 1, Lines Added: 1931, Lines Deleted: 0; 58174 bytes

@@ -0,0 +1,1931 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"
+[
+  <!ENTITY % fixedchars.entities  SYSTEM "../common/fixedchars.ent">
+  %fixedchars.entities;
+  <!ENTITY % urls.entities       SYSTEM "urls.ent">
+  %urls.entities;
+]>
+<section id="connector-mxj">
+
+  <title>MySQL Connector/MXJ</title>
+
+  <para>
+    MySQL Connector/MXJ is a solution for deploying the MySQL database
+    engine (<literal>mysqld</literal>) intelligently from within a Java
+    package.
+  </para>
+
+  <section id="connector-mxj-introduction">
+
+    <title>Introduction to Connector/MXJ</title>
+
+    <para>
+      MySQL Connector/MXJ is a Java Utility package for deploying and
+      managing a MySQL database. Deploying and using MySQL can be as
+      easy as adding an additional parameter to the JDBC connection url,
+      which will result in the database being started when the first
+      connection is made. This makes it easy for Java developers to
+      deploy applications which require a database by reducing
+      installation barriers for their end-users.
+    </para>
+
+    <para>
+      MySQL Connector/MXJ makes the MySQL database appear to be a
+      java-based component. It does this by determining what platform
+      the system is running on, selecting the appropriate binary, and
+      launching the executable. It will also optionally deploy an
+      initial database, with any specified parameters.
+    </para>
+
+    <para>
+      Included are instructions for use with a JDBC driver and deploying
+      as a JMX MBean to JBoss.
+    </para>
+
+    <para>
+      You can download sources and binaries from:
+      <ulink
+        url="&base-url-downloads;connector/mxj/"/>
+    </para>
+
+    <para>
+      This a beta release and feedback is welcome and encouraged.
+    </para>
+
+    <para>
+      Please send questions or comments to the
+      <ulink
+        url="http://lists.mysql.com/java">MySQL and Java
+      mailing list</ulink>.
+    </para>
+
+    <section id="connector-mxj-introduction-versions">
+
+      <title>Connector/MXJ Versions</title>
+
+      <para>
+        Connector/MX
+      </para>
+
+      <itemizedlist>
+
+        <listitem>
+          <para>
+            Connector/MXJ 5.x, currently in beta status, includes
+            <literal>mysqld</literal> version 5.0.22 and includes
+            binaries for Linux x86, Mac OS X PPC, Windows XP/NT/2000 x86
+            and Solaris SPARC. Connector/MXJ 5.x requires the
+            Connector/J 5.x package.
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            Connector/MXJ 1.x includes <literal>mysqld</literal> version
+            4.1.13 and includes binaries for Linux x86, Windows
+            XP/NT/2000 x86 and Solaris SPARC. Connector/MXJ 1.x requires
+            the Connector/J 3.x package.
+          </para>
+        </listitem>
+
+      </itemizedlist>
+
+      <para>
+        This guide provides information on the Connector/MXJ 5.x
+        release. For information on using the older releases, please see
+        the documentation included with the appropriate distribution.
+      </para>
+
+    </section>
+
+    <section id="connector-mxj-introduction-overview">
+
+      <title>Connector/MXJ Overview</title>
+
+      <para>
+        Connector/MXJ consists of a Java class, a copy of the
+        <literal>mysqld</literal> binary for a specific list of
+        platforms, and associated files and support utilities. The Java
+        class controls the initialization of an instance of the embedded
+        <literal>mysqld</literal> binary, and the ongoing management of
+        the <literal>mysqld</literal> process. The entire sequence and
+        management can be controlled entirely from within Java using the
+        Connector/MXJ Java classes. You can see an overview of the
+        contents of the Connector/MXJ package in the figure below.
+      </para>
+
+      <mediaobject>
+        <imageobject>
+          <imagedata fileref="images/cmxj-overview.png" format="PNG"/>
+        </imageobject>
+        <textobject>
+          <phrase lang="en">Connector/MXJ Overview</phrase>
+        </textobject>
+      </mediaobject>
+
+      <para>
+        It is important to note that Connector/MXJ is not an embedded
+        version of MySQL, or a version of MySQL written as part of a
+        Java class. Connector/MXJ works through the use of an embedded,
+        compiled binary of <literal>mysqld</literal> as would normally
+        be used when deploying a standard MySQL installation.
+      </para>
+
+      <para>
+        It is the Connector/MXJ wrapper, support classes and tools, that
+        enable Connector/MXJ to appear as a MySQL instance.
+      </para>
+
+      <para>
+        When Connector/MXJ is initialized, the corresponding
+        <literal>mysqld</literal> binary for the current platform is
+        extracted, along with a pre-configured data directed. Both are
+        contained within the Connector/MXJ JAR file. The
+        <literal>mysqld</literal> instance is then started, with any
+        additional options as specified during the initialization, and
+        the MySQL database becomes accessible.
+      </para>
+
+      <para>
+        Because Connector/MXJ works in combination with Connector/J, you
+        can access and integrate with the MySQL instance through a JDBC
+        connection. When you have finished with the server, the instance
+        is terminated, and, by default, any data created during the
+        session is retained within the temporary directory created when
+        the instance was started.
+      </para>
+
+      <para>
+        Connector/MXJ and the embedded <literal>mysqld</literal>
+        instance can be deployed in a number of environments where
+        relying on an existing database, or installing a MySQL instance
+        would be impossible, including CD-ROM embedded database
+        applications and temporary database requirements within a
+        Java-based application environment.
+      </para>
+
+    </section>
+
+  </section>
+
+  <section id="connector-mxj-install">
+
+    <title>Installing Connector/MXJ</title>
+
+    <para>
+      Connector/MXJ does not have a installation application or process,
+      but there are some steps you can follow to make the installation
+      and deployment of Connector/MXJ easier.
+    </para>
+
+    <para>
+      Before you start, there are some baseline requirements for
+    </para>
+
+    <itemizedlist>
+
+      <listitem>
+        <para>
+          Java Runtime Environment (v1.4.0 or newer) if you are only
+          going to deploy the package.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          Java Development Kit (v1.4.0 or newer) if you want to build
+          Connector/MXJ from source.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          Connector/J 5.0 or newer.
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
+    <para>
+      Depending on your target installation/deployment environment you
+      may also require:
+    </para>
+
+    <itemizedlist>
+
+      <listitem>
+        <para>
+          JBoss - 4.0rc1 or newer
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          Apache Tomcat - 5.0 or newer
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          Sun's JMX reference implementation version 1.2.1 (from
+          <ulink
+            url="http://java.sun.com/products/JavaManagement/"/>)
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
+    <section id="connector-mxj-install-platforms">
+
+      <title>Supported Platforms</title>
+
+      <para>
+        Connector/MXJ is compatible with any platform supporting Java
+        and MySQL. By default, Connector/MXJ incorporates the
+        <literal>mysqld</literal> binary for a select number of
+        platforms, as outlined below.
+      </para>
+
+      <itemizedlist>
+
+        <listitem>
+          <para>
+            Linux, i386
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            Windows NT, Windows 2000, Windows XP, x86
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            Solaris 8, SPARC 32 (compatible with Solaris 8, Solaris 9
+            and Solaris 10 on SPARC 32-bit and 64-bit platforms)
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            Mac OS X, PowerPC
+          </para>
+        </listitem>
+
+      </itemizedlist>
+
+      <para>
+        For more information on packaging your own Connector/MXJ with
+        the platforms you require, see
+        <xref
+          linkend="connector-mxj-usagenotes-packaging"/>
+      </para>
+
+    </section>
+
+    <section id="connector-mxj-install-base">
+
+      <title>Connector/MXJ Base Installation</title>
+
+      <para>
+        Because there is no formal installation process, the method,
+        installation directory, and access methods you use for
+        Connector/MXJ are entirely up to your individual requirements.
+      </para>
+
+      <para>
+        To perform a basic installation, choose a target directory for
+        the files included in the Connector/MXJ package. On Unix/Linux
+        systems you may opt to use a directory such as
+        <filename>/usr/local/connector-mxj</filename>; On Windows, you
+        may want to install the files in the base directory,
+        <filename>C:\Connector-MXJ</filename>, or within the
+        <filename>Program Files</filename> directory.
+      </para>
+
+      <para>
+        To install the files:
+      </para>
+
+      <orderedlist>
+
+        <listitem>
+          <para>
+            Download the Connector/MXJ package, either in Tar/Gzip
+            format (ideal for Unix/Linux systems) or Zip format
+            (Windows).
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            Extract the files from the package. This will create a
+            directory <filename>connector-mxj</filename>. Copy and
+            optionally rename this directory to your desired location.
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            For best results, you should update your global
+            <literal>CLASSPATH</literal> variable with the location of
+            the Connector/MXJ JAR
+            (<filename>connextor-mxj.jar</filename>). You will also need
+            to add the AspectJ Runtime, located in
+            <filename>lib/aspectjrt.jar</filename>.
+          </para>
+
+          <para>
+            Within Unix/Linux you can do this globally by editing the
+            global shell profile, or on a user by user basis by editing
+            their individual shell profile.
+          </para>
+
+          <para>
+            On Windows 2000, Windows NT and Windows XP, you can edit the
+            global <literal>CLASSPATH</literal> by editing the
+            <literal>Environment Variables</literal> configured through
+            the <literal>System</literal> control panel.
+          </para>
+        </listitem>
+
+      </orderedlist>
+
+    </section>
+
+    <section id="connector-mxj-install-quickstart">
+
+      <title>Connector/MXJ Quick Start Guide</title>
+
+      <para>
+        Once you have extracted the Connector/MXJ and Connector/J
+        components you can run one of the sample applications that
+        initiates a MySQL instance. You can test the installation by
+        running the <literal>ConnectorMXJUrlTestExample</literal>:
+      </para>
+
+<programlisting>java ConnectorMXJUrlTestExample
+jdbc:mysql:mxj://localhost:3336/test?server.basedir=/var/tmp/test-mxj
+[MysqldResource] launching mysqld (getOptions)
+[/var/tmp/test-mxj/bin/mysqld][--no-defaults] &raquo;
+[--pid-file=/var/tmp/test-mxj/data/MysqldResource.pid] &raquo; 
+[--socket=mysql.sock][--datadir=/var/tmp/test-mxj/data] &raquo;
+[--port=3336][--basedir=/var/tmp/test-mxj]
+[MysqldResource] launching mysqld (driver_launched_mysqld_1)
+InnoDB: The first specified data file ./ibdata1 did not exist:
+InnoDB: a new database to be created!
+060726 15:40:42  InnoDB: Setting file ./ibdata1 size to 10 MB
+InnoDB: Database physically writes the file full: wait...
+060726 15:40:43  InnoDB: Log file ./ib_logfile0 did not exist: new to be created
+InnoDB: Setting log file ./ib_logfile0 size to 5 MB
+InnoDB: Database physically writes the file full: wait...
+060726 15:40:43  InnoDB: Log file ./ib_logfile1 did not exist: new to be created
+InnoDB: Setting log file ./ib_logfile1 size to 5 MB
+InnoDB: Database physically writes the file full: wait...
+InnoDB: Doublewrite buffer not found: creating new
+InnoDB: Doublewrite buffer created
+InnoDB: Creating foreign key constraint system tables
+InnoDB: Foreign key constraint system tables created
+060726 15:40:44  InnoDB: Started; log sequence number 0 0
+060726 15:40:44 [Note] /var/tmp/test-mxj/bin/mysqld: ready for connections.
+Version: '5.0.22-max'  socket: 'mysql.sock'  port: 3336  MySQL Community Edition - Experimental (GPL)
+[MysqldResource] mysqld running as process: 1210
+------------------------
+
+5.0.22-max
+
+------------------------
+[MysqldResource] stopping mysqld (process: 1210)
+060726 15:40:44 [Note] /var/tmp/test-mxj/bin/mysqld: Normal shutdown
+
+060726 15:40:45  InnoDB: Starting shutdown...
+060726 15:40:48  InnoDB: Shutdown completed; log sequence number 0 43655
+060726 15:40:48 [Note] /var/tmp/test-mxj/bin/mysqld: Shutdown complete
+
+[MysqldResource] clearing options
+[MysqldResource] shutdown complete
+</programlisting>
+
+      <para>
+        The above output shows an instance of MySQL starting, the
+        necessary files being created (log files, InnoDB data files) and
+        the MySQL database entering the running state. The instance is
+        then shutdown by Connector/MXJ before the example terminates.
+      </para>
+
+    </section>
+
+    <section id="connector-mxj-install-class">
+
+      <title>Deploying Connector/MXJ using Driver Launch</title>
+
+      <para>
+        Connector/MXJ and Connector/J work together to enable you to
+        launch an instance of the <literal>mysqld</literal> server
+        through the use of a keyword in the JDBC connection string.
+        Deploying Connector/MXJ within a Java application can be
+        automated through this method, making the deployment of
+        Connector/MXJ a simple process:
+      </para>
+
+      <orderedlist>
+
+        <listitem>
+          <para>
+            Download and unzip Connector/MXJ, add
+            <filename>connector-mxj.jar</filename> to the
+            <literal>CLASSPATH</literal>.
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            To the JDBC connection string, embed the
+            <literal>mxj</literal> keyword, for example:
+            <literal>jdbc:mysql:mxj://localhost:<replaceable>PORT</replaceable>/<replaceable>DBNAME</replaceable></literal>.
+          </para>
+        </listitem>
+
+      </orderedlist>
+
+      <para>
+        For more details, see
+        <xref linkend="connector-mxj-configuration"/>.
+      </para>
+
+    </section>
+
+    <section id="connector-mxj-install-jboss">
+
+      <title>Deploying Connector/MXJ within JBoss</title>
+
+      <para>
+        For deployment within a JBoss environment, you must configure
+        the JBoss environment to use the Connector/MXJ component within
+        the JDBC parameters:
+      </para>
+
+      <orderedlist>
+
+        <listitem>
+          <para>
+            Download Connector/MXJ and copy the
+            <filename>connector-mxj.jar</filename> file to the
+            <filename>$JBOSS_HOME/server/default/lib</filename>
+            directory.
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            Download Connector/J and copy the
+            <filename>mysql-connector-java-<replaceable>5.0.4</replaceable>-bin.jar</filename> file to the
+            <filename>$JBOSS_HOME/server/default/lib</filename>
+            directory.
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            Create an MBean service xml file in the
+            <filename>$JBOSS_HOME/server/default/deploy</filename>
+            directory with any attributes set, for instance the
+            <literal>datadir</literal> and <literal>autostart</literal>.
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            Set the JDBC parameters of your web application to use:
+
+<programlisting>
+String driver = "com.mysql.jdbc.Driver"; 
+String url = "jdbc:mysql:///test?propertiesTransform="+
+             "com.mysql.management.jmx.ConnectorMXJPropertiesTransform"; 
+String user = "root"; 
+String password = ""; 
+Class.forName(driver);
+Connection conn = DriverManager.getConnection(url, user, password); </programlisting>
+          </para>
+        </listitem>
+
+      </orderedlist>
+
+      <para>
+        You may wish to create a separate users and database table
+        spaces for each application, rather than using "root and test".
+      </para>
+
+      <para>
+        We highly suggest having a routine backup procedure for backing
+        up the database files in the <literal>datadir</literal>.
+      </para>
+
+    </section>
+
+    <section id="connector-mxj-installation-test">
+
+      <title>Verifying Installation using JUnit</title>
+
+      <para>
+        The best way to ensure that your platform is supported is to run
+        the JUnit tests. These will test the Connector/MXJ classes and
+        the associated components.
+      </para>
+
+      <section id="connector-mxj-installation-test-requirements">
+
+        <title>JUnit Test Requirements</title>
+
+        <para>
+          The first thing to do is make sure that the components will
+          work on the platform. The
+          <classname>MysqldResource</classname> class is really a
+          wrapper for a native version of MySQL, so not all platforms
+          are supported. At the time of this writing, Linux on the i386
+          architecture has been tested and seems to work quite well, as
+          does OS X v10.3. There has been limited testing on Windows and
+          Solaris.
+        </para>
+
+        <para>
+          Requirements:
+        </para>
+
+        <orderedlist>
+
+          <listitem>
+            <para>
+              JDK-1.4 or newer (or the JRE if you aren't going to be
+              compiling the source or JSPs).
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              MySQL Connector/J version 5.0 or newer (from
+              <ulink
+                url="&base-url-downloads;connector/j/"/>)
+              installed and available via your CLASSPATH.
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              The <literal>javax.management</literal> classes for JMX
+              version 1.2.1, these are present in the following
+              application servers:
+            </para>
+
+            <itemizedlist>
+
+              <listitem>
+                <para>
+                  JBoss - 4.0rc1 or newer.
+                </para>
+              </listitem>
+
+              <listitem>
+                <para>
+                  Apache Tomcat - 5.0 or newer.
+                </para>
+              </listitem>
+
+              <listitem>
+                <para>
+                  Sun's JMX reference implementation version 1.2.1 (from
+                  <ulink url="http://java.sun.com/products/JavaManagement/"/>).
+                </para>
+              </listitem>
+
+            </itemizedlist>
+          </listitem>
+
+          <listitem>
+            <para>
+              JUnit 3.8.1 (from <ulink url="http://www.junit.org/"/>).
+            </para>
+          </listitem>
+
+        </orderedlist>
+
+        <para>
+          If building from source, All of the requirements from above,
+          plus:
+        </para>
+
+        <orderedlist>
+
+          <listitem>
+            <para>
+              Ant version 1.5 or newer (download from
+              <ulink
+                url="http://ant.apache.org/"/>).
+            </para>
+          </listitem>
+
+        </orderedlist>
+
+      </section>
+
+      <section id="connector-mxj-installation-test-running">
+
+        <title>Running the JUnit Tests</title>
+
+        <orderedlist>
+
+          <listitem>
+            <para>
+              The tests attempt to launch MySQL on the port 3336. If you
+              have a MySQL running, it may conflict, but this isn't very
+              likely because the default port for MySQL is 3306.
+              However, You may set the "c-mxj_test_port" Java property
+              to a port of your choosing. Alternatively, you may wish to
+              start by shutting down any instances of MySQL you have
+              running on the target machine.
+            </para>
+
+            <para>
+              The tests suppress output to the console by default. For
+              verbose output, you may set the "c-mxj_test_silent" Java
+              property to "false".
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              To run the JUnit test suite, the $CLASSPATH must include
+              the following:
+            </para>
+
+            <itemizedlist>
+
+              <listitem>
+                <para>
+                  JUnit
+                </para>
+              </listitem>
+
+              <listitem>
+                <para>
+                  JMX
+                </para>
+              </listitem>
+
+              <listitem>
+                <para>
+                  Connector/J
+                </para>
+              </listitem>
+
+              <listitem>
+                <para>
+                  MySQL Connector/MXJ
+                </para>
+              </listitem>
+
+            </itemizedlist>
+          </listitem>
+
+          <listitem>
+            <para>
+              If <filename>connector-mxj.jar</filename> is not present
+              in your download, unzip MySQL Connector/MXJ source
+              archive.
+            </para>
+
+<programlisting>
+cd mysqldjmx
+ant dist
+     </programlisting>
+
+            <para>
+              Then add
+              <filename>$TEMP/cmxj/stage/connector-mxj/connector-mxj.jar</filename>
+              to the CLASSPATH.
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              if you have <literal>junit</literal>, execute the unit
+              tests. From the command line, type:
+            </para>
+
+<programlisting>
+java junit.textui.TestRunner com.mysql.management.AllTestsSuite
+    </programlisting>
+
+            <para>
+              The output should look something like this:
+            </para>
+
+<programlisting>
+.........................................
+.........................................
+..........
+Time: 259.438
+
+OK (101 tests)
+  </programlisting>
+
+            <para>
+              Note that the tests are a bit slow near the end, so please
+              be patient.
+            </para>
+          </listitem>
+
+        </orderedlist>
+
+      </section>
+
+    </section>
+
+  </section>
+
+  <section id="connector-mxj-configuration">
+
+    <title>Connector/MXJ Configuration</title>
+
+    <section id="connector-mxj-configuration-driver-launched">
+
+      <title>Running as part of the JDBC Driver</title>
+
+      <para>
+        A feature of the MySQL Connector/J JDBC driver is the ability to
+        specify a connection to an embedded Connector/MXJ instance
+        through the use of the mxj keyword in the JDBC connection
+        string.
+      </para>
+
+      <para>
+        In the following example, we have a program which creates a
+        connection, executes a query, and prints the result to the
+        System.out. The MySQL database will be deployed and started as
+        part of the connection process, and shutdown as part of the
+        finally block.
+      </para>
+
+      <para>
+        You can find this file in the Connector/MXJ package as
+        <filename>src/ConnectorMXJUrlTestExample.java</filename>.
+      </para>
+
+<programlisting>
+import java.io.File;
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.ResultSet;
+import java.sql.Statement;
+
+import com.mysql.management.driverlaunched.ServerLauncherSocketFactory;
+
+public class ConnectorMXJUrlTestExample {
+    public static String DRIVER = "com.mysql.jdbc.Driver";
+
+    public static String JAVA_IO_TMPDIR = "java.io.tmpdir";
+
+    public static void main(String[] args) throws Exception {
+        File ourAppDir = new File(System.getProperty(JAVA_IO_TMPDIR));
+        File databaseDir = new File(ourAppDir, "test-mxj");
+        int port = 3336;
+
+        String url = "jdbc:mysql:mxj://localhost:" + port + "/test" + "?"
+                + "server.basedir=" + databaseDir;
+
+        System.out.println(url);
+
+        String userName = "root";
+        String password = "";
+
+        Class.forName(DRIVER);
+        Connection conn = null;
+        try {
+            conn = DriverManager.getConnection(url, userName, password);
+            printQueryResults(conn, "SELECT VERSION()");
+        } finally {
+            try {
+                if (conn != null)
+                    conn.close();
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+
+            ServerLauncherSocketFactory.shutdown(databaseDir, null);
+        }
+    }
+
+    public static void printQueryResults(Connection conn, String SQLquery)
+            throws Exception {
+        Statement stmt = conn.createStatement();
+        ResultSet rs = stmt.executeQuery(SQLquery);
+        int columns = rs.getMetaData().getColumnCount();
+        System.out.println("------------------------");
+        System.out.println();
+        while (rs.next()) {
+            for (int i = 1; i &lt;= columns; i++) {
+                System.out.println(rs.getString(i));
+            }
+            System.out.println();
+        }
+        rs.close();
+        stmt.close();
+        System.out.println("------------------------");
+        System.out.flush();
+        Thread.sleep(100); // wait for System.out to finish flush
+    }
+}</programlisting>
+
+      <para>
+        To run the above program, be sure to have connector-mxj.jar and
+        Connector/J in the CLASSPATH. Then type:
+      </para>
+
+<programlisting>
+java ConnectorMXJTestExample
+  </programlisting>
+
+    </section>
+
+    <section id="connector-mxj-configuration-java-object">
+
+      <title>Running within a Java Object</title>
+
+      <para>
+        If you have a java application and wish to <quote>embed</quote>
+        a MySQL database, make use of the
+        com.mysql.management.MysqldResource class directly. This class
+        may be instantiated with the default (no argument) constructor,
+        or by passing in a java.io.File object representing the
+        directory you wish the server to be "unzipped" into. It may also
+        be instantiated with printstreams for "stdout" and "stderr" for
+        logging.
+      </para>
+
+      <para>
+        Once instantiated, a java.util.Map, the object will be able to
+        provide a java.util.Map of server options appropriate for the
+        platform and version of MySQL which you will be using.
+      </para>
+
+      <para>
+        The MysqldResource enables you to "start" MySQL with a
+        java.util.Map of server options which you provide, as well as
+        "shutdown" the database. The following example shows a
+        simplistic way to embed MySQL in an application using plain java
+        objects.
+      </para>
+
+      <para>
+        You can find this file in the Connector/MXJ package as
+        <filename>src/ConnectorMXJObjectTestExample.java</filename>.
+      </para>
+
+<programlisting>
+import java.io.File;
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.ResultSet;
+import java.sql.Statement;
+import java.util.HashMap;
+import java.util.Map;
+
+import com.mysql.management.MysqldResource;
+
+public class ConnectorMXJObjectTestExample {
+    public static String DRIVER = "com.mysql.jdbc.Driver";
+
+    public static String JAVA_IO_TMPDIR = "java.io.tmpdir";
+
+    public static void main(String[] args) throws Exception {
+        File ourAppDir = new File(System.getProperty(JAVA_IO_TMPDIR));
+        File databaseDir = new File(ourAppDir, "mysql-mxj");
+        int port = 3336;
+
+        MysqldResource mysqldResource = startDatabase(databaseDir, port);
+
+        String userName = "root";
+        String password = "";
+
+        Class.forName(DRIVER);
+        Connection conn = null;
+        try {
+            String url = "jdbc:mysql://localhost:" + port + "/test";
+            conn = DriverManager.getConnection(url, userName, password);
+            printQueryResults(conn, "SELECT VERSION()");
+        } finally {
+            try {
+                if (conn != null) {
+                    conn.close();
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+            try {
+                mysqldResource.shutdown();
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
+    public static MysqldResource startDatabase(File databaseDir, int port) {
+        MysqldResource mysqldResource = new MysqldResource(databaseDir);
+
+        Map database_options = new HashMap();
+        database_options.put("port", Integer.toString(port));
+        mysqldResource.start("test-mysqld-thread", database_options);
+
+        if (!mysqldResource.isRunning()) {
+            throw new RuntimeException("MySQL did not start.");
+        }
+
+        System.out.println("MySQL is running.");
+
+        return mysqldResource;
+    }
+
+    public static void printQueryResults(Connection conn, String SQLquery)
+            throws Exception {
+        Statement stmt = conn.createStatement();
+        ResultSet rs = stmt.executeQuery(SQLquery);
+        int columns = rs.getMetaData().getColumnCount();
+        System.out.println("------------------------");
+        System.out.println();
+        while (rs.next()) {
+            for (int i = 1; i &lt;= columns; i++) {
+                System.out.println(rs.getString(i));
+            }
+            System.out.println();
+        }
+        rs.close();
+        stmt.close();
+        System.out.println("------------------------");
+        System.out.flush();
+        Thread.sleep(100); // wait for System.out to finish flush
+    }
+}
+  </programlisting>
+
+    </section>
+
+    <section id="connector-mxj-configuration-options">
+
+      <title>Setting server options</title>
+
+      <para>
+        Of course there are many options we may wish to set for a MySQL
+        database. These options may be specified as part of the JDBC
+        connection string simply by prefixing each server option with
+        ''server.''. In the following example we set two driver
+        parameters and two server parameters:
+      </para>
+
+<programlisting>
+        String url = "jdbc:mysql://" + hostColonPort + "/" 
+                + "?"
+                + "cacheServerConfiguration=true"
+                + "&amp;"
+                + "useLocalSessionState=true"
+                + "&amp;"
+                + "server.basedir=/opt/myapp/db"
+                + "&amp;"
+                + "server.datadir=/mnt/bigdisk/myapp/data";
+  </programlisting>
+
+    </section>
+
+  </section>
+
+  <section id="connector-mxj-ref">
+
+    <title>Connector/MXJ Reference</title>
+
+    <section id="connector-mxj-ref-mysqldresource">
+
+      <title>MysqldResource API</title>
+
+      <section id="connector-mxj-ref-mysqldresource-ctor">
+
+        <title>MysqldResource Constructors</title>
+
+        <para>
+          The <literal>MysqldResource</literal> class supports three
+          different constructor forms:
+        </para>
+
+        <itemizedlist>
+
+          <listitem>
+            <para>
+              <literal>public MysqldResource(File baseDir, File dataDir,
+              String mysqlVersionString, PrintStream out, PrintStream
+              err, Utils util)</literal>
+            </para>
+
+            <para>
+              The most detailed constructor, enables you to set the base
+              directory, data directory, select a server by its version
+              string, standard out and standard error and MySQL
+              utilities class.
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>public MysqldResource(File baseDir, File dataDir,
+              String mysqlVersionString, PrintStream out, PrintStream
+              err)</literal>
+            </para>
+
+            <para>
+              Enables you to set the base directory, data directory,
+              select a server by its version string, standard out and
+              standard error.
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>public MysqldResource(File baseDir, File dataDir,
+              String mysqlVersionString) </literal>
+            </para>
+
+            <para>
+              Enables you to set the base directory, data directory and
+              select a server by its version string. Output for standard
+              out and standard err are directed to System.out and
+              System.err.
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>public MysqldResource(File baseDir, File dataDir)
+              </literal>
+            </para>
+
+            <para>
+              Enables you to set the base directory and data directory.
+              The default MySQL version is selected, and output for
+              standard out and standard err are directed to System.out
+              and System.err.
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>public MysqldResource(File baseDir);</literal>
+            </para>
+
+            <para>
+              Allows the setting of the "basedir" to deploy the MySQL
+              files to. Output for standard out and standard err are
+              directed to System.out and System.err.
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>public MysqldResource();</literal>
+            </para>
+
+            <para>
+              The basedir is defaulted to a subdirectory of the
+              java.io.tempdir. Output for standard out and standard err
+              are directed to System.out and System.err;
+            </para>
+          </listitem>
+
+        </itemizedlist>
+
+      </section>
+
+      <section id="connector-mxj-ref-mysqldresource-methods">
+
+        <title>MysqldResource Methods</title>
+
+        <para>
+          MysqldResource API includes the following methods:
+        </para>
+
+        <itemizedlist>
+
+          <listitem>
+            <para>
+              <literal>void start(String threadName, Map
+              mysqldArgs);</literal>
+            </para>
+
+            <para>
+              Deploys and starts MySQL. The "threadName" string is used
+              to name the thread which actually performs the execution
+              of the MySQL command line. The map is the set of arguments
+              and their values to be passed to the command line.
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>void shutdown(); </literal>
+            </para>
+
+            <para>
+              Shuts down the MySQL instance managed by the
+              MysqldResource object.
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal> Map getServerOptions(); </literal>
+            </para>
+
+            <para>
+              Returns a map of all the options and their current (or
+              default, if not running) options available for the MySQL
+              database.
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal> boolean isRunning(); </literal>
+            </para>
+
+            <para>
+              Returns true if the MySQL database is running.
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal> boolean isReadyForConnections(); </literal>
+            </para>
+
+            <para>
+              Returns true once the database reports that is ready for
+              connections.
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal> void setKillDelay(int millis); </literal>
+            </para>
+
+            <para>
+              The default <quote>Kill Delay</quote> is 30 seconds. This
+              represents the amount of time to wait between the initial
+              request to shutdown and issuing a <quote>force
+              kill</quote> if the database has not shutdown by itself.
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal> void addCompletionListenser(Runnable listener);
+              </literal>
+            </para>
+
+            <para>
+              Allows for applications to be notified when the server
+              process completes. Each ''listener'' will be fired off in
+              its own thread.
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal> String getVersion(); </literal>
+            </para>
+
+            <para>
+              Returns the version of MySQL.
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal> void setVersion(int MajorVersion, int
+              minorVersion, int patchLevel); </literal>
+            </para>
+
+            <para>
+              The standard distribution comes with only one version of
+              MySQL packaged. However, it is possible to package
+              multiple versions, and specify which version to use.
+            </para>
+          </listitem>
+
+        </itemizedlist>
+
+      </section>
+
+    </section>
+
+  </section>
+
+  <section id="connector-mxj-usagenotes">
+
+    <title>Connector/MXJ Notes and Tips</title>
+
+    <para>
+      This section contains notes and tips on using the Connector/MXJ
+      component within your applications.
+    </para>
+
+    <section id="connector-mxj-usagenotes-packaging">
+
+      <title>Creating your own Connector/MXJ Package</title>
+
+      <para>
+        If you want to create a custom Connector/MXJ package that
+        includes a specific <literal>mysqld</literal> version or
+        platform then you must extract and rebuild the
+        <filename>connector-mxj.jar</filename> file.
+      </para>
+
+      <para>
+        First, you should create a new directory into which you can
+        extract the current <filename>connector-mxj.jar</filename>:
+      </para>
+
+<programlisting>shell&gt; mkdir custom-mxj
+shell&gt; cd custom-mxj
+shell&gt; jar -xf connector-mxj.jar
+shell&gt; ls
+5-0-22/
+ConnectorMXJObjectTestExample.class
+ConnectorMXJUrlTestExample.class
+META-INF/
+TestDb.class
+com/
+kill.exe
+</programlisting>
+
+      <para>
+        The MySQL version directory, <literal>5-0-22</literal> in the
+        above example, contains all of the files used to create an
+        instance of MySQL when Connector/MXJ is executed. All of the
+        files in this directory are required for each version of MySQL
+        that you want to embed. Note as well the format of the version
+        number, which uses hyphens instead of periods to separate the
+        version number components.
+      </para>
+
+      <para>
+        Within the version specific directory are the platform specific
+        directories, and archives of the <filename>data</filename> and
+        <filename>share</filename> directory required by MySQL for the
+        various platforms. For example, here is the listing for the
+        default Connector/MXJ package:
+      </para>
+
+<programlisting>shell&gt;> ls
+Linux-i386/
+META-INF/
+Mac_OS_X-ppc/
+SunOS-sparc/
+Win-x86/
+com/
+data_dir.jar
+share_dir.jar
+win_share_dir.jar</programlisting>
+
+      <para>
+        Platform specific directories are listed by their OS and
+        platform - for example the <literal>mysqld</literal> for Mac OS
+        X PowerPC is located within the
+        <filename>Mac_OS_X-ppc</filename> directory. You can delete
+        directories from this location that you do not require, and add
+        new directories for additional platforms that you want to
+        support.
+      </para>
+
+      <para>
+        To add a platform specific <literal>mysqld</literal>, create a
+        new directory with the corresponding name for your operating
+        system/platform. For example, you could add a directory for Mac
+        OS X/Intel using the directory
+        <filename>Mac_OS_X-i386</filename>.
+      </para>
+
+      <para>
+        On Unix systems, you can determine the platform using
+        <literal>uname</literal>:
+      </para>
+
+<programlisting>shell&gt; uname -p
+i386</programlisting>
+
+      <para>
+        Now you need to download or compile <literal>mysqld</literal>
+        for the MySQL version and platform you want to include in your
+        custom <filename>connector-mxj.jar</filename> package into the
+        new directory.
+      </para>
+
+      <para>
+        Create a file called <filename>version.txt</filename> in the
+        OS/platform directory you have just created that contains the
+        version string/path of the mysqld binary. For example:
+      </para>
+
+<programlisting>mysql-5.0.22-osx10.3-i386/bin/mysqld</programlisting>
+
+      <para>
+        You can now recreate the <filename>connector-mxj.jar</filename>
+        file with the added <literal>mysqld</literal>:
+      </para>
+
+<programlisting>shell&gt; cd custom-mxj
+shell&gt; jar -cf ../connector-mxj.jar *</programlisting>
+
+      <para>
+        You should test this package using the steps outlined in
+        <xref
+          linkend="connector-mxj-install-quickstart"/>.
+      </para>
+
+    </section>
+
+    <section id="connector-mxj-usagenotes-customdb">
+
+      <title>Deploying Connector/MXJ with a pre-configured database</title>
+
+      <para>
+        To include a pre-configured/populated database within your
+        Connector/MXJ JAR file you must create a custom
+        <filename>data_dir.jar</filename> file, as included within the
+        main <filename>connector-mxj.jar</filename> file:
+      </para>
+
+      <orderedlist>
+
+        <listitem>
+          <para>
+            First extract the <filename>connector-mxj.jar</filename>
+            file, as outlined in the previous section (see
+            <xref
+              linkend="connector-mxj-usagenotes-packaging"/>).
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            First, create your database and populate the database with
+            the information you require in an existing instance of MySQL
+            - including Connector/MXJ instances. Data file formats are
+            compatible across platforms.
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            Shutdown the instance of MySQL.
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            Create a JAR file of the data directory and databases that
+            you want to include your Connector/MXJ package. You should
+            include the <literal>mysql</literal> database, which
+            includes user authentication information, in addition to the
+            specific databases you want to include. For example, to
+            create a JAR of the <literal>mysql</literal> and
+            <literal>mxjtest</literal> databases:
+          </para>
+
+<programlisting>shell&gt; jar -cf ../data_dir.jar mysql mxjtest</programlisting>
+        </listitem>
+
+        <listitem>
+          <para>
+            Copy the <literal>data_dir.jar</literal> file into the
+            extracted <literal>connector-mxj.jar</literal> directory,
+            and then create an archive for
+            <literal>connector-mxj.jar</literal>.
+          </para>
+        </listitem>
+
+      </orderedlist>
+
+      <para>
+        Note that if you are create databases using the InnoDB engine,
+        you must include the <filename>ibdata.*</filename> and
+        <filename>ib_logfile*</filename> files within the
+        <filename>data_dir.jar</filename> archive.
+      </para>
+
+    </section>
+
+    <section id="connector-mxj-usagnotes-jmx-agent">
+
+      <title>Running within a JMX Agent (custom)</title>
+
+      <para>
+        As a JMX MBean, MySQL Connector/MXJ requires a JMX v1.2
+        compliant MBean container, such as JBoss version 4. The MBean
+        will uses the standard JMX management APIs to present (and allow
+        the setting of) parameters which are appropriate for that
+        platform.
+      </para>
+
+      <para>
+        If you are not using the SUN Reference implementation of the JMX
+        libraries, you should skip this section. Or, if you are
+        deploying to JBoss, you also may wish to skip to the next
+        section.
+      </para>
+
+      <para>
+        We want to see the MysqldDynamicMBean in action inside of a JMX
+        agent. In the <literal>com.mysql.management.jmx.sunri</literal>
+        package is a custom JMX agent with two MBeans:
+      </para>
+
+      <orderedlist>
+
+        <listitem>
+          <para>
+            the MysqldDynamicMBean, and
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            a com.sun.jdmk.comm.HtmlAdaptorServer, which provides a web
+            interface for manipulating the beans inside of a JMX agent.
+          </para>
+        </listitem>
+
+      </orderedlist>
+
+      <para>
+        When this very simple agent is started, it will allow a MySQL
+        database to be started and stopped with a web browser.
+      </para>
+
+      <orderedlist>
+
+        <listitem>
+          <para>
+            Complete the testing of the platform as above.
+          </para>
+
+          <itemizedlist>
+
+            <listitem>
+              <para>
+                current JDK, JUnit, Connector/J, MySQL Connector/MXJ
+              </para>
+            </listitem>
+
+            <listitem>
+              <para>
+                this section <emphasis>requires</emphasis> the SUN
+                reference implementation of JMX
+              </para>
+            </listitem>
+
+            <listitem>
+              <para>
+                <literal>PATH</literal>, <literal>JAVA_HOME</literal>,
+                <literal>ANT_HOME</literal>,
+                <literal>CLASSPATH</literal>
+              </para>
+            </listitem>
+
+          </itemizedlist>
+        </listitem>
+
+        <listitem>
+          <para>
+            If not building from source, skip to next step
+          </para>
+
+          <para>
+            rebuild with the "sunri.present"
+          </para>
+
+<programlisting>
+ant -Dsunri.present=true dist 
+re-run tests:
+java junit.textui.TestRunner com.mysql.management.AllTestsSuite
+</programlisting>
+        </listitem>
+
+        <listitem>
+          <para>
+            launch the test agent from the command line:
+          </para>
+
+<programlisting>
+java com.mysql.management.jmx.sunri.MysqldTestAgentSunHtmlAdaptor &amp;
+     </programlisting>
+        </listitem>
+
+        <listitem>
+          <para>
+            from a browser:
+          </para>
+
+<programlisting>
+http://localhost:9092/
+     </programlisting>
+        </listitem>
+
+        <listitem>
+          <para>
+            under MysqldAgent,
+          </para>
+
+<programlisting>
+select "name=mysqld"
+     </programlisting>
+        </listitem>
+
+        <listitem>
+          <para>
+            Observe the MBean View
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            scroll to the bottom of the screen press the
+            <guibutton>startMysqld</guibutton> button
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            click <literal>Back to MBean View</literal>
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            scroll to the bottom of the screen press
+            <guibutton>stopMysqld</guibutton> button
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            kill the java process running the Test Agent (jmx server)
+          </para>
+        </listitem>
+
+      </orderedlist>
+
+    </section>
+
+    <section id="connector-mxj-usagenotes-standard-environment">
+
+      <title>Deployment in a standard JMX Agent environment (JBoss)</title>
+
+      <para>
+        Once there is confidence that the MBean will function on the
+        platform, deploying the MBean inside of a standard JMX Agent is
+        the next step. Included are instructions for deploying to JBoss.
+      </para>
+
+      <orderedlist>
+
+        <listitem>
+          <para>
+            Ensure a current version of java development kit (v1.4.x),
+            see above.
+          </para>
+
+          <itemizedlist>
+
+            <listitem>
+              <para>
+                Ensure <literal>JAVA_HOME</literal> is set (JBoss
+                requires <literal>JAVA_HOME</literal>)
+              </para>
+            </listitem>
+
+            <listitem>
+              <para>
+                Ensure <literal>JAVA_HOME/bin</literal> is in the
+                <literal>PATH</literal> (You will NOT need to set your
+                CLASSPATH, nor will you need any of the jars used in the
+                previous tests).
+              </para>
+            </listitem>
+
+          </itemizedlist>
+        </listitem>
+
+        <listitem>
+          <para>
+            Ensure a current version of JBoss (v4.0RC1 or better)
+          </para>
+
+<programlisting>
+http://www.jboss.org/index.html
+select "Downloads"
+select "jboss-4.0.zip"
+pick a mirror
+unzip ~/dload/jboss-4.0.zip
+create a JBOSS_HOME environment variable set to the unzipped directory
+unix only:
+cd $JBOSS_HOME/bin
+chmod +x *.sh
+</programlisting>
+        </listitem>
+
+        <listitem>
+          <para>
+            Deploy (copy) the <filename>connector-mxj.jar</filename> to
+            <filename>$JBOSS_HOME/server/default/lib</filename>.
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            Deploy (copy)
+            <filename>mysql-connector-java-3.1.4-beta-bin.jar</filename>
+            to <filename>$JBOSS_HOME/server/default/lib</filename>.
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            Create a <filename>mxjtest.war</filename> directory in
+            <filename>$JBOSS_HOME/server/default/deploy</filename>.
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            Deploy (copy) <filename>index.jsp</filename> to
+            <filename>$JBOSS_HOME/server/default/deploy/mxjtest.war</filename>.
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            Create a <filename>mysqld-service.xml</filename> file in
+            <filename>$JBOSS_HOME/server/default/deploy</filename>.
+          </para>
+
+<programlisting>
+&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+ &lt;server>
+  &lt;mbean code="com.mysql.management.jmx.jboss.JBossMysqldDynamicMBean"
+     name="mysql:type=service,name=mysqld"&gt;
+  &lt;attribute name="datadir"&gt;/tmp/xxx_data_xxx&lt;/attribute&gt;
+  &lt;attribute name="autostart">true&lt;/attribute&gt;
+  &lt;/mbean&gt;
+ &lt;/server&gt;
+     </programlisting>
+        </listitem>
+
+        <listitem>
+          <para>
+            Start jboss:
+          </para>
+
+          <itemizedlist>
+
+            <listitem>
+              <para>
+                on unix: <command>$JBOSS_HOME/bin/run.sh</command>
+              </para>
+            </listitem>
+
+            <listitem>
+              <para>
+                on windows: <command>%JBOSS_HOME%\bin\run.bat</command>
+              </para>
+            </listitem>
+
+          </itemizedlist>
+
+          <para>
+            Be ready: JBoss sends a lot of output to the screen.
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            When JBoss seems to have stopped sending output to the
+            screen, open a web browser to:
+            <literal>http://localhost:8080/jmx-console</literal>
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            Scroll down to the bottom of the page in the
+            <literal>mysql</literal> section, select the bulleted
+            <literal>mysqld</literal> link.
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            Observe the JMX MBean View page. MySQL should already be
+            running.
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            (If "autostart=true" was set, you may skip this step.)
+            Scroll to the bottom of the screen. You may press the
+            <guibutton>Invoke</guibutton> button to stop (or start)
+            MySQL observe <literal>Operation completed successfully
+            without a return value.</literal> Click <literal>Back to
+            MBean View</literal>
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            To confirm MySQL is running, open a web browser to
+            <literal>http://localhost:8080/mxjtest/</literal> and you
+            should see that
+          </para>
+
+<programlisting>SELECT 1</programlisting>
+
+          <para>
+            returned with a result of
+          </para>
+
+<programlisting>1</programlisting>
+        </listitem>
+
+        <listitem>
+          <para>
+            Guided by the
+            <filename>$JBOSS_HOME/server/default/deploy/mxjtest.war/index.jsp</filename>
+            you will be able to use MySQL in your Web Application. There
+            is a <literal>test</literal> database and a
+            <literal>root</literal> user (no password) ready to
+            experiment with. Try creating a table, inserting some rows,
+            and doing some selects.
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            Shut down MySQL. MySQL will be stopped automatically when
+            JBoss is stopped, or: from the browser, scroll down to the
+            bottom of the MBean View press the stop service
+            <guibutton>Invoke</guibutton> button to halt the service.
+            Observe <literal>Operation completed successfully without a
+            return value.</literal> Using <literal>ps</literal> or
+            <literal>task manager</literal> see that MySQL is no longer
+            running
+          </para>
+        </listitem>
+
+      </orderedlist>
+
+      <para>
+        As of 1.0.6-beta version is the ability to have the MBean start
+        the MySQL database upon start up. Also, we've taken advantage of
+        the JBoss life-cycle extension methods so that the database will
+        gracefully shut down when JBoss is shutdown.
+      </para>
+
+    </section>
+
+  </section>
+
+  <section id="connector-mxj-support">
+
+    <title>Connector/MXJ Support</title>
+
+    <para>
+      There are a wide variety of options available for obtaining
+      support for using Connector/MXJ. You should contact the
+      Connector/MXJ community for help before reporting a potential bug
+      or problem. See
+      <xref
+        linkend="connector-mxj-support-community"/>.
+    </para>
+
+    <section id="connector-mxj-support-community">
+
+      <title>Connector/MXJ Community Support</title>
+
+      <para>
+        MySQL AB provides assistance to the user community by means of a
+        number of mailing lists and web based forums.
+      </para>
+
+      <para>
+        You can find help and support through the
+        <ulink
+          url="http://lists.mysql.com/java">MySQL and
+        Java</ulink> mailing list.
+      </para>
+
+      <para>
+        For information about subscribing to MySQL mailing lists or to
+        browse list archives, visit
+        <ulink url="http://lists.mysql.com/"/>. See
+        <xref linkend="mailing-lists"/>.
+      </para>
+
+      <para>
+        Community support from experienced users is also available
+        through the
+        <ulink url="http://forums.mysql.com/list.php?39">MyODBC
+        Forum</ulink>. You may also find help from other users in the
+        other MySQL Forums, located at
+        <ulink url="http://forums.mysql.com"/>. See
+        <xref linkend="forums"/>.
+      </para>
+
+    </section>
+
+    <section id="connector-mxj-support-bug-report">
+
+      <title>How to Report Connector/MXJ Problems</title>
+
+      <para>
+        If you encounter difficulties or problems with Connector/MXJ,
+        contact the Connector/MXJ community
+        <xref
+          linkend="connector-mxj-support-community"/>.
+      </para>
+
+      <para>
+        If reporting a problem, you should ideally include the following
+        information with the email:
+      </para>
+
+      <itemizedlist>
+
+        <listitem>
+          <para>
+            Operating system and version
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            Connector/MXJ version
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            MySQL server version
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            Copies of error messages or other unexpected output
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            Simple reproducible sample
+          </para>
+        </listitem>
+
+      </itemizedlist>
+
+      <para>
+        Remember that the more information you can supply to us, the
+        more likely it is that we can fix the problem.
+      </para>
+
+      <para>
+        If you believe the problem to be a bug, then you must report the
+        bug through <ulink url="http://bugs.mysql.com/"/>.
+      </para>
+
+    </section>
+
+<!--     <section id="connector-mxj-support-changelog">
+
+      <title>Connector/MXJ Change History</title>
+
+      <para>
+        The Connector/MXJ Change History (Changelog) is located with the main
+        Changelog for MySQL. See <xref linkend="connector-net-news"/>.
+      </para>
+      
+    </section>
+-->
+
+  </section>
+
+</section>


Thread
svn commit - mysqldoc@docsrva: r4390 - trunk/refman-commonmcbrown7 Jan