Hi all. I am new to PostgreSQL and JDBC so any help would be appreciated...
I've included some code that essentially represents a servlet that gets an
image from a PostgreSQL database. It appears that the transaction begins,
executes, and ends correctly but then starts another query. Where is that
last query comming from?
public void run( HttpPresentationComms comms ) throws
HttpPresentationException {
DBConnection conn = null;
try {
comms.response.setContentType( "image/jpg" );
conn = Enhydra.getDatabaseManager().allocateConnection();
conn.setAutoCommit( false );
ResultSet rs = conn.executeQuery(
"SELECT IMAGE_DATA FROM IMAGE WHERE IMAGE_ID = " +
comms.request.getParameter( "id" ) );
byte[] data = null;
if ( rs.next() ) {
data = rs.getBytes( source );
}
conn.commit();
conn.close();
comms.response.getOutputStream().write( data );
} catch ( Exception e ) {
try {
conn.rollback();
} catch ( SQLException sqle ) {
System.err.println( "ERROR rolling back" );
sqle.printStackTrace();
}
e.printStackTrace();
} finally {
if ( conn != null ) {
conn.release();
}
}
}
Below is what I find in the PostgreSQL log. Notice that the query executes
and commits then another query begins. Nothing else happens after this and
the process says "idle in transaction".
2002-03-07 14:56:16 DEBUG: query: begin
2002-03-07 14:56:16 DEBUG: ProcessUtility: begin
2002-03-07 14:56:16 DEBUG: query: SELECT IMAGE_DATA FROM IMAGE WHERE
IMAGE_ID = 1131
2002-03-07 14:56:16 DEBUG: query: select proname, oid from pg_proc where
proname = 'lo_open' or proname = 'lo_close' or proname = 'lo_creat'
or proname = 'lo_unlink' or proname = 'lo_lseek' or proname = 'lo_tell'
or proname = 'loread' or proname = 'lowrite'
2002-03-07 14:56:16 DEBUG: query: commit
2002-03-07 14:56:16 DEBUG: ProcessUtility: commit
2002-03-07 14:56:16 DEBUG: query: begin
2002-03-07 14:56:16 DEBUG: ProcessUtility: begin
I have several questions about this: Am I doing something wrong? Is this
normal/expected behavior? Will it cause problems?
--
Jeremy Ferry
jferry@iexposure.com
Internet Exposure Inc.
http://www.iexposure.com
(612) 676-1946 (ext 18)
Web Development - Web Marketing - ISP Services