Documentation for Crowd 1.0. Documentation for other versions of Crowd is available too.

To connect Crowd to MS SQL Server,

1. Configure SQL Server

  1. Create a database user which Crowd will connect as (e.g. crowduser).

    In SQL Server, the database user (crowduser above) should not be the database owner, but should be in the db_owner role.

  2. Create a database for Crowd to store data in (e.g. crowddb).
  3. Ensure that the user has permission to connect to the database, and create and populate tables

2. Copy the SQL Server driver to your application server

  1. Download the SQL Server JDBC driver from JTDS (recommended, assumed below), or I-net software (commercial).

    Microsoft have their own JDBC driver but we strongly recommend avoiding it after our JIRA customers have reported various connection errors (JRA-5760, [JRA-6872|http://jira.atlassian.com/browse/JRA-6872), workflow problems (JRA-8443) and Chinese character problems (JRA-5054).

  2. Add the SQL Server JDBC driver jar (jtds-[version].jar) to the common/lib directory.

3. Configure your application server to connect to SQL Server

  1. Edit the conf/Catalina/localhost/crowd.xml and customise the username, password, driverClassName and url parameters for the Datasource.
    <Context path="/crowd" docBase="../../crowd-webapp" debug="0">
    
        <Resource name="jdbc/CrowdDS" auth="Container" type="javax.sql.DataSource"
                  username="[enter db username here]"
                  password="[enter db password here]"
                  driverClassName="net.sourceforge.jtds.jdbc.Driver"
                  url="jdbc:jtds:sqlserver://localhost:1433/crowddb"
                  [ delete the minEvictableIdleTimeMillis, timeBetweenEvictionRunsMillis and maxActive params here ]
                />
    
        <Manager className="org.apache.catalina.session.PersistentManager" saveOnRestart="false"/>
    
    </Context>
    
  2. Delete the minEvictableIdleTimeMillis, timeBetweenEvictionRunsMillis and maxActive attributes (which are only needed for HSQL, and degrade performance otherwise).

4. Configure Crowd to use MS SQL Server

  1. Edit the build.properties file located in the root of the standalone release and modify the hibernate.dialect to the following
    hibernate.dialect=org.hibernate.dialect.SQLServerDialect
    
  2. Then run the ./build.sh or build.bat, this will configure crowd to use the MS SQL Server dialect.

If you do not wish to edit this file and run the build script, you can edit the jdbc.properties (which the above script modifies) directly. The jdbc.properties file is located here: crowd-webapp\WEB-INF\classes\jdbc.properties; modify the file to the following:

# - Crowd Configuration Options

hibernate.connection.datasource=java\:comp/env/jdbc/CrowdDS
hibernate.dialect=org.hibernate.dialect.SQLServerDialect
hibernate.transaction.factory_class=org.hibernate.transaction.JDBCTransactionFactory

...

Next Steps

You should now have an application server configured to connect to a database, and Crowd configured to use the correct database. Now start up Crowd and watch the logs for any errors.

Related Topics