[Geoserver-users] ArcSDE connection pooling issues

Hi Gabriel,

thanks for this detailed report, it makes sense now.

Is backporting the only option?

Is there no Geoserver branch which is compliant with Geotools trunk?

Best regards,
Bart

--
Bart van den Eijnden
OSGIS, Open Source GIS
http://www.osgis.nl

--------- Oorspronkelijk bericht --------
Van: Gabriel Roldán <groldan@anonymised.com>
Naar: Bart van den Eijnden OSGIS <bartvde@anonymised.com>
Cc: geoserver-users@lists.sourceforge.net, Saul Farber
<Saul.Farber@anonymised.com>
Onderwerp: Re: [Geoserver-users] ArcSDE connection pooling issues
Datum: 20/02/08 14:06

Hi Bart,

ok, now it makes more sense, unfortunately.
GeoServer 1.6.x uses GeoTools 2.4.x, and arcsde transactions support in

2.4.x

is just horrible, and certainly may be doing any sort of weird things.
On the bright side, a couple months ago the GeoTools ArcSDE plugin was

almost

rewritten from scratch to cope up with propper transaction support, using
arcsde native transactions, and I have fresh news of it working perfectly

to

edit stuff through uDig from the guys that funded that effort.

So arcsde for geotools trunk is much much better, an actually the first

one

that deserves being mentioned as supporting transactions. Some of the more

important improvements made during that rewrite encompasses transaction
support through native arcsde transactions, improved connection pool

handling

and thread safety. The last one is important as ArcSDE connections are not

thread safe, so concurrent access shall be handled at the client code, and

is

the reason why you get those &quot;DATABASE LEVEL ERROR OCCURRED&quot;

errors.

We stressed it a lot as uDig makes heavy concurrent access using

transactions.

Whether the shiny new stuff in trunk could be back ported to 2.4 was asked

before, and I'd say it should be pretty trivial except that the new arcsde

datastore makes use of Java's 5 ReentrantLock to handle concurrency. Yet,

I

guess EDU.oswego.cs.dl.util.concurrent.ReentrantLock could be used instead

for Java 1.4 compatibility. So, backporting it would be a matter of two to

three working days.

Cheers,

Gabriel

On Wednesday 20 February 2008 04:49:03 pm Bart van den Eijnden (OSGIS)

wrote:

&gt; Hi Gabriel,
&gt;
&gt; the OL layers are WFS layers, so Untiled. There are only 3 layers

(one for

&gt; points, polygons and lines) in the application, and using OpenLayers
&gt; (Layer.WFS) new features are added.
&gt;
&gt; So we don't use WMS, only WFS in this case.
&gt;
&gt; I have the default value for the connection timeout, I'll try

increasing

&gt; it.
&gt;
&gt; Best regards,
&gt; Bart
&gt;
&gt; --
&gt; Bart van den Eijnden
&gt; OSGIS, Open Source GIS
&gt; http://www.osgis.nl
&gt;
&gt;
&gt; --------- Oorspronkelijk bericht --------
&gt; Van: Gabriel Roldán &lt;groldan@anonymised.com&gt;
&gt; Naar: geoserver-users@lists.sourceforge.net
&gt; &lt;geoserver-users@lists.sourceforge.net&gt;, Bart van den Eijnden

OSGIS

&gt; &lt;bartvde@anonymised.com&gt;
&gt; Cc: Saul Farber &lt;Saul.Farber@anonymised.com&gt;
&gt; Onderwerp: Re: [Geoserver-users] ArcSDE connection pooling issues
&gt; Datum: 20/02/08 13:41
&gt;
&gt; &gt; Hi Bart,
&gt; &gt;
&gt; &gt; My first thought is it may be a matter of balance bettween

connection

&gt; &gt; pool
&gt; &gt;
&gt; &gt; size and pool's connTimeout argument. Did you try increasing the
&gt;
&gt; connTimeout
&gt;
&gt; &gt; parameter in the DataStore config?
&gt; &gt;
&gt; &gt; question though: is the openlayers client requesting tiles? I've

