Hi,

I'm hoping someone else may have experienced this problem and knows what to do.

My web app works perfectly fine running on Tomcat 6.0.14, but when I
switch to 6.0.16, I get postgres database connection problems.  (Note
I'm running tomcat via Eclipse 3.3.2 on Windows Vista, although the
same problem happens when running on an XP machine.)

Here is what happens when I start up tomcat 6.0.16 (note: the
SetPropertiesRule warning message does not appear when starting the
exact same webapp in tomcat 6.0.14) I don't know if this is part of
the problem, but I thought I'd pass it on just in case:

Jul 24, 2008 11:21:11 AM org.apache.tomcat.util.dig
ester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context}
Setting property 'source' to 'org.e
clipse.jst.jee.server:MesEduSchoolsProject' did not find a matching property.
Jul 24, 2008 11:21:11 AM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal
performance in production envi
ronments was not found on the java.library.path: C:\Program
Files\Java\jre1.6.0_03\bin;.;C:\Windows\
Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program
Files\Java\jre1.6.0_07\bin\client;C:\Program
Files\Java\jre1.6.0_07\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Program
Files\
ATI Technologies\ATI.ACE\Core-Static;C:\Program Files\QuickTime\QTSystem\
Jul 24, 2008 11:21:11 AM org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
Jul 24, 2008 11:21:11 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1395 ms
Jul 24, 2008 11:21:11 AM org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
Jul 24, 2008 11:21:11 AM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.16
Jul 24, 2008 11:21:12 AM org.apache.catalina.core.StandardContext
addApplicationListener
INFO: The listener "teska.backend.SessionCounter" is already
configured for this context. The duplic
ate definition has been ignored.
Jul 24, 2008 11:21:13 AM org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
Jul 24, 2008 11:21:13 AM org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
Jul 24, 2008 11:21:13 AM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/55  config=null
Jul 24, 2008 11:21:13 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 1658 ms



I then run into further problems when I try to open my webapp in a
browser and access a page that pulls data in from my remote postgres
8.3.0 database:


SchoolManager.java: readSchoolsFromDB(): Error while reading all schools
org.postgresql.util.PSQLEx
ception: Operation requires a scrollable ResultSet, but this ResultSet is
FORWARD_ONLY.
     at 
org.postgresql.jdbc2.AbstractJdbc2ResultSet.checkScrollable(AbstractJdbc2ResultSet.java:206)
     at 
org.postgresql.jdbc2.AbstractJdbc2ResultSet.beforeFirst(AbstractJdbc2ResultSet.java:278)
     at 
org.apache.tomcat.dbcp.dbcp.DelegatingResultSet.beforeFirst(DelegatingResultSet.java:320)
     at teska.lookup.SchoolManager.readSchoolsFromDB(SchoolManager.java:64)
     at teska.lookup.SchoolManager.initializeSchoolList(SchoolManager.java:50)
     at teska.lookup.SchoolManager.<init>(SchoolManager.java:22)
     at teska.lookup.SchoolManager.<clinit>(SchoolManager.java:17)
     at org.apache.jsp.initialize_jsp._jspService(initialize_jsp.java:116)
     at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
     at 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
     at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
     at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
     at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290
)
     at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
     at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
     at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
     at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
     at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
     at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
     at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
     at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
     at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
     at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
     at java.lang.Thread.run(Unknown Source)

PSQLException: Operation requires a scrollable ResultSet, but this
ResultSet is FORWARD_ONLY.
null
null


I've managed to fix this error, at least I think, by doing the
following in my sqlQueryBean class:

I changed:
stmt = myConn.prepareStatement(sqlStatement);

to:
stmt = myConn.prepareStatement(sqlStatement, ResultSet.TYPE_SCROLL_SENSITIVE);


After doing that, however I get the another database error that I
can't figure out what is causing it or why it is only showing up when
I use tomcat 6.0.16 and not when I use tomcat 6.0.14.

Here is the new error:

SchoolManager.java: readSchoolsFromDB(): Error while reading all schools
org.postgresql.util.PSQLException: Returning autogenerated keys is not
supported.
     at 
org.postgresql.jdbc3.AbstractJdbc3Connection.prepareStatement(AbstractJdbc3Connection.java:352)
     at 
