Yes it is

-----Original Message-----
From: Werner Guttmann [mailto:[EMAIL PROTECTED] 
Sent: Thursday, June 03, 2004 1:38 AM
To: [EMAIL PROTECTED]
Subject: Re: [castor-user] Dblocked mode & Mysql DB


Jimmy,

can I assume that 

>             ArrayList list = retrieve(aQuery, accessMode);

will eventually translate into code similar to 

OQLResult results = query.execute (accessMode);

Thanks
Werner


On Thu, 3 Jun 2004 01:18:40 +0530, [EMAIL PROTECTED] wrote:

>
>Werner,
>
>       Below the code you asked for.
>
>I'm still very concerned about this:
>Q. Transaction1 in thread1 has DBLocked a row in a table. Now will
>Transaction2 in thread2 be able to read the same row while transaction1
>is not commited ?
>
>=============================
>
>public Rocket retrieveByName(
>        String name, Transaction tran, short accessMode)
>        throws DbPersistenceException
>    {
>        Rocket rocket = null;
>        OQLQuery aQuery = null;
>        CastorTransaction cTran = null;
>        Database db = null;
>
>        try
>        {
>            cTran = (CastorTransaction) tran;
>            db = cTran.getDatabase();
>            aQuery =
>                db.getOQLQuery(
>                    " SELECT rocket FROM rnd.domain.Rocket rocket "
>                    + " WHERE rocket.rocketName = $1");
>            aQuery.bind(name);
>
>            ArrayList list = retrieve(aQuery, accessMode);
>
>            if ((list != null) && (list.size() > 0))
>            {
>                rocket = (Rocket) list.get(0);
>            }
>        }
>        catch (PersistenceException ex)
>        {
>            daoErrorHandler(ex);
>        }
>
>        return rocket;
>    }
>
>Jimmy
>
>-----Original Message-----
>From: Werner Guttmann [mailto:[EMAIL PROTECTED]
>Sent: Thursday, June 03, 2004 12:12 AM
>To: [EMAIL PROTECTED]
>Subject: Re: [castor-user] Dblocked mode & Mysql DB
>
>
>Jimmy,
>
>just browsing through your code, and the following code snipped caught
>my attention:
>
>Rocket rocket =  rocket_DAO.retrieveByName (PRITHVI, transaction,
>Transaction.DbLocked); 
>
>Can you please provide me with the details of what code is being
>executed as a result of the call to retrieveByName() ?
>
>Werner
>
>--Original Message Text---
>From: [EMAIL PROTECTED]
>Date: Wed, 2 Jun 2004 19:05:10 +0530
>
>
>
>Werner, 
>
>  
>
>            Before we indulge into the time out issues, I would like
>your confirmation whether this is an expected behavior, wherein an
>object being
>dbLocked also gets the read lock on it.
>
>  
>
>If the output of the sample code below is as the expected behavior, I
>wouldnt like to have read locks when I DbLock my object, since the
>performance
>of my application is degrading a lot.
>
>  
>
>            Regarding the table type, Im using innodb tables of mysql.
>
>
>  
>
>Heres the Log of my test case:
>
>Setting data in DB 
>
>Setting data in DB -- Done 
>
>Starting Writer thread..... 
>
>WriterThread -- Before db locking 
>
>WriterThread -- After db locking 
>
>WriterThread -- Before updating name 
>
>ReaderThread -- Starting reader thread.....
>
>ReaderThread -- Trying to read.....
>
>WriterThread -- After updating name 
>
>WriterThread -- Commiting & Closing transaction 
>
>ReaderThread -- Read: [Rocket(WriterThread changed Name), with
>Fuel(Solid Ammonia)]
>
>ReaderThread -- Trying to read.....
>
>ReaderThread -- Read: [Rocket(WriterThread changed Name), with
>Fuel(Solid Ammonia)]
>
>ReaderThread -- Trying to read.....
>
>ReaderThread -- Read: [Rocket(WriterThread changed Name), with
>Fuel(Solid Ammonia)]
>
>ReaderThread -- Trying to read.....
>
>ReaderThread -- Read: [Rocket(WriterThread changed Name), with
>Fuel(Solid Ammonia)]
>
>ReaderThread -- Trying to read.....
>
>ReaderThread -- Read: [Rocket(WriterThread changed Name), with
>Fuel(Solid Ammonia)]
>
>WriterThread -- Clearing the DB 
>
>ReaderThread -- Trying to read.....
>
>ReaderThread -- Read: [Rocket(WriterThread changed Name), with
>Fuel(Solid Ammonia)]
>
>WriterThread -- Clearing the DB... finished 
>
>ReaderThread -- Stopped reading.
>
> 
>
>The run method of Writer thread:
>
>  
>
>public void run() 
>
>    { 
>
>        try 
>
>        { 
>
>            System.out.println("Starting Writer thread....."); 
>
>  
>
>            System.out.println("WriterThread -- Before db locking"); 
>
>  
>
>            Rocket rocket = 
>
>                rocket_DAO.retrieveByName( 
>
>                    PRITHVI, transaction, Transaction.DbLocked); 
>
>            System.out.println("WriterThread -- After db locking"); 
>
>            System.out.println("WriterThread -- Before updating name");
>
>
>            sleep(3000); 
>
>            rocket.setRocketName("WriterThread changed Name"); 
>
>            System.out.println("WriterThread -- After updating name"); 
>
>            sleep(10000); 
>
>            transaction.commitAndClose(); 
>
>            System.out.println( 
>
>                "WriterThread -- Commiting & Closing transaction"); 
>
>            sleep(5000); 
>
>            System.out.println("WriterThread -- Clearing the DB"); 
>
>            deleteDB(); 
>
>            System.out.println("WriterThread -- Clearing the DB...
>finished"); 
>
>        } 
>
>        catch (Exception e) 
>
>        { 
>
>            e.printStackTrace(); 
>
>        } 
>
>    } 
>
>  
>
>The run method of the Writer Thread:
>
>  
>
>    public void run() 
>
>    { 
>
>        try 
>
>        { 
>
>            System.out.println("ReaderThread -- Starting reader
>thread....."); 
>
>  
>
>            while (read) 
>
>            { 
>
>                System.out.println("ReaderThread -- Trying to
>read....."); 
>
>  
>
>                ArrayList rockets = 
>
>                    rocket_DAO.retrieveAllRockets(txn,
>Transaction.ReadOnly); 
>
>                System.out.println("ReaderThread -- Read: " + rockets);
>
>
>                sleep(1000); 
>
>            } 
>
>  
>
>            System.out.println("ReaderThread -- Stopped reading."); 
>
>        } 
>
>        catch (Exception e) 
>
>        { 
>
>            e.printStackTrace(); 
>
>        } 
>
>    } 
>
>  
>
>  
>
>Thanks & Regards, 
>
>Jimmy 
>
>-----Original Message-----
>From: Werner Guttmann [mailto:[EMAIL PROTECTED]
>Sent: Wednesday, June 02, 2004 6:08 PM
>To: [EMAIL PROTECTED]
>Subject: Re: [castor-user] Dblocked mode & Mysql DB 
>
>  
>
>Jimmy,
>
>you could try increasing the lock timeout to a value that suits your
>needs via JDO.setLockTimeout (int) rather than messing around with read
>and write
>locks. Btw, what table type are you using with mySQL ?
>
>In addition, can you please provide us with a complete stack tarce of
>the exception being thrown when a read operation's lock expires ?
>
>Thanks
>Werner
>
>PleaseJDO.java--Original Message Text---
>From: [EMAIL PROTECTED]
>Date: Wed, 2 Jun 2004 17:02:33 +0530
>
>
>
>Hi,
>
>
>
>I working with Castor 0.9.5.3 (Cache type = NONE) & mySQL 4 and I am
>facing problems wherein castor says Read lock timeout, this usually
>occurs
>when I try to read an object in one thread, but at the same time some
>other thread has dblocked that object. I also happen to notice that,
>when I do a
>Dblock on an object, Castor applies both a read & write lock on the
>record, but mysql allows read on those records mapped to the object, at
>its prompt.
>
>
>
>I guess the read lock timeouts are happening because the object thats
>been dbLocked, is been held in the lock state for more than the timeout
>period
>and the reading thread is not allowed access to this object. But this
>could be serious limitation, since in my application there many threads
>working on
>the same object/table and if a thread happen to dblocked that object
for
>some period of time, then the remaining threads who just want to read
>has to
>wait, till the read lock is released.
>
>
>
>So I would like to know is there any way that I could just do a write
>lock and not read lock on the object that I would like to update. Also
>does Castor
>have any specific way of retrieving objects referenced in an object;
say
>in the order its been mapped in the mapping file or does Castor loads
>the object
>in an arbitrary fashion.
>
>
>
>
>
>Thanks & Regards,
>
>Jimmy Thomas
>
>
>
>
>Confidentiality Notice
>
>The information contained in this electronic message and any
attachments
>to this message are intended
>for the exclusive use of the addressee(s) and may contain confidential
>or privileged information. If
>you are not the intended recipient, please notify the sender at Wipro
or
>[EMAIL PROTECTED] immediately
>and destroy all copies of this message and any attachments.
>
>
>Confidentiality Notice
>
>The information contained in this electronic message and any
attachments
>to this message are intended
>for the exclusive use of the addressee(s) and may contain confidential
>or privileged information. If
>you are not the intended recipient, please notify the sender at Wipro
or
>[EMAIL PROTECTED] immediately
>and destroy all copies of this message and any attachments.
>
>
>
>-----------------------------------------------------------
>If you wish to unsubscribe from this mailing, send mail to
>[EMAIL PROTECTED] with a subject of:
>        unsubscribe castor-user
>
>Confidentiality Notice
>
>The information contained in this electronic message and any
attachments to this message are intended
>for the exclusive use of the addressee(s) and may contain confidential
or privileged information. If
>you are not the intended recipient, please notify the sender at Wipro
or [EMAIL PROTECTED] immediately
>and destroy all copies of this message and any attachments.
>
>



----------------------------------------------------------- 
If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
        unsubscribe castor-user

----------------------------------------------------------- 
If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
        unsubscribe castor-user

Reply via email to