to admit

&gt;
&gt; I
&gt;
&gt; &gt; never tried a tiling client over arcsde layers myself, but it

would make

&gt; &gt; sense to run out of connections depending on the ammount of

tiles being

&gt; &gt; requested at a time and the ammount of layers composing the map.
&gt; &gt; Yet its though. I've been trying Saul's massgis WMS[1] through

uDig

&gt; &gt; before
&gt; &gt;
&gt; &gt; replying to this message and it seems to perform well even

requesting 20

&gt; &gt; layers at a time.
&gt; &gt;
&gt; &gt; May be Saul (cc'ed) can give us a couple clues about how to set

up a

&gt; &gt; production geoserver backed up by arcsde?
&gt; &gt;
&gt; &gt; Saul: did you ever run into connection exhaustion issues with

your server

&gt;
&gt; and,
&gt;
&gt; &gt; if so, how did you solved them? is it just a matter of having a

ton of

&gt; &gt; available connections? and did you ever tried hitting it with a

tiling

&gt; &gt; client?
&gt; &gt;
&gt; &gt; cheers,
&gt; &gt;
&gt; &gt; Gabriel
&gt; &gt;
&gt; &gt; [1]Massgis WMS server:
&gt;
&gt;

&amp;lt;http://giswebservices.massgis.state.ma.us/geoserver/wms?service=WMS&amp;amp

&gt;;request=GetCapabilities&amp;gt;
&gt;
&gt; &gt; On Wednesday 20 February 2008 02:20:39 pm Bart van den Eijnden

(OSGIS)

&gt;
&gt; wrote:
&gt; &gt; &amp;gt; Hi list,
&gt; &gt; &amp;gt;
&gt; &gt; &amp;gt; we are running into connection pooling issues (using

1.6RC2), we now

&gt;
&gt; have
&gt;
&gt; &gt; &amp;gt; even increased the maximum number up to 25 (coming from

8), but

&gt; &gt; still &amp;gt; Geoserver runs out of connections after a while.

There is only

&gt; &gt; 1
&gt;
&gt; client
&gt;
&gt; &gt; &amp;gt; (OpenLayers based) active!
&gt; &gt; &amp;gt;
&gt; &gt; &amp;gt; What could be the issue?
&gt; &gt; &amp;gt;
&gt; &gt; &amp;gt; Caused by: java.util.NoSuchElementException: Could not

aquire

&gt; &gt; &amp;gt; feature:org.geotools.data.DataSourceException: The

maximun of 25 to

&gt; &gt; &amp;gt;

org.geotools.arcsde.pool.ArcSDEConnectionConfig[dbtype=arcsde,

&gt; &gt; &amp;gt; server=geodatabase.ad.rws.nl, port=5151, instance=null,

user=DID,

&gt; &gt; &amp;gt; password=*****, minConnections=2, maxConnections=25,
&gt;
&gt; connTimeOut=1000] has
&gt;
&gt; &gt; &amp;gt; been reached
&gt; &gt; &amp;gt;
&gt; &gt; &amp;gt; 2008-02-20 11:17:03,298 WARN
&gt; &gt; &amp;gt; [org.geotools.arcsde.pool.ArcSDEConnectionPool] - Out

of

&gt; &gt; connections: &amp;gt; Timeout waiting for idle object
&gt; &gt; &amp;gt; java.util.NoSuchElementException: Timeout waiting for

idle object

&gt; &gt; &amp;gt; at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPo

&gt;
&gt; &gt; &amp;gt;ol.java(Compiled Code))
&gt; &gt; &amp;gt; at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.geotools.arcsde.pool.ArcSDEConnectionPool.getConnection(ArcSDEConnectio

&gt;
&gt; &gt; &amp;gt;nPool.java(Compiled Code))
&gt; &gt; &amp;gt; at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.geotools.arcsde.data.ArcSDEDataStore.getFeatureWriterAppend(ArcSDEDataS

&gt;
&gt; &gt; &amp;gt;tore.java:963) at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.geotools.data.AbstractFeatureStore.addFeatures(AbstractFeatureStore.jav

&gt;
&gt; &gt; &amp;gt;a:249) at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.vfny.geoserver.global.GeoServerFeatureStore.addFeatures(GeoServerFeatur

&gt;
&gt; &gt; &amp;gt;eStore.java:76) at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.geoserver.wfs.InsertElementHandler.execute(InsertElementHandler.java:16

&gt;
&gt; &gt; &amp;gt;4) at

