Sequence of events:
1. PostGIS filter processing wasn't working right with Functions
(correct me if I'm wrong here, this is my surface level understanding, I
couldn't figure out a deeper sense when really digging in to the code as
the function handling seemed to be really naive)
2. Jesse ported WFS filter processing code to main, and Cory ported it
to PostGIS.
3. I complained about the port, since all the previous code that did
filter splitting still remained, and the new stuff was just dumped in to
PostGISDataStore, ignoring the nice decomposition we did previously.
4. Cory fixed it the right way. But changed the method signature since
the new filter stuff requires to know the attribute and some transaction
stuff.
5. All datastores were updated to the new method signature.
5 is the step that broke backwards compatibility, since if I just build
Oracle on its own, but don't also build main (which is the right way
from a customer perspective, I just pass them a new oracle jar, not a
whole new gt2-main jar), then it doesn't find the method.
I believe a way to fix may be to have all the non-WFS datastores use the
old method signature. I know that this poses one problem, since the
featureType will be null. I believe that sql splitting code should not
need to depend on knowing the AttributeType - at least it did fine
before, and the new stuff doesn't depend on functions. I concede that
the new stuff might do something a bit smarter, but I don't know it well
enough, and I know the older stuff worked just fine with out the
additional type checking. The new stuff works fine without the
transaction argument thing, but in looking at the code, I fear that
right now it requires the featureType, or else it passes everything to
the post filter, which is obviously less than ideal.
best regards,
Chris
Jody Garnett wrote:
Trying to figure out the sequence of events that broke compatibility
here ...
Did you guys sort this out ... there is no follow up email.
Lets grab an agenda item if this is not resolved.
Jody
So we lost backwards compatibility with DataStores. I built a new
Oracle jar with a bug fix that didn't make it across from 2.1.x. I
couldn't build because it needed a new main build as there was a class
not found. So I built main again, and then tried to just distribute
the oracle jar.
Got this error, buried is:
Caused by: java.lang.NoSuchMethodError:
org.geotools.data.jdbc.DefaultSQLBuilder.<init>(Lorg/geotools/filter/SQL
Encoder;Lorg/geotools/feature/FeatureType;Lorg/geotools/filter/visitor/C
lientTransactionAccessor;)V
So now I have to distribute a 2.5 meg main jar to get users working
right. Is there any way to make it so this code is backwards
compatible? I'm not sure what a client transaction accessor is. This
is RC's, so I'm not going to raise a big fit which I would if it was
2.2.0. But it kinda sucks since GeoServer is in 1.3.2, and we did the
upgrade to 2.2.x for 1.3.1 since we thought it'd be stable - I'd
ideally like my datastore users to be able to upgrade a bug fix with
only having to put in one new jar.
Chris
-------- Original Message --------
Subject: RE: [Geoserver-users] Geoserver leaves (again) too many open
database connections to Oracle?
Date: Fri, 21 Jul 2006 17:04:44 +0200
From: Hans-Ulrich Otto <[EMAIL PROTECTED]>
To: Chris Holmes <[EMAIL PROTECTED]>
CC: Tilman klar <[EMAIL PROTECTED]>, Hannes Scharmann
<[EMAIL PROTECTED]>
Hi,
I am getting the exceptions below, when I try to access WMS (via
mapbuilder) with this jar:
Thanks for the help,
Uli.
-----------------------------------
http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.vfny.geoserver.wms.servlets.WmsDispatcher.doResponse(WmsDispatcher.j
ava:156)
at
org.vfny.geoserver.wms.servlets.WmsDispatcher.doGet(WmsDispatcher.java:1
15)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:252)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:173)
at
org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharac
terEncodingFilter.java:122)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:202)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:173)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
e.java:213)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
e.java:178)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authenticator
Base.java:524)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
:126)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
:105)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
java:107)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:1
48)
at
org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.j
ava:831)
at
org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.proce
ss(Http11AprProtocol.java:639)
at
org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1196)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.NoSuchMethodError:
org.geotools.data.jdbc.DefaultSQLBuilder.<init>(Lorg/geotools/filter/SQL
Encoder;Lorg/geotools/feature/FeatureType;Lorg/geotools/filter/visitor/C
lientTransactionAccessor;)V
at
org.geotools.data.oracle.OracleDataStore.getSqlBuilder(OracleDataStore.j
ava:257)
at
org.geotools.data.jdbc.JDBC1DataStore.getFeatureReader(JDBC1DataStore.ja
va:601)
at
org.geotools.data.jdbc.JDBCFeatureCollection.reader(JDBCFeatureCollectio
n.java:78)
at
org.geotools.renderer.lite.StreamingRenderer.getReader(StreamingRenderer
.java:1096)
at
org.geotools.renderer.lite.StreamingRenderer.processStylers(StreamingRen
derer.java:1194)
at
org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.jav
a:506)
at
org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.jav
a:390)
at
org.vfny.geoserver.wms.responses.DefaultRasterMapProducer.produceMap(Def
aultRasterMapProducer.java:244)
at
org.vfny.geoserver.wms.responses.GetMapResponse.execute(GetMapResponse.j
ava:187)
at
org.vfny.geoserver.servlets.AbstractService.doService(AbstractService.ja
va:452)
... 23 more
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:252)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:173)
at
org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharac
terEncodingFilter.java:122)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:202)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:173)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
e.java:213)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
e.java:178)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authenticator
Base.java:524)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
:126)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
:105)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
java:107)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:1
48)
at
org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.j
ava:831)
at
org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.proce
ss(Http11AprProtocol.java:639)
at
org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1196)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.NoSuchMethodError:
org.geotools.data.jdbc.DefaultSQLBuilder.<init>(Lorg/geotools/filter/SQL
Encoder;Lorg/geotools/feature/FeatureType;Lorg/geotools/filter/visitor/C
lientTransactionAccessor;)V
at
org.geotools.data.oracle.OracleDataStore.getSqlBuilder(OracleDataStore.j
ava:257)
at
org.geotools.data.jdbc.JDBC1DataStore.getFeatureReader(JDBC1DataStore.ja
va:601)
at
org.geotools.data.jdbc.JDBCFeatureCollection.reader(JDBCFeatureCollectio
n.java:78)
at
org.geotools.renderer.lite.StreamingRenderer.getReader(StreamingRenderer
.java:1096)
at
org.geotools.renderer.lite.StreamingRenderer.processStylers(StreamingRen
derer.java:1194)
at
org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.jav
a:506)
at
org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.jav
a:390)
at
org.vfny.geoserver.wms.responses.DefaultRasterMapProducer.produceMap(Def
aultRasterMapProducer.java:244)
at
org.vfny.geoserver.wms.responses.GetMapResponse.execute(GetMapResponse.j
ava:187)
at
org.vfny.geoserver.servlets.AbstractService.doService(AbstractService.ja
va:452)
... 23 more
erChain.doFilter(ApplicationFilterChain.java:173)
at
org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharac
terEncodingFilter.java:122)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:202)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:173)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
e.java:213)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
e.java:178)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authenticator
Base.java:524)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
:126)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
:105)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
java:107)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:1
48)
at
org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.j
ava:831)
at
org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.proce
ss(Http11AprProtocol.java:639)
at
org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1196)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.NoSuchMethodError:
org.geotools.data.jdbc.DefaultSQLBuilder.<init>(Lorg/geotools/filter/SQL
Encoder;Lorg/geotools/feature/FeatureType;Lorg/geotools/filter/visitor/C
lientTransactionAccessor;)V
at
org.geotools.data.oracle.OracleDataStore.getSqlBuilder(OracleDataStore.j
ava:257)
at
org.geotools.data.jdbc.JDBC1DataStore.getFeatureReader(JDBC1DataStore.ja
va:601)
at
org.geotools.data.jdbc.JDBCFeatureCollection.reader(JDBCFeatureCollectio
n.java:78)
at
org.geotools.renderer.lite.StreamingRenderer.getReader(StreamingRenderer
.java:1096)
at
org.geotools.renderer.lite.StreamingRenderer.processStylers(StreamingRen
derer.java:1194)
at
org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.jav
a:506)
at
org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.jav
a:390)
at
org.vfny.geoserver.wms.responses.DefaultRasterMapProducer.produceMap(Def
aultRasterMapProducer.java:244)
at
org.vfny.geoserver.wms.responses.GetMapResponse.execute(GetMapResponse.j
ava:187)
at
org.vfny.geoserver.servlets.AbstractService.doService(AbstractService.ja
va:452)
... 23 more
-----Original Message-----
From: Chris Holmes [mailto:[EMAIL PROTECTED]
Sent: Freitag, 21. Juli 2006 16:45
To: Hans-Ulrich Otto
Cc: Tilman klar; Hannes Scharmann
Subject: Re: [Geoserver-users] Geoserver leaves (again) too many open
database connections to Oracle?
What was the error?
Maybe I'll try the oracle express edition this weekend, as it's supposed
to be lightweight and I can test on it.
C
Hans-Ulrich Otto wrote:
Hi,
Thanks for the quick reply. Unfortunately, the jar does not work.
After
replacing and restarting, geoserver was not able to connect to Oracle
at
all.
Best regards,
Uli.
-----Original Message-----
From: Chris Holmes [mailto:[EMAIL PROTECTED] Sent: Donnerstag,
20. Juli 2006 21:41
To: Hans-Ulrich Otto
Cc: Tilman klar; Hannes Scharmann
Subject: Re: [Geoserver-users] Geoserver leaves (again) too many open
database connections to Oracle?
Could you guys give this one a whirl? There's been some development
that leads to a small chance that I need to give you another update,
but
the developers told me this should work. If it's good, I'll go ahead
and put out a plug-in release.
best regards,
Chris
Hans-Ulrich Otto wrote:
Hi,
We upgraded this week geoserver 1.3.2 (from 1.3.0) and noticed that
suddenly an old (and in 1.3.0) already fixed problem happens again:
Geoserver leaves a lot of open connections to Oracle db. At some
point
in time the max. number of connections is reached (in our case 160)
and
Oracle rejects any further access.
Can we maybe fix this by using an older Oracle connector?
Thanks in advance for a quick reply,
Uli.
------------------------------------------------------------------------
------------------------------------------------------------------------
-
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to
share your
opinions on IT & business topics through brief surveys -- and earn
cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDE
V
------------------------------------------------------------------------
_______________________________________________
Geoserver-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/geoserver-users
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
------------------------------------------------------------------------
_______________________________________________
Geotools-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-devel
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Geotools-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-devel
!DSPAM:1003,44c4de4b99767785049143!
--
Chris Holmes
The Open Planning Project
http://topp.openplans.org
begin:vcard
fn:Chris Holmes
n:Holmes;Chris
org:The Open Planning Project
adr:;;377 Broadway, 11th Floor;New York;NY;10013;USA
email;internet:[EMAIL PROTECTED]
title:VP, Strategic Development
x-mozilla-html:FALSE
url:http://topp.openplans.org
version:2.1
end:vcard
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Geotools-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-devel