Setting up with Embedded Derby
Follow the instructions below to set up an embedded Derby database.
Preparing the Derby Database
1. Download Apache Derby from http://apache.mesi.com.ar/db/derby/db-derby-10.8.2.2/ and save it to your computer.
2. Install Apache Derby on your computer by following the instructions at: http://db.apache.org/derby/manuals
Setup Configuration Files
1. Edit the default database configuration defined in the master-datasources.xml
 file located at <PRODUCT_HOME>/repository/conf/datasources
 directory as below. Both the database configurations in registry.xml
 and user-mgt.xml
 refer this data source.Â
Note
The configurations should be replaced with your own database name, username, and password.
<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:derby://localhost:1527/db;create=true</url> <userName>regadmin</userName> <password>regadmin</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>
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.
Note
In contrast to the remote Derby, in embedded mode, you will set the database driver name ( the driverName
element) to the value org.apache.derby.jdbc.EmbeddedDriver
and the database URL (the url
element) to the database directory location relative to the installation. In the above sample configuration, it is inside the database/WSO2CARBON_DB
directory.
Setup Drivers
Copy derby.jar
, derbyclient.jar
 and derbynet.jarÂ
from $DERBY_HOME/lib
 in to $CARBON_HOME/repository/components/extensions
 directory (to the class path of the WSO2 Carbon web application).
Create Database
Automatic Database Creation
1. The first time you start the server, run with the -Dsetup
option so it will create the Derby database.
- For Linux:
wso2server.sh -Dsetup
- For Windows:
wso2server.bat -Dsetup
2. The product is configured to run using an embedded Apache Derby database.
Manual Database Creation
1. Run the ij
tool located in the <derby-installation-directory>/bin
directory.
2. Create the database and connect to it using the following command inside the ij
prompt.
Note
Replace the database file path in the below command to suit your requirements.
connect 'jdbc:derby:repository/database/WSO2CARBON_DB;create=true';
Note
Here you need to give the full path to your database in place of /WSO2CARBON_DB
.
3. Exit from the the ij
tool by typing the exit
command.
exit;
4. Login to the ij
tool with the username and password you set in the registry.xml
and user-mgt.xml
.
connect 'jdbc:derby:repository/database/WSO2CARBON_DB' user 'regadmin' password 'regadmin';
5. Run the derby scripts for both the registry and user manager (embedded) databases, provided with the product using the below command.
run 'CARBON_HOME/dbscripts/derby.sql';
6. Restart the server. Now the product is running using a remote Apache Derby database.