org.geoserver.wfs.Transaction.execute(Transaction.java:328) at

&gt; &gt; &amp;gt;

org.geoserver.wfs.Transaction.transaction(Transaction.java:104) at

&gt; &gt; &amp;gt;
&gt;
&gt;

org.geoserver.wfs.DefaultWebFeatureService.transaction(DefaultWebFeatureSer

&gt;
&gt; &gt; &amp;gt;vice.java:156) at
&gt;
&gt; sun.reflect.GeneratedMethodAccessor203.invoke(Unknown
&gt;
&gt; &gt; &amp;gt; Source) at
&gt; &gt; &amp;gt;
&gt;
&gt;

sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImp

&gt;
&gt; &gt; &amp;gt;l.java(Compiled Code))
&gt; &gt; &amp;gt; at

java.lang.reflect.Method.invoke(Method.java(Compiled

&gt;
&gt; Code))
&gt;
&gt; &gt; &amp;gt; at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(Aop

&gt;
&gt; &gt; &amp;gt;Utils.java:292) at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoin

&gt;
&gt; &gt; &amp;gt;t(ReflectiveMethodInvocation.java:155) at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflec

&gt;
&gt; &gt; &amp;gt;tiveMethodInvocation.java:122) at
&gt; &gt; &amp;gt; org.geoserver.wfs.WFSLogger.invoke(WFSLogger.java:44)
&gt; &gt; &amp;gt; at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflec

&gt;
&gt; &gt; &amp;gt;tiveMethodInvocation.java:144) at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopPr

&gt;
&gt; &gt; &amp;gt;oxy.java:174) at $Proxy0.transaction(Unknown Source)
&gt; &gt; &amp;gt; at

sun.reflect.GeneratedMethodAccessor306.invoke(Unknown

&gt;
&gt; Source)
&gt;
&gt; &gt; &amp;gt; at
&gt; &gt; &amp;gt;
&gt;
&gt;

sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImp

&gt;
&gt; &gt; &amp;gt;l.java(Compiled Code))
&gt; &gt; &amp;gt; at

java.lang.reflect.Method.invoke(Method.java(Compiled

&gt;
&gt; Code))
&gt;
&gt; &gt; &amp;gt; at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.geoserver.security.OperationSecurityInterceptor.invoke(OperationSecurit

&gt;
&gt; &gt; &amp;gt;yInterceptor.java:41) at
&gt; &gt; &amp;gt;

org.geoserver.ows.Dispatcher.execute(Dispatcher.java:495) at

&gt; &gt; &amp;gt;
&gt;
&gt;

org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:188)

&gt;
&gt; &gt; &amp;gt; at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.springframework.web.servlet.mvc.AbstractController.handleRequest(Abstra

&gt;
&gt; &gt; &amp;gt;ctController.java:139) at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(S

&gt;
&gt; &gt; &amp;gt;impleControllerHandlerAdapter.java:44) at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServ

&gt;
&gt; &gt; &amp;gt;let.java:684) at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServl

&gt;
&gt; &gt; &amp;gt;et.java:625) at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkSe

&gt;
&gt; &gt; &amp;gt;rvlet.java:392) at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.ja

