<?xml version="1.0" encoding="ISO-8859-1"?>

<!-- Copyright 2006 The Apache Software Foundation Licensed under the Apache 
	License, Version 2.0 (the "License"); you may not use this file except in 
	compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 
	Unless required by applicable law or agreed to in writing, software distributed 
	under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES 
	OR CONDITIONS OF ANY KIND, either express or implied. See the License for 
	the specific language governing permissions and limitations under the License. -->


<document>

	<properties>
		<title>Apache Derby Configuration</title>
		<author email="sebawagner@incubator.apache.org">
			Apache OpenMeetings Documentation Team
		</author>
	</properties>

	<body>
		<section name="Apache Derby Configuration">

			<p>
				OpenMeetings default configuration is to use Apache Derby.
			</p>

			<p>
				It is recommended for production environments and high
				availibility to change to an usual relational database like MySQL,
				Postgres or DB2.
			</p>
			<p>
				For more information about Apache Derby see
				<a href="http://db.apache.org/derby/">http://db.apache.org/derby/</a>
			</p>

			<p>
				There is a sample configuration for Apache Derby that ships with
				every release in:
				<br />
				/webapps/openmeetings/WEB-INF/classes/META-INF/derby_persistence.xml
			</p>

			<p>
				If you encounter issues, you can drop the db again and delete the
				file /webapps/openmeetings/conf/install.xml and then run the web
				based installer again
			</p>

		</section>

	</body>

</document>
