Subject | Re: [IB-Java] Using Blobs in Type 4 driver |
---|---|
Author | Kenneth Foo |
Post date | 2002-01-29T00:04:39Z |
Hi...
The driver is faster now. Slowness was probably due to the debugging
information that
was generated under the debugging IDE. :)
But I'm still having problem closing the connection (I did another post
previously, but no answers).
Basically, if I do many inserts (say, 100), closing the connection takes
very long (80-100 seconds).
It gets much much longer if I do more inserts.
I did a trace through the code, and found that the code "paused" during the
following stack trace.
FBManagedConnection.notify
FBStandAloneConnectionmanager.connectionClosed
FBManagedConnection.destroy
FBManagedConnectionFactory.releaseDbHandle
GDS_Impl.isc_detach_database
GDS_Impl.receiveResponse
GDS_Impl.readOperation
GDS_Impl.nextOperation (long pause here during db.in.readInt() )
My code is as follows. Pretty much standard code to delete items from a
table,
and perform simple inserts.
import java.sql.*;
import org.firebirdsql.jdbc.*;
public class TestFB {
public TestFB() {
}
public static void main (String args[]) {
try {
Class.forName("org.firebirdsql.jdbc.FBDriver");
Connection con =
DriverManager.getConnection("jdbc:firebirdsql:localhost:x:/db/ncsdb.gdb",
"SYSDBA", "masterkey");
con.setAutoCommit(true);
Statement statement = con.createStatement();
statement.executeUpdate("DELETE FROM MESSAGES WHERE ID>=1000
AND FOLDER_ID=999;");
PreparedStatement ps = con.prepareStatement("INSERT INTO
MESSAGES (ID,FOLDER_ID) VALUES(?,?);");
con.setAutoCommit(true);
long l1 = System.currentTimeMillis();
for (int v = 0; v<1000; v++) {
ps.clearParameters();
ps.setLong(1, 1000+v);
ps.setLong(2, 999);
ps.executeUpdate();
}
System.out.println("FINISHED INSERT...");
ps.close();
long l2 = System.currentTimeMillis();
System.out.println(l2-l1);
System.out.println("CLOSING CONNECTION...");
con.close();
long l3 = System.currentTimeMillis();
System.out.println(l3-l2);
System.out.println("DONE!");
}
catch (Exception ex) {
ex.printStackTrace();
}
}
Anybody else experiencing such problems?
I'm running the latest Firebird RC2 under Win2k,
and running JDK 1.3.1_02.
Thanks!
Regards
Kenneth
The driver is faster now. Slowness was probably due to the debugging
information that
was generated under the debugging IDE. :)
But I'm still having problem closing the connection (I did another post
previously, but no answers).
Basically, if I do many inserts (say, 100), closing the connection takes
very long (80-100 seconds).
It gets much much longer if I do more inserts.
I did a trace through the code, and found that the code "paused" during the
following stack trace.
FBManagedConnection.notify
FBStandAloneConnectionmanager.connectionClosed
FBManagedConnection.destroy
FBManagedConnectionFactory.releaseDbHandle
GDS_Impl.isc_detach_database
GDS_Impl.receiveResponse
GDS_Impl.readOperation
GDS_Impl.nextOperation (long pause here during db.in.readInt() )
My code is as follows. Pretty much standard code to delete items from a
table,
and perform simple inserts.
import java.sql.*;
import org.firebirdsql.jdbc.*;
public class TestFB {
public TestFB() {
}
public static void main (String args[]) {
try {
Class.forName("org.firebirdsql.jdbc.FBDriver");
Connection con =
DriverManager.getConnection("jdbc:firebirdsql:localhost:x:/db/ncsdb.gdb",
"SYSDBA", "masterkey");
con.setAutoCommit(true);
Statement statement = con.createStatement();
statement.executeUpdate("DELETE FROM MESSAGES WHERE ID>=1000
AND FOLDER_ID=999;");
PreparedStatement ps = con.prepareStatement("INSERT INTO
MESSAGES (ID,FOLDER_ID) VALUES(?,?);");
con.setAutoCommit(true);
long l1 = System.currentTimeMillis();
for (int v = 0; v<1000; v++) {
ps.clearParameters();
ps.setLong(1, 1000+v);
ps.setLong(2, 999);
ps.executeUpdate();
}
System.out.println("FINISHED INSERT...");
ps.close();
long l2 = System.currentTimeMillis();
System.out.println(l2-l1);
System.out.println("CLOSING CONNECTION...");
con.close();
long l3 = System.currentTimeMillis();
System.out.println(l3-l2);
System.out.println("DONE!");
}
catch (Exception ex) {
ex.printStackTrace();
}
}
Anybody else experiencing such problems?
I'm running the latest Firebird RC2 under Win2k,
and running JDK 1.3.1_02.
Thanks!
Regards
Kenneth
----- Original Message -----
From: "David Jencks" <davidjencks@...>
To: <IB-Java@yahoogroups.com>
Sent: Tuesday, January 29, 2002 4:18 AM
Subject: Re: [IB-Java] Using Blobs in Type 4 driver
> On 2002.01.21 20:00:05 -0500 Kenneth Foo wrote:
> > Hi...
> >
> > I just downloaded the Firbird JDBC Type 4 driver from CVS.
> > Seems pretty good (anything that doesn't have that funny
> > connection error in interclient is good)....
> > ...except that I'm having trouble using Blobs.
> >
> > Any sample code to show how this is done? (Storing and retrieving)
>
> There is some example code in the tests. If you are interested, I made it
> so you can create a blob object and then write into it, counter to the
> spec.
> >
> > Another question:
> > Is the Type 4 driver supposed to be much slower than interclient?
> > I did some tests quite some time back, and found it to be crawling
> > compared
> > to Interclient. I wanted to fall back to Interclient for the time being,
> > but
> > it's connection error bug is killing me.
>
> Alejandro changed some buffer sizes that should have considerably speeded
> up the new driver. Is it still slower than interclient?
>
> david jencks
> >
> > Thanks!!
> >
> >
> > Regards
> > Kenneth
> >
> >
> > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
> > <HTML><HEAD>
> > <META content="text/html; charset=iso-8859-1" http-equiv=Content-Type>
> > <META content="MSHTML 5.00.3315.2870" name=GENERATOR>
> > <STYLE></STYLE>
> > </HEAD>
> > <BODY bgColor=#ffffff>
> >
> >
> > <DIV><FONT face=Arial size=2>Hi...</FONT></DIV>
> > <DIV> </DIV>
> > <DIV><FONT face=Arial size=2>I just downloaded the Firbird JDBC Type 4
> > driver
> > from CVS.</FONT></DIV>
> > <DIV><FONT face=Arial size=2>Seems pretty good (anything that doesn't
> > have that
> > funny</FONT></DIV>
> > <DIV><FONT face=Arial size=2>connection error in interclient is
> > good).... </FONT></DIV>
> > <DIV><FONT face=Arial size=2>...e</FONT><FONT face=Arial size=2>xcept
> > that I'm
> > having trouble using Blobs.</FONT></DIV>
> > <DIV> </DIV>
> > <DIV><FONT face=Arial size=2>Any sample code to show how this is done?
> > (Storing
> > and retrieving)</FONT></DIV>
> > <DIV>
> > <DIV> </DIV>
> > <DIV><FONT face=Arial size=2>Another question:</FONT></DIV>
> > <DIV><FONT face=Arial size=2>Is the Type 4 driver supposed to be much
> > slower
> > than interclient?</FONT></DIV>
> > <DIV><FONT face=Arial size=2>I did some tests quite some time back, and
> > found it
> > to be crawling compared</FONT></DIV>
> > <DIV><FONT face=Arial size=2>to Interclient. I wanted to fall back to
> > Interclient for the time being, but </FONT></DIV>
> > <DIV><FONT face=Arial size=2>it's connection error bug is killing me.
> > </FONT></DIV>
> > <DIV> </DIV>
> > <DIV><FONT face=Arial size=2>Thanks!!</FONT></DIV>
> > <DIV> </DIV>
> > <DIV> </DIV>
> > <DIV><FONT face=Arial size=2>Regards</FONT></DIV>
> > <DIV><FONT face=Arial size=2>Kenneth</FONT></DIV></DIV>
> > <DIV> </DIV>
> >
> > <br>
> > <tt>
> > To unsubscribe from this group, send an email to:<BR>
> > IB-Java-unsubscribe@egroups.com<BR>
> > <BR>
> > </tt>
> > <br>
> >
> > <br>
> > <tt>Your use of Yahoo! Groups is subject to the <a
> > href="http://docs.yahoo.com/info/terms/">Yahoo! Terms of
> > Service</a>.</tt>
> > </br>
> >
> > </BODY></HTML>
> >
>
>
> To unsubscribe from this group, send an email to:
> IB-Java-unsubscribe@egroups.com
>
>
>
> Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
>
>
>