&gt;
&gt; &gt; &amp;gt;va:357) at
&gt;
&gt; javax.servlet.http.HttpServlet.service(HttpServlet.java:709) at
&gt;
&gt; &gt; &amp;gt;

javax.servlet.http.HttpServlet.service(HttpServlet.java(Compiled

&gt;
&gt; Code))
&gt;
&gt; &gt; &amp;gt; at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicatio

&gt;
&gt; &gt; &amp;gt;nFilterChain.java(Compiled Code))
&gt; &gt; &amp;gt; at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterC

&gt;
&gt; &gt; &amp;gt;hain.java(Compiled Code))
&gt; &gt; &amp;gt; at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacter

&gt;
&gt; &gt; &amp;gt;EncodingFilter.java:108) at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicatio

&gt;
&gt; &gt; &amp;gt;nFilterChain.java(Compiled Code))
&gt; &gt; &amp;gt; at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterC

&gt;
&gt; &gt; &amp;gt;hain.java(Compiled Code))
&gt; &gt; &amp;gt; at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterC

&gt;
&gt; &gt; &amp;gt;hainProxy.java(Compiled Code))
&gt; &gt; &amp;gt; at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecu

&gt;
&gt; &gt; &amp;gt;rityInterceptor.java:107) at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSe

&gt;
&gt; &gt; &amp;gt;curityInterceptor.java:72) at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterC

&gt;
&gt; &gt; &amp;gt;hainProxy.java(Compiled Code))
&gt; &gt; &amp;gt; at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslati

&gt;
&gt; &gt; &amp;gt;onFilter.java:110) at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterC

&gt;
&gt; &gt; &amp;gt;hainProxy.java(Compiled Code))
&gt; &gt; &amp;gt; at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(An

&gt;
&gt; &gt; &amp;gt;onymousProcessingFilter.java:125) at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterC

&gt;
&gt; &gt; &amp;gt;hainProxy.java(Compiled Code))
&gt; &gt; &amp;gt; at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessi

&gt;
&gt; &gt; &amp;gt;ngFilter.java:178) at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterC

&gt;
&gt; &gt; &amp;gt;hainProxy.java(Compiled Code))
&gt; &gt; &amp;gt; at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(Http

&gt;
&gt; &gt; &amp;gt;SessionContextIntegrationFilter.java:229) at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterC

&gt;
&gt; &gt; &amp;gt;hainProxy.java(Compiled Code))
&gt; &gt; &amp;gt; at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:148)

&gt;
&gt; &gt; &amp;gt; at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98

&gt;
&gt; &gt; &amp;gt;) at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicatio

&gt;
&gt; &gt; &amp;gt;nFilterChain.java(Compiled Code))
&gt; &gt; &amp;gt; at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterC

&gt;
&gt; &gt; &amp;gt;hain.java(Compiled Code))
&gt; &gt; &amp;gt; at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.j

&gt;
&gt; &gt; &amp;gt;ava:213) at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.j

&gt;
&gt; &gt; &amp;gt;ava:178) at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:12

&gt;
&gt; &gt; &amp;gt;6) at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:10

&gt;
&gt; &gt; &amp;gt;5) at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.jav

&gt;
&gt; &gt; &amp;gt;a:107) at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:526)

&gt;
&gt; &gt; &amp;gt; at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)

&gt;
&gt; &gt; &amp;gt; at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)

&gt;
&gt; &gt; &amp;gt; at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConn

&gt;
&gt; &gt; &amp;gt;ection(Http11Protocol.java:744) at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.ja

&gt;
&gt; &gt; &amp;gt;va:527) at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerW

&gt;
&gt; &gt; &amp;gt;orkerThread.java:80) at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.ja

&gt;
&gt; &gt; &amp;gt;va:684) at java.lang.Thread.run(Thread.java:568)
&gt; &gt; &amp;gt; Caused by:
&gt;
&gt; org.geotools.arcsde.pool.UnavailableArcSDEConnectionException:
&gt; &gt; &amp;gt; The maximun of 8 to
&gt; &gt; &amp;gt;

