Обсуждение: calling java stored functions through jdbc gives errors.
The following simple query I send to the server using JDBC: "SELECT uw_ping()" When the stored function uw_ping() is written in 'plpgsql' everything works fine. But when the uw_ping() is written in java and linked in using PL/java it gives the following error message: org.postgresql.util.PSQLException: An I/O error occured while sending to the backend. Executing the same query using pgadmin III gives no problems. Anyone any idea what the problem is? Best regards, Alex Stienstra.
Hi, Alex, Alex Stienstra wrote: > The following simple query I send to the server using JDBC: > > "SELECT uw_ping()" > > When the stored function uw_ping() is written in 'plpgsql' everything > works fine. But when the uw_ping() is written in java and linked in > using PL/java it gives the following error message: > > org.postgresql.util.PSQLException: An I/O error occured while sending to > the backend. > > Executing the same query using pgadmin III gives no problems. Anyone any > idea what the problem is? It might be a V2/V3 protocol difference. Do you get the error message immediately, or after a short timeout? Can you look into the server logs to see what's noted there? Thanks, markus -- Markus Schaber | Logical Tracking&Tracing International AG Dipl. Inf. | Software Development GIS Fight against software patents in Europe! www.ffii.org www.nosoftwarepatents.org
Alex, Also try preparing the call in psql prepare foo_plan as select uw_ping(); execute foo_plan; However I can tell you that jdbc doesn't do anything particularly different than psql or pgadmin. Dave On 2-Nov-06, at 4:57 AM, Markus Schaber wrote: > Hi, Alex, > > Alex Stienstra wrote: >> The following simple query I send to the server using JDBC: >> >> "SELECT uw_ping()" >> >> When the stored function uw_ping() is written in 'plpgsql' everything >> works fine. But when the uw_ping() is written in java and linked in >> using PL/java it gives the following error message: >> >> org.postgresql.util.PSQLException: An I/O error occured while >> sending to >> the backend. >> >> Executing the same query using pgadmin III gives no problems. >> Anyone any >> idea what the problem is? > > It might be a V2/V3 protocol difference. > > Do you get the error message immediately, or after a short timeout? > > Can you look into the server logs to see what's noted there? > > Thanks, > markus > > > -- > Markus Schaber | Logical Tracking&Tracing International AG > Dipl. Inf. | Software Development GIS > > Fight against software patents in Europe! www.ffii.org > www.nosoftwarepatents.org > > ---------------------------(end of > broadcast)--------------------------- > TIP 9: In versions below 8.0, the planner will ignore your desire to > choose an index scan if your joining column's datatypes do not > match >
Hi, Dave, Dave Cramer wrote: > However I can tell you that jdbc doesn't do anything particularly > different than psql or pgadmin. It uses the V3 protocol, and AFAIK it uses protocol-level prepare instead of PREPARE queries. Regards, Markus -- Markus Schaber | Logical Tracking&Tracing International AG Dipl. Inf. | Software Development GIS Fight against software patents in Europe! www.ffii.org www.nosoftwarepatents.org
On 2-Nov-06, at 7:06 AM, Markus Schaber wrote: > Hi, Dave, > > Dave Cramer wrote: > >> However I can tell you that jdbc doesn't do anything particularly >> different than psql or pgadmin. > > It uses the V3 protocol, and AFAIK it uses protocol-level prepare > instead of PREPARE queries. True enough, try adding protocolVersion=2 to the url and it will use v2 protocol > > Regards, > Markus > > -- > Markus Schaber | Logical Tracking&Tracing International AG > Dipl. Inf. | Software Development GIS > > Fight against software patents in Europe! www.ffii.org > www.nosoftwarepatents.org > > ---------------------------(end of > broadcast)--------------------------- > TIP 5: don't forget to increase your free space map settings >
Hi Dave, Thanks for the advice. I added the protocolVersion=2 option and now it works better. That is to say that every other session is works oke. If not oke it still produces: "An I/O error occured while sending to the backend." Within one session I open a jdbc connection and issue a number of SELECTS with the java function call inside. Any ideas? Best regards, Alex
Alex, Can you get the server logs ? Just the relevant ones before this error ? Dave On 2-Nov-06, at 9:55 AM, Alex Stienstra wrote: > Hi Dave, > > Thanks for the advice. > > I added the protocolVersion=2 option and now it works better. That > is to say that every other session is works oke. If not oke it > still produces: > "An I/O error occured while sending to the backend." > Within one session I open a jdbc connection and issue a number of > SELECTS with the java function call inside. Any ideas? > > Best regards, > > Alex > > >