<?xml version="1.0" encoding="UTF-8"?>
<!--
   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 xmlns="http://maven.apache.org/XDOC/2.0"
		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
		xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 http://maven.apache.org/xsd/xdoc-2.0.xsd">
	<properties>
		<title>MSSQL Configuration</title>
		<author email="dev@openmeetings.apache.org">Apache OpenMeetings Team</author>
	</properties>
	<body>
		<section name="MSSQL Configuration">
			<subsection name="Before you start">
				<ul>
					<li>You need Openmeetings 2.2 or later to use MSSQL integration</li>
					<li>Make sure that you have set utf8 as collation for the openmeetings database
						before you start the installation process of OpenMeetings!
					</li>
					<li>
						make sure MSSQL is listening on TCP/IP connections! and username/password
						authentication is enabled for it
						<br />
						To verify if MSSQL connection is working: OpenMeetings will
						automatically create all tables in the database and all tables
						should have utf8 as encoding/collation!
					</li>
					<li>If you encounter issues, you can drop the db and then run
						the web based installer again
					</li>
				</ul>
			</subsection>
			<subsection name="Steps todo">
				<ul>
					<li>
						Run OpenMeetings and goto the web-based installer:
						https://localhost:5443/openmeetings/install
					</li>
				</ul>
			</subsection>
			<subsection name="MSSQL Sample Configuration">
				<p>
					There is a sample configuration for MySQL that ships with
					every release in:
					<br />
					/webapps/openmeetings/WEB-INF/classes/META-INF/mssql_persistence.xml
				</p>
			</subsection>
		</section>
	</body>
</document>
