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] »
+[--pid-file=/var/tmp/test-mxj/data/MysqldResource.pid] »
+[--socket=mysql.sock][--datadir=/var/tmp/test-mxj/data] »
+[--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 <= 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 <= 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"
+ + "&"
+ + "useLocalSessionState=true"
+ + "&"
+ + "server.basedir=/opt/myapp/db"
+ + "&"
+ + "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> mkdir custom-mxj
+shell> cd custom-mxj
+shell> jar -xf connector-mxj.jar
+shell> 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>> 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> 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> cd custom-mxj
+shell> 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> 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 &
+ </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>
+<?xml version="1.0" encoding="UTF-8"?>
+ <server>
+ <mbean code="com.mysql.management.jmx.jboss.JBossMysqldDynamicMBean"
+ name="mysql:type=service,name=mysqld">
+ <attribute name="datadir">/tmp/xxx_data_xxx</attribute>
+ <attribute name="autostart">true</attribute>
+ </mbean>
+ </server>
+ </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-common | mcbrown | 7 Jan |