commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From LeRoy.Ya...@securian.com
Subject Transaction API, ReadWriteLock
Date Tue, 05 Jul 2005 16:21:36 GMT




I'm trying to use the ReadWriteLock class to acquire a write lock on a file
in a servlet.  When I generate multiple threads of the servlet using a WTE
5.1 server in the WSAD 5.1 IDE, I'm not able to get ReadWriteLock to block
other servlet threads after the first servlet thread obtains the lock.  I'm
using two IE browser windows to generate the two servlet threads.  Below is
ReadWriteLock code I have in the servlet followed by the System.out.println
statements that are generated in the server log file during my test.

ReadWriteLock fileLock = new ReadWriteLock(new File(c:/logRec.txt,
loggerFacade);
try {
      System.out.println("before acquiring a lock " +
Thread.currentThread());
      boolean result =
fileLock.acquireWrite(Thread.currentThread(),Long.MAX_VALUE);
      System.out.println("lock result: " + result + " " +
Thread.currentThread());
      Thread.sleep(20000);
      System.out.println("after sleeping " + Thread.currentThread());
      FileWriter recFile = new FileWriter(c:/logRec.txt, true);
      recFile.write("text from testFileTran");
      recFile.close();
} catch (InterruptedException e) {
      e.printStackTrace(System.err);

} catch (IOException e) {
      e.printStackTrace(System.err);

} finally {
      fileLock.release(Thread.currentThread());
}

[7/5/05 8:26:03:326 CDT]  7c1477e SystemOut     O before acquiring a lock
Thread[Servlet.Engine.Transports : 0,5,main]
[7/5/05 8:26:03:326 CDT]  7c1477e SystemOut     O lock result: true
Thread[Servlet.Engine.Transports : 0,5,main]
[7/5/05 8:26:08:384 CDT] 24c3477d SystemOut     O before acquiring a lock
Thread[Servlet.Engine.Transports : 1,5,main]
[7/5/05 8:26:08:384 CDT] 24c3477d SystemOut     O lock result: true
Thread[Servlet.Engine.Transports : 1,5,main]
[7/5/05 8:26:23:335 CDT]  7c1477e SystemOut     O after sleeping
Thread[Servlet.Engine.Transports : 0,5,main]
[7/5/05 8:26:28:382 CDT] 24c3477d SystemOut     O after sleeping
Thread[Servlet.Engine.Transports : 1,5,main]


>From reviewing the Transaction documentation and mailing list archives, I'm
not able to determine what I'm doing wrong.


---------------------------------------------------------------------
To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-user-help@jakarta.apache.org


Mime
View raw message