Dear All, I have a problem with isolation level in weblogic. Problem: method defined in session Bean public Collection (int count);
What this method does is as follows There is a table which stores the last generated value of a sequence. So when next time a request comes for two numbers the method reads the last generated value and gives back a two numbers next in sequence to the last generated value.But when two client requests comes concurrantly every ting goes wrong.Both gets the same numbers as the next sequence,since each reads the same value of last generated number. So i set the Isolation level of the method to TRRANSACTION_SERIALIZABLE_READ_COMMITED_FOR_UPDATE.The basic idea is i want a read lock on that particular row.I tried that and it doesnt work.Still i'm getting concurrency issues in that method. How do i do that using Weblogic 8.1 and Oracle 9.2 Can any one help in this
IMHO, Isolation levels are an aspect of the JDBC connection, not session bean methods. I am using JBoss, and when declaring the datasource; I can set its isolation level per connection. See jboss datasource dtd
I'm sure Weblogic will have something similar.
Joined: Jul 13, 2004
"So when next time a request comes for two numbers the method reads the last generated value and gives back a two numbers next in sequence to the last generated value..." - try this - Update the value of the last number in the table and select the new value within the same transaction.
conn.setAutoCommit(false); BEGIN TRAN update <tableName> set <field>=<field>+1 select <field> from <tableName> END TRAN conn.setAutoCommit(true);