Hope I can sheed some light on the 'problem'.
does this mean that you can't set batch mode to "true" if it is set to "false" in repository_database.xml?
yep! I think this behaviour has a big advantage, because it is easy to disable batch-mode by set batch-mode false in repository (if we don't have a bug in handling bach-mode ;-))
...
I am trying to insert records in batch mode. Perhaps I don't understand how this works. Here is my test code to insert 100 customers :
Assume you have set batch-mode 'true' in repository file. Then you have to enable batch mode for the use PB instance. Try this:
ConnectionManagerIF conMan = broker.serviceConnectionManager(); try { broker.beginTransaction();
==>> broker.connectionManager.setBachMode(true); now the PB instance is running in batch-mode till you set false or the PB instance was closed.
for (int i = 0; i < 100; i++) {
CustomerInterface customer = new Customer(); customer.setCustomerNumber("100" + i); customer.setFirstName("Big"); customer.setLastName("Customer"); customer.setCustomerName("BadCorporation"); customer.setDeleteTag(Boolean.FALSE);
broker.store(customer); }
conMan.executeBatch();
think you don't need executeBatch before commit, this will be done at commit.
broker.commitTransaction(); }
If you still have problems with batch-mode try CVS-head. I think Oleg has checked in some changes (but I'm not sure)
regards, Armin
When I run this with batch-mode="false", it works perfectly, although it generates a SELECT and a DELETE for every INSERT (which seems rather inefficient). I imagine this has something to do with an M:N nondecomposed relationship which involves Customer records.
When I run this with batch-mode="true", it fails. I get the following
exception
java.lang.IllegalArgumentException: object is not an instance of declaring
class
at java.lang.reflect.Method.invoke(Native Method)
at
org.apache.ojb.broker.util.batch.PreparedStatementInvocationHandler.doExec
ute(Unknown Source)
at
org.apache.ojb.broker.util.batch.PreparedStatementInvocationHandler.invoke
(Unknown Source)
at $Proxy0.doExecute(Unknown Source)
at
org.apache.ojb.broker.util.batch.BatchConnection.executeBatch(Unknown
Source)
at
org.apache.ojb.broker.accesslayer.ConnectionManagerImpl.executeBatch(Unkno
wn Source)
at
com.mobius.activebill.dbmigrationutils.CustomerMigration.main(CustomerMigr
ation.java:68)
rethrown as org.apache.ojb.broker.accesslayer.OJBBatchUpdateException:
object is not an instance of declaring class
at
org.apache.ojb.broker.accesslayer.ConnectionManagerImpl.executeBatch(Unkno
wn Source)
at
com.mobius.activebill.dbmigrationutils.CustomerMigration.main(CustomerMigr
ation.java:68)
when conMan.executeBatch() is called.
Am I doing something wrong here? I am using rc4, with MSSqlServer and JSQLConnect.
thanks, Bonnie MacKellar
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
