In this sample demonstration, we use a data service with batch processing. See how batch processing is enabled for data services when you create a data service using WSO2 DSS. Batch processing is used when a specific in-only operation must be executed sequentially with different sets of parameters.
Building the sample
Create a sample data service by the name
BatchRequestSample using the instructions in .
Running the sample
The sample service can be run using the TryIt tool, which is bundled with the WSO2 Data Services Server, or a code-generated java client sample as discussed in .
The command line application is used here to present the functionality of batch processing. As shown in thesection, run the command "ant batch_request", to run the sample. The output will resemble the following:
The sample tests batch processing by executing a batch operation with three parameter tests, which means, it effectively executes three consecutive operations. The operation is to add a new employee to the database. Here we execute the batch operation and checks for the existence of the three newly added entries. A requirement of batch operations is, if one invocation fails, then all the other operations in the batch should fail. This can be seen here, where the sets of three employee entries are either inserted together, or none of them are inserted. In this sample, a validator is used for checking if a valid email address is given when adding a new employee entry to the database. If the email is invalid, that operation invocation fails.
There are four such batch requests executed as explained below.
- All the parameters are added properly and all operations executed successfully. Therefore, when checking for entries with ids "180000", "180001", "180002", all returns true.
- The request with id "180003" is executed successfully. But when it reaches "180004", a validation error occurs since the email address is invalid. All service invocations in that batch request are rolled back. So in the next section when checking for the employee ids belonging to this batch request, no one would have been added to the database. This is expected since all the operations in a batch operation are executed in a single transaction.
- In this instance, the 3'rd operation in the batch request is not given an email address. It causes a validation error. The transaction is rolled back and all ids "180006", "180007" and "180008" are not executed.
- The requests here are all given valid parameters; same as in the 1'st request. So all the records "180009", "180010" and "180011" are added successfully.
This demonstrates how the batch operations behave in a transactional manner.