db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "sarah.kho" <sarah....@gmail.com>
Subject Second thread is blocked until the first thread commit the transaction, I can not understand why...
Date Mon, 03 Aug 2009 07:33:15 GMT

Hi 
I am learning transaction and isolation levels. I tried to use
read_committed in one thread and then in another thread insert some data
into a table. the reader thread is blocked and waits until the first thread
commit the transaction to complete the select statement. What I can not
understand is: shouldn't the second thread only read what is already
committed instead of waiting until the inserting thread finishes its job? 

Inserted thread code: 

  [code]
  
String userName = "app";   
            String password = "app";   
            String url = "jdbc:derby://localhost:1527/sample";   
           
Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance();   
            conn = DriverManager.getConnection(url, userName, password);   
            conn.setAutoCommit(false);   
            PreparedStatement st = conn.prepareStatement("insert into
APP.TABLE1(name, lastname) values('a','a')");   
            st.executeUpdate();   
  
            Thread.sleep(20000);   
  
            conn.commit();   
[/code]


reader thread code: 
[code]
  
            String userName = "app";   
            String password = "app";   
            String url = "jdbc:derby://localhost:1527/sample";   
           
Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance();   
            conn = DriverManager.getConnection(url, userName, password);   
            conn.setAutoCommit(false);   
           
conn.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);   
            
  
            Statement st2 = conn.createStatement();   
  
            ResultSet rs = st2.executeQuery("select * from APP.TABLE1");   
  
[/code]

also I tried and execute these code in two different application and the
result is the same. The reader application waits for almost 20 seconds
before it read the data.
-- 
View this message in context: http://www.nabble.com/Second-thread-is-blocked-until-the-first-thread-commit-the-transaction%2C-I-can-not-understand-why...-tp24786526p24786526.html
Sent from the Apache Derby Users mailing list archive at Nabble.com.


Mime
View raw message