This page will describe the Order Entry test suite that is part of derbyTesting.jar (current trunk - 10.3)
Still need to add more details.. this is a work in progress.
What is Order Entry test
Order Entry (OE) is an OLTP application/toolkit which is based upon the TPC-C specification, but is not claiming to be a valid implementation. The TPC-C specification is used mainly for the database schema & population rules and the logic of the business transactions. http://www.tpc.org/tpcc/
OE allows the amount of data loaded initially to be varied very easily, just by setting the warehouse scale factor, so a warehouse=1 creates a database of size N, and warehouse=100 a database of size 100N (roughly). This allows databases in the range 10-100Gb to be easily created.
As part of DERBY-1987, work has been done to contribute this test. Please see the subtasks in jira to see the current status of the subtasks and related tasks.
Location of test suite
The base directory for OE related code is at java/testing/org/apache/derbyTesting/system/oe
Directory structure under oe is as follows:
client- direct- load- model- run - schema - sql scripts for loading schema and constraints test- routines- util -
Loading the database with the OE dataset
Using the DriverUtility program:
Step1: Create database and load schema and any constraints as necessary. E.g.
$ java org.apache.derby.tools.ij ij version 10.3 ij> connect 'jdbc:derby:testdb;create=true'; ij> run resource '/org/apache/derbyTesting/system/oe/schema/schema.sql'; ij> run resource '/org/apache/derbyTesting/system/oe/schema/primarykey.sql'; ij> run resource '/org/apache/derbyTesting/system/oe/schema/foreignkey.sql'; ij> run resource '/org/apache/derbyTesting/system/oe/schema/index.sql'; ij>exit;
Step2:To populate the database with OrderEntry benchmark with scale 1, do
$ java org.apache.derbyTesting.system.oe.run.DriverUtility -scale 1 -driver org.apache.derby.jdbc.EmbeddedDriver -dbUrl jdbc:derby:testdb
Note : scale is the warehouse scale factor. so a scale=1 creates a database of size N, and scale=100 a database of size 100N (roughly).This allows databases in the range 10-100Gb to be easily created.