Versions Compared

Key

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

The following sections describe how to replace the default H2 database with Embedded H2: 

Table of Contents
maxLevel3
minLevel3
styleborder:1
separatorpipe

Tip
titleBefore you begin
  • Be sure to set up the database as explained in Setting up Embedded H2.
  • Be sure to download the <DB Driver> H2 database driver and copy it to WSO2 IoT Server by following the steps under Setting up drivers.

Setting up configuration files

...

  1. The default datasource configuration is defined in the master-datasources.xml file, located in the <IoTS_HOME>/conf/datasources/ directory. The database configurations in registry.xml and user-mgt.xml refer to the WSO2_CARBON_DB datasource.

    Info

    Edit the WSO2_CARBON_DB, WSO2_MB_STORE_DB and WSO2AM_DB datasources in the master-datasources.xml file by replacing the url, username, password and driverClassName settings with your custom values and also the other values accordingly.

    Code Block
    titleWSO2_Carbon_DB Datasource
    <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>
             <minIdle>5</minIdle>
             <testOnBorrow>true</testOnBorrow>
             <validationQuery>SELECT 1</validationQuery>
             <validationInterval>30000</validationInterval>
          </configuration>
       </definition>
    </datasource>
    Code Block
    titleWSO2_MB_STORE_DB Datasource
    <datasource>
       <name>WSO2_MB_STORE_DB</name>
       <description>The datasource used for message broker database</description>
       <jndiConfig>
          <name>jdbc/WSO2MBStoreDB</name>
       </jndiConfig>
       <definition type="RDBMS">
          <configuration>
             <url>jdbc:h2:repository/database/WSO2MB_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>
             <defaultAutoCommit>false</defaultAutoCommit>
          </configuration>
       </definition>
    </datasource>
    Code Block
    titleWSO2AM_DB Datasource
    <datasource>
       <name>WSO2AM_DB</name>
       <description>The datasource used for API Manager database</description>
       <jndiConfig>
          <name>jdbc/WSO2AM_DB</name>
       </jndiConfig>
       <definition type="RDBMS">
          <configuration>
             <url>jdbc:h2:repository/database/WSO2AM_DB;DB_CLOSE_ON_EXIT=FALSE</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>
  2. Configure the WSO2_ANALYTICS_EVENT_STORE_DB and WSO2_ANALYTICS_PROCESSED_DATA_STORE_DB datasources in the analytics-datasources.xml, located in the  file <IoTS_HOME>/analytics/repository/conf/datasources directory.

    Info

    Edit the WSO2_ANALYTICS_EVENT_STORE_DB and WSO2_ANALYTICS_PROCESSED_DATA_STORE_DB datasources in the analytics-datasources.xml file by replacing the url, username, password and driverClassName settings with your custom values and also the other values accordingly.

    Code Block
    titleWSO2_ANALYTICS_EVENT_STORE_DB Datasource
    <datasource>
       <name>WSO2_ANALYTICS_EVENT_STORE_DB</name>
       <description>The datasource used for analytics record store</description>
       <definition type="RDBMS">
          <configuration>
             <url>jdbc:h2:repository/database/ANALYTICS_EVENT_STORE;AUTO_SERVER=TRUE;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>
             <validationQuery>SELECT 1</validationQuery>
             <defaultAutoCommit>false</defaultAutoCommit>
             <initialSize>0</initialSize>
             <testWhileIdle>true</testWhileIdle>
             <minEvictableIdleTimeMillis>4000</minEvictableIdleTimeMillis>
          </configuration>
       </definition>
    </datasource>
    Code Block
    titleWSO2_ANALYTICS_PROCESSED_DATA_STORE_DB Datasource
    <datasource>
       <name>WSO2_ANALYTICS_PROCESSED_DATA_STORE_DB</name>
       <description>The datasource used for analytics record store</description>
       <definition type="RDBMS">
          <configuration>
             <url>jdbc:h2:repository/database/ANALYTICS_PROCESSED_DATA_STORE;AUTO_SERVER=TRUE;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>
             <validationQuery>SELECT 1</validationQuery>
             <defaultAutoCommit>false</defaultAutoCommit>
             <initialSize>0</initialSize>
             <testWhileIdle>true</testWhileIdle>
             <minEvictableIdleTimeMillis>4000</minEvictableIdleTimeMillis>
          </configuration>
       </definition>
    </datasource> 
  3. Configure the the WSO2_METRICS_DB datasource in the metrics-datasources.xml file, located in the  file <IoTS_HOME>/conf/datasources directory. 

    Info

    Edit the WSO2_METRICS_DB datasources in the metrics-datasources.xml file by replacing the url, username, password, and driverClassName settings with your custom values and also the other values accordingly.

    Code Block
    titleWSO2_METRICS_DB Datasource
    <datasource>
       <name>WSO2_METRICS_DB</name>
       <description>The default datasource used for WSO2 Carbon Metrics</description>
       <jndiConfig>
          <name>jdbc/WSO2MetricsDB</name>
       </jndiConfig>
       <definition type="RDBMS">
          <configuration>
             <url>jdbc:h2:repository/database/WSO2METRICS_DB;DB_CLOSE_ON_EXIT=FALSE;AUTO_SERVER=TRUE</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>
             <defaultAutoCommit>true</defaultAutoCommit>
          </configuration>
       </definition>
    </datasource>
  4. Configure the the DM_DS datasource in the cdm-datasources.xml file located in the <IoTS_HOME>/conf/datasources directory. 

    Info

    Edit the DM_DS datasources in the cdm-datasources.xml file by replacing the url, username, password and driverClassName settings with your custom values and also the other values accordingly.

    Code Block
    titleDM_DS Datasource
    <datasource>
       <name>DM_DS</name>
       <description>The datasource used for CDM</description>
       <jndiConfig>
          <name>jdbc/DM_DS</name>
       </jndiConfig>
       <definition type="RDBMS">
          <configuration>
             <url>jdbc:h2:repository/database/WSO2DM_DB;DB_CLOSE_ON_EXIT=FALSE</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>
  5. Configure all the device plugin datasources by editing the <PLUGIN_NAME>-datasources.xml file of the respective plugin by replacing the urlusernamepassword and driverClassName settings with your custom values and also the other values accordingly.

    Code Block
    titleExample: Android plugin datasource
    <datasource>
        <name>Android_DB</name>
        <description>The datasource used as the Android Device Management database</description>
        <jndiConfig>
            <name>jdbc/MobileAndroidDM_DS</name>
        </jndiConfig>
        <definition type="RDBMS">
            <configuration>
                <url>jdbc:h2:repository/database/WSO2MobileAndroid_DB;DB_CLOSE_ON_EXIT=FALSE
                </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>

...