org.apache.ojb.broker
Class PerformanceJdbcFailoverTest

java.lang.Object
  extended byjunit.framework.Assert
      extended byjunit.framework.TestCase
          extended byorg.apache.ojb.broker.PerformanceJdbcFailoverTest
All Implemented Interfaces:
junit.framework.Test

public class PerformanceJdbcFailoverTest
extends junit.framework.TestCase

This TestCase contains the OJB performance benchmarks for the JDBC API. The original testcases have been enhanced with code dealing with db failover situations.

Author:
Thomas Mahler

Field Summary
(package private) static int articleCount
          the number of PerformanceArticle objects to work with.
(package private)  PersistenceBroker broker
           
(package private) static int iterations
          the number of iterations to perform.
(package private) static int maxRetries
          the maximum number of retries if db fails.
(package private) static int maxWait
          the maximum time to wait on db availability.
(package private)  int offsetId
          the offset value for PerformanceArticle primary keys
 
Constructor Summary
PerformanceJdbcFailoverTest(java.lang.String name)
          BrokerTests constructor comment.
 
Method Summary
protected  void clearTable()
           
protected  void deleteArticles()
          deletes all PerformanceArticle created by insertNewArticles.
protected  void insertNewArticles()
          create new PerformanceArticle objects and insert them into the RDBMS.
static void main(java.lang.String[] args)
          launches the TestCase.
protected  void readArticles()
          read in all the PerformanceArticles from the RDBMS that have been inserted by insertNewArticles().
protected  void readArticlesByCursor()
          read in all the PerformanceArticles from the RDBMS that have been inserted by insertNewArticles().
 void setUp()
          setting up the test fixture.
 void tearDown()
          tearing down the test fixture.
 void testBenchmark()
          this method is the driver for the complete Benchmark.
protected  void updateExistingArticles()
          updates all PerformanceArticles inserted by insertNewArticles().
 
Methods inherited from class junit.framework.TestCase
countTestCases, createResult, getName, run, run, runBare, runTest, setName, toString
 
Methods inherited from class junit.framework.Assert
assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertFalse, assertFalse, assertNotNull, assertNotNull, assertNotSame, assertNotSame, assertNull, assertNull, assertSame, assertSame, assertTrue, assertTrue, fail, fail
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

articleCount

static int articleCount
the number of PerformanceArticle objects to work with.


iterations

static int iterations
the number of iterations to perform.


maxRetries

static int maxRetries
the maximum number of retries if db fails.


maxWait

static int maxWait
the maximum time to wait on db availability.


offsetId

int offsetId
the offset value for PerformanceArticle primary keys


broker

PersistenceBroker broker
Constructor Detail

PerformanceJdbcFailoverTest

public PerformanceJdbcFailoverTest(java.lang.String name)
BrokerTests constructor comment.

Parameters:
name - java.lang.String
Method Detail

main

public static void main(java.lang.String[] args)
launches the TestCase. The number of Objects to work with and the number of iterations to be performed can be adjusted by setting them as commandline parameters.

Parameters:
args - the String[] holding the commandline parameters.

setUp

public void setUp()
           throws java.lang.Exception
setting up the test fixture.

Throws:
java.lang.Exception

tearDown

public void tearDown()
tearing down the test fixture.


deleteArticles

protected void deleteArticles()
                       throws java.lang.Exception
deletes all PerformanceArticle created by insertNewArticles.

Throws:
java.lang.Exception

insertNewArticles

protected void insertNewArticles()
                          throws java.lang.Exception
create new PerformanceArticle objects and insert them into the RDBMS. The number of objects to create is defined by articleCount.

Throws:
java.lang.Exception

clearTable

protected void clearTable()
                   throws java.lang.Exception
Throws:
java.lang.Exception

readArticles

protected void readArticles()
                     throws java.lang.Exception
read in all the PerformanceArticles from the RDBMS that have been inserted by insertNewArticles(). The lookup is done one by one, that is: a primary key based lookup is used.

Throws:
java.lang.Exception

readArticlesByCursor

protected void readArticlesByCursor()
                             throws java.lang.Exception
read in all the PerformanceArticles from the RDBMS that have been inserted by insertNewArticles(). The lookup is done with a cursor fetch, that is: a between Statement is used to select all inserted PerformanceArticles and Objects are read in by fetching from the cursor (JDBC ResultSet).

Throws:
java.lang.Exception

updateExistingArticles

protected void updateExistingArticles()
                               throws java.lang.Exception
updates all PerformanceArticles inserted by insertNewArticles(). All objects are modified and changes are written to the RDBMS with an UPDATE.

Throws:
java.lang.Exception

testBenchmark

public void testBenchmark()
this method is the driver for the complete Benchmark. It performs the following steps: 1.) n objects are created and inserted to the RDBMS. 2.) the created objects are modified. Modifications are written to the RDBMS with updates. 3.) All objects created in 1.) are read in by primary key based SELECT statements. 4.) Step 3.) is repeated to test caching facilities. 5.) All objects created in 1.) are read by iterating over a ResultSet. 6.) All objects created in 1.) are deleted with n separate DELETE Statements.



Authors: Thomas Mahler and others. (C) 2000 - 2003 Apache Software Foundation
All rights reserved. Published under the Apache License.
http://db.apache.org/ojb
Version: 1.0.rc5, 2003-12-14