Versions Compared

Key

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

Follow the instructions below to set up an embedded H2 database.

Table of Contents
maxLevel3
minLevel3
styleborder:1
locationtop
typeflat
separatorpipe

Preparing the Embedded H2 Database

Download and install the H2 database in your computer, if it is not already done, using the installation guide at http://www.h2database.com/html/quickstart.html.

Setup configuration Files

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

 

Info
titleNote

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

Code Block
languagehtml/xml
<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:repository/database/WSO2CARBON_DB;DB_CLOSE_ON_EXIT=FALSE;LOCK_TIMEOUT=60000</url>
             <username>wso2carbon</username>
             <password>wso2carbon</password>
             <driverClassName>org.h2.Driver</driverClassName>
             <maxActive>50</maxActive>
             <maxWait>60000</maxWait>
             <testOnBorrow>true</testOnBorrow>
             <validationQuery>SELECT 1</validationQuery>
             <validationInterval>30000</validationInterval>
         </configuration>
    </definition>
</datasource>
The database configuration options.
  • url - The URL of the database.
  • userName - The name of the database user.
  • password - The password of the database user.
  • driverClassName - The class name of the database driver.
  • maxActive - The maximum number of active connections that can be allocated from this pool at the same time or negative for no limit.
  • maxWait - The maximum number of milliseconds that the pool will wait (when there are no available connections) for a connection to be returned before throwing an exception, or <= 0 to wait indefinitely.
  • minIdle - The minimum number of active connections that can remain idle in the pool, without extra ones being created, or 0 to create none.

Setup Drivers

Info
titleTip

Currently, H2 database version h2-1.2.140.* and the related H2 database driver are shipped with the product.

If you wish to use a new H2 database driver other than the version shipped with the product, follow the steps below.

1. Delete H2 database-related JARs shipped with the product. One could find them in the following locations.

  • <PRODUCT_HOME>/repository/components/plugins/h2-database-engine_1.2.140.wso2v3.jar

2. Copy the new H2 database driver (org.h2.Driver) to <PRODUCT_HOME>/repository/components/lib. One could find the required driver JAR in $H2_HOME/bin/h2-*.jar.

Info
titleTip

$H2_HOME is the installation directory of H2.

Create Database

Automatic Database Creation

Next, at the first time you start the server, run with the -Dsetup option. It will create the H2 database with all the underlying tables.

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

Manual Table Creation using scripts

Tables can be manually created by logging into the created database and running and following script in H2 shell or Web Console.

Code Block
<PRODUCT_HOME>/dbscripts/h2.

After setting up the DB tables, start the server with the below commands.

  • For Linux:
Code Block
sh wso2server.sh
  • For Windows:

...

Include Page
shared:Setting up Embedded H2
shared:Setting up Embedded H2