Sure, I can understand why it's doing it, but I was under an impression that 
it's a violation of the contract for SERIALIZABLE.  Am I wrong? (statistics 
show that I am.. :D)

If we pretent do be a DB for just a moment, doesn't SERIALIZABLE dictate that 
no other connection can create a new row in a table while a SERIALIZABLE 
transaction is in progress?  I could be way wrong here, but I thought that's 
what the contract was, maybe it's only if one has read something from that 
table.

Is there anyway I can implement the sort of behaviour I need?  How can I 
prevent 2 threads from even looking at the state of a Node in the cache while 
some other thread has a lock on that Node.  

What about if I synchronized(..) on the actual Node before inspecting?  Could I:

Object node = cache.get("/SecurityInfo/" +myId);
synchronized(node) {
  -- read value of node
  --- do DB Lookup as necessary
}

If another Thread came along, I would hope it would block.  Given that there 
could me many many many 'myId's', I'd need to evict them after a while, but 
long enough such that the get(..) call returned the exact same object for 
multiple threads for the sync call to work.

Thanks for all replies.  Thoughts would be very much appreciated.

View the original post : 
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3854894#3854894

Reply to the post : 
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3854894


-------------------------------------------------------
This SF.Net email is sponsored by:
Sybase ASE Linux Express Edition - download now for FREE
LinuxWorld Reader's Choice Award Winner for best database on Linux.
http://ads.osdn.com/?ad_id=5588&alloc_id=12065&op=click
_______________________________________________
JBoss-Development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to