Subject Is IBX better than IBO when used threaded ?
Author Pelle F. S. Liljendal
For our latest project we are planning to create a "batch-server"
which is simply a service that runs the various jobs each in a
separat thread. As of now I am simply testing how well threaded DB
access is working. I have written a small test application where I
start several threads (e.g. 4 or 8) each writing 2000 (simple)
records to the database. Running only one thread I can write approx
500 records a second however as soon as I run several threads the
owerall speed drops to below 200. I did a quick conversion of my
test program to use IBX in stead of IBO and here the speed stays
around (a total) of 500 records per second even when I run 4 or 8
threads at the same time (I normally use IBO, however have not used
it "threaded" before - therefor the "need" to test it with IBX).

Regarding IBO I am using the iboTDataSet components (IBODatabase,
IBOTransaction, IBOQuery and IBOStoredProc) inserted into a
DataModule also containing an IB_Session (IB_Session is the first
module inseted into this DataModule). Each thread creates an
instance of this DataModule hence each thread "owns" a Session,
Database, Transaction, Query and StoredProcedure.

Also I tried without the DataModule (creating the components at
runtime) where I began by creating a IB_Session and using this
components as the owner for the other IBOcomponents (but this also
resulted in a "low speed" compared to what I could do with IBX).

Am I doing something wrong (if so what) or is IBX simply bettet than
IBO when used threaded ?