Re: ConnectionPooling executeUpdate - Mailing list pgsql-jdbc
From | Dave Cramer |
---|---|
Subject | Re: ConnectionPooling executeUpdate |
Date | |
Msg-id | 1088001552.2324.76.camel@localhost.localdomain Whole thread Raw |
In response to | ConnectionPooling executeUpdate (ALBERDI Ion <alberdi@enseirb.fr>) |
List | pgsql-jdbc |
Hi, couple of things. I strongly suggest you use dbcp http://jakarta.apache.org/commons/dbcp/ as your connection pool as it is very good. In general you should look at the server logs to figure out what the driver did or didn't do. I'm curious why you go to such great lengths to make up the query? why not psmt = con.prepareStatement("update service table set servicedeskdocid = ?, servicehelpdocid = ? .... ); Dave On Wed, 2004-06-23 at 10:12, ALBERDI Ion wrote: > Hi everybody! > First excuse me for my poor english, I'm not a native english speaker :-). > > I have problems with the ConnectionPooling Implementation of the 4.3 postgresql jdbc driver: (pg74.214.jdbc3.jar). > I'm using the 4.3-1 postgresql server under windows 2000 with cygwin. > There is my problem: > I am trying to comunicate with this datasource from a web application(the web-server is websphere 5.1 and we use jsp,servlets...). > > First I cannot manage to configure the datasource so that the application takes it in account (with WSAD5.1 I configurea new datasource implemented by org.postgresql.jdbc3.Jdbc3PoolingDataSource and with the serverName dataBaseName,user,maxConnectionsand password properties set), I launch the server and during the execution I get an exceptionwhich says something like Driver cast exception this driver cannot be used as one phase. > > So I tried another thing, instead of configuring the datasource with the websephere interface I configure it with javacode(I know that I may not do that because the code results to be less portable). So there is my code: > > Jdbc3PoolingDataSource pgSource = new Jdbc3PoolingDataSource(); > pgSource.setServerName("localhost"); > pgSource.setDatabaseName(dbName); > pgSource.setUser(userName); > pgSource.setPassword(password); > pgSource.setMaxConnections(numberOfMaxConnections); > ds = (javax.sql.DataSource)pgSource; > > and to obtain a connection I do: > > Connection con = ds.getConnection. > > I launch the server and test it. All the select queries work well, but when I try to do the first update of the database: > > query = new StringBuffer(); > query.append("UPDATE "); > query.append(ServiceTable); > query.append(" SET "); > query.append(ServiceDescDocId); > query.append(" = ?, "); > query.append(ServiceHelpDocId); > query.append(" = ? WHERE "); > query.append(ServiceId); > query.append(" = ?"); > // Execute the query: > psmt = con.prepareStatement(query.toString()); > psmt.setString(1, ddId); > psmt.setString(2, hdId); > psmt.setString(3, svcId); > numUpdates = psmt.executeUpdate(); > > What happens there is that with Connection Pooling the executeUpdate method always returns 0, and that the database isnot upgraded. > I'm currently forced to use the Jdbc3SimpleDataSource class (with this class the application runs perfectly) but I wouldlike to use Connection Pools to improve the application's performances. > > Thanks for having read my mail until the end :) > > ---------------------------(end of broadcast)--------------------------- > TIP 3: if posting/reading through Usenet, please send an appropriate > subscribe-nomail command to majordomo@postgresql.org so that your > message can get through to the mailing list cleanly > > > > !DSPAM:40d993a8230582142038005! > > -- Dave Cramer 519 939 0336 ICQ # 14675561
pgsql-jdbc by date: