This site contains the documentation that is relevant to older WSO2 product versions and offerings.
For the latest WSO2 documentation, visit https://wso2.com/documentation/.

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 20 Next »

The WSO2 Governance Registry has been tested to work with various relational database management systems including,

The [CARBON_HOME]/repository/conf/registry.xml refers to a database configuration defines at [CARBON_HOME]/repository/conf/datasources/master-datasources.xml as given below.

 <dbConfig name="wso2registry">
        <dataSource>jdbc/WSO2CarbonDB</dataSource>
 </dbConfig>

The server administrator can define the type of database to be used, along with the JDBC connection URL to connect to the database and a compatible driver via the database configuration parameters in the [CARBON_HOME]/repository/conf/datasources/master-datasources.xml as given below.

<datasource>
   <name>WSO2_CARBON_DB</name>
      <description>...</description>
       <jndiConfig>
           <name>jdbc/WSO2CarbonDB</name>
       </jndiConfig>
       <definition type="RDBMS">
                <configuration>
                    <url>jdbc:h2:repository/database/WSO2CARBON_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>
Mandatory Configuration Elements
  • url - The URL of the database.
  • username - The name of the database user.

  • password - The password of the database user.
  • driverClassNameThe fully qualified Java class name of the JDBC driver to be used.
  • 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.
Optional Configuration Elements
  • validationQuery - This is used to validate the DB connection to test whether its healthy (For example, SELECT 1 or SELECT 1 FROM DUAL in Oracle).
  • testOnBorrow - The indication of whether objects will be validated before being borrowed from the pool.
  • validationInterval - The specified time interval for validations to run.

Therefor all the database configurations should be defined in the master-datasources.xml The database configurations that are needed to be define inside the user-mgt.xml should also be pointed to the configurations defined in the master-datasources.xml. You can find the database configurations for the different databases here.

There can be more than one database configuration specified within the master-datasources.xml file. For instance, you can have something similar to the configuration below.

<datasource>
<name>WSO2_EMBED_DB</name>
<description>...</description>
<jndiConfig>
<name>jdbc/WSO2EmbedDB</name>
</jndiConfig>
<definition type="RDBMS">
<configuration>
	<url>jdbc:derby:databasetest/CARBON_TEST;create=true</url>
	<userName>su</userName>
	<password>su</password>
	<driverClassName>org.apache.derby.jdbc.EmbeddedDriver</driverClassName>
	<maxActive>80</maxActive>
	<maxWait>60000</maxWait>
	<minIdle>5</minIdle>
	<testOnBorrow>true</testOnBorrow>
	<validationQuery>SELECT 1</validationQuery>
	<validationInterval>30000</validationInterval>
</configuration>
</definition>
</datasource>
 
<datasource>
<name>WSO2_SERVER_DB</name>
<description>...</description>
<jndiConfig>
<name>jdbc/WSO2ServerDB</name>
</jndiConfig>
<definition type="RDBMS">
<configuration>
	<url>jdbc:derby://10.20.30.40:1527/derbyDBRemote;create=true</url>
	<userName>su</userName>
	<password>su</password>
	<driverClassName>org.apache.derby.jdbc.EmbeddedDriver</driverClassName>
	<maxActive>80</maxActive>
	<maxWait>60000</maxWait>
	<minIdle>5</minIdle>
	<testOnBorrow>true</testOnBorrow>
	<validationQuery>SELECT 1</validationQuery>
	<validationInterval>30000</validationInterval>
</configuration>
</definition>
</datasource>
 
<datasource>
<name>WSO2_SERVER_REMOTE_DB</name>
<description>...</description>
<jndiConfig>
<name>jdbc/WSO2ServerRemoteDB</name>
</jndiConfig>
<definition type="RDBMS">
<configuration>
	<url>jdbc:derby://10.20.30.40:1527/derbyDBRemote;create=true</url>
	<userName>su</userName>
	<password>su</password>
	<driverClassName>org.apache.derby.jdbc.EmbeddedDriver</driverClassName>
	<maxActive>80</maxActive>
	<maxWait>60000</maxWait>
	<minIdle>5</minIdle>
	<testOnBorrow>true</testOnBorrow>
	<validationQuery>SELECT 1</validationQuery>
	<validationInterval>30000</validationInterval>
</configuration>
</definition>
</datasource>

However, the server can only handle one active configuration at a time. The currentDBConfig parameter defined in the registry.xml is used to specify the database configuration that is active at present.

<currentDBConfig>wso2registry</currentDBConfig>

The value of the currentDBConfig parameter should be a valid name of a database configuration defined on the registry.xml file. An administrator can gain a number of benefits by being able to switch between database configurations.

  • The ability to create back-up databases that can be activated by a simple configuration change resulting in minimal downtime.
  • Ease of development with the ability of testing on multiple database systems.

  • No labels