Due to a known issue do not use JDK1.8.0_151 with WSO2 products. Use JDK 1.8.0_144 until JDK 1.8.0_162-ea is released.
This documentation is for WSO2 Data Services Server version 3.5.1. For the latest documentation, see the documentation for WSO2 Enterprise Integrator.

Versions Compared

Key

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

...

  1. Install the MySQL server.
  2. Download the JDBC driver for MySQL from here and copy it to your <DSS_HOME>/repository/components/lib directory.
  3. Create the following database: Company
  4. Create the Employee table:

    Code Block
    CREATE TABLE `EMPLOYEES` (`EmployeeNumber` int(11) NOT NULL, `FirstName` varchar(255) NOT NULL, `LastName` varchar(255) DEFAULT NULL, `Email` varchar(255) DEFAULT NULL, `JobTitle` varchar(255) DEFAULT NULL, `OfficeCode` int(11) NOT NULL, PRIMARY KEY (`EmployeeNumber`,`OfficeCode`), CONSTRAINT `employees_ibfk_1` FOREIGN KEY (`OfficeCode`) REFERENCES `OFFICES` (`OfficeCode`));

...

Define a data service to insert records in batches

Let's create a data service using the Create Data Service wizard:

  1. Log into in to the management console of WSO2 DSS and click Create in the  under Data Service menu.
  2. Add a name for the data service and select the Enable Batch Requests check box as shown below.
    Image RemovedImage Added
  3. Click Next and  Next and add a new datasource.
  4. Connect Give an ID for the datasource, and create the connection to the Company database that you defined above.Click . Specifying the following details:
    Image Added
  5. Save the datasource details, and click Next to open the Queries screen.
  6. Click Add New Query to specify the query details:

    1. Enter addEmployeeQuery as the query ID.

    2. Enter the following SQL dialect:

      Code Block
      insert into EMPLOYEESEmployees (employeeNumberEmployeeNumber,firstName FirstName,lastName LastName,email Email,jobtitle JobTitle, OfficeCode) values(:employeeNumberEmployeeNumber,:firstNameFirstName,:lastName,'[email protected]','test',:OfficeCodeLastName,:Email,:JobTitle,:Officecode)
  7. Click Generate Input Mapping and an input mapping mappings will be generated automatically for the employeeNumberemail, and officecode field.
    Image RemovedCreate the EmployeeNumber, FirstName, LastName, Email, JobTitle, and OfficeCode fields.

  8. Save the query, and click Next to open the Operations screen.

  9. Click Add New Operation, and create an operation for the addEmployeeQuery query as shown below.
    Image RemovedImage Added
  10. Save the operation.
  11. Click Finish to navigate to the Deployed Services window, from where you can manage data servicescomplete the data service creation process.

Invoking the data service 

...

  1. Go to the Deployed Services screen.
  2. Click Try this Service to open the data service from the TryIt tool.
  3. Click Try this Service to open the data service from the TryIt tool. There will be a batch_request operation automatically  automatically generated.
  4. Select the batch operation.
  5. Enter multiple transactions as shown below. In this example, we are sending two transactions with details of two employees.

    Code Block
    <p:addEmployeeQueryOPaddEmployeeOp_batch_req xmlns:p="http://ws.wso2.org/dataservice">
          <!--1 or more occurrences-->
          <addEmployeeOp xmlns="http://ws.wso2.org/dataservice">
             <!--Exactly 1 occurrence-->
          <addEmployeeQueryOP   <xs:EmployeeNumber xmlns:xs="http://ws.wso2.org/dataservice">1002</xs:EmployeeNumber>
             <!--Exactly 1 occurrence-->
             <xs:FirstName xmlns:xs="http://ws.wso2.org/dataservice">John</xs:FirstName>
             <!--Exactly 1 occurrence-->
             <xs:employeeNumberLastName xmlns:xs="http://ws.wso2.org/dataservice">100<>Doe</xs:employeeNumber>LastName>
             <!--Exactly 1 occurrence-->
             <xs:emailEmail xmlns:xs="http://ws.wso2.org/dataservice">[email protected]</xs:email>>[email protected]</xs:Email>
             <!--Exactly 1 occurrence-->
             <xs:JobTitle xmlns:xs="http://ws.wso2.org/dataservice">Consultant</xs:JobTitle>
             <!--Exactly 1 occurrence-->
             <xs:officecodeOfficecode xmlns:xs="http://ws.wso2.org/dataservice">1<>01</xs:officecode>Officecode>
          </addEmployeeQueryOP>addEmployeeOp>
          <addEmployeeOp xmlns="http://ws.wso2.org/dataservice">
             <!--Exactly 1 occurrence-->
             <addEmployeeQueryOP<xs:EmployeeNumber xmlns:xs="http://ws.wso2.org/dataservice">1004</xs:EmployeeNumber>
             <!--Exactly 1 occurrence-->
             <xs:FirstName xmlns:xs="http://ws.wso2.org/dataservice">Peter</xs:FirstName>
             <!--Exactly 1 occurrence-->
             <xs:employeeNumberLastName xmlns:xs="http://ws.wso2.org/dataservice">101<>Parker</xs:employeeNumber>LastName>
             <!--Exactly 1 occurrence-->
             <xs:emailEmail xmlns:xs="http://ws.wso2.org/dataservice">[email protected]>[email protected].com</xs:email>Email>
             <!--Exactly 1 occurrence-->
             <xs:JobTitle xmlns:xs="http://ws.wso2.org/dataservice">Consultant</xs:JobTitle>
             <!--Exactly 1 occurrence-->
             <xs:officecodeOfficecode xmlns:xs="http://ws.wso2.org/dataservice">2<>01</xs:officecode>Officecode>
          </addEmployeeQueryOP>addEmployeeOp>
       </p:addEmployeeQueryOPaddEmployeeOp_batch_req>
  6. Execute the batch operation. You will find that all the records have been inserted into the database simultaneously.