For all our Oracle 9i users out there:
Oracle has a special style of batching which is higher performance than normal JDBC
batching. See http://technet.oracle.com/products/oracle9i/daily/jun07.html for more
information.
No special configurations are required, just make sure Batching is set to on in your
connection information (repository_database.xml)
ie.
<jdbc-connection-descriptor
jcd-alias="default"
default-connection="true"
platform="Oracle9i"
jdbc-level="2.0"
driver="oracle.jdbc.driver.OracleDriver"
protocol="jdbc"
subprotocol="oracle"
dbalias="thin:@machine:1521:SID"
username="user"
password="password"
eager-release="false"
batch-mode="true"
useAutoCommit="1"
ignoreAutoCommitExceptions="false">
and use the new Oracle9i Platform setting in your build.properties
ie.
profile=oracle9i
The implementation in the PlatformOracle9iImpl uses reflection to try and find the
Oracle specific batching methods. It will degrade gracefully to use the default JDBC
batching if the methods are not found.
If your PreparedStatements are wrapped (ie you obtain connections from a JDBC pool in
JBOSS) the Oracle batching will not work, as it won't find the methods. This will not
be an issue after I check in the JCA connector, as you will use a raw connection and
raw preparedstatements rather than from the app servers datasource (much easier to
debug!). Just waiting for Thomas to tell me how/when to check that stuff in :)
example results:
PersistenceBroker API with Oracle style Batching
[ojb] [performance] INFO: inserting 2500 Objects: 329 msec
[ojb] [performance] INFO: updating 2500 Objects: 406 msec
[ojb] [performance] INFO: deleting 2500 Objects: 391 msec
[ojb] [performance] INFO:
[ojb] [performance] INFO: inserting 2500 Objects: 344 msec
[ojb] [performance] INFO: updating 2500 Objects: 406 msec
[ojb] [performance] INFO: deleting 2500 Objects: 375 msec
Raw JDBC with no batching
[jdbc] [performance] INFO: inserting 2500 Objects: 1188 msec
[jdbc] [performance] INFO: updating 2500 Objects: 1187 msec
[jdbc] [performance] INFO: deleting 2500 Objects: 954 msec
[jdbc] [performance] INFO:
[jdbc] [performance] INFO: inserting 2500 Objects: 1203 msec
[jdbc] [performance] INFO: updating 2500 Objects: 1171 msec
[jdbc] [performance] INFO: deleting 2500 Objects: 954 msec
OJB is no slouch ;)
cheers,
Matthew
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]