Re: No exception with concurrent updates - Mailing list pgsql-jdbc

From Dave Cramer
Subject Re: No exception with concurrent updates
Date
Msg-id 1089831294.1549.31.camel@localhost.localdomain
Whole thread Raw
In response to No exception with concurrent updates  (Vladimir Stankovic <V.Stankovic@city.ac.uk>)
List pgsql-jdbc
Vladimir,

Have you read how concurrency works in postgresql ?

Dave
On Wed, 2004-07-14 at 12:59, Vladimir Stankovic wrote:
> Dear all,
>
> I wrote (extremely) simple programme in Java (jsdk1.4.2) to examine the
> PostgreSQL's (v7.2.4, I know, rather obsolete) handling of concurrent
> updates and I'm confused with the fact that the server (running on a remote
> machine with Red Hat Linux 6.0) does not give me any kind of exception when
> I execute the following code on the client machine running Win 2000. While
> running the programme in the debug mode the excution just hangs when the
> UPDATE query of the transaction2() is executed. Using setQueryTimeout()
> won't help much since it is available as of 7.3 version, isn't it. I set
> autocommit off and specify TRANSACTION_SERIALIZABLE on the Connection
> objects. I'm using the pg73jdbc3.jar and NetBeans 3.5.
>
> /*
>  * ConcurencyTest.java
>  * Created on 09 July 2004, 15:39
>  */
> import java.sql.*;
>
> public class ConcurrencyTest
> {
>     Connection con1, con2;
>
>     public ConcurrencyTest()
>     {
>         /*
>           ConnectionManager object creates Connection and the
>           GetConnection() method returns the reference. Value of
>           128 specifies the JDBC connection (rather than ODBC).
>          */
>         con1 = new ConnectionManager(128).GetConnection();
>         con2 = new ConnectionManager(128).GetConnection();
>
>         transaction1();
>         transaction2();
>
>         try
>         {
>            con2.commit();
>            con1.commit();
>            //con1.close();
>            //con2.close();
>         }
>         catch (SQLException sqle)
>         {
>             System.out.println("Could not close the connection");
>         }
>
>     }
>
>     public void transaction1()
>     {
>         try
>         {
>             con1.commit();
>             Statement sta1 = con1.createStatement();
>             sta1.setQueryTimeout(5);
>
>             rs_1 = sta1.executeQuery("SELECT * FROM Orderline WHERE ol_o_id
> = 1 AND ol_d_id = 1 AND ol_w_id = 1 AND ol_number = 4");
>
>             while (rs_1.next())
>                 System.out.println(rs_1.getInt(8) + "\tT1");
>             rs_1.close();
>
>             sta1.executeUpdate("UPDATE Orderline SET ol_quantity = 10 WHERE
> ol_o_id = 1 AND ol_d_id = 1 AND ol_w_id = 1 AND ol_number = 4");
>
>             sta1.close();
>         }
>         catch (SQLException sqle)
>         {
>             System.out.println("Error in Transaction 1: " + sqle);
>         }
>
>     }
>
>     public void transaction2()
>     {
>         try
>         {
>             con2.commit();
>             Statement sta2 = con2.createStatement();
>             sta2.setQueryTimeout(5);
>
>             ResultSet rs_2 = sta2.executeQuery("SELECT * FROM Orderline
> WHERE ol_o_id = 1 AND ol_d_id = 1 AND ol_w_id = 1 AND ol_number = 4");
>             while (rs_2.next())
>                 System.out.println(rs_2.getInt(8) + "\tT2");
>             rs_2.close();
>
>
>             sta2.executeUpdate("UPDATE Orderline SET ol_quantity = 20 WHERE
> ol_o_id = 1 AND ol_d_id = 1 AND ol_w_id = 1 AND ol_number = 4");
>
>
>             sta2.close();
>         }
>         catch (SQLException sqle)
>         {
>             System.out.println("Error in Transaction 2: " + sqle);
>
>         }
>
>     }
>
>     public static void main(String args[])
>     {
>         new ConcurrencyTest();
>     }
> }
>
>
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 9: the planner will ignore your desire to choose an index scan if your
>       joining column's datatypes do not match
>
>
>
> !DSPAM:40f57e51167398493720393!
>
>
--
Dave Cramer
519 939 0336
ICQ # 14675561


pgsql-jdbc by date:

Previous
From: Vladimir Stankovic
Date:
Subject: No exception with concurrent updates
Next
From: Vladimir Stankovic
Date:
Subject: Re: No exception with concurrent updates