Win a copy of Design for the Mind this week in the Design forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Isolation Level Session Beans

 
prem karun gopal
Greenhorn
Posts: 24
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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

Best Regards
Prem
 
Pho Tek
Ranch Hand
Posts: 782
Chrome Python Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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.

Regards,

Pho
 
PNS Subramanian
Ranch Hand
Posts: 150
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
"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);
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic