Subject Re: Are Deadlocks realy handled correct?
Author rrokytskyy
Can you test your example with InterClient? Be sure to set
transaction isolation explicitly (our driver and InterClient might
have different default values). Also I would appreciate if you can
post standalone testcase (JUnit if possible) to test this situation.

Best regards,
Roman Rokytskyy

--- In Firebird-Java@y..., HGFrey@t... wrote:
> Hi,
>
> I just build up a simple Situation in which to Java-Programs
> wants to update the same two records. The Program is quite
> simple:
>
> Class.forName( "org.firebirdsql.jdbc.FBDriver" );
> conn =
> DriverManager.getConnection
("jdbc:firebirdsql:192.168.60.4/3050:C:\\Programme\\Firebird10
\\ibsql\\test",
> "sysdba", "masterkey");
> conn.setAutoCommit( false );
> stat = conn.createStatement();
> // first program
> int i = stat.executeUpdate( "UPDATE TEST SET IDENT = 777 WHERE
IDENT =
> 123" );
> // second program
> //int i = stat.executeUpdate( "UPDATE TEST SET IDENT = 555 WHERE
IDENT =
> 123" );
> System.out.println("excuted " + i + " updates" );
> // First Program
> i = stat.executeUpdate( "UPDATE TEST SET IDENT = 888 WHERE IDENT =
456"
> );
> // Second program
> //i = stat.executeUpdate( "UPDATE TEST SET IDENT = 666 WHERE IDENT =
> 456" );
> System.out.println("excuted " + i + " updates" );
> conn.commit();
>
> As you can see they try to update the records cross-over. Stepping
in
> debug mode
> both programms to the first System.out, everything works fine.
Stepping
> with the
> first program over the second update the program blocks. So far so
fine.
> Now
> I take the second progam trying to step over the second update. In
this
> program
> I get an "GDSexception: deadlock" now. But the other program keeps
on
> blocking
> and no other program can update these records. They all block too.
>
> Does not have the first program been send an exception too or
perhaps
> making him able
> to end its transaction?
>
> Are there any known problems with deadlocks?
>
> Is there anything wrong with my environment? I use Firebird 1.0 and
> JBuilder 4.0.
> Both run on Windows. Isolation on server ist set to concurrency.
>
> Thanks
> Hans Georg