[jboss-cvs] JBossAS SVN: r75364 - in projects/docs/community/5/Administration_And_Configuration_Guide: en-US and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Jul 3 22:17:49 EDT 2008
Author: skittoli at redhat.com
Date: 2008-07-03 22:17:48 -0400 (Thu, 03 Jul 2008)
New Revision: 75364
Modified:
projects/docs/community/5/Administration_And_Configuration_Guide/en-US/Alternative_DBs.xml
projects/docs/community/5/Administration_And_Configuration_Guide/en-US/Performance_Tuning.xml
projects/docs/community/5/Administration_And_Configuration_Guide/en-US/resolved.xml
projects/docs/community/5/Administration_And_Configuration_Guide/pom.xml
Log:
updated pom.xml
Modified: projects/docs/community/5/Administration_And_Configuration_Guide/en-US/Alternative_DBs.xml
===================================================================
--- projects/docs/community/5/Administration_And_Configuration_Guide/en-US/Alternative_DBs.xml 2008-07-04 00:27:45 UTC (rev 75363)
+++ projects/docs/community/5/Administration_And_Configuration_Guide/en-US/Alternative_DBs.xml 2008-07-04 02:17:48 UTC (rev 75364)
@@ -14,7 +14,7 @@
<section>
<title>Install JDBC Drivers</title>
- <para>For the JBoss Application Server and our applications to use the external database, we also need to install the database's JDBC driver. The JDBC driver is a JAR file, which you'll need to copy into your JBoss AS's <literal>jboss-as/server/production/lib</literal> directory. Replace <literal>production</literal> with the server configuration you are using if needed. This file is loaded when JBoss starts up. So if you have the JBoss AS running, you'll need to shut down and restart. The availability of JDBC drivers for different databases are as follows.
+ <para>For the JBoss Application Server and our applications to use the external database, we also need to install the database's JDBC driver. The JDBC driver is a JAR file, which you'll need to copy into your JBoss AS's <literal><JBoss_Home>/server/all/lib</literal> directory. Replace <literal>all</literal> with the server configuration you are using if needed. This file is loaded when JBoss starts up. So if you have the JBoss AS running, you'll need to shut down and restart. The availability of JDBC drivers for different databases are as follows.
</para>
@@ -89,9 +89,9 @@
<section>
<title>Creating a DataSource for the External Database</title>
- <para>JBoss AS connects to relational databases via datasources. These datasource definitions can be found in the <literal>jboss-as/server/production/deploy</literal> directory. The datasource definitions are deployable just like WAR and EAR files. The datasource files can be recognized by looking for the XML files that end in <literal>*-ds.xml</literal>.</para>
+ <para>JBoss AS connects to relational databases via datasources. These datasource definitions can be found in the <literal><JBoss_Home>/server/all/deploy</literal> directory. The datasource definitions are deployable just like WAR and EAR files. The datasource files can be recognized by looking for the XML files that end in <literal>*-ds.xml</literal>.</para>
- <para>The datasource definition files for all supported external databases can be found in the <literal>jboss-as/docs/examples/jca</literal> directory.</para>
+ <para>The datasource definition files for all supported external databases can be found in the <literal><JBoss_Home>/docs/examples/jca</literal> directory.</para>
<itemizedlist>
<listitem><para>MySQL: <literal>mysql-ds.xml</literal></para></listitem>
@@ -139,14 +139,14 @@
]]>
</programlisting>
- <para>Once you customized the <literal>*-ds.xml</literal> file to connect to your external database, you need to copy it to the <literal>jboss-as/server/production/deploy</literal> directory. The database connection is now available through the JNDI name specified in the <literal>*-ds.xml</literal> file.</para>
+ <para>Once you customized the <literal>*-ds.xml</literal> file to connect to your external database, you need to copy it to the <literal><JBoss_Home>/server/all/deploy</literal> directory. The database connection is now available through the JNDI name specified in the <literal>*-ds.xml</literal> file.</para>
</section>
<section>
<title>Change Database for the JMS Services</title>
- <para>The JMS service in the JBoss AS uses relational databases to persist its messages. For improved performance, we should change the JMS service to take advantage of the external database. To do that, we need to replace the file <literal>jboss-as/server/production/deploy/jms-singleton/hsqldb-jdbc2-service.xml</literal> with a file in <literal>jboss-as/docs/examples/jms/</literal> depending on your external database. Notice that if you are using the <literal>default</literal> server profile, the file path is <literal>jboss-as/server/default/deploy/jms/hsqldb-jdbc2-service.xml</literal>.</para>
+ <para>The JMS service in the JBoss AS uses relational databases to persist its messages. For improved performance, we should change the JMS service to take advantage of the external database. To do that, we need to replace the file <literal><JBoss_Home>/server/all/deploy/jms-singleton/hsqldb-jdbc2-service.xml</literal> with a file in <literal><JBoss_Home>/docs/examples/jms/</literal> depending on your external database. Notice that if you are using the <literal>default</literal> server profile, the file path is <literal><JBoss_Home>/server/default/deploy/jms/hsqldb-jdbc2-service.xml</literal>.</para>
<itemizedlist>
<listitem><para>MySQL: <literal>mysql-jdbc2-service.xml</literal></para></listitem>
@@ -167,7 +167,7 @@
<section>
<title>Support Foreign Keys in CMP Services</title>
- <para>Next, we need to go change the <literal>jboss-as/server/production/conf/standardjbosscmp-jdbc.xml</literal> file so that the <literal>fk-constraint</literal> property is <literal>true</literal>. That is needed for all external databases we support on the JBoss Application Server. This file configures the database connection settings for the EJB2 CMP beans deployed in the JBoss AS.</para>
+ <para>Next, we need to go change the <literal><JBoss_Home>/server/all/conf/standardjbosscmp-jdbc.xml</literal> file so that the <literal>fk-constraint</literal> property is <literal>true</literal>. That is needed for all external databases we support on the JBoss Application Server. This file configures the database connection settings for the EJB2 CMP beans deployed in the JBoss AS.</para>
<programlisting>
<![CDATA[
@@ -180,7 +180,7 @@
<section>
<title>Specify Database Dialect for Java Persistence API</title>
- <para>The Java Persistence API (JPA) entity manager can save EJB3 entity beans to any backend database. Hibernate provides the JPA implementation in JBoss AS. Hibernate has a dialect auto-detection mechanism that works for most databases including the dialects for databases referenced in this appendix which are listed below. If a specific dialect is needed for alternative databases, you can configure the database dialect in the <varname>jboss-as/server/production/deploy/ejb3.deployer/META-INF/persistence.properties</varname> file. You need to un-comment the <varname>hibernate.dialect</varname> property and change its value to the following based on the database you setup. For a complete list of dialects, refer to the Hibernate Reference Guide, Chapter 3, Section 4.1 SQL Dialects.</para>
+ <para>The Java Persistence API (JPA) entity manager can save EJB3 entity beans to any backend database. Hibernate provides the JPA implementation in JBoss AS. Hibernate has a dialect auto-detection mechanism that works for most databases including the dialects for databases referenced in this appendix which are listed below. If a specific dialect is needed for alternative databases, you can configure the database dialect in the <varname><JBoss_Home>/server/all/deploy/ejb3.deployer/META-INF/persistence.properties</varname> file. You need to un-comment the <varname>hibernate.dialect</varname> property and change its value to the following based on the database you setup. For a complete list of dialects, refer to the Hibernate Reference Guide, Chapter 3, Section 4.1 SQL Dialects.</para>
<itemizedlist>
<listitem><para>Oracle 9i: org.hibernate.dialect.Oracle9iDialect</para></listitem>
@@ -221,7 +221,7 @@
The easy way is just to change the JNDI name for the external database to <literal>DefaultDS</literal>. Most JBoss services are hard-wired to use the <literal>DefaultDS</literal> by default. So, by changing the datasource name, we do not need to change the configuration for each service individually.
</para>
<para>
- To change the JNDI name, just open the <literal>*-ds.xml</literal> file for your external database, and change the value of the <literal>jndi-name</literal> property to <literal>DefaultDS</literal>. For instance, in <literal>mysql-ds.xml</literal>, you'd change MySqlDS to DefaultDS and so on. You will need to remove the <literal>jboss-as/server/production/deploy/hsqldb-ds.xml</literal> file after you are done to avoid duplicated <literal>DefaultDS</literal> definition.
+ To change the JNDI name, just open the <literal>*-ds.xml</literal> file for your external database, and change the value of the <literal>jndi-name</literal> property to <literal>DefaultDS</literal>. For instance, in <literal>mysql-ds.xml</literal>, you'd change MySqlDS to DefaultDS and so on. You will need to remove the <literal><JBoss_Home>/server/all/deploy/hsqldb-ds.xml</literal> file after you are done to avoid duplicated <literal>DefaultDS</literal> definition.
</para>
<para>
In the <literal>jms/*-jdbc2-service.xml</literal> file, you should also change the datasource name in the <literal>depends</literal> tag for the <literal>PersistenceManagers</literal> MBean to <literal>DefaultDS</literal>. For instance, for <literal>mysql-jdbc2-service.xml</literal> file, we change the <literal>MySqlDS</literal> to <literal>DefaultDS</literal>.
@@ -232,7 +232,7 @@
<para>The easy way is just to change the JNDI name for the external database to <literal>DefaultDS</literal>. Most JBoss services are hard-wired to use the <literal>DefaultDS</literal> by default. So, by changing the datasource name, we do not need to change the configuration for each service individually.</para>
- <para>To change the JNDI name, just open the <literal>*-ds.xml</literal> file for your external database, and change the value of the <literal>jndi-name</literal> property to <literal>DefaultDS</literal>. For instance, in <literal>mysql-ds.xml</literal>, you'd change <literal>MySqlDS</literal> to <literal>DefaultDS</literal> and so on. You will need to remove the <literal>jboss-as/server/production/deploy/hsqldb-ds.xml</literal> file after you are done to avoid duplicated <literal>DefaultDS</literal> definition.</para>
+ <para>To change the JNDI name, just open the <literal>*-ds.xml</literal> file for your external database, and change the value of the <literal>jndi-name</literal> property to <literal>DefaultDS</literal>. For instance, in <literal>mysql-ds.xml</literal>, you'd change <literal>MySqlDS</literal> to <literal>DefaultDS</literal> and so on. You will need to remove the <literal><JBoss_Home>/server/all/deploy/hsqldb-ds.xml</literal> file after you are done to avoid duplicated <literal>DefaultDS</literal> definition.</para>
<para>In the <literal>jms/*-jdbc2-service.xml</literal> file, you should also change the datasource name in the <literal>depends</literal> tag for the <literal>PersistenceManagers</literal> MBean to <literal>DefaultDS</literal>. For instance, for <literal>mysql-jdbc2-service.xml</literal> file, we change the <literal>MySqlDS</literal> to <literal>DefaultDS</literal>.</para>
@@ -258,25 +258,25 @@
<para>A safer and more flexible way to hook up JBoss AS services with the external datasource is to manually change the <literal>DefaultDS</literal> in all standard JBoss services to the datasource JNDI name defined in your <literal>*-ds.xml</literal> file (e.g., the <literal>MySqlDS</literal> in <literal>mysql-ds.xml</literal> etc.). Below is a complete list of files that contain <literal>DefaultDS</literal>. You can update them all to use the external database on all JBoss services or update some of them to use different combination of datasources for different services.</para>
<itemizedlist>
- <listitem><para><literal>jboss-as/server/production/conf/login-config.xml</literal>: This file is used in Java EE container managed security services.</para></listitem>
+ <listitem><para><literal><JBoss_Home>/server/all/conf/login-config.xml</literal>: This file is used in Java EE container managed security services.</para></listitem>
- <listitem><para><literal>jboss-as/server/production/conf/standardjbosscmp-jdbc.xml</literal>: This file configures the CMP beans in the EJB container.</para></listitem>
+ <listitem><para><literal><JBoss_Home>/server/all/conf/standardjbosscmp-jdbc.xml</literal>: This file configures the CMP beans in the EJB container.</para></listitem>
- <listitem><para><literal>jboss-as/server/production/deploy/ejb-deployer.xml</literal>: This file configures the JBoss EJB deployer.</para></listitem>
+ <listitem><para><literal><JBoss_Home>/server/all/deploy/ejb-deployer.xml</literal>: This file configures the JBoss EJB deployer.</para></listitem>
- <listitem><para><literal>jboss-as/server/production/deploy/schedule-manager-service.xml</literal>: This file configures the EJB timer services.</para></listitem>
+ <listitem><para><literal><JBoss_Home>/server/all/deploy/schedule-manager-service.xml</literal>: This file configures the EJB timer services.</para></listitem>
- <listitem><para><literal>jboss-as/server/production/deploy/snmp-adaptor.sar/attributes.xml</literal>: This file is used by the SNMP service.</para></listitem>
+ <listitem><para><literal><JBoss_Home>/server/all/deploy/snmp-adaptor.sar/attributes.xml</literal>: This file is used by the SNMP service.</para></listitem>
- <listitem><para><literal>jboss-as/server/production/deploy/juddi-service.sar/META-INF/jboss-service.xml</literal>: This file configures the UUDI service.</para></listitem>
+ <listitem><para><literal><JBoss_Home>/server/all/deploy/juddi-service.sar/META-INF/jboss-service.xml</literal>: This file configures the UUDI service.</para></listitem>
- <listitem><para><literal>jboss-as/server/production/deploy/juddi-service.sar/juddi.war/WEB-INF/jboss-web.xml</literal>: This file configures the UUDI service.</para></listitem>
+ <listitem><para><literal><JBoss_Home>/server/all/deploy/juddi-service.sar/juddi.war/WEB-INF/jboss-web.xml</literal>: This file configures the UUDI service.</para></listitem>
- <listitem><para><literal>jboss-as/server/production/deploy/juddi-service.sar/juddi.war/WEB-INF/juddi.properties</literal>: This file configures the UUDI service.</para></listitem>
+ <listitem><para><literal><JBoss_Home>/server/all/deploy/juddi-service.sar/juddi.war/WEB-INF/juddi.properties</literal>: This file configures the UUDI service.</para></listitem>
- <listitem><para><literal>jboss-as/server/production/deploy/uuid-key-generator.sar/META-INF/jboss-service.xml</literal>: This file configures the UUDI service.</para></listitem>
+ <listitem><para><literal><JBoss_Home>/server/all/deploy/uuid-key-generator.sar/META-INF/jboss-service.xml</literal>: This file configures the UUDI service.</para></listitem>
- <listitem><para><literal>jboss-as/server/production/jms/hsqldb-jdbc-state-service.xml</literal> and <literal>jboss-as/server/all/deploy-hasingleton/jms/hsqldb-jdbc-state-service.xml</literal>: Those files configure the JMS persistence service as we discussed earlier.</para></listitem>
+ <listitem><para><literal><JBoss_Home>/server/all/jms/hsqldb-jdbc-state-service.xml</literal> and <literal><JBoss_Home>/server/all/deploy-hasingleton/jms/hsqldb-jdbc-state-service.xml</literal>: Those files configure the JMS persistence service as we discussed earlier.</para></listitem>
</itemizedlist>
@@ -289,7 +289,7 @@
<para>In our setup discussed in this chapter, we rely on the JBoss AS to automatically create needed tables in the external database upon server startup. That works most of the time. But for databases like Oracle, there might be some minor issues if you try to use the same database server to back more than one JBoss AS instance.</para>
- <para>The Oracle database creates tables of the form <literal>schemaname.tablename</literal>. The <literal>TIMERS</literal> and <literal>HILOSEQUENCES</literal> tables needed by JBoss AS would not get created on a schema if the table already exists on a different schema. To work around this issue, you need to edit the <literal>jboss-as/server/production/deploy/ejb-deployer.xml</literal> file to change the table name from <literal>TIMERS</literal> to something like <literal>schemaname2.tablename</literal>.</para>
+ <para>The Oracle database creates tables of the form <literal>schemaname.tablename</literal>. The <literal>TIMERS</literal> and <literal>HILOSEQUENCES</literal> tables needed by JBoss AS would not get created on a schema if the table already exists on a different schema. To work around this issue, you need to edit the <literal><JBoss_Home>/server/all/deploy/ejb-deployer.xml</literal> file to change the table name from <literal>TIMERS</literal> to something like <literal>schemaname2.tablename</literal>.</para>
<programlisting>
<![CDATA[
@@ -310,7 +310,7 @@
]]>
</programlisting>
- <para>Similarly, you need to change the <literal>jboss-as/server/production/deploy/uuid-key-generator.sar/META-INF/jboss-service.xml</literal> file to change the table name from <literal>HILOSEQUENCES</literal> to something like <literal>schemaname2.tablename</literal> as well.</para>
+ <para>Similarly, you need to change the <literal><JBoss_Home>/server/all/deploy/uuid-key-generator.sar/META-INF/jboss-service.xml</literal> file to change the table name from <literal>HILOSEQUENCES</literal> to something like <literal>schemaname2.tablename</literal> as well.</para>
<programlisting>
<![CDATA[
Modified: projects/docs/community/5/Administration_And_Configuration_Guide/en-US/Performance_Tuning.xml
===================================================================
--- projects/docs/community/5/Administration_And_Configuration_Guide/en-US/Performance_Tuning.xml 2008-07-04 00:27:45 UTC (rev 75363)
+++ projects/docs/community/5/Administration_And_Configuration_Guide/en-US/Performance_Tuning.xml 2008-07-04 02:17:48 UTC (rev 75364)
@@ -68,6 +68,9 @@
<para>
The example below is a sample Hypersonic database data source file. Please note that this file contains more comments or descriptions for the respective tags. For a full view of this file, and its comments, please refer to the <filename>hsqldb-ds.xml</filename> in the <filename>deploy</filename> directory of your configuration.
</para>
+<note><title>More examples</title>
+ <para>More examples of datasource definition files for supported external databases can be found in the <literal><JBoss_Home>/docs/examples/jca</literal> directory.</para>
+</note>
<programlisting role="XML">...
<datasources>
Modified: projects/docs/community/5/Administration_And_Configuration_Guide/en-US/resolved.xml
===================================================================
--- projects/docs/community/5/Administration_And_Configuration_Guide/en-US/resolved.xml 2008-07-04 00:27:45 UTC (rev 75363)
+++ projects/docs/community/5/Administration_And_Configuration_Guide/en-US/resolved.xml 2008-07-04 02:17:48 UTC (rev 75364)
@@ -1,982 +1,5 @@
<?xml version="1.0"?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
-<!ENTITY uArr "⇑">
-<!ENTITY hcirc "ĥ">
-<!ENTITY icirc "î">
-<!ENTITY equals "=">
-<!ENTITY cong "≅">
-<!ENTITY HARDcy "Ъ">
-<!ENTITY icy "и">
-<!ENTITY Ecaron "Ě">
-<!ENTITY clubs "♣">
-<!ENTITY phmmat "ℳ">
-<!ENTITY sqcap "⊓">
-<!ENTITY thorn "þ">
-<!ENTITY Lcedil "Ļ">
-<!ENTITY rarr "→">
-<!ENTITY verbar "|">
-<!ENTITY cire "≗">
-<!ENTITY DZcy "Џ">
-<!ENTITY b.delta "𝛅">
-<!ENTITY Gcirc "Ĝ">
-<!ENTITY ocir "⊚">
-<!ENTITY circ "ˆ">
-<!ENTITY Igr "Ι">
-<!ENTITY udigr "ϋ">
-<!ENTITY prime "′">
-<!ENTITY npr "⊀">
-<!ENTITY b.pi "𝛑">
-<!ENTITY frac58 "⅝">
-<!ENTITY ldquor "„">
-<!ENTITY sqsup "⊐">
-<!ENTITY boxDR "╔">
-<!ENTITY kcedil "ķ">
-<!ENTITY vDash "⊨">
-<!ENTITY Scedil "Ş">
-<!ENTITY perp "⊥">
-<!ENTITY b.Gamma "𝚪">
-<!ENTITY b.kappa "𝛋">
-<!ENTITY Uuml "Ü">
-<!ENTITY mnplus "∓">
-<!ENTITY nearr "↗">
-<!ENTITY nrtri "⋫">
-<!ENTITY cupre "≼">
-<!ENTITY boxV "║">
-<!ENTITY Zdot "Ż">
-<!ENTITY pound "£">
-<!ENTITY lharu "↼">
-<!ENTITY boxdr "┌">
-<!ENTITY ocy "о">
-<!ENTITY xgr "ξ">
-<!ENTITY b.xi "𝛏">
-<!ENTITY larr "←">
-<!ENTITY middot "·">
-<!ENTITY xrArr "⟹">
-<!ENTITY Ncy "Н">
-<!ENTITY acute "´">
-<!ENTITY phis "ϕ">
-<!ENTITY ncedil "ņ">
-<!ENTITY lAarr "⇚">
-<!ENTITY sqsube "⊑">
-<!ENTITY quot '"'>
-<!ENTITY TSHcy "Ћ">
-<!ENTITY b.Gammad "Ϝ">
-<!ENTITY amacr "ā">
-<!ENTITY otimes "⊗">
-<!ENTITY inodot "ı">
-<!ENTITY gsdot "⋗">
-<!ENTITY LJcy "Љ">
-<!ENTITY phiv "φ">
-<!ENTITY odblac "ő">
-<!ENTITY filig "fi">
-<!ENTITY amalg "⨿">
-<!ENTITY sdotb "⊡">
-<!ENTITY boxDL "╗">
-<!ENTITY Theta "Θ">
-<!ENTITY cdot "ċ">
-<!ENTITY ordm "º">
-<!ENTITY atilde "ã">
-<!ENTITY squf "▪">
-<!ENTITY notin "∉">
-<!ENTITY nmid "∤">
-<!ENTITY shchcy "щ">
-<!ENTITY lfloor "⌊">
-<!ENTITY Xi "Ξ">
-<!ENTITY Hstrok "Ħ">
-<!ENTITY period ".">
-<!ENTITY nldr "‥">
-<!ENTITY numsp " ">
-<!ENTITY boxdl "┐">
-<!ENTITY Fcy "Ф">
-<!ENTITY tscy "ц">
-<!ENTITY Iukcy "І">
-<!ENTITY cross "✗">
-<!ENTITY ohgr "ω">
-<!ENTITY nbsp " ">
-<!ENTITY ni "∋">
-<!ENTITY comp "∁">
-<!ENTITY boxH "═">
-<!ENTITY b.Delta "𝚫">
-<!ENTITY Oslash "Ø">
-<!ENTITY marker "▮">
-<!ENTITY ndash "–">
-<!ENTITY ordf "ª">
-<!ENTITY nsce "⪰̸">
-<!ENTITY vrtri "⊳">
-<!ENTITY ubrcy "ў">
-<!ENTITY Ccirc "Ĉ">
-<!ENTITY quest "?">
-<!ENTITY ne "≠">
-<!ENTITY gap "⪆">
-<!ENTITY efDot "≒">
-<!ENTITY rcy "р">
-<!ENTITY bsim "∽">
-<!ENTITY bgr "β">
-<!ENTITY omacr "ō">
-<!ENTITY umacr "ū">
-<!ENTITY lpar "(">
-<!ENTITY uharl "↿">
-<!ENTITY Gcy "Г">
-<!ENTITY ast "*">
-<!ENTITY acy "а">
-<!ENTITY thetas "θ">
-<!ENTITY uring "ů">
-<!ENTITY Zcaron "Ž">
-<!ENTITY horbar "―">
-<!ENTITY star "☆">
-<!ENTITY timesb "⊠">
-<!ENTITY npre "⪯̸">
-<!ENTITY real "ℜ">
-<!ENTITY dlarr "↙">
-<!ENTITY nrArr "⇏">
-<!ENTITY oplus "⊕">
-<!ENTITY Xgr "Ξ">
-<!ENTITY ucy "у">
-<!ENTITY thetav "ϑ">
-<!ENTITY jcirc "ĵ">
-<!ENTITY uharr "↾">
-<!ENTITY mgr "μ">
-<!ENTITY hearts "♥">
-<!ENTITY nvDash "⊭">
-<!ENTITY yicy "ї">
-<!ENTITY dot "˙">
-<!ENTITY alpha "α">
-<!ENTITY wedgeq "≙">
-<!ENTITY bowtie "⋈">
-<!ENTITY boxDr "╓">
-<!ENTITY b.upsi "𝛖">
-<!ENTITY euml "ë">
-<!ENTITY vArr "⇕">
-<!ENTITY lgr "λ">
-<!ENTITY b.rhov "𝛠">
-<!ENTITY ubreve "ŭ">
-<!ENTITY copysr "℗">
-<!ENTITY cap "∩">
-<!ENTITY aogon "ą">
-<!ENTITY racute "ŕ">
-<!ENTITY rthree "⋌">
-<!ENTITY Sgr "Σ">
-<!ENTITY uacute "ú">
-<!ENTITY Tcaron "Ť">
-<!ENTITY dagger "†">
-<!ENTITY oast "⊛">
-<!ENTITY prnE "⪵">
-<!ENTITY thkap "≈">
-<!ENTITY boxdR "╒">
-<!ENTITY dgr "δ">
-<!ENTITY nacute "ń">
-<!ENTITY hardcy "ъ">
-<!ENTITY sqsupe "⊒">
-<!ENTITY TScy "Ц">
-<!ENTITY reg "®">
-<!ENTITY cir "○">
-<!ENTITY lsquor "‚">
-<!ENTITY ycy "ы">
-<!ENTITY Sigma "Σ">
-<!ENTITY Gbreve "Ğ">
-<!ENTITY order "ℴ">
-<!ENTITY nlarr "↚">
-<!ENTITY eng "ŋ">
-<!ENTITY sacute "ś">
-<!ENTITY ensp " ">
-<!ENTITY rarr2 "⇉">
-<!ENTITY coprod "∐">
-<!ENTITY iacgr "ί">
-<!ENTITY b.piv "𝛡">
-<!ENTITY rlhar2 "⇌">
-<!ENTITY boxDl "╖">
-<!ENTITY Pcy "П">
-<!ENTITY Dagger "‡">
-<!ENTITY khcy "х">
-<!ENTITY sigma "σ">
-<!ENTITY nltrie "⋬">
-<!ENTITY gjcy "ѓ">
-<!ENTITY b.alpha "𝛂">
-<!ENTITY plusmn "±">
-<!ENTITY scnap "⪺">
-<!ENTITY vprime "′">
-<!ENTITY iota "ι">
-<!ENTITY Dcaron "Ď">
-<!ENTITY emsp " ">
-<!ENTITY trie "≜">
-<!ENTITY boxdL "╕">
-<!ENTITY cacute "ć">
-<!ENTITY rcedil "ŗ">
-<!ENTITY lhblk "▄">
-<!ENTITY lnsim "⋦">
-<!ENTITY bsime "⋍">
-<!ENTITY Vvdash "⊪">
-<!ENTITY zgr "ζ">
-<!ENTITY Ncaron "Ň">
-<!ENTITY rcaron "ř">
-<!ENTITY radic "√">
-<!ENTITY colone "≔">
-<!ENTITY Ucy "У">
-<!ENTITY lcub "{">
-<!ENTITY mdash "—">
-<!ENTITY ogon "˛">
-<!ENTITY Lgr "Λ">
-<!ENTITY b.chi "𝛘">
-<!ENTITY Barwed "⌆">
-<!ENTITY odot "⊙">
-<!ENTITY softcy "ь">
-<!ENTITY yucy "ю">
-<!ENTITY Ogr "Ο">
-<!ENTITY ecirc "ê">
-<!ENTITY Uacute "Ú">
-<!ENTITY jcy "й">
-<!ENTITY Oacgr "Ό">
-<!ENTITY ntilde "ñ">
-<!ENTITY Uring "Ů">
-<!ENTITY Udigr "Ϋ">
-<!ENTITY squ "□">
-<!ENTITY Uacgr "Ύ">
-<!ENTITY uarr "↑">
-<!ENTITY sim "∼">
-<!ENTITY egr "ε">
-<!ENTITY aleph "ℵ">
-<!ENTITY nharr "↮">
-<!ENTITY kcy "к">
-<!ENTITY Rgr "Ρ">
-<!ENTITY ffilig "ffi">
-<!ENTITY boxvl "┤">
-<!ENTITY Iacgr "Ί">
-<!ENTITY ang90 "∟">
-<!ENTITY nrarr "↛">
-<!ENTITY nges "⩾̸">
-<!ENTITY nsube "⊈">
-<!ENTITY nsup "⊅">
-<!ENTITY egs "⪖">
-<!ENTITY acirc "â">
-<!ENTITY Yuml "Ÿ">
-<!ENTITY ltrif "◂">
-<!ENTITY lagran "ℒ">
-<!ENTITY npar "∦">
-<!ENTITY scsim "≿">
-<!ENTITY boxvr "├">
-<!ENTITY Acirc "Â">
-<!ENTITY Ucirc "Û">
-<!ENTITY zcaron "ž">
-<!ENTITY shy "">
-<!ENTITY ominus "⊖">
-<!ENTITY frac38 "⅜">
-<!ENTITY incare "℅">
-<!ENTITY uhblk "▀">
-<!ENTITY lEg "⪋">
-<!ENTITY gcy "г">
-<!ENTITY b.eta "𝛈">
-<!ENTITY lnap "⪉">
-<!ENTITY Iacute "Í">
-<!ENTITY yacute "ý">
-<!ENTITY dstrok "đ">
-<!ENTITY Imacr "Ī">
-<!ENTITY orarr "↻">
-<!ENTITY Eacgr "Έ">
-<!ENTITY apos "'">
-<!ENTITY b.epsiv "𝛜">
-<!ENTITY gcirc "ĝ">
-<!ENTITY udblac "ű">
-<!ENTITY planck "ℏ">
-<!ENTITY upsi "υ">
-<!ENTITY b.Lambda "𝚲">
-<!ENTITY Bgr "Β">
-<!ENTITY scedil "ş">
-<!ENTITY Rarr "↠">
-<!ENTITY nrtrie "⋭">
-<!ENTITY nsub "⊄">
-<!ENTITY vcy "в">
-<!ENTITY Eacute "É">
-<!ENTITY boxvh "┼">
-<!ENTITY dcy "д">
-<!ENTITY Aring "Å">
-<!ENTITY Igrave "Ì">
-<!ENTITY utilde "ũ">
-<!ENTITY divonx "⋇">
-<!ENTITY lne "⪇">
-<!ENTITY scnE "⪶">
-<!ENTITY ccedil "ç">
-<!ENTITY supne "⊋">
-<!ENTITY empty "∅">
-<!ENTITY b.nu "𝛎">
-<!ENTITY top "⊤">
-<!ENTITY lcy "л">
-<!ENTITY b.gamma "𝛄">
-<!ENTITY aelig "æ">
-<!ENTITY iuml "ï">
-<!ENTITY Lcaron "Ľ">
-<!ENTITY bottom "⊥">
-<!ENTITY rarrhk "↪">
-<!ENTITY DScy "Ѕ">
-<!ENTITY idiagr "ΐ">
-<!ENTITY imacr "ī">
-<!ENTITY ltri "◃">
-<!ENTITY infin "∞">
-<!ENTITY le "≤">
-<!ENTITY sime "≃">
-<!ENTITY kappa "κ">
-<!ENTITY kappav "ϰ">
-<!ENTITY OElig "Œ">
-<!ENTITY urcrop "⌎">
-<!ENTITY darr2 "⇊">
-<!ENTITY lg "≶">
-<!ENTITY spar "∥">
-<!ENTITY Mgr "Μ">
-<!ENTITY rtri "▹">
-<!ENTITY daleth "ℸ">
-<!ENTITY sfrown "⌢">
-<!ENTITY epsiv "ε">
-<!ENTITY Omega "Ω">
-<!ENTITY colon ":">
-<!ENTITY prop "∝">
-<!ENTITY lArr "⇐">
-<!ENTITY Upsi "ϒ">
-<!ENTITY oslash "ø">
-<!ENTITY ap "≈">
-<!ENTITY Sup "⋑">
-<!ENTITY epsis "ϵ">
-<!ENTITY b.omega "𝛚">
-<!ENTITY rpar ")">
-<!ENTITY Abreve "Ă">
-<!ENTITY mldr "…">
-<!ENTITY ltrie "⊴">
-<!ENTITY Psi "Ψ">
-<!ENTITY Agrave "À">
-<!ENTITY Tcedil "Ţ">
-<!ENTITY auml "ä">
-<!ENTITY lcedil "ļ">
-<!ENTITY scirc "ŝ">
-<!ENTITY larrhk "↩">
-<!ENTITY varr "↕">
-<!ENTITY ncong "≇">
-<!ENTITY jnodot "j">
-<!ENTITY subE "⫅">
-<!ENTITY kjcy "ќ">
-<!ENTITY larr2 "⇇">
-<!ENTITY rsh "↱">
-<!ENTITY sdot "⋅">
-<!ENTITY wreath "≀">
-<!ENTITY cuepr "⋞">
-<!ENTITY frown "⌢">
-<!ENTITY Agr "Α">
-<!ENTITY uacgr "ύ">
-<!ENTITY rcub "}">
-<!ENTITY dharl "⇃">
-<!ENTITY bcy "б">
-<!ENTITY Tgr "Τ">
-<!ENTITY diam "⋄">
-<!ENTITY eacute "é">
-<!ENTITY xlArr "⟸">
-<!ENTITY leg "⋚">
-<!ENTITY boxvL "╡">
-<!ENTITY Kcy "К">
-<!ENTITY ncy "н">
-<!ENTITY sgr "σ">
-<!ENTITY beta "β">
-<!ENTITY exist "∃">
-<!ENTITY bprime "‵">
-<!ENTITY boxul "┘">
-<!ENTITY Zcy "З">
-<!ENTITY Iuml "Ï">
-<!ENTITY Scaron "Š">
-<!ENTITY sol "/">
-<!ENTITY boxvR "╞">
-<!ENTITY fcy "ф">
-<!ENTITY Egrave "È">
-<!ENTITY Utilde "Ũ">
-<!ENTITY lthree "⋋">
-<!ENTITY boxur "└">
-<!ENTITY dharr "⇂">
-<!ENTITY uarr2 "⇈">
-<!ENTITY lacute "ĺ">
-<!ENTITY spades "♠">
-<!ENTITY int "∫">
-<!ENTITY rect "▭">
-<!ENTITY compfn "∘">
-<!ENTITY b.sigma "𝛔">
-<!ENTITY Amacr "Ā">
-<!ENTITY prod "∏">
-<!ENTITY rpargt "⦔">
-<!ENTITY b.sigmav "𝛓">
-<!ENTITY excl "!">
-<!ENTITY fnof "ƒ">
-<!ENTITY beth "ℶ">
-<!ENTITY yuml "ÿ">
-<!ENTITY rsquo "’">
-<!ENTITY pr "≺">
-<!ENTITY ccaron "č">
-<!ENTITY hyphen "‐">
-<!ENTITY weierp "℘">
-<!ENTITY smile "⌣">
-<!ENTITY Egr "Ε">
-<!ENTITY eeacgr "ή">
-<!ENTITY nsc "⊁">
-<!ENTITY les "⩽">
-<!ENTITY boxvH "╪">
-<!ENTITY KHcy "Х">
-<!ENTITY bernou "ℬ">
-<!ENTITY lpargt "⦠">
-<!ENTITY tgr "τ">
-<!ENTITY zacute "ź">
-<!ENTITY amp "&">
-<!ENTITY lnE "≨">
-<!ENTITY nlE "≦̸">
-<!ENTITY sbsol "﹨">
-<!ENTITY Pi "Π">
-<!ENTITY b.beta "𝛃">
-<!ENTITY b.mu "𝛍">
-<!ENTITY Ograve "Ò">
-<!ENTITY phone "☎">
-<!ENTITY iff "⇔">
-<!ENTITY gsim "≳">
-<!ENTITY rx "℞">
-<!ENTITY there4 "∴">
-<!ENTITY harrw "↭">
-<!ENTITY udiagr "ΰ">
-<!ENTITY otilde "õ">
-<!ENTITY DotDot " ⃜">
-<!ENTITY lrhar2 "⇋">
-<!ENTITY lE "≦">
-<!ENTITY hstrok "ħ">
-<!ENTITY Racute "Ŕ">
-<!ENTITY rarrw "↝">
-<!ENTITY angmsd "∡">
-<!ENTITY tshcy "ћ">
-<!ENTITY szlig "ß">
-<!ENTITY nequiv "≢">
-<!ENTITY pcy "п">
-<!ENTITY darr "↓">
-<!ENTITY female "♀">
-<!ENTITY curarr "↷">
-<!ENTITY minusb "⊟">
-<!ENTITY aacute "á">
-<!ENTITY Dcy "Д">
-<!ENTITY THORN "Þ">
-<!ENTITY ucirc "û">
-<!ENTITY asymp "≈">
-<!ENTITY bcong "≌">
-<!ENTITY die "¨">
-<!ENTITY ograve "ò">
-<!ENTITY iexcl "¡">
-<!ENTITY frac56 "⅚">
-<!ENTITY rArr "⇒">
-<!ENTITY tprime "‴">
-<!ENTITY osol "⊘">
-<!ENTITY sqsub "⊏">
-<!ENTITY rho "ρ">
-<!ENTITY b.psi "𝛙">
-<!ENTITY aring "å">
-<!ENTITY Edot "Ė">
-<!ENTITY lcaron "ľ">
-<!ENTITY rlarr2 "⇄">
-<!ENTITY EEacgr "Ή">
-<!ENTITY pi "π">
-<!ENTITY sect "§">
-<!ENTITY bepsi "϶">
-<!ENTITY ffllig "ffl">
-<!ENTITY lsh "↰">
-<!ENTITY dscy "ѕ">
-<!ENTITY macr "¯">
-<!ENTITY b.kappav "𝛞">
-<!ENTITY scaron "š">
-<!ENTITY commat "@">
-<!ENTITY dollar "$">
-<!ENTITY angsph "∢">
-<!ENTITY Udblac "Ű">
-<!ENTITY comma ",">
-<!ENTITY copy "©">
-<!ENTITY diams "♦">
-<!ENTITY Dot "¨">
-<!ENTITY sube "⊆">
-<!ENTITY Cap "⋒">
-<!ENTITY nsmid "∤">
-<!ENTITY SOFTcy "Ь">
-<!ENTITY eegr "η">
-<!ENTITY lsim "≲">
-<!ENTITY ssmile "⌣">
-<!ENTITY nlt "≮">
-<!ENTITY boxHU "╩">
-<!ENTITY ZHcy "Ж">
-<!ENTITY abreve "ă">
-<!ENTITY lmidot "ŀ">
-<!ENTITY angst "Å">
-<!ENTITY b.lambda "𝛌">
-<!ENTITY uuml "ü">
-<!ENTITY ENG "Ŋ">
-<!ENTITY IJlig "IJ">
-<!ENTITY brvbar "¦">
-<!ENTITY esdot "≐">
-<!ENTITY boxuL "╛">
-<!ENTITY blk14 "░">
-<!ENTITY YAcy "Я">
-<!ENTITY caron "ˇ">
-<!ENTITY ohacgr "ώ">
-<!ENTITY sup3 "³">
-<!ENTITY flat "♭">
-<!ENTITY minus "−">
-<!ENTITY olarr "↺">
-<!ENTITY dlcorn "⌞">
-<!ENTITY boxuR "╘">
-<!ENTITY iukcy "і">
-<!ENTITY b.tau "𝛕">
-<!ENTITY Otilde "Õ">
-<!ENTITY ldquo "“">
-<!ENTITY lang "〈">
-<!ENTITY Verbar "‖">
-<!ENTITY ges "⩾">
-<!ENTITY prap "⪷">
-<!ENTITY thksim "∼">
-<!ENTITY Vcy "В">
-<!ENTITY yacy "я">
-<!ENTITY drcrop "⌌">
-<!ENTITY omega "ω">
-<!ENTITY Hcirc "Ĥ">
-<!ENTITY tstrok "ŧ">
-<!ENTITY ang "∠">
-<!ENTITY khgr "χ">
-<!ENTITY b.thetas "𝛉">
-<!ENTITY ecaron "ě">
-<!ENTITY Odblac "Ő">
-<!ENTITY fflig "ff">
-<!ENTITY lowast "∗">
-<!ENTITY nvdash "⊬">
-<!ENTITY frac18 "⅛">
-<!ENTITY sup1 "¹">
-<!ENTITY njcy "њ">
-<!ENTITY b.thetav "𝛝">
-<!ENTITY sup2 "²">
-<!ENTITY gimel "ℷ">
-<!ENTITY ldot "⋖">
-<!ENTITY Ccedil "Ç">
-<!ENTITY rdquo "”">
-<!ENTITY rhard "⇁">
-<!ENTITY nsime "≄">
-<!ENTITY boxhu "┴">
-<!ENTITY intcal "⊺">
-<!ENTITY nsupe "⊉">
-<!ENTITY Gt "≫">
-<!ENTITY igr "ι">
-<!ENTITY nabla "∇">
-<!ENTITY urcorn "⌝">
-<!ENTITY nle "≰">
-<!ENTITY Icy "И">
-<!ENTITY DJcy "Ђ">
-<!ENTITY jukcy "є">
-<!ENTITY lceil "⌈">
-<!ENTITY oS "Ⓢ">
-<!ENTITY malt "✠">
-<!ENTITY ccirc "ĉ">
-<!ENTITY ycirc "ŷ">
-<!ENTITY Aacgr "Ά">
-<!ENTITY Ntilde "Ñ">
-<!ENTITY vsupnE "⫌︀">
-<!ENTITY ogr "ο">
-<!ENTITY and "∧">
-<!ENTITY gvnE "≩︀">
-<!ENTITY dashv "⊣">
-<!ENTITY supE "⫆">
-<!ENTITY mu "μ">
-<!ENTITY vsubnE "⫋︀">
-<!ENTITY gE "≧">
-<!ENTITY smid "∣">
-<!ENTITY delta "δ">
-<!ENTITY tcaron "ť">
-<!ENTITY rsqb "]">
-<!ENTITY bull "•">
-<!ENTITY cuwed "⋏">
-<!ENTITY raquo "»">
-<!ENTITY frac45 "⅘">
-<!ENTITY part "∂">
-<!ENTITY Vdash "⊩">
-<!ENTITY boxhd "┬">
-<!ENTITY psi "ψ">
-<!ENTITY b.Omega "𝛀">
-<!ENTITY iquest "¿">
-<!ENTITY sqcup "⊔">
-<!ENTITY YUcy "Ю">
-<!ENTITY psgr "ψ">
-<!ENTITY conint "∮">
-<!ENTITY gel "⋛">
-<!ENTITY Icirc "Î">
-<!ENTITY twixt "≬">
-<!ENTITY boxHD "╦">
-<!ENTITY male "♂">
-<!ENTITY euro "€">
-<!ENTITY epsi "ϵ">
-<!ENTITY Rcaron "Ř">
-<!ENTITY SHCHcy "Щ">
-<!ENTITY ugr "υ">
-<!ENTITY Phi "Φ">
-<!ENTITY b.Xi "𝚵">
-<!ENTITY lt "<">
-<!ENTITY scnsim "⋩">
-<!ENTITY models "⊧">
-<!ENTITY boxHu "╧">
-<!ENTITY Lcy "Л">
-<!ENTITY Sacute "Ś">
-<!ENTITY nwarr "↖">
-<!ENTITY drcorn "⌟">
-<!ENTITY NJcy "Њ">
-<!ENTITY mumap "⊸">
-<!ENTITY rAarr "⇛">
-<!ENTITY nsubE "⫅̸">
-<!ENTITY b.rho "𝛒">
-<!ENTITY oelig "œ">
-<!ENTITY utrif "▴">
-<!ENTITY subne "⊊">
-<!ENTITY para "¶">
-<!ENTITY ocirc "ô">
-<!ENTITY ouml "ö">
-<!ENTITY num "#">
-<!ENTITY boxUL "╝">
-<!ENTITY IEcy "Е">
-<!ENTITY Ocy "О">
-<!ENTITY Ugrave "Ù">
-<!ENTITY eogon "ę">
-<!ENTITY sum "∑">
-<!ENTITY mcy "м">
-<!ENTITY YIcy "Ї">
-<!ENTITY Gamma "Γ">
-<!ENTITY isin "∈">
-<!ENTITY cuesc "⋟">
-<!ENTITY b.Pi "𝚷">
-<!ENTITY Ubreve "Ŭ">
-<!ENTITY starf "★">
-<!ENTITY gne "⪈">
-<!ENTITY gammad "ϝ">
-<!ENTITY napos "ʼn">
-<!ENTITY sup "⊃">
-<!ENTITY dArr "⇓">
-<!ENTITY Larr "↞">
-<!ENTITY nVDash "⊯">
-<!ENTITY boxhU "╨">
-<!ENTITY Ggr "Γ">
-<!ENTITY Idigr "Ϊ">
-<!ENTITY AElig "Æ">
-<!ENTITY Idot "İ">
-<!ENTITY Lacute "Ĺ">
-<!ENTITY sharp "♯">
-<!ENTITY Ubrcy "Ў">
-<!ENTITY lsqb "[">
-<!ENTITY micro "µ">
-<!ENTITY Sub "⋐">
-<!ENTITY agr "α">
-<!ENTITY nap "≉">
-<!ENTITY sfgr "ς">
-<!ENTITY block "█">
-<!ENTITY nspar "∦">
-<!ENTITY supnE "⫌">
-<!ENTITY prsim "≾">
-<!ENTITY shcy "ш">
-<!ENTITY dblac "˝">
-<!ENTITY xhArr "⟺">
-<!ENTITY dtri "▿">
-<!ENTITY barwed "⌅">
-<!ENTITY zcy "з">
-<!ENTITY agrave "à">
-<!ENTITY par "∥">
-<!ENTITY vsupne "⊋︀">
-<!ENTITY Scy "С">
-<!ENTITY zdot "ż">
-<!ENTITY rsquor "’">
-<!ENTITY Delta "Δ">
-<!ENTITY nVdash "⊮">
-<!ENTITY Pgr "Π">
-<!ENTITY gamma "γ">
-<!ENTITY tau "τ">
-<!ENTITY Ecirc "Ê">
-<!ENTITY sung "♪">
-<!ENTITY natur "♮">
-<!ENTITY or "∨">
-<!ENTITY vsubne "⊊︀">
-<!ENTITY Jcy "Й">
-<!ENTITY square "□">
-<!ENTITY b.Psi "𝚿">
-<!ENTITY b.zeta "𝛇">
-<!ENTITY gbreve "ğ">
-<!ENTITY Kcedil "Ķ">
-<!ENTITY ohm "Ω">
-<!ENTITY frac35 "⅗">
-<!ENTITY ssetmn "∖">
-<!ENTITY boxUR "╚">
-<!ENTITY frac34 "¾">
-<!ENTITY target "⌖">
-<!ENTITY cularr "↶">
-<!ENTITY xcirc "◯">
-<!ENTITY boxhD "╥">
-<!ENTITY iecy "е">
-<!ENTITY Euml "Ë">
-<!ENTITY half "½">
-<!ENTITY rang "〉">
-<!ENTITY numero "№">
-<!ENTITY Ugr "Υ">
-<!ENTITY semi ";">
-<!ENTITY times "×">
-<!ENTITY rharu "⇀">
-<!ENTITY iocy "ё">
-<!ENTITY b.gammad "ϝ">
-<!ENTITY lozf "⧫">
-<!ENTITY thinsp " ">
-<!ENTITY plusb "⊞">
-<!ENTITY tilde "˜">
-<!ENTITY Aogon "Ą">
-<!ENTITY Eogon "Ę">
-<!ENTITY blk12 "▒">
-<!ENTITY pre "⪯">
-<!ENTITY boxHd "╤">
-<!ENTITY piv "ϖ">
-<!ENTITY ncaron "ň">
-<!ENTITY wcirc "ŵ">
-<!ENTITY utri "▵">
-<!ENTITY Prime "″">
-<!ENTITY cedil "¸">
-<!ENTITY idigr "ϊ">
-<!ENTITY curren "¤">
-<!ENTITY laquo "«">
-<!ENTITY ulcrop "⌏">
-<!ENTITY ring "˚">
-<!ENTITY oacute "ó">
-<!ENTITY Nacute "Ń">
-<!ENTITY permil "‰">
-<!ENTITY oacgr "ό">
-<!ENTITY frac78 "⅞">
-<!ENTITY blk34 "▓">
-<!ENTITY gnsim "⋧">
-<!ENTITY boxVH "╬">
-<!ENTITY zhcy "ж">
-<!ENTITY b.phiv "𝛟">
-<!ENTITY loz "◊">
-<!ENTITY Ngr "Ν">
-<!ENTITY phgr "φ">
-<!ENTITY b.iota "𝛊">
-<!ENTITY ETH "Ð">
-<!ENTITY trade "™">
-<!ENTITY Cup "⋓">
-<!ENTITY subnE "⫋">
-<!ENTITY PHgr "Φ">
-<!ENTITY xi "ξ">
-<!ENTITY Rcy "Р">
-<!ENTITY ggr "γ">
-<!ENTITY Lmidot "Ŀ">
-<!ENTITY Scirc "Ŝ">
-<!ENTITY rtrif "▸">
-<!ENTITY larrtl "↢">
-<!ENTITY eDot "≑">
-<!ENTITY boxVL "╣">
-<!ENTITY THgr "Θ">
-<!ENTITY Dstrok "Đ">
-<!ENTITY cent "¢">
-<!ENTITY odash "⊝">
-<!ENTITY boxUl "╜">
-<!ENTITY ape "≊">
-<!ENTITY gEl "⪌">
-<!ENTITY nltri "⋪">
-<!ENTITY Aacute "Á">
-<!ENTITY cuvee "⋎">
-<!ENTITY gnE "≩">
-<!ENTITY kgr "κ">
-<!ENTITY iogon "į">
-<!ENTITY rarrtl "↣">
-<!ENTITY b.phi "𝛗">
-<!ENTITY sccue "≽">
-<!ENTITY IOcy "Ё">
-<!ENTITY sext "✶">
-<!ENTITY uplus "⊎">
-<!ENTITY ecolon "≕">
-<!ENTITY nlArr "⇍">
-<!ENTITY scap "⪸">
-<!ENTITY rarrlp "↬">
-<!ENTITY ngE "≧̸">
-<!ENTITY nsim "≁">
-<!ENTITY Acy "А">
-<!ENTITY emacr "ē">
-<!ENTITY Jcirc "Ĵ">
-<!ENTITY ltimes "⋉">
-<!ENTITY Bcy "Б">
-<!ENTITY b.Sigma "𝚺">
-<!ENTITY cup "∪">
-<!ENTITY fork "⋔">
-<!ENTITY frac25 "⅖">
-<!ENTITY setmn "∖">
-<!ENTITY bsol "\">
-<!ENTITY Ycy "Ы">
-<!ENTITY b.Phi "𝚽">
-<!ENTITY Gcedil "Ģ">
-<!ENTITY frac23 "⅔">
-<!ENTITY Iogon "Į">
-<!ENTITY blank "␣">
-<!ENTITY vprop "∝">
-<!ENTITY boxVR "╠">
-<!ENTITY ecy "э">
-<!ENTITY OHacgr "Ώ">
-<!ENTITY yen "¥">
-<!ENTITY hairsp " ">
-<!ENTITY plusdo "∔">
-<!ENTITY lvnE "≨︀">
-<!ENTITY boxUr "╙">
-<!ENTITY breve "˘">
-<!ENTITY rtimes "⋊">
-<!ENTITY gnap "⪊">
-<!ENTITY rtrie "⊵">
-<!ENTITY Mcy "М">
-<!ENTITY chi "χ">
-<!ENTITY tdot " ⃛">
-<!ENTITY PSgr "Ψ">
-<!ENTITY Umacr "Ū">
-<!ENTITY caret "⁁">
-<!ENTITY xutri "△">
-<!ENTITY CHcy "Ч">
-<!ENTITY djcy "ђ">
-<!ENTITY lambda "λ">
-<!ENTITY Tstrok "Ŧ">
-<!ENTITY puncsp " ">
-<!ENTITY Ll "⋘">
-<!ENTITY aacgr "ά">
-<!ENTITY xdtri "▽">
-<!ENTITY GJcy "Ѓ">
-<!ENTITY gdot "ġ">
-<!ENTITY sub "⊂">
-<!ENTITY mid "∣">
-<!ENTITY dzcy "џ">
-<!ENTITY igrave "ì">
-<!ENTITY Emacr "Ē">
-<!ENTITY Rcedil "Ŗ">
-<!ENTITY gt ">">
-<!ENTITY harr "↔">
-<!ENTITY larrlp "↫">
-<!ENTITY thgr "θ">
-<!ENTITY drarr "↘">
-<!ENTITY map "↦">
-<!ENTITY boxVh "╫">
-<!ENTITY ijlig "ij">
-<!ENTITY tcedil "ţ">
-<!ENTITY dlcrop "⌍">
-<!ENTITY prnsim "⋨">
-<!ENTITY ecir "≖">
-<!ENTITY rgr "ρ">
-<!ENTITY deg "°">
-<!ENTITY lap "⪅">
-<!ENTITY KJcy "Ќ">
-<!ENTITY Cdot "Ċ">
-<!ENTITY Uogon "Ų">
-<!ENTITY not "¬">
-<!ENTITY dash "‐">
-<!ENTITY nexist "∄">
-<!ENTITY Lt "≪">
-<!ENTITY b.Upsi "𝚼">
-<!ENTITY Atilde "Ã">
-<!ENTITY edot "ė">
-<!ENTITY Ncedil "Ņ">
-<!ENTITY els "⪕">
-<!ENTITY erDot "≓">
-<!ENTITY boxVl "╢">
-<!ENTITY scy "с">
-<!ENTITY ulcorn "⌜">
-<!ENTITY eacgr "έ">
-<!ENTITY Itilde "Ĩ">
-<!ENTITY Zacute "Ź">
-<!ENTITY xharr "⟷">
-<!ENTITY gl "≷">
-<!ENTITY chcy "ч">
-<!ENTITY Oacute "Ó">
-<!ENTITY itilde "ĩ">
-<!ENTITY Ycirc "Ŷ">
-<!ENTITY nhArr "⇎">
-<!ENTITY Lstrok "Ł">
-<!ENTITY divide "÷">
-<!ENTITY Tcy "Т">
-<!ENTITY Jukcy "Є">
-<!ENTITY Yacute "Ý">
-<!ENTITY boxv "│">
-<!ENTITY hamilt "ℋ">
-<!ENTITY nu "ν">
-<!ENTITY ngt "≯">
-<!ENTITY jsercy "ј">
-<!ENTITY uml "¨">
-<!ENTITY KHgr "Χ">
-<!ENTITY lstrok "ł">
-<!ENTITY nsupE "⫆̸">
-<!ENTITY dtrif "▾">
-<!ENTITY vellip "⋮">
-<!ENTITY rceil "⌉">
-<!ENTITY ell "ℓ">
-<!ENTITY Ecy "Э">
-<!ENTITY Jsercy "Ј">
-<!ENTITY ljcy "љ">
-<!ENTITY Kgr "Κ">
-<!ENTITY ngr "ν">
-<!ENTITY sigmav "ς">
-<!ENTITY Gdot "Ġ">
-<!ENTITY rdquor "”">
-<!ENTITY prnap "⪹">
-<!ENTITY tcy "т">
-<!ENTITY frac12 "½">
-<!ENTITY telrec "⌕">
-<!ENTITY vdash "⊢">
-<!ENTITY Zgr "Ζ">
-<!ENTITY Auml "Ä">
-<!ENTITY Ocirc "Ô">
-<!ENTITY uogon "ų">
-<!ENTITY hArr "⇔">
-<!ENTITY nge "≱">
-<!ENTITY iacute "í">
-<!ENTITY Cacute "Ć">
-<!ENTITY Omacr "Ō">
-<!ENTITY equiv "≡">
-<!ENTITY vltri "⊲">
-<!ENTITY eta "η">
-<!ENTITY SHcy "Ш">
-<!ENTITY lowbar "_">
-<!ENTITY percnt "%">
-<!ENTITY frac16 "⅙">
-<!ENTITY lrarr2 "⇆">
-<!ENTITY nles "⩽̸">
-<!ENTITY bump "≎">
-<!ENTITY veebar "⊻">
-<!ENTITY Wcirc "Ŵ">
-<!ENTITY frac15 "⅕">
-<!ENTITY bumpe "≏">
-<!ENTITY egrave "è">
-<!ENTITY frac14 "¼">
-<!ENTITY supe "⊇">
-<!ENTITY rfloor "⌋">
-<!ENTITY Dgr "Δ">
-<!ENTITY frac13 "⅓">
-<!ENTITY ge "≥">
-<!ENTITY boxVr "╟">
-<!ENTITY pgr "π">
-<!ENTITY kgreen "ĸ">
-<!ENTITY boxh "─">
-<!ENTITY Lambda "Λ">
-<!ENTITY ugrave "ù">
-<!ENTITY emsp13 " ">
-<!ENTITY becaus "∵">
-<!ENTITY sce "⪰">
-<!ENTITY grave "`">
-<!ENTITY zeta "ζ">
-<!ENTITY b.Theta "𝚯">
-<!ENTITY eth "ð">
-<!ENTITY Ouml "Ö">
-<!ENTITY check "✓">
-<!ENTITY hybull "⁃">
-<!ENTITY Gg "⋙">
-<!ENTITY Ccaron "Č">
-<!ENTITY plus "+">
-<!ENTITY fllig "fl">
-<!ENTITY forall "∀">
-<!ENTITY dcaron "ď">
-<!ENTITY gacute "ǵ">
-<!ENTITY sc "≻">
-<!ENTITY OHgr "Ω">
-<!ENTITY emsp14 " ">
-<!ENTITY hellip "…">
-<!ENTITY lhard "↽">
-<!ENTITY sstarf "⋆">
-<!ENTITY samalg "∐">
-<!ENTITY EEgr "Η">
-<!ENTITY rhov "ϱ">
-<!ENTITY b.epsi "𝛆">
-<!ENTITY lsquo "‘">
-]>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<book><!--<title>JBoss AS 5 Administration and Configuration Guide</title>-->
<bookinfo id="JBoss_Application_Server">
<title>JBoss Application Server 5.0.0</title>
@@ -1096,8 +119,7 @@
</listitem>
</itemizedlist>
</para>
-</preface>
- <preface id="About_Open_Source"><title>About Open Source</title>
+ <section id="About_Open_Source"><title>About Open Source</title>
<para>
The basic idea behind open source is very simple: When programmers can read, redistribute, and modify the source code for a piece of software, the software evolves. People improve it, people adapt it, people fix bugs. And this can happen at a speed that, if one is used to the slow pace of conventional software development, seems astonishing. Open Source is an often-misunderstood term relating to free software. The Open Source Initiative (OSI) web site provides a number of resources that define the various aspects of Open Source including an Open Source Definition at: <ulink url="http://www.opensource.org/docs/definition.html">http://www.opensource.org/docs/definition.html</ulink>. The following quote from the OSI home page summarizes the key aspects as they relate to JBoss nicely:
</para>
@@ -1110,8 +132,8 @@
<para>
Open source software is an idea whose time has finally come. For twenty years it has been building momentum in the technical cultures that built the Internet and the World Wide Web. Now it's breaking out into the commercial world, and that's changing all the rules. Are you ready?
</para>
-</blockquote></preface>
- <preface id="About_Professional_Open_Source"><title>About Professional Open Source</title>
+</blockquote></section>
+ <section id="About_Professional_Open_Source"><title>About Professional Open Source</title>
<para>
JBoss is the leader in the second generation of open source, which we have termed Professional Open Source. The Professional Open Source methodology is based on the following:
</para>
@@ -1144,8 +166,8 @@
</listitem>
</orderedlist>
</para>
-</preface>
- <section id="Book-We_Need_Feedback">
+</section>
+ <section id="We_Need_Feedback">
<title>Help Contribute</title>
<para>
If you find a typographical error in the <citetitle>Administration and Configuration Guide</citetitle>, or if you have thought of a way to make this manual better, we would love to hear from you! Please submit a report in JIRA: <ulink url="http://jira.jboss.com">http://jira.jboss.com</ulink> against the project <citetitle>JBoss Application Server</citetitle> and component <citetitle>Documentation</citetitle>.
@@ -1167,6 +189,10 @@
</para>
</section>
+</preface>
+<!-- <xi:include href="About_Open_Source.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="About_Professional_Open_Source.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="Feedback.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> -->
<chapter id="JBoss_AS5_Introduction">
<title>Introduction</title>
<para>
@@ -2303,10 +1329,8 @@
<title>Accessing the generated WSDL</title>
<para>A successfully deployed service endpoint will show up in the service endpoint manager. This is also where you find the links to the generated wsdl.</para>
<para>
-<programlisting> <![CDATA[
-http://yourhost:8080/jbossws/services
-]]> </programlisting>
-
+<screen>http://yourhost:8080/jbossws/services</screen>
+a
Note, it is also possible to generate the abstract contract off line using jbossw tools. For details of that please see <ulink url="http://jbws.dyndns.org/mediawiki/index.php?title=JAX-WS_User_Guide#Top_Down_.28Java_to_WSDL.29">#Top Down (Java to WSDL)</ulink></para>
</section>
<section>
@@ -6239,8 +5263,9 @@
<chapter id="jgroups"><title>JGroups</title>
<para>
- JGroups is a toolkit for reliable multicast communication. It can be used to create groups of processes whose members can send messages to each other. JGroups enables developers to create reliable multipoint (multicast) applications where reliability is a deployment issue. JGroups also relieves the application developer from implementing this logic themselves. This saves significant development time and allows for the application to be deployed in different environments without having to change code. The following are the key features of JGroup.
+ JBoss AS clustering is built on JGroups - a toolkit for reliable multicast communication between AS server nodes on an existing computer network. It can be used to create groups of processes whose members can send messages to each other. JGroups enables developers to create reliable multipoint (multicast) applications where reliability is a deployment issue. JGroups also relieves the application developer from implementing this logic themselves. This saves significant development time and allows for the application to be deployed in different environments without having to change code. The following are the key features of JGroup.
</para>
+
<orderedlist>
<listitem>
@@ -6302,6 +5327,165 @@
</section>
</chapter>
+ <chapter id="remoting"><title>Remoting</title>
+
+ <para>
+ The main objective of JBoss Remoting is to provide a single API for most network based invocations and related service that uses pluggable transports and data marshallers. The JBoss Remoting API provides the ability for making synchronous and asynchronous remote calls, push and pull callbacks, and automatic discovery of remoting servers. The intention is to allow for the addition of different transports to fit different needs, yet still maintain the same API for making the remote invocations and only requiring configuration changes, not code changes, to fit these different needs.
+ </para>
+ <para>
+ JBossRemoting is a standalone project but is included in the recent releases of the JBoss Application Server including AS5 and can be run as a service within the container as well. This chapter discusses the JBoss Remoting service configurations.
+ </para>
+
+<section><title>Summary of JBoss Remoting Features</title>
+ <para>
+ The features available with JBoss Remoting are:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis>Server identification</emphasis> – a simple url based identifier which allows for remoting servers to be identified and called upon.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>Pluggable transports</emphasis> – can use different protocol transports the same remoting API. Provided transports:
+ <itemizedlist>
+ <listitem>
+ <para>
+ Socket (SSL Socket)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ RMI (SSL RMI)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ HTTP(S)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Multiplex (SSL Multiplex)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Servlet (SSL Servlet)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ BiSocket (SSL BiSocket)
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>Pluggable data marshallers</emphasis> – can use different data marshallers and unmarshallers to convert the invocation payloads into desired data format for wire transfer.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>Pluggable serialization</emphasis> - can use different serialization implementations for data streams. Provided serialization implementations:
+ <itemizedlist>
+ <listitem>
+ <para>
+ Java serialization
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ JBoss serialization
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <emphasis>Automatic discovery</emphasis> – can detect remoting servers as they come on and off line. Provided detection implementations:
+ <itemizedlist>
+ <listitem>
+ <para>
+ Multicast
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ JNDI
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <emphasis>Server grouping</emphasis> – ability to group servers by logical domains, so only communicate with servers within specified domains.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>Callbacks</emphasis> – can receive server callbacks via push and pull models. Pull model allows for persistent stores and memory management.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>Asynchronous calls</emphasis> – can make asynchronous, or one way, calls to server.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>Local invocation</emphasis> – if making an invocation on a remoting server that is within the same process space, remoting will automatically make this call by reference, to improve performance.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>Remote classloading</emphasis> – allows for classes, such as custom marshallers, that do not exist within client to be loaded from server.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>Sending of streams</emphasis> – allows for clients to send input streams to server, which can be read on demand on the server.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>Clustering</emphasis> - seamless client failover for remote invocations.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>Connection failure notification</emphasis> - notification if client or server has failed
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>Data Compression</emphasis> - can use compression marshaller and unmarshaller for compresssion of large payloads.
+ </para>
+ </listitem>
+ </itemizedlist>
+
+
+ All the features within JBoss Remoting were created with ease of use and extensibility in mind. If you have a suggestion for a new feature or an improvement to a current feature, please log in our issue tracking system at <ulink url="http://jira.jboss.com"/>.
+ </para>
+
+</section>
+
+<section>
+ <title>JBoss Remoting Configuration in the JBoss Application Server</title>
+ <para>
+ As indicated earlier in this chapter, JBoss Remoting manages synchronous and asynchronous remote calls, push and pull callbacks, and automatic discovery of remoting servers. You can configure JBoss Remoting through the JBoss Messaging service configuration file <filename>JBOSS_HOME/server/<your_configuration>/deploy/messaging/remoting-service.xml</filename>.
+ </para>
+
+</section>
+
+</chapter>
<chapter><title>JBoss Messaging 1.4.1</title>
<para>JBoss Messaging is the new enterprise messaging system from JBoss. It is a complete rewrite of JBossMQ, the legacy JBoss JMS provider. It is the default JMS provider on JBoss AS 5. Production support is already available through JBoss EAP 4.3, and we offer developer support for JBoss 4.2.x.</para>
@@ -10720,7 +9904,220 @@
</section>
</chapter>
</part>
+ <part id="Perfomance" label="IV">
+ <title>Performance Tuning</title>
+ <chapter id="performance_tuning">
+ <title>JBoss AS 5 Performance Tuning</title>
+<section>
+ <title>Introduction</title>
+
+<para>
+ Developing applications and deploying them to an application server does not guarantee best performance without performance tuning of the applications and server.
+ Performance tuning involves ensuring your application does not consume resources unnecessarily while ensures best performance of the applications and application server.
+</para>
+<para>
+ Application design, hardware/network profile, operating system, application software development, testing and deployment all play a major role in performance tuning. A bottleneck in performance therefore could be caused by these factors not just your application. Recent studies show that most performance problems are the result of the applications not the middleware or the operating systems. This could be associated with the technological developments in computer software, hardware and networking which has increased their reliability.
+</para>
+<para>
+ Improvement of application design and undertaking performance review of your applications before implementation is vital to avoiding bottlenecks after implementation. To undertake a performance review you need to setup a test environment undertake and analyse the test results. To effectively undertake a review, you also need to identify peak application workload times and the difference from normal workload periods. Peak workload times could be during the day, week, certain periods of the month, quarter or year. In understanding peaks workloads it is advisable not to go by averages as the peaks may be much more than the averages calculated over a period. The system requirements are bound by the peaks in the workload not the averages. On undertaking tuning it is recommended to carry out a few more tests and tuning of your system until a satisfactory performance is achieved.
+</para>
+</section>
+<section>
+ <title>Instrumentation</title>
+<para>
+ Applications should always be instrumented for performance analysis. In most cases, it is evident that performance requirements and peak workloads examined before production are incorrect compared to during production. Without instrumentation of your applications, you will lack accurate tracking data. Workloads on your applications can also change over time, as the business size, models or environment changes.
+</para>
+<para>
+ Instrumentation in the past would have had to be embedded in the application. Today, there are many solutions for instrumentation that do not require developers to code. Commercial products, and the JBoss AOP framework can be used for just this purpose. You can also turn on call statistics in the containers, and Hibernate statistics. For more on this please refer to the AOP and Hibernate project pages.
+</para>
+
+</section>
+
+<section>
+ <title>Tuning the JVM</title>
+<para>
+ For java based applications, it is recommended to also be familiar with tuning of your Java Virtual Machine (JVM). Some key aspects of your JVM that need tweaking include managing out of memory exceptions, java heap settings and garbage collection. Please refer to the JDK 5 documentation on <ulink url="http://java.sun.com/j2se/1.5.0/docs/">http://java.sun.com/j2se/1.5.0/docs/</ulink> for further discussions on this.
+</para>
+</section>
+
+<section>
+ <title>Tuning JBoss Application Server</title>
+<para>
+ Before tuning the JBoss Application Server, please ensure that you are familiar with its components outlined in the introduction section of this book. You should also be familiar with any particular services your application may use on the application server and tune them to improve performance. It is also important to establish optimal database connections used by your applications and set these on the application server. This section discusses these among other JBoss Application Server performance tuning topics.
+</para>
+<section>
+ <title>Database Connection</title>
+<para>
+ Database connections can be costly to establish and manage. Applications that create new connections to the database with every transaction or query and then close that connection add a great deal of overhead. Having a very small connection pool will also throttle the applications as the JBoss application server by default queues the request for a default of 30,000 milliseconds (30 seconds) before cancellation and throwing an exception.
+</para>
+<para>
+ We recommend reliance on data source definitions you can setup in the deploy directory of the JBoss application server and utilizing the connection pool settings. Connection pooling in the JBoss application server allows you to easily monitor your connection usage from the JMX console to determine proper sizing. Your database management system may also shipped with tools that allow you to monitor connections.
+</para>
+<para>
+ Depending on the databases implemented, please ensure you create a data source file in the deploy directory of your configuration as shown below:
+
+<screen><JBoss_Home>/server/<your_configuration>/deploy/</screen>
+
+The filename should be in the following formats:
+
+<screen><yourdatabasename>-ds.xml</screen>
+</para>
+
+<note><title>Note</title>
+ <para>
+ Please note that the name of the file must end with <filename>-ds.xml</filename> in order for the JBoss application server to recognize it as a <emphasis>data source file</emphasis>. The Hypersonic database data source file for example is named <filename>hsqldb-ds.xml</filename>.
+</para>
+</note>
+
+<para>
+ The example below is a sample Hypersonic database data source file. Please note that this file contains more comments or descriptions for the respective tags. For a full view of this file, and its comments, please refer to the <filename>hsqldb-ds.xml</filename> in the <filename>deploy</filename> directory of your configuration.
+</para>
+<note><title>More examples</title>
+ <para>More examples of datasource definition files for supported external databases can be found in the <literal><JBoss_Home>/docs/examples/jca</literal> directory.</para>
+</note>
+
+<programlisting role="XML">...
+<datasources>
+ <local-tx-datasource>
+
+ <!-- The jndi name of the DataSource, it is prefixed with java:/ -->
+ <!-- Datasources are not available outside the virtual machine -->
+ <jndi-name>DefaultDS</jndi-name>
+
+ <!-- For server mode db, allowing other processes to use hsqldb over tcp.
+ This requires the org.jboss.jdbc.HypersonicDatabase mbean.
+ <connection-url>jdbc:hsqldb:hsql://${jboss.bind.address}:1701</connection-url>
+ -->
+ <!-- For totally in-memory db, not saved when jboss stops.
+ The org.jboss.jdbc.HypersonicDatabase mbean is required for proper db shutdown
+ <connection-url>jdbc:hsqldb:.</connection-url>
+ -->
+ <!-- For in-process persistent db, saved when jboss stops.
+ The org.jboss.jdbc.HypersonicDatabase mbean is required for proper db shutdown
+ -->
+ <connection-url>jdbc:hsqldb:${jboss.server.data.dir}${/}hypersonic${/}localDB</connection-url>
+
+ <!-- The driver class -->
+ <driver-class>org.hsqldb.jdbcDriver</driver-class>
+
+ <!-- The login and password. Do not enter plain text for production databases. Please see Security section for more information -->
+ <user-name>sa</user-name>
+ <password></password>
+
+ <!--example of how to specify class that determines if exception means connection should be destroyed-->
+ <!--exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.DummyExceptionSorter</exception-sorter-class-name-->
+
+ <!-- this will be run before a managed connection is removed from the pool for use by a client-->
+ <!--<check-valid-connection-sql>select * from something</check-valid-connection-sql> -->
+
+ <!-- The minimum database connections managed in a pool/sub-pool. Pools are lazily constructed on first use -->
+ <min-pool-size>5</min-pool-size>
+
+ <!-- The maximum database connections managed in a pool/sub-pool -->
+ <max-pool-size>20</max-pool-size>
+
+ <!-- The time before an unused connection is destroyed -->
+ <!-- NOTE: This is the check period. It will be destroyed somewhere between 1x and 2x this timeout after last use -->
+ <!-- TEMPORARY FIX! - Disable idle connection removal, HSQLDB has a problem with not reaping threads on closed connections -->
+ <idle-timeout-minutes>0</idle-timeout-minutes>
+
+ <!-- sql to call when connection is created
+ <new-connection-sql>some arbitrary sql</new-connection-sql>
+ -->
+
+ <!-- sql to call on an existing pooled connection when it is obtained from pool
+ <check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql>
+ -->
+
+ <!-- example of how to specify a class that determines a connection is valid before it is handed out from the pool
+ <valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.DummyValidConnectionChecker</valid-connection-checker-class-name>
+ -->
+
+ <!-- Whether to check all statements are closed when the connection is returned to the pool,
+ this is a debugging feature that should be turned off in production -->
+ <track-statements/>
+
+ <!-- Use the getConnection(user, pw) for logins
+ <application-managed-security/>
+ -->
+
+ <!-- Use the security domain defined in conf/login-config.xml -->
+ <security-domain>HsqlDbRealm</security-domain>
+
+ <!-- Use the security domain defined in conf/login-config.xml or the
+ getConnection(user, pw) for logins. The security domain takes precedence.
+ <security-domain-and-application>HsqlDbRealm</security-domain-and-application>
+ -->
+
+ <!-- HSQL DB benefits from prepared statement caching which stores recent prepared statements for future use. The prepared-statement-cache-size indicates the number of prepared statements to store in the cache. -->
+ <prepared-statement-cache-size>32</prepared-statement-cache-size>
+
+ <!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
+ <metadata>
+ <type-mapping>Hypersonic SQL</type-mapping>
+ </metadata>
+
+ <!-- When using in-process (standalone) mode -->
+ <depends>jboss:service=Hypersonic,database=localDB</depends>
+ <!-- Uncomment when using hsqldb in server mode
+ <depends>jboss:service=Hypersonic</depends>
+ -->
+ </local-tx-datasource>
+
+ <!-- Uncomment if you want hsqldb accessed over tcp (server mode)
+ <mbean code="org.jboss.jdbc.HypersonicDatabase"
+ name="jboss:service=Hypersonic">
+ <attribute name="Port">1701</attribute>
+ <attribute name="BindAddress">${jboss.bind.address}</attribute>
+ <attribute name="Silent">true</attribute>
+ <attribute name="Database">default</attribute>
+ <attribute name="Trace">false</attribute>
+ <attribute name="No_system_exit">true</attribute>
+ </mbean>
+ -->
+
+ <!-- For hsqldb accessed from jboss only, in-process (standalone) mode -->
+ <mbean code="org.jboss.jdbc.HypersonicDatabase"
+ name="jboss:service=Hypersonic,database=localDB">
+ <attribute name="Database">localDB</attribute>
+ <attribute name="InProcessMode">true</attribute>
+</mbean>
+
+</datasources>
+</programlisting>
+
+ </section>
+
+ <section>
+ <title>Other key configurations</title>
+<para>
+ Other key configurations required for performance tuning of your application server include the <filename><JBoss_Home>/server/<your_configuration>/deployers/jbossweb.deployer/server.xml</filename> file that sets your HTTP requests pool.
+</para>
+<para>
+ JBoss AS 5 has a robust thread pooling, that should be sized appropriately.
+ The server has a <filename>jboss-service.xml</filename> file in the <filename><JBoss_Home>/server/<your_configuration>/conf</filename> directory that defines the system thread pool.
+ There is a setting that defines the behavior if there isn't a thread available in the pool for execution. The default is to allow the calling thread to execute the task. You can monitor the queue depth of the system thread pool through the JMX Console, and determine from that if you need to make the pool larger.
+</para>
+
+<para>
+ The <literal>default</literal> configuration is appropriate for development, but not necessarily for a production environment. In the default configuration, console logging is enabled. Console logging is ideal for development, especially within the IDE, as you get all the log messages to show in the IDE console view.
+ In a production environment, console logging is very expensive and is not recommended.
+ Turn down the verbosity level of logging if its not necessary. Please note that the less you log, the less I/O will be generated, and the better the overall throughput will be.
+</para>
+
+<para>
+ Other performance tuning aspects include Caching, Clustering and Replication which are discussed in the respective Chapters in this book.
+</para>
+
+</section>
+
+</section>
+
+
+
+</chapter>
+ </part>
<appendix id="alternative_DBs">
<title>Use Alternative Databases with JBoss AS</title>
<section>
@@ -10737,7 +10134,7 @@
<section>
<title>Install JDBC Drivers</title>
- <para>For the JBoss Application Server and our applications to use the external database, we also need to install the database's JDBC driver. The JDBC driver is a JAR file, which you'll need to copy into your JBoss AS's <literal>jboss-as/server/production/lib</literal> directory. Replace <literal>production</literal> with the server configuration you are using if needed. This file is loaded when JBoss starts up. So if you have the JBoss AS running, you'll need to shut down and restart. The availability of JDBC drivers for different databases are as follows.
+ <para>For the JBoss Application Server and our applications to use the external database, we also need to install the database's JDBC driver. The JDBC driver is a JAR file, which you'll need to copy into your JBoss AS's <literal><JBoss_Home>/server/all/lib</literal> directory. Replace <literal>all</literal> with the server configuration you are using if needed. This file is loaded when JBoss starts up. So if you have the JBoss AS running, you'll need to shut down and restart. The availability of JDBC drivers for different databases are as follows.
</para>
@@ -10812,9 +10209,9 @@
<section>
<title>Creating a DataSource for the External Database</title>
- <para>JBoss AS connects to relational databases via datasources. These datasource definitions can be found in the <literal>jboss-as/server/production/deploy</literal> directory. The datasource definitions are deployable just like WAR and EAR files. The datasource files can be recognized by looking for the XML files that end in <literal>*-ds.xml</literal>.</para>
+ <para>JBoss AS connects to relational databases via datasources. These datasource definitions can be found in the <literal><JBoss_Home>/server/all/deploy</literal> directory. The datasource definitions are deployable just like WAR and EAR files. The datasource files can be recognized by looking for the XML files that end in <literal>*-ds.xml</literal>.</para>
- <para>The datasource definition files for all supported external databases can be found in the <literal>jboss-as/docs/examples/jca</literal> directory.</para>
+ <para>The datasource definition files for all supported external databases can be found in the <literal><JBoss_Home>/docs/examples/jca</literal> directory.</para>
<itemizedlist>
<listitem><para>MySQL: <literal>mysql-ds.xml</literal></para></listitem>
@@ -10862,14 +10259,14 @@
]]>
</programlisting>
- <para>Once you customized the <literal>*-ds.xml</literal> file to connect to your external database, you need to copy it to the <literal>jboss-as/server/production/deploy</literal> directory. The database connection is now available through the JNDI name specified in the <literal>*-ds.xml</literal> file.</para>
+ <para>Once you customized the <literal>*-ds.xml</literal> file to connect to your external database, you need to copy it to the <literal><JBoss_Home>/server/all/deploy</literal> directory. The database connection is now available through the JNDI name specified in the <literal>*-ds.xml</literal> file.</para>
</section>
<section>
<title>Change Database for the JMS Services</title>
- <para>The JMS service in the JBoss AS uses relational databases to persist its messages. For improved performance, we should change the JMS service to take advantage of the external database. To do that, we need to replace the file <literal>jboss-as/server/production/deploy/jms-singleton/hsqldb-jdbc2-service.xml</literal> with a file in <literal>jboss-as/docs/examples/jms/</literal> depending on your external database. Notice that if you are using the <literal>default</literal> server profile, the file path is <literal>jboss-as/server/default/deploy/jms/hsqldb-jdbc2-service.xml</literal>.</para>
+ <para>The JMS service in the JBoss AS uses relational databases to persist its messages. For improved performance, we should change the JMS service to take advantage of the external database. To do that, we need to replace the file <literal><JBoss_Home>/server/all/deploy/jms-singleton/hsqldb-jdbc2-service.xml</literal> with a file in <literal><JBoss_Home>/docs/examples/jms/</literal> depending on your external database. Notice that if you are using the <literal>default</literal> server profile, the file path is <literal><JBoss_Home>/server/default/deploy/jms/hsqldb-jdbc2-service.xml</literal>.</para>
<itemizedlist>
<listitem><para>MySQL: <literal>mysql-jdbc2-service.xml</literal></para></listitem>
@@ -10890,7 +10287,7 @@
<section>
<title>Support Foreign Keys in CMP Services</title>
- <para>Next, we need to go change the <literal>jboss-as/server/production/conf/standardjbosscmp-jdbc.xml</literal> file so that the <literal>fk-constraint</literal> property is <literal>true</literal>. That is needed for all external databases we support on the JBoss Application Server. This file configures the database connection settings for the EJB2 CMP beans deployed in the JBoss AS.</para>
+ <para>Next, we need to go change the <literal><JBoss_Home>/server/all/conf/standardjbosscmp-jdbc.xml</literal> file so that the <literal>fk-constraint</literal> property is <literal>true</literal>. That is needed for all external databases we support on the JBoss Application Server. This file configures the database connection settings for the EJB2 CMP beans deployed in the JBoss AS.</para>
<programlisting>
<![CDATA[
@@ -10903,7 +10300,7 @@
<section>
<title>Specify Database Dialect for Java Persistence API</title>
- <para>The Java Persistence API (JPA) entity manager can save EJB3 entity beans to any backend database. Hibernate provides the JPA implementation in JBoss AS. Hibernate has a dialect auto-detection mechanism that works for most databases including the dialects for databases referenced in this appendix which are listed below. If a specific dialect is needed for alternative databases, you can configure the database dialect in the <varname>jboss-as/server/production/deploy/ejb3.deployer/META-INF/persistence.properties</varname> file. You need to un-comment the <varname>hibernate.dialect</varname> property and change its value to the following based on the database you setup. For a complete list of dialects, refer to the Hibernate Reference Guide, Chapter 3, Section 4.1 SQL Dialects.</para>
+ <para>The Java Persistence API (JPA) entity manager can save EJB3 entity beans to any backend database. Hibernate provides the JPA implementation in JBoss AS. Hibernate has a dialect auto-detection mechanism that works for most databases including the dialects for databases referenced in this appendix which are listed below. If a specific dialect is needed for alternative databases, you can configure the database dialect in the <varname><JBoss_Home>/server/all/deploy/ejb3.deployer/META-INF/persistence.properties</varname> file. You need to un-comment the <varname>hibernate.dialect</varname> property and change its value to the following based on the database you setup. For a complete list of dialects, refer to the Hibernate Reference Guide, Chapter 3, Section 4.1 SQL Dialects.</para>
<itemizedlist>
<listitem><para>Oracle 9i: org.hibernate.dialect.Oracle9iDialect</para></listitem>
@@ -10944,7 +10341,7 @@
The easy way is just to change the JNDI name for the external database to <literal>DefaultDS</literal>. Most JBoss services are hard-wired to use the <literal>DefaultDS</literal> by default. So, by changing the datasource name, we do not need to change the configuration for each service individually.
</para>
<para>
- To change the JNDI name, just open the <literal>*-ds.xml</literal> file for your external database, and change the value of the <literal>jndi-name</literal> property to <literal>DefaultDS</literal>. For instance, in <literal>mysql-ds.xml</literal>, you'd change MySqlDS to DefaultDS and so on. You will need to remove the <literal>jboss-as/server/production/deploy/hsqldb-ds.xml</literal> file after you are done to avoid duplicated <literal>DefaultDS</literal> definition.
+ To change the JNDI name, just open the <literal>*-ds.xml</literal> file for your external database, and change the value of the <literal>jndi-name</literal> property to <literal>DefaultDS</literal>. For instance, in <literal>mysql-ds.xml</literal>, you'd change MySqlDS to DefaultDS and so on. You will need to remove the <literal><JBoss_Home>/server/all/deploy/hsqldb-ds.xml</literal> file after you are done to avoid duplicated <literal>DefaultDS</literal> definition.
</para>
<para>
In the <literal>jms/*-jdbc2-service.xml</literal> file, you should also change the datasource name in the <literal>depends</literal> tag for the <literal>PersistenceManagers</literal> MBean to <literal>DefaultDS</literal>. For instance, for <literal>mysql-jdbc2-service.xml</literal> file, we change the <literal>MySqlDS</literal> to <literal>DefaultDS</literal>.
@@ -10955,7 +10352,7 @@
<para>The easy way is just to change the JNDI name for the external database to <literal>DefaultDS</literal>. Most JBoss services are hard-wired to use the <literal>DefaultDS</literal> by default. So, by changing the datasource name, we do not need to change the configuration for each service individually.</para>
- <para>To change the JNDI name, just open the <literal>*-ds.xml</literal> file for your external database, and change the value of the <literal>jndi-name</literal> property to <literal>DefaultDS</literal>. For instance, in <literal>mysql-ds.xml</literal>, you'd change <literal>MySqlDS</literal> to <literal>DefaultDS</literal> and so on. You will need to remove the <literal>jboss-as/server/production/deploy/hsqldb-ds.xml</literal> file after you are done to avoid duplicated <literal>DefaultDS</literal> definition.</para>
+ <para>To change the JNDI name, just open the <literal>*-ds.xml</literal> file for your external database, and change the value of the <literal>jndi-name</literal> property to <literal>DefaultDS</literal>. For instance, in <literal>mysql-ds.xml</literal>, you'd change <literal>MySqlDS</literal> to <literal>DefaultDS</literal> and so on. You will need to remove the <literal><JBoss_Home>/server/all/deploy/hsqldb-ds.xml</literal> file after you are done to avoid duplicated <literal>DefaultDS</literal> definition.</para>
<para>In the <literal>jms/*-jdbc2-service.xml</literal> file, you should also change the datasource name in the <literal>depends</literal> tag for the <literal>PersistenceManagers</literal> MBean to <literal>DefaultDS</literal>. For instance, for <literal>mysql-jdbc2-service.xml</literal> file, we change the <literal>MySqlDS</literal> to <literal>DefaultDS</literal>.</para>
@@ -10981,25 +10378,25 @@
<para>A safer and more flexible way to hook up JBoss AS services with the external datasource is to manually change the <literal>DefaultDS</literal> in all standard JBoss services to the datasource JNDI name defined in your <literal>*-ds.xml</literal> file (e.g., the <literal>MySqlDS</literal> in <literal>mysql-ds.xml</literal> etc.). Below is a complete list of files that contain <literal>DefaultDS</literal>. You can update them all to use the external database on all JBoss services or update some of them to use different combination of datasources for different services.</para>
<itemizedlist>
- <listitem><para><literal>jboss-as/server/production/conf/login-config.xml</literal>: This file is used in Java EE container managed security services.</para></listitem>
+ <listitem><para><literal><JBoss_Home>/server/all/conf/login-config.xml</literal>: This file is used in Java EE container managed security services.</para></listitem>
- <listitem><para><literal>jboss-as/server/production/conf/standardjbosscmp-jdbc.xml</literal>: This file configures the CMP beans in the EJB container.</para></listitem>
+ <listitem><para><literal><JBoss_Home>/server/all/conf/standardjbosscmp-jdbc.xml</literal>: This file configures the CMP beans in the EJB container.</para></listitem>
- <listitem><para><literal>jboss-as/server/production/deploy/ejb-deployer.xml</literal>: This file configures the JBoss EJB deployer.</para></listitem>
+ <listitem><para><literal><JBoss_Home>/server/all/deploy/ejb-deployer.xml</literal>: This file configures the JBoss EJB deployer.</para></listitem>
- <listitem><para><literal>jboss-as/server/production/deploy/schedule-manager-service.xml</literal>: This file configures the EJB timer services.</para></listitem>
+ <listitem><para><literal><JBoss_Home>/server/all/deploy/schedule-manager-service.xml</literal>: This file configures the EJB timer services.</para></listitem>
- <listitem><para><literal>jboss-as/server/production/deploy/snmp-adaptor.sar/attributes.xml</literal>: This file is used by the SNMP service.</para></listitem>
+ <listitem><para><literal><JBoss_Home>/server/all/deploy/snmp-adaptor.sar/attributes.xml</literal>: This file is used by the SNMP service.</para></listitem>
- <listitem><para><literal>jboss-as/server/production/deploy/juddi-service.sar/META-INF/jboss-service.xml</literal>: This file configures the UUDI service.</para></listitem>
+ <listitem><para><literal><JBoss_Home>/server/all/deploy/juddi-service.sar/META-INF/jboss-service.xml</literal>: This file configures the UUDI service.</para></listitem>
- <listitem><para><literal>jboss-as/server/production/deploy/juddi-service.sar/juddi.war/WEB-INF/jboss-web.xml</literal>: This file configures the UUDI service.</para></listitem>
+ <listitem><para><literal><JBoss_Home>/server/all/deploy/juddi-service.sar/juddi.war/WEB-INF/jboss-web.xml</literal>: This file configures the UUDI service.</para></listitem>
- <listitem><para><literal>jboss-as/server/production/deploy/juddi-service.sar/juddi.war/WEB-INF/juddi.properties</literal>: This file configures the UUDI service.</para></listitem>
+ <listitem><para><literal><JBoss_Home>/server/all/deploy/juddi-service.sar/juddi.war/WEB-INF/juddi.properties</literal>: This file configures the UUDI service.</para></listitem>
- <listitem><para><literal>jboss-as/server/production/deploy/uuid-key-generator.sar/META-INF/jboss-service.xml</literal>: This file configures the UUDI service.</para></listitem>
+ <listitem><para><literal><JBoss_Home>/server/all/deploy/uuid-key-generator.sar/META-INF/jboss-service.xml</literal>: This file configures the UUDI service.</para></listitem>
- <listitem><para><literal>jboss-as/server/production/jms/hsqldb-jdbc-state-service.xml</literal> and <literal>jboss-as/server/all/deploy-hasingleton/jms/hsqldb-jdbc-state-service.xml</literal>: Those files configure the JMS persistence service as we discussed earlier.</para></listitem>
+ <listitem><para><literal><JBoss_Home>/server/all/jms/hsqldb-jdbc-state-service.xml</literal> and <literal><JBoss_Home>/server/all/deploy-hasingleton/jms/hsqldb-jdbc-state-service.xml</literal>: Those files configure the JMS persistence service as we discussed earlier.</para></listitem>
</itemizedlist>
@@ -11012,7 +10409,7 @@
<para>In our setup discussed in this chapter, we rely on the JBoss AS to automatically create needed tables in the external database upon server startup. That works most of the time. But for databases like Oracle, there might be some minor issues if you try to use the same database server to back more than one JBoss AS instance.</para>
- <para>The Oracle database creates tables of the form <literal>schemaname.tablename</literal>. The <literal>TIMERS</literal> and <literal>HILOSEQUENCES</literal> tables needed by JBoss AS would not get created on a schema if the table already exists on a different schema. To work around this issue, you need to edit the <literal>jboss-as/server/production/deploy/ejb-deployer.xml</literal> file to change the table name from <literal>TIMERS</literal> to something like <literal>schemaname2.tablename</literal>.</para>
+ <para>The Oracle database creates tables of the form <literal>schemaname.tablename</literal>. The <literal>TIMERS</literal> and <literal>HILOSEQUENCES</literal> tables needed by JBoss AS would not get created on a schema if the table already exists on a different schema. To work around this issue, you need to edit the <literal><JBoss_Home>/server/all/deploy/ejb-deployer.xml</literal> file to change the table name from <literal>TIMERS</literal> to something like <literal>schemaname2.tablename</literal>.</para>
<programlisting>
<![CDATA[
@@ -11033,7 +10430,7 @@
]]>
</programlisting>
- <para>Similarly, you need to change the <literal>jboss-as/server/production/deploy/uuid-key-generator.sar/META-INF/jboss-service.xml</literal> file to change the table name from <literal>HILOSEQUENCES</literal> to something like <literal>schemaname2.tablename</literal> as well.</para>
+ <para>Similarly, you need to change the <literal><JBoss_Home>/server/all/deploy/uuid-key-generator.sar/META-INF/jboss-service.xml</literal> file to change the table name from <literal>HILOSEQUENCES</literal> to something like <literal>schemaname2.tablename</literal> as well.</para>
<programlisting>
<![CDATA[
Modified: projects/docs/community/5/Administration_And_Configuration_Guide/pom.xml
===================================================================
--- projects/docs/community/5/Administration_And_Configuration_Guide/pom.xml 2008-07-04 00:27:45 UTC (rev 75363)
+++ projects/docs/community/5/Administration_And_Configuration_Guide/pom.xml 2008-07-04 02:17:48 UTC (rev 75364)
@@ -48,7 +48,7 @@
<!-- <format>
<formatName>pdf</formatName>
<stylesheetResource>classpath:/xslt/org/jboss/main-pdf.xsl</stylesheetResource>
- <finalName>Installation_Guide.pdf</finalName>
+ <finalName>Administration_And_Configuration_Guide.pdf</finalName>
</format> -->
<format>
<formatName>html</formatName>
@@ -57,7 +57,7 @@
</format>
<format>
- <formatName>html_single</formatName>
+ <formatName>html-single</formatName>
<stylesheetResource>classpath:/xslt/org/jboss/nochunk-html.xsl</stylesheetResource>
<finalName>index.html</finalName>
</format>
More information about the jboss-cvs-commits
mailing list