Microsoft SQL Server Installation

This has been tested on MSSQL 2000 and MSSQL 2005 (text types are only deprecated in MSSQL 2005, this tutorial won't work when they'll be dropped)

Case-insensitive search does not work with this database; see below for more info. You may want to use the the Lucene search

Create the xwiki user and database

  • Use the Enterprise Manager to create a database named 'XWiki' and a user named 'xwiki'.
  • Set xwiki's password to 'xwiki'.
  • Give database ownership of the database XWiki to the user xwiki.

Install the JDBC driver

  • Download the jtds jdbc driver and install the jar file into your servers lib directory (for JBoss this could be server
    , for Tomcat this might be common

The connection was successfully tested with version 1.2.1 of the driver and version 1.5 of XWiki. Some problems occurred when using drivers > 1.2.1 so it might be better to use the old one. 

XWiki configuration

  • Tell XWiki to use MSSQL. To do this, edit the WEB-INF/hibernate.cfg.xml file. Replace the matching properties with the following ones (or uncomment them if they are present):
<property name="connection.url">jdbc:jtds:sqlserver://<server-url>:1433/XWiki;tds=8.0;lastupdatecount=true</property>
    <property name="connection.username">xwiki</property>
    <property name="connection.password">xwiki</property>
    <property name="connection.driver_class">net.sourceforge.jtds.jdbc.Driver</property>
    <property name="dialect">org.hibernate.dialect.SQLServerDialect</property>
    <property name="connection.provider_class"></property>
    <property name="connection.pool_size">2</property>
    <property name="statement_cache.size">2</property>
    <mapping resource="xwiki.mssql.hbm.xml"/>
    <mapping resource="feeds.hbm.xml"/>

Fix search function

If you try to do a search, via WebSearch, you will get an error. This is because the UPPER() function doesn not work on TEXT or NTEXT as used by MSSQL 2000 for blobs. The only solution I have found is to remove all the calls to upper() in WebSearch. This is however not very practical, because it makes search case-sensitive.

Alternatively, you may want to use the Lucene search instead of the default search.


Get Connected