I have the same problem! I thought I was the only one. Bonnie MacKellar
-----Original Message----- From: Mark Rowell To: 'OJB Users List' Sent: 10/23/03 7:59 AM Subject: RE: problems with batch-mode=true Armin No because I am not allowed to use CVS where I work..hence... Oh well! Thanks Mark -----Original Message----- From: Armin Waibel [mailto:[EMAIL PROTECTED] Sent: 23 October 2003 11:37 To: OJB Users List Subject: Re: problems with batch-mode=true Hi Mark, did you tried latest version from CVS? I think your mentioned bug was fixed in CVS. See http://cvs.apache.org/viewcvs.cgi/db-ojb/src/java/org/apache/ojb/broker/ util /batch/PreparedStatementInvocationHandler.java regards, Armin Mark Rowell wrote: > Hi > > As a follow on I checked the source for java.lang.reflect.Method and > it has an implementation Of equals which could possibly indicate tat > the equality operator (==) does not hold for methods. > > Mark > > -----Original Message----- > From: Mark Rowell [mailto:[EMAIL PROTECTED] > Sent: 23 October 2003 10:23 > To: 'OJB Users List' > Subject: RE: problems with batch-mode=true > > > Hi > > Regarding this issue it looks like (at least as far as RC4 is > concerned) that in the doExecute method of > PreparedStatementInvocationHandler.java the following line (223) gets > invoked > > ((Method) _methods.get(i)).invoke(stmt, (Object[]) _params.get(i)); > > In my case when using batched mode, and JSQLConnect on MSSqlServer I > get a similar error to Bonnie (java.lang.IllegalArgumentException: > object is not an instance of declaring class) > > The methods returned by _methods.get(i) is > > public void > org.apache.ojb.broker.platforms.PlatformDefaultImpl.addBatch(java.sql. > Prepar > edStatement) > > And we are trying to executed it on the statement rather than passing > the platform instance. I think the problem Is in the if statement in > that it does an == rather than a .equals() call to determine whether > we want to call the addBatch method. Now, I do not know whether within > a single JVM that the following Returns true > > Method method1 = obj.getClass().getMethod("methodName", <args>); > Method method2 = obj.getClass().getMethod("methodName", <args>); > method1 == method2; // is this gurantee dto be true like it is for > instances of Class e.g. > > Obj.getClass() == Obj.getClass() is guranteed to be true? > > Regards, > > Mark Rowell > > > -----Original Message----- > From: Bonnie MacKellar [mailto:[EMAIL PROTECTED] > Sent: 22 October 2003 14:02 > To: OJB Users List > Subject: RE: problems with batch-mode=true > > > Hi, > Here is the code that I tested. You can > see that setBatchMode is called before I start > the tx. > try > { > broker.serviceConnectionManager().setBatchMode(true); > broker.beginTransaction(); > 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(); > broker.commitTransaction(); > } > catch(Exception e) > { > e.printStackTrace(); > logger.error(e.getMessage()); > broker.abortTransaction(); > } > finally > { > broker.close(); > } > > This chunk of code, exectued with batch-mode="true" > in repository_database.xml, results in the following > two exceptions : > 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.doEx ecut > e(Unknown Source) > at > org.apache.ojb.broker.util.batch.PreparedStatementInvocationHandler.invo ke(U > nknown Source) > at $Proxy0.doExecute(Unknown Source) > at > org.apache.ojb.broker.util.batch.BatchConnection.executeBatch(Unknown > Source) > at org.apache.ojb.broker.util.batch.BatchConnection.commit(Unknown > Source) > at > org.apache.ojb.broker.accesslayer.ConnectionManagerImpl.localCommit(Unkn own > Source) > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.commitTransaction(Unkno wn > Source) > at > org.apache.ojb.broker.core.DelegatingPersistenceBroker.commitTransaction (Unk > nown Source) > at > org.apache.ojb.broker.core.DelegatingPersistenceBroker.commitTransaction (Unk > nown Source) > at > com.mobius.activebill.dbmigrationutils.CustomerMigration.main(CustomerMi grat > ion.java:69) > 3425 ERROR [main] dbmigrationutils.CustomerMigration - object is not an > instance of declaring class > 3435 DEBUG [main] core.PersistenceBrokerImpl - PB.close was called: > [EMAIL PROTECTED] > org.apache.ojb.broker.TransactionNotInProgressException: ConnectionManager > is NOT in transaction > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.abortTransaction(Unknow n > Source) > at > org.apache.ojb.broker.core.DelegatingPersistenceBroker.abortTransaction( Unkn > own Source) > at > org.apache.ojb.broker.core.DelegatingPersistenceBroker.abortTransaction( Unkn > own Source) > at > com.mobius.activebill.dbmigrationutils.CustomerMigration.main(CustomerMi grat > ion.java:75) > Exception in thread "main" > > > It looks like the persistence broker is being closed down before the > call to abortTransaction is made. But that does not explain the first > exception. This code works perfectly with > batch-mode="false". > And, if I call executeBatch, I don't get the second exception (the one about > not being in > a transaction), although I still get the first transaction. > I am including my repository_database.xml as an attachment. It is always > possible that > I am doing something terribly wrong there. The relevant jcd-alias is > "ActiveBillStandalone" > thanks, > Bonnie MacKellar > software engineer > Mobius Management Systems, Inc. > [EMAIL PROTECTED] > > > > >>-----Original Message----- >>From: Armin Waibel [mailto:[EMAIL PROTECTED] >>Sent: Tuesday, October 21, 2003 5:37 PM >>To: OJB Users List >>Subject: Re: problems with batch-mode=true >> >> >>Hi, >> >>hmm, this should not happen. >> >>Please try to set broker.serviceConnectionManager.setBachMode(true); >>before start the tx. Because the connection was >>associated with PB instance on PB.beginTx, so setting >>batch-mode after this may cause problems. >> >>I currently made some tests against sapDB >>without any problems (using CVS head) >> >>regards, >>Armin >> >> > > > > CreditTrade Limited is regulated by the FSA. (c) CreditTrade 2002. All > rights reserved. The information and data contained in this email is > provided for the information purposes of the addressee only and should > not be reproduced and/or distributed to any other person. It is > provided without any warranty whatsoever and unless stated otherwise > consists purely of indicative market prices and other information. > > Any opinion or comments expressed or assumption made in association > with the data or information provided in this email is a reflection of > CreditTrades judgement at the time of compiling the data and is > subject to change. CreditTrade hereby makes no representation and > accepts no responsibility or liability as to the completeness or > accuracy of this email. > > The content of this email is not intended as an offer or solicitation > for, or recommendation of, the purchase or sale of any financial > instrument, or as an official confirmation of any transaction, and > should not be construed as investment advice. > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > CreditTrade Limited is regulated by the FSA. (c) CreditTrade 2002. All > rights reserved. The information and data contained in this email is > provided for the information purposes of the addressee only and should > not be reproduced and/or distributed to any other person. It is > provided without any warranty whatsoever and unless stated otherwise > consists purely of indicative market prices and other information. > > Any opinion or comments expressed or assumption made in association > with the data or information provided in this email is a reflection of > CreditTrades judgement at the time of compiling the data and is > subject to change. CreditTrade hereby makes no representation and > accepts no responsibility or liability as to the completeness or > accuracy of this email. > > The content of this email is not intended as an offer or solicitation > for, or recommendation of, the purchase or sale of any financial > instrument, or as an official confirmation of any transaction, and > should not be construed as investment advice. > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] CreditTrade Limited is regulated by the FSA. (c) CreditTrade 2002. All rights reserved. The information and data contained in this email is provided for the information purposes of the addressee only and should not be reproduced and/or distributed to any other person. It is provided without any warranty whatsoever and unless stated otherwise consists purely of indicative market prices and other information. Any opinion or comments expressed or assumption made in association with the data or information provided in this email is a reflection of CreditTrades judgement at the time of compiling the data and is subject to change. CreditTrade hereby makes no representation and accepts no responsibility or liability as to the completeness or accuracy of this email. The content of this email is not intended as an offer or solicitation for, or recommendation of, the purchase or sale of any financial instrument, or as an official confirmation of any transaction, and should not be construed as investment advice. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]