From: | "Gong" <fredkung(at)sohu(dot)com> |
---|---|
To: | "postgre-gneral" <pgsql-general(at)postgresql(dot)org> |
Subject: | how to use transaction isolation |
Date: | 2008-04-10 07:21:50 |
Message-ID: | 006701c89adb$9dd69420$2200080a@netcde22364c1c |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
In the java code below, I set the transaction isolation to serialization.
public class IsolationTest {
private static String select = "select * from tmp where url = 'aaa'";
public static void main(String[] args) throws Exception{
//ConncetionFactory is a factory class for managing connection
Connection con = ConnectionFactory.getConnection();
con.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
con.setAutoCommit(false);
Statement smt = con.createStatement();
ResultSet r1 = smt.executeQuery(select);
System.out.println(r1.next()); //(1)
con.commit(); //(2)
ResultSet r2 = smt.executeQuery(select);
System.out.println(r2.next()); //(3)
con.commit();
smt.close();
ConnectionFactory.closeConnection();
}
}
I set a break point at (2), then I run this code in debug mode. When it suspended at (2), line(1) print "false". Then, I execute an insert statement in pgadmin: insert into tmp values('aaa'), after that I continued to run the code, and line(3) print "true". I have set the transaction isolation to serialization, didn't the two select statements print the same result?
btw: postgresql version is 8.2, jdbc version is postgresql-8.2-506.jdbc3.jar, and jdk version is 1.5
From | Date | Subject | |
---|---|---|---|
Next Message | Abhishek MANDHANA | 2008-04-10 07:25:34 | Re: connecting VB to postgreSQL |
Previous Message | Michael Raven | 2008-04-10 06:20:37 | include PostgreSQL utilities into 3rd party program package |