org.geotools.arcsde.pool.ArcSDEConnectionConfig[dbtype=arcsde,

&gt; &gt; &amp;gt; server=geodatabase.ad.rws.nl, port=5151, instance=null,

user=DID,

&gt; &gt; &amp;gt; password=*****, minConnections=2, maxConnections=8,
&gt; &gt; connTimeOut=1000]
&gt;
&gt; has
&gt;
&gt; &gt; &amp;gt; been reached
&gt; &gt; &amp;gt; at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.geotools.arcsde.pool.ArcSDEConnectionPool.getConnection(ArcSDEConnectio

&gt;
&gt; &gt; &amp;gt;nPool.java(Compiled Code))
&gt; &gt; &amp;gt; at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.geotools.arcsde.data.ArcSDEDataStore.getFeatureWriterAppend(ArcSDEDataS

&gt;
&gt; &gt; &amp;gt;tore.java:963) at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.geotools.data.AbstractFeatureStore.addFeatures(AbstractFeatureStore.jav

&gt;
&gt; &gt; &amp;gt;a:249) at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.vfny.geoserver.global.GeoServerFeatureStore.addFeatures(GeoServerFeatur

&gt;
&gt; &gt; &amp;gt;eStore.java:76) at
&gt; &gt; &amp;gt;
&gt;
&gt;

org.geoserver.wfs.InsertElementHandler.execute(InsertElementHandler.java:16

&gt;
&gt; &gt; &amp;gt;4) ... 61 more
&gt; &gt; &amp;gt; 2008-02-20 11:17:03,301 DEBUG
&gt; &gt; &amp;gt; [org.geotools.arcsde.pool.ArcSDEConnectionPool] -

Connection

&gt;
&gt; validated,
&gt;
&gt; &gt; &amp;gt; returned user DID
&gt; &gt; &amp;gt; 2008-02-20 11:17:03,301 INFO [org.geoserver.wfs] -
&gt; &gt; &amp;gt; Request: transaction
&gt; &gt; &amp;gt; handle = null
&gt; &gt; &amp;gt; service = WFS
&gt; &gt; &amp;gt; version = 1.0.0
&gt; &gt; &amp;gt; baseUrl = http://145.50.148.45:8082/geoserver/
&gt; &gt; &amp;gt; lockId = null
&gt; &gt; &amp;gt; group =
&gt; &gt; &amp;gt;
&gt;
&gt;

[net.opengis.wfs:insert=net.opengis.wfs.impl.InsertElementTypeImpl@anonymised.com

&gt;
&gt; &gt; &amp;gt; (feature: [Feature[ id=fid-121efd4e_11831468923_-7fa3 ,
&gt; &gt; OBJECTID=null
&gt;
&gt; ,
&gt;
&gt; &gt; &amp;gt; TITEL=null , DATUM=null , SHAPE=MULTIPOLYGON

(((135439.96200400835

&gt; &gt; &amp;gt; 421159.9247387089, 155040.01315245865

422279.9276614775,

&gt;
&gt; 148319.99561584712
&gt;
&gt; &gt; &amp;gt; 400439.87066749, 135439.96200400835

421159.9247387089))) ]], handle:

&gt;
&gt; null,
&gt;
&gt; &gt; &amp;gt; idgen: &amp;lt;unset&amp;gt;, inputFormat:

&amp;lt;unset&amp;gt;, srsName: null)]

