Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
If the Datasource Management feature is installed in your WSO2 product instance, you can add datasources that allow the server to connect to databases and other external data stores. This page describes how to add datasources in the following sections:
Table of Contents
maxLevel3

...

To add a datasource:
  1. In the management console, click the Configure tab, and then click Data Sources.  
  2. Click Add Data Source.  
  3. Specify the required options for connecting to the database. The available options are based on the type of datasource you are creating:
    Configuring an RDBMS datasource

Configuring an RDBMS datasource 

When you select RDBMS as the datasource type, the following screen appears:

Image Removed

This is the default RDBMS datasource configuration provided by WSO2. You can also write your own RDBMS configuration by selecting the custom datasource option. Enter values for the following fields when using the default RDBMS datasource configuration:

  • Data Source Type: RDBMS
  • Name: Name of the datasource (must be a unique value)
  • Data Source Provider: Specify the datasource provider as described below.
  • Driver: The class name of the JDBC driver to use. Be sure to copy the JDBC driver relevant to the database engine to the <ESB_HOME>/repository/components/dropins and <ESB_HOME>/repository/components/lib directories. For example, if you are using MySQL, you would specify com.mysql.jdbc.Driver as the driver and would copy  mysql-connector-java-5.XX-bin.jar to these directories. If you do not copy the driver to these directories when you create the datasource, you will get an exception similar to "Cannot load JDBC driver class com.mysql.jdbc.Driver".
     
  • URL: The connection URL to pass to the JDBC driver to establish the connection
  • User Name: The connection user name to pass to the JDBC driver to establish the connection
  • Password: The connection password to pass to the JDBC driver to establish the connection
  • Expose as a JNDI Data Souce: Allows you to specify the JNDI data source as described below
  • Data Source Configuration Parameters: Allows you to specify the datasource connection pool parameters when creating
    datasource

    Many of these fields are similar to those in DBCP. For more information, see: http://commons.apache.org/dbcp/configuration.html

    After creating datasources, you can edit and delete them as needed. Anchorpropro

    ...

    A datasource provider connects to a source of data such as a database, accesses its data, and returns the results of the access queries. When creating an RDBMS datasource, you can use the default provider or link to an external provider. To use the default datasource provider, select default, and then enter the connection properties Driver, URL, User Name, and Password as follows:

    Image Removed

    If you need to add a datasource supported by an external provider class such as com.mysql.jdbc.jdbc2.optional.MysqlXADataSource, select External Data Source, click Add Property, and then enter the name and value of each connection property you need to configure. Following is an example datasource for an external datasource provider.

    ...

    JNDI datasource 

    Java Naming and Directory Interface (JNDI) is a Java application programming interface (API) that provides naming and directory functionality for Java software clients to discover and look up data and objects via a name. It helps decouple object creation from the object look-up. When you have registered a datasource with JNDI, others can discover it through a JNDI look-up and use it.

    To expose a datasource as a JNDI datasource, click Expose as a JNDI Data Source to display the JNDI fields:

    Image Removed

    Following is a description of the JNDI fields:

    ...

    ...

    If you select the Custom datasource type, the following screen will appear:

    Image Removed

    Following is a description of the custom datasource fields:

    ...

    Custom datasource type 

    When creating a custom datasource, specify whether the datasource type is DS_CUSTOM_TABULAR (the data is stored in tables) or DS_CUSTOM_QUERY (non-tabular data accessed through a query). Following is more information about each type.

    Custom tabular datasources

    Tabular datasources are used for accessing tabular data, that is, the data is stored in rows in named tables that can be queried later. To implement tabular datasources, the interface org.wso2.carbon.dataservices.core.custom.datasource.TabularDataBasedDS is used. You can see a sample implementation of a tabular custom datasource at InMemoryDataSource.  

    A tabular datasource is typically associated with a SQL data services query. WSO2 products use an internal SQL parser to execute SQL against the custom datasource. You can see a sample data service descriptor at InMemoryDSSample. Carbon datasources also support tabular data with the datasource reader implementation org.wso2.carbon.dataservices.core.custom.datasource.CustomTabularDataSourceReader. If you have Data Services Server installed, you can see a sample Carbon datasource configuration file at <DSS_HOME>\repository\conf\datasources\custom-datasources.xml.

    Custom query datasources

    Custom query-based datasources are used for accessing non-tabular data through a query expression. To implement query-based datasources, the interface org.wso2.carbon.dataservices.core.custom.datasource.CustomQueryBasedDS is used. You can create any non-tabular datasource using the query-based approach. Even if the target datasource does not have a query expression format, you can create and use your own. For example, you can support any NoSQL type datasource using this type of a datasource.  

    You can see a sample implementation of a custom query-based datasource at EchoDataSource. You can see a sample data service descriptor with custom query datasources in InMemoryDSSample. Carbon datasources also support query-based data with the datasource reader implementation org.wso2.carbon.dataservices.core.custom.datasource.CustomQueryDataSourceReader. If you have Data Services Server installed, you can see a sample Carbon datasource configuration file at <DSS_HOME>\repository\conf\datasources\custom-datasources.xml.

    In the "init" methods of all custom datasources, user-supplied properties will be parsed to initialize the datasource accordingly. Also, a property named "__DATASOURCE_ID__", which contains a UUID to uniquely identify the current datasource, will be passed. This can be used by custom datasource authors to identify the datasources accordingly, such as datasource instances communicating within a server cluster for data synchronization.

    Shown below is an example configuration of a custom datasource of type 'DS_CUSTOM_TABULAR'.

    ...