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]

Reply via email to