&gt; &gt; &amp;gt; insert =
&gt; &gt; [net.opengis.wfs.impl.InsertElementTypeImpl@anonymised.com &amp;gt;

(feature:

&gt; &gt; [Feature[ id=fid-121efd4e_11831468923_-7fa3 , OBJECTID=null
&gt;
&gt; ,
&gt;
&gt; &gt; &amp;gt; TITEL=null , DATUM=null , SHAPE=MULTIPOLYGON

(((135439.96200400835

&gt; &gt; &amp;gt; 421159.9247387089, 155040.01315245865

422279.9276614775,

&gt;
&gt; 148319.99561584712
&gt;
&gt; &gt; &amp;gt; 400439.87066749, 135439.96200400835

421159.9247387089))) ]], handle:

&gt;
&gt; null,
&gt;
&gt; &gt; &amp;gt; idgen: &amp;lt;unset&amp;gt;, inputFormat:

&amp;lt;unset&amp;gt;, srsName: null)]

&gt; &gt; &amp;gt; update =
&gt; &gt; &amp;gt; delete =
&gt; &gt; &amp;gt; native =
&gt; &gt; &amp;gt; releaseAction = ALL
&gt; &gt; &amp;gt;
&gt; &gt; &amp;gt; TIA.
&gt; &gt; &amp;gt;
&gt; &gt; &amp;gt; Best regards,
&gt; &gt; &amp;gt; Bart
&gt; &gt; &amp;gt;
&gt; &gt; &amp;gt; --
&gt; &gt; &amp;gt; Bart van den Eijnden
&gt; &gt; &amp;gt; OSGIS, Open Source GIS
&gt; &gt; &amp;gt; http://www.osgis.nl
&gt; &gt; &amp;gt;
&gt; &gt; &amp;gt;
&gt; &gt; &amp;gt;
&gt; &gt; &amp;gt;
&gt; &gt; &amp;gt;
&gt; &gt; &amp;gt;
&gt; &gt; &amp;gt;
&gt;
&gt;

-------------------------------------------------------------------------

&gt;
&gt; &gt; &amp;gt; This SF.net email is sponsored by: Microsoft
&gt; &gt; &amp;gt; Defy all challenges. Microsoft(R) Visual Studio 2008.
&gt; &gt; &amp;gt; http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
&gt; &gt; &amp;gt; _______________________________________________
&gt; &gt; &amp;gt; Geoserver-users mailing list
&gt; &gt; &amp;gt; Geoserver-users@lists.sourceforge.net
&gt; &gt; &amp;gt;

https://lists.sourceforge.net/lists/listinfo/geoserver-users

&gt; &gt; &amp;gt;
&gt; &gt; &amp;gt;
&gt;
&gt; !DSPAM:4045,47bc4c14214155219720167!

Bart van den Eijnden (OSGIS) ha scritto:

Hi Gabriel,

thanks for this detailed report, it makes sense now.

Is backporting the only option?

Is there no Geoserver branch which is compliant with Geotools trunk?

Sure, geoserver trunk is, you can pick nightlies of it here:
http://gridlock.openplans.org/geoserver/trunk

However, trunk is where heavy development goes on, so one day
it may work, the next one may not. Also, it's quite a bit
slower than 1.6.x (big changes occurred, a performance optimization
pass still has to be done).

Cheers
Andrea

Hi Bart,

yeah I was meant to tell you about geoserver trunk working against geoserver
trunk but forgot on my previous message, thanks Andrea for chiming in,

So yeah, options are to backport and attach to the geotools+geoserver stable
versions or go wild and try both trunks.

Cheers,
Gabriel.
On Wednesday 20 February 2008 05:19:01 pm Andrea Aime wrote:

Bart van den Eijnden (OSGIS) ha scritto:
> Hi Gabriel,
>
> thanks for this detailed report, it makes sense now.
>
> Is backporting the only option?
>
> Is there no Geoserver branch which is compliant with Geotools trunk?

Sure, geoserver trunk is, you can pick nightlies of it here:
http://gridlock.openplans.org/geoserver/trunk

However, trunk is where heavy development goes on, so one day
it may work, the next one may not. Also, it's quite a bit
slower than 1.6.x (big changes occurred, a performance optimization
pass still has to be done).

Cheers
Andrea

!DSPAM:4045,47bc52f9228647180515871!