See Mark Rowell's posts to see the bug and fix. Thanks to Mark!!
Cheers!! On Thu, 2003-10-23 at 06:53, Emmanuel Dupont wrote: > Please to tell you yhat we are three ! > > :) > > -----Message d'origine----- > De : Bonnie MacKellar [mailto:[EMAIL PROTECTED] > Envoyé : jeudi 23 octobre 2003 14:33 > À : 'Mark Rowell '; ''OJB Users List' ' > Objet : RE: problems with batch-mode=true > > 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] > > > --------------------------------------------------------------------- > 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]
