Microsoft SQL Server Installation

This has been 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.3.1 of XWiki. Some problems occurred when using drivers > 1.2.1 so it might be better to use the old one. 

When compiling from source

When using a downloaded .war

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