Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The following sections describe how to replace the default H2 databases with Remote H2:
Table of Contents
maxLevel3

...

Preparing the remote H2 DB

1. Download and install the H2 database on your computer. You can find the H2 installation guide here.

Image Removed

2. Go to the $H2_HOME/bin directory and run the H2 network server starting script.

Image Removed

Info
titleTip

$H2_HOME is the installation directory of H2.

3. Run the H2 database server with the following commands.

  • For Linux:
Code Block
$ ./h2.sh

Image Removed

  • For Windows:
Code Block
$ h2.bat

The script will start the database engine and bring up a pop-up window with a "Start Browser" button. The "Start Browser" button will open a web browser containing a client application, which you can connect to a database. H2 will automatically create a database if a database does not exist by the name you provide in the "JDBC URL" text box.

Setup Configuration Files

1. Edit the default database configuration defined in the master-datasources.xml file located at $GREG_HOME/repository/conf/datasources directory of the deployed registry instance as below. Both the database configurations in registry.xml and user-mgt.xml refer this data source.

Image Removed

 

Info
titleNote

The configurations should be replaced with your own database name, username, and password.

Code Block
       <datasource>
            <name>WSO2_CARBON_DB</name>
            <description>The datasource used for registry and user manager</description>
            <jndiConfig>
                <name>jdbc/WSO2CarbonDB</name>
            </jndiConfig>
            <definition type="RDBMS">
                <configuration>
                    <url>jdbc:h2:tcp://localhost/~/registryDB;create=true</url>
                    <username>regadmin</username>
                    <password>regadmin</password>
                    <driverClassName>org.h2.Driver</driverClassName>
                    <maxActive>80</maxActive>
                    <maxWait>60000</maxWait>
                    <minIdle>5</minIdle>
                    <testOnBorrow>true</testOnBorrow>
                    <validationQuery>SELECT 1</validationQuery>
                    <validationInterval>30000</validationInterval>
                </configuration>
            </definition>
        </datasource>
The database configuration options

...

Setup Drivers

Info
titleTip

The H2 database version h2-1.2.140 and the related H2 database driver are currently shipped with the WSO2 Governance Registry.

If you want to use a new H2 database driver other than the version shipped with the WSO2 Governance Registry, you need to do the following.

1. Delete the following H2 database related JARs. Some of them may already be excluded from the configuration.

  • $GREG_HOME/repository/components/plugins/h2-database-engine-1.2.140.wso2v2.jar
  • $GREG_HOME/repository/components/configuration/org.eclipse.osgi/bundles/38/1/.cp/h2-1.2.140.jar
  • $GREG_HOME/repository/lib/h2-1.2.140.jar
  • $GREG_HOME/lib/h2-database-engine-1.2.140.wso2v2.jar

Image Removed

Image Removed

2. Copy the new H2 database driver (org.h2.Driver) to $GREG_HOME/repository/components/lib. You can find the required driver JAR in $H2_HOME/bin/h2-*.jar.

Image Removed

Create Database

Automatic Database Creation

1. The first time you start the registry, run it with the -Dsetup option. It will create the H2 database with all the underlying tables.

  • For Linux:
Code Block
sh wso2server.sh -Dsetup

Image Removed

  • For Windows:
Code Block
wso2server.bat -Dsetup

Manual Table Creation using scripts

1. Tables can be manually created by logging into the created database and running the following script in H2 shell or web console.

Info
titleNote

Use the ./h2.sh command to start the web console. After that copy the script text from the SQL file, paste it into the console and click "Run."

Code Block
GREG_HOME/dbscripts/h2.sql

Image Removed

2. After setting up the registry DB tables, start the server with the following commands.

  • For Linux:
Code Block
sh wso2server.sh

 

  • For Windows:
Code Block
wso2server.bat

...

hiddentrue

...

Include Page
shared:Setting up Remote H2 (V1)
shared:Setting up Remote H2 (V1)

Changing the product-specific/identity/service-provider databases

The topics above show how to change the WSO2_CARBON_DB, which is used to store registry and user manager information.  If you changed the product-specific database that comes by default or set up a separate database for identity/service-provider related data, the instructions are the same. In summary:

  1. Add the datasource to the master-datasources.xml file.

    Create the database tables using the following script:

    For the product-specific databases

    Use <PRODUCT_HOME>/dbscripts/apimgt/h2.sql and <PRODUCT_HOME>/dbscripts/bps/h2.sql

    For the identity database

    Use <PRODUCT_HOME>/dbscripts/identity/h2.sql

    For the service-provider database

    Use <PRODUCT_HOME>/dbscripts/service-provider/h2.sql