org.apache.tomcat.dbcp.dbcp.DelegatingConnection.prepareStatement(DelegatingConnection.java:458)
     at 
org.apache.tomcat.dbcp.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.prepareStatement(Poolin
gDataSource.java:394)
     at teska.dbconn.sqlQueryBean.query(sqlQueryBean.java:67)
     at teska.dbconn.sqlQueryBean.query(sqlQueryBean.java:53)
     at teska.lookup.SchoolManager.readSchoolsFromDB(SchoolManager.java:62)
     at teska.lookup.SchoolManager.initializeSchoolList(SchoolManager.java:50)
     at teska.lookup.SchoolManager.<init>(SchoolManager.java:22)
     at teska.lookup.SchoolManager.<clinit>(SchoolManager.java:17)
     at org.apache.jsp.initialize_jsp._jspService(initialize_jsp.java:116)
     at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
     at 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
     at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
     at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
     at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290
)
     at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
     at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
     at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
     at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
     at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
     at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
     at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
     at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
     at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
     at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
     at java.lang.Thread.run(Unknown Source)

PSQLException: Returning autogenerated keys is not supported.
null
null
SchoolManager.java: readSchoolsFromDB(): Error Disconnecting from the database
java.lang.NullPointerException
     at teska.dbconn.sqlQueryBean.cleanup(sqlQueryBean.java:168)
     at teska.dbconn.connPGDBBean.closeConn(connPGDBBean.java:57)
     at teska.lookup.SchoolManager.readSchoolsFromDB(SchoolManager.java:86)
     at teska.lookup.SchoolManager.initializeSchoolList(SchoolManager.java:50)
     at teska.lookup.SchoolManager.<init>(SchoolManager.java:22)
     at teska.lookup.SchoolManager.<clinit>(SchoolManager.java:17)
     at org.apache.jsp.initialize_jsp._jspService(initialize_jsp.java:116)
     at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
     at 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
     at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
     at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
     at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290
)
     at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
     at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
     at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
     at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
     at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
     at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
     at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
     at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
     at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
     at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
     at java.lang.Thread.run(Unknown Source)

NullPointerException:
null
null



Here is the code in my SchoolManager.java that calls SqlQueryBean.java
to process the sql query:



 public static void readSchoolsFromDB(){
           sqlQueryBean sqlQB = new sqlQueryBean();
           try {
                // connect to the database
                sqlQB.makeConnection();

                // SQL string
                String sql = "SELECT sid, name, school_abr,
school_district FROM schools" ;
                 // perform the query on the database
                 ResultSet list = sqlQB.query(sql);

// do stuff

           }
           catch (Exception e){
           System.out.println("SchoolManager.java:
readSchoolsFromDB(): Error while reading all schools");
           System.out.println(ExceptionUtils.getFullStackTrace(e));
           System.out.println(ExceptionUtils.getRootCauseMessage(e));
           System.out.println(ExceptionUtils.getRootCause(e));
           System.out.println(ExceptionUtils.getCause(e));
           }
           finally {
                 try {
                       //close the connection to the database
                       sqlQB.closeConn();
                 }
                 catch(java.lang.Exception e2){
                           System.out.println("SchoolManager.java:
readSchoolsFromDB(): Error Disconnecting from the database");

System.out.println(ExceptionUtils.getFullStackTrace(e2));

System.out.println(ExceptionUtils.getRootCauseMessage(e2));
                         System.out.println(ExceptionUtils.getRootCause(e2));

System.out.println(ExceptionUtils.getCause(e2));
                 }
           }
   }


Here is the code in my SqlQueryBean.java:

PreparedStatement stmt = null;
 public ResultSet query(String sqlStatement) throws Exception {
               stmt = myConn.prepareStatement(sqlStatement,
ResultSet.TYPE_SCROLL_SENSITIVE);
               return (stmt.executeQuery());
 }


My understanding was this error normally arises when trying to send 2
sql statements at once to the database (ex. and insert statement
followed by a select statement to get the auto-generated key.
However, as you can see, this is just a normal select statement, so
I'm not clear what is happening).

Does anyone have any ideas?  Again, all of my code & database
connections work perfectly in 6.0.14 (I don't even need to add the
SCROLL_SENSITIVE change).


If anyone has any ideas, I would be eternally greatful!

Thanks in advance,
Courtenay

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to