Skip to end of metadata
Go to start of metadata

These instructions explain how to set up the User Data Repository to use a relational database such as MySQL, Oracle or SQL Server.

Before starting, make sure you have installed SuperWEB2 and verified that it is working correctly.

Step 1 - Create the User Data Repository Database and Database User

The first step is to create a database for the User Data Repository in your chosen RDBMS. To complete this step you may need to install a suitable database server or obtain access to an existing database server:

  1. Create a new database. For example, you might call the database UDR_SuperWEB2.

    • Set the default character set of your database to UTF8. This will allow the User Data Repository to save tables containing the full range of unicode characters.
  2. Create a dedicated database user account and set the account password.

    • If you are using Oracle or DB2 then the username of the user you are using to connect to the database must be the same as the database schema
  3. Grant your new user account full privileges over your new database.

Step 2 - Install a JDBC Driver

JDBC (Java Database Connectivity) is a programming interface that lets Java applications access a relational database. You need to install a JDBC driver for your RDBMS, so that SuperWEB2 can communicate with the User Data Repository database.

  1. Download the appropriate JDBC driver for your database:

    RDBMSRecommended DriverExample of JAR FileDriver ClassDownload From
    MySQLConnector/Jmysql-connector-java-5.1.7-bin.jarcom.mysql.jdbc.Driverhttp://www.mysql.com/downloads/connector/j/
    Oracleojdbc6.jarojdbc6.jaroracle.jdbc.driver.OracleDriverhttp://www.oracle.com/technetwork/database/enterprise-edition/jdbc-112010-090769.html
    SQL ServerMicrosoft JDBC Driversqljdbc4.jarcom.microsoft.sqlserver.jdbc.SQLServerDriverhttp://www.microsoft.com/en-au/download/details.aspx?id=11774
    DB2DB2 JDBC Driverdb2jcc4.jarcom.ibm.db2.jcc.DB2Driverhttp://www-01.ibm.com/software/data/db2/linux-unix-windows/downloads.html
  2. Copy the driver .jar file to <tomcat_home>\lib. If you are using the standard Space-Time Research installation location, this will be C:\ProgramData\STR\SuperWEB2\Tomcat\lib

Step 3 - Configure the Data Source

The next step is to configure the data source by making changes to two configuration files: server.xml and context.xml.

server.xml

  1. Open the file <tomcat_home>\conf\server.xml in a text editor.
  2. Locate the <GlobalNamingResources> ... </GlobalNamingResources> section of the configuration:

    <GlobalNamingResources>
        <!-- Editable user database that can also be used by
             UserDatabaseRealm to authenticate users
        -->
        <Resource name="UserDatabase" auth="Container"
                  type="org.apache.catalina.UserDatabase"
                  description="User database that can be updated and saved"
                  factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
                  pathname="conf/tomcat-users.xml" />
    </GlobalNamingResources>
  3. Add the following section before the closing </GlobalNamingResources> tag:

    <Resource name="ds/superstar-udr" auth="Container"
              type="javax.sql.DataSource"
              maxActive="100"
              maxIdle="30"  
              maxWait="10000"  
              username="USERNAME"
              password="PASSWORD"
              driverClassName="CLASSNAME"  
              url="URL"/>
    

    You will need to customise this as follows:

    • Replace USERNAME and PASSWORD with the username and password of your new database user.
    • Replace CLASSNAME with the driver class for the database you are using (see the table above to find the correct value for your database driver).
    • Replace URL with the JDBC connection string for your database. Depending on the database you are using, you may need to include the schema you wish to use in the connection string; see the example below for more details.

    Following are some examples for the different database systems:

     Click here to see an example for MySQL...

    The following example is for MySQL. In this example:

    • mydatabasehost is the hostname of the machine running the MySQL database.
    • 3306 is the port number.
    • udr_superweb2 is the name of the new database we created in Step 1.
    <Resource name="ds/superstar-udr" auth="Container"
              type="javax.sql.DataSource"
              maxActive="100"
              maxIdle="30"  
              maxWait="10000"  
              username="udr_user"
              password="udr_password"
              driverClassName="com.mysql.jdbc.Driver"  
              url="jdbc:mysql://mydatabasehost:3306/udr_superweb2?useUnicode=true&amp;characterEncoding=UTF-8"/>
    

    It is important to include the useUnicode and characterEncoding parameters. These settings ensure that the connection to MySQL supports the full range of unicode characters.

     Click here to see an example for Oracle...

    The following example is for Oracle. In this example:

    • mydatabasehost is the hostname of the machine running the Oracle database.
    • 1521 is the port number.
    • UDR_SuperWEB2 is the name of the new database we created in Step 1.
    <Resource name="ds/superstar-udr" auth="Container"
              type="javax.sql.DataSource"
              maxActive="100"
              maxIdle="30"  
              maxWait="10000"  
              username="udr_user"
              password="udr_password"
              driverClassName="oracle.jdbc.driver.OracleDriver"  
              url="jdbc:oracle:thin:@mydatabasehost:1521:UDR_SuperWEB2"/>
    
     Click here to see an example for SQL Server...

    The following example is for SQL Server. In this example:

    • mydatabasehost is the hostname of the machine running the SQL Server database.
    • 1433 is the port number.
    • UDR_SuperWEB2 is the name of the new database we created in Step 1.
    <Resource name="ds/superstar-udr" auth="Container"
              type="javax.sql.DataSource"
              maxActive="100"
              maxIdle="30"  
              maxWait="10000"  
              username="udr_user"
              password="udr_password"
              driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"  
              url="jdbc:sqlserver://mydatabasehost:1433;databaseName=UDR_SuperWEB2"/>
    
     Click here to see an example for DB2...

    The following example is for DB2. In this example:

    • mydatabasehost is the hostname of the machine running the DB2 database.
    • 50000 is the port number.
    • UDR_SuperWEB2 is the name of the new database we created in Step 1 and UDR is the name of the schema you want to use.
    <Resource name="ds/superstar-udr" auth="Container"
              type="javax.sql.DataSource"
              maxActive="100"
              maxIdle="30"  
              maxWait="10000"  
              username="udr_user"
              password="udr_password"
              driverClassName="com.ibm.db2.jcc.DB2Driver"  
              url="jdbc:db2://mydatabasehost:50000/UDR_SuperWEB2:currentSchema=UDR"/>
    
  4. Save your changes to server.xml.

context.xml

  1. Open the file <tomcat_home>\conf\context.xml in a text editor.

  2. Add the following section before the closing </Context> tag:

    <ResourceLink
     global="ds/superstar-udr"
     name="ds/superstar-udr"
     type="javax.sql.DataSource"/>
    

  3. Save your changes to context.xml.

Step 4 - Start SuperWEB2 and Verify UDR Configuration

Now that you have completed the configuration, start the Tomcat/SuperWEB2 service. This will automatically create the empty UDR tables in the database.

When you have done this, follow these instructions to verify that UDR is setup correctly.