Hi There,

        Use a singleton class to manage the database transactions.

Then implement a owner mechanism. E.g.

class DbTxMgr {

        String owner = null;

        public synchronized boolean lockMgr (String threadId) {
                if (owner == null) {
                        owner = threadId;
                        return true;
                } else {
                        if (owner.equals(threadId)) {
                                return true
                        }
                        return false;
                }
        }

        public synchronized void releaseMgr (String threadId) {
                if (owner != null) {
                        if (owner.equals(threadId)) {
                                owner = null;
                        }
                }
        }

        public synchronized boolean insert (String statement, String threadId) {
                if (owner == null) {
                        owner = threadId;
                }
                if (owner.equals(threadId)) {
                        //do the transaction
                }
        }
}

your code

class tester {
//name of your thread
        Thread t = new Thread("testerThread")
        ...

if (lockMgr(t.getName())) {
        //do database code
}
lockMgr.releaseLock(t.getName());

}

This way olny the owner of the lock can perform transactions and all other
threads must wait for the lock to be released

Thanks

Pete


-----Original Message-----
From: Antony Paul [mailto:[EMAIL PROTECTED]
Sent: 21 November 2003 11:51
To: Tomcat Users List
Subject: [OT] Synchronising database access


Hi,
    I want to synchronise all database access. There are lots of situations
where first first a select query is performed to get the results and then
insert/update data. I dont want to implement row level locking or optimistic
locking. I just want to synchronise the whole process. Only after a thread
completes the entire process other threads can execute the code. How to do
it. Do I have to synchronise on Connection or on this or implement
SingleThreadModel. I also want to know how much extra time a synchronised
block requires than an unsynchronised block.

Antony Paul.

---------------------------------------------------------------------
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