[Geoserver-users] Tomcat optimization: CATALINA_OPTS entry

Hi, I was just wondering if someone could add an actual example of what the CATALINA_OPTS environment variable should look like? The information on http://geoserver.org/display/GEOSDOC/6+GeoServer+in+Production+Environment is excellent, but I had to do a bit of research to figure out how to implement the advice that’s located there. I ended up adding the following line to my .bashrc (this is on a Fedora 8 system), and it works great.

export CATALINA_OPTS=“-server -Xms48m -Xmx256M”

Thanks,

Roger

Roger André
GIS Developer/Analyst
Enterprise Management Solutions

CH2M HILL
1100 112th Avenue NE
Suite 400
Bellevue, WA 98004
Direct 425.233.3042
roger.andre@anonymised.com

Developing People through Challenging Projects

Hi Roger,

I think there are quite many places where you can put it. I am using centos and starting tomcat with jsvc script:
http://tomcat.apache.org/tomcat-6.0-doc/setup.html (unix daemon)
so the java options are defined in tomcat (jsvc) script.

It can also be put into catalina.sh in $TOMCAT_HOME/bin under JAVA_OPT if you are starting with startup.sh. Probably many other alternatives exists.

What you can put in your java options depends on your java. Here is a good link with plenty of useful sublinks:

http://blogs.sun.com/watt/resource/jvm-options-list.html

If you are concerning of your Tomcat's performance, use jconsole or some other tool for monitoring. Please let me know if I can help more.

cheers
mika

Roger.Andre@anonymised.com kirjoitti:

Hi, I was just wondering if someone could add an actual example of what the CATALINA_OPTS environment variable should look like? The information on http://geoserver.org/display/GEOSDOC/6+GeoServer+in+Production+Environment is excellent, but I had to do a bit of research to figure out how to implement the advice that's located there. I ended up adding the following line to my .bashrc (this is on a Fedora 8 system), and it works great.
export CATALINA_OPTS="-server -Xms48m -Xmx256M"
Thanks,
Roger
--
Roger André
GIS Developer/Analyst
Enterprise Management Solutions
CH2M HILL
1100 112th Avenue NE
Suite 400
Bellevue, WA 98004
Direct 425.233.3042
roger.andre@anonymised.com <mailto:roger.andre@anonymised.com>
Developing People through Challenging Projects
------------------------------------------------------------------------

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
------------------------------------------------------------------------

_______________________________________________
Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users
  

Yep,

should be using TomCat Manager and its server status. You may suprise what java you are using and what are the memory settings and so on; anyway if you have tested different versions. Learn to use jconsole. There you have everything you ever need to know about your engine under the hood. At least it's enough for me.

mika

Roger.Andre@anonymised.com kirjoitti:

Hi Mika,

Thanks for the information. I had no idea that the settings could be set in so many places.

Roger
--

-----Original Message-----
From: Lehtonen, Mika [mailto:mika@anonymised.com] Sent: Wednesday, March 19, 2008 12:24 PM
To: Andre, Roger/SEA
Cc: geoserver-users@lists.sourceforge.net
Subject: Re: [Geoserver-users] Tomcat optimization: CATALINA_OPTS entry

Hi Roger,

I think there are quite many places where you can put it. I am using centos and starting tomcat with jsvc script:
http://tomcat.apache.org/tomcat-6.0-doc/setup.html (unix daemon) so the java options are defined in tomcat (jsvc) script.

It can also be put into catalina.sh in $TOMCAT_HOME/bin under JAVA_OPT if you are starting with startup.sh. Probably many other alternatives exists.

What you can put in your java options depends on your java. Here is a good link with plenty of useful sublinks:

http://blogs.sun.com/watt/resource/jvm-options-list.html

If you are concerning of your Tomcat's performance, use jconsole or some other tool for monitoring. Please let me know if I can help more.

cheers
mika

Roger.Andre@anonymised.com kirjoitti:
  

Hi, I was just wondering if someone could add an actual example of what the CATALINA_OPTS environment variable should look like? The information on http://geoserver.org/display/GEOSDOC/6+GeoServer+in+Production+Environ
ment is excellent, but I had to do a bit of research to figure out how to implement the advice that's located there. I ended up adding the following line to my .bashrc (this is on a Fedora 8 system), and it works great.
export CATALINA_OPTS="-server -Xms48m -Xmx256M"
Thanks,
Roger
--
Roger André
GIS Developer/Analyst
Enterprise Management Solutions
CH2M HILL
1100 112th Avenue NE
Suite 400
Bellevue, WA 98004
Direct 425.233.3042
roger.andre@anonymised.com <mailto:roger.andre@anonymised.com>
Developing People through Challenging Projects
----------------------------------------------------------------------
--

----------------------------------------------------------------------
--- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
----------------------------------------------------------------------
--

_______________________________________________
Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users
  

I'm trying to stylize a layer and am getting the following error:

java.lang.IllegalArgumentException: Argument "value" should not be null.
     at org.geotools.util.SoftValueHashMap.ensureNotNull(SoftValueHashMap.java:103)
     at org.geotools.util.SoftValueHashMap.put(SoftValueHashMap.java:226)
     at org.geotools.renderer.style.SLDStyleFactory.createStyle(SLDStyleFactory.java:308)
     at org.geotools.renderer.lite.StreamingRenderer.processSymbolizers(StreamingRenderer.java:1732)
     at org.geotools.renderer.lite.StreamingRenderer.process(StreamingRenderer.java:1659)
     at org.geotools.renderer.lite.StreamingRenderer.processStylers(StreamingRenderer.java:1603)
     at org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.java:648)
     at org.geotools.renderer.shape.ShapefileRenderer.renderWithStreamingRenderer(ShapefileRenderer.java:1422)
     at org.geotools.renderer.shape.ShapefileRenderer.paint(ShapefileRenderer.java:1296)
     at org.geotools.renderer.shape.ShapefileRenderer.paint(ShapefileRenderer.java:262)
     at org.vfny.geoserver.wms.responses.DefaultRasterMapProducer.produceMap(DefaultRasterMapProducer.java:286)
     at org.vfny.geoserver.wms.responses.GetMapResponse.execute(GetMapResponse.java:432)

Unfortunately, the error does not tell me a whole lot. Any ideas about what the cause of this error might be or how to track it down? TNX David

--

David R Robison
Open Roads Consulting, Inc.
708 S. Battlefield Blvd., Chesapeake, VA 23322
phone: (757) 546-3401
e-mail: drrobison@anonymised.com
web: http://openroadsconsulting.com
blog: http://therobe.blogspot.com
book: http://www.xulonpress.com/book_detail.php?id=2579

For long features, is it possible to specify in the SLD that a label should be repeated for a feature? TNX David

--

David R Robison
Open Roads Consulting, Inc.
708 S. Battlefield Blvd., Chesapeake, VA 23322
phone: (757) 546-3401
e-mail: drrobison@anonymised.com
web: http://openroadsconsulting.com
blog: http://therobe.blogspot.com
book: http://www.xulonpress.com/book_detail.php?id=2579

I was upgrading from 1.6.0 to 1.6.2a and now get the following error:

Cannot register alias 'catalog' for bean name 'data': it's already registered for bean name 'data'

I downloaded and installed the WAR. Any thoughts? David

David R Robison wrote:

For long features, is it possible to specify in the SLD that a label should be repeated for a feature? TNX David

--

David R Robison
Open Roads Consulting, Inc.
708 S. Battlefield Blvd., Chesapeake, VA 23322
phone: (757) 546-3401
e-mail: drrobison@anonymised.com
web: http://openroadsconsulting.com
blog: http://therobe.blogspot.com
book: http://www.xulonpress.com/book_detail.php?id=2579

My fault, I expanded the WAR without removing the previous directory. David

David R Robison wrote:

···
-- 

David R Robison
Open Roads Consulting, Inc.
708 S. Battlefield Blvd., Chesapeake, VA 23322
phone: (757) 546-3401
e-mail: [drrobison@anonymised.com](mailto:drrobison@anonymised.com)
web: [http://openroadsconsulting.com](http://openroadsconsulting.com)
blog: [http://therobe.blogspot.com](http://therobe.blogspot.com)
book: [http://www.xulonpress.com/book_detail.php?id=2579](http://www.xulonpress.com/book_detail.php?id=2579)

 

Upgrading to 1.6..2a fixed the problem. David

David R Robison wrote:

I'm trying to stylize a layer and am getting the following error:

java.lang.IllegalArgumentException: Argument "value" should not be null.
     at org.geotools.util.SoftValueHashMap.ensureNotNull(SoftValueHashMap.java:103)
     at org.geotools.util.SoftValueHashMap.put(SoftValueHashMap.java:226)
     at org.geotools.renderer.style.SLDStyleFactory.createStyle(SLDStyleFactory.java:308)
     at org.geotools.renderer.lite.StreamingRenderer.processSymbolizers(StreamingRenderer.java:1732)
     at org.geotools.renderer.lite.StreamingRenderer.process(StreamingRenderer.java:1659)
     at org.geotools.renderer.lite.StreamingRenderer.processStylers(StreamingRenderer.java:1603)
     at org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.java:648)
     at org.geotools.renderer.shape.ShapefileRenderer.renderWithStreamingRenderer(ShapefileRenderer.java:1422)
     at org.geotools.renderer.shape.ShapefileRenderer.paint(ShapefileRenderer.java:1296)
     at org.geotools.renderer.shape.ShapefileRenderer.paint(ShapefileRenderer.java:262)
     at org.vfny.geoserver.wms.responses.DefaultRasterMapProducer.produceMap(DefaultRasterMapProducer.java:286)
     at org.vfny.geoserver.wms.responses.GetMapResponse.execute(GetMapResponse.java:432)

Unfortunately, the error does not tell me a whole lot. Any ideas about what the cause of this error might be or how to track it down? TNX David

--

David R Robison
Open Roads Consulting, Inc.
708 S. Battlefield Blvd., Chesapeake, VA 23322
phone: (757) 546-3401
e-mail: drrobison@anonymised.com
web: http://openroadsconsulting.com
blog: http://therobe.blogspot.com
book: http://www.xulonpress.com/book_detail.php?id=2579

David R Robison ha scritto:

For long features, is it possible to specify in the SLD that a label should be repeated for a feature? TNX David

No, it is not. The steps to have it would be:
a) file a jira issue asking for that (otherwise we'll forget)
b) either:
    - provide a patch for it
    - wait for developers to have a need for it
    - sponsor someone to implement it

Cheers
Andrea

Definitely file a feature improvement for it. I could see this fall into the group of "Vendor Options" for labelling. Discussed here:

http://docs.codehaus.org/display/GEOSDOC/LabelingOptions

Andrea: Are all the options listed on that page still relevant?

-Justin

Andrea Aime wrote:

David R Robison ha scritto:

For long features, is it possible to specify in the SLD that a label should be repeated for a feature? TNX David

No, it is not. The steps to have it would be:
a) file a jira issue asking for that (otherwise we'll forget)
b) either:
    - provide a patch for it
    - wait for developers to have a need for it
    - sponsor someone to implement it

Cheers
Andrea

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

!DSPAM:4007,47e80e24286971096210785!

--
Justin Deoliveira
The Open Planning Project
jdeolive@anonymised.com

Justin Deoliveira ha scritto:

Definitely file a feature improvement for it. I could see this fall into the group of "Vendor Options" for labelling. Discussed here:

http://docs.codehaus.org/display/GEOSDOC/LabelingOptions

Andrea: Are all the options listed on that page still relevant?

Most of the are part of the SLD standard so yes, they are. Priority
is a vendor extension, I've never tried to use it, but I'm not aware
of someone intentionally breaking it either, so it should be still
working.

Cheers
Andrea

Can someone explain the Postgis Data Store parameters:

max connections
min connections
validate connections

Thanks, David

--

David R Robison
Open Roads Consulting, Inc.
708 S. Battlefield Blvd., Chesapeake, VA 23322
phone: (757) 546-3401
e-mail: drrobison@anonymised.com
web: http://openroadsconsulting.com
blog: http://therobe.blogspot.com
book: http://www.xulonpress.com/book_detail.php?id=2579

David R Robison ha scritto:

Can someone explain the Postgis Data Store parameters:

max connections
min connections
validate connections

I've tried to embed the response in this wiki page:
http://geoserver.org/display/GEOSDOC/Connection+pooling+options+(for+DBMS+based+datastores)

Let me know if it's clear enough.
Cheers
Andrea

Under high load, we are occasionally seeing what appears to be a deadlock situation. We ran a full thread dump in the Tomcat process and found two threads that appear to be in a deadlock situation. Here are their stack traces: Notice the locks on addresses 0x078fdb20 and 0x07c332b0.

"http-8080-2" daemon prio=6 tid=0x4cf12000 nid=0x7dc waiting for monitor entry [0x4e94d000..0x4e94fb98]
   java.lang.Thread.State: BLOCKED (on object monitor)
    at org.geotools.metadata.iso.citation.CitationImpl.getIdentifiers(CitationImpl.java:292)
    - waiting to lock <0x07c332b0> (a org.geotools.metadata.iso.citation.CitationImpl)
    at sun.reflect.GeneratedMethodAccessor35.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.geotools.metadata.PropertyAccessor.get(PropertyAccessor.java:339)
    at org.geotools.metadata.PropertyAccessor.shallowEquals(PropertyAccessor.java:420)
    at org.geotools.metadata.MetadataStandard.shallowEquals(MetadataStandard.java:283)
    at org.geotools.metadata.AbstractMetadata.equals(AbstractMetadata.java:160)
    - locked <0x078fdb20> (a org.geotools.metadata.iso.citation.CitationImpl)
    at org.geotools.resources.Utilities.equals(Utilities.java:53)
    at org.geotools.referencing.NamedIdentifier.equals(NamedIdentifier.java:670)
    at org.geotools.resources.Utilities.equals(Utilities.java:53)
    at org.geotools.referencing.AbstractIdentifiedObject.equals(AbstractIdentifiedObject.java:858)
    at org.geotools.referencing.AbstractReferenceSystem.equals(AbstractReferenceSystem.java:164)
    at org.geotools.referencing.crs.AbstractCRS.equals(AbstractCRS.java:159)
    at org.geotools.referencing.crs.AbstractSingleCRS.equals(AbstractSingleCRS.java:154)
    at org.geotools.referencing.AbstractIdentifiedObject.equals(AbstractIdentifiedObject.java:824)
    at org.vfny.geoserver.global.GeoServerFeatureSource.reprojectFeatureCollection(GeoServerFeatureSource.java:396)
    at org.vfny.geoserver.global.GeoServerFeatureSource.getFeatures(GeoServerFeatureSource.java:321)
    at org.geoserver.wfs.GetFeature.getFeatures(GetFeature.java:345)
    at org.geoserver.wfs.GetFeature.run(GetFeature.java:257)
    at org.geoserver.wfs.DefaultWebFeatureService.getFeature(DefaultWebFeatureService.java:108)
    at sun.reflect.GeneratedMethodAccessor111.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:292)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:155)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:122)
    at org.geoserver.wfs.WFSLogger.invoke(WFSLogger.java:44)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:174)
    at $Proxy0.getFeature(Unknown Source)
    at sun.reflect.GeneratedMethodAccessor128.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.geoserver.security.OperationSecurityInterceptor.invoke(OperationSecurityInterceptor.java:41)
    at org.geoserver.ows.Dispatcher.execute(Dispatcher.java:495)
    at org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:188)
    at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:139)
    at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:44)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:684)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:625)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:392)
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:357)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    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.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:69)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:47)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:264)
    at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
    at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
    at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110)
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
    at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
    at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:178)
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
    at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:229)
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
    at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:148)
    at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    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:263)
    at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:852)
    at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:584)
    at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1508)
    at java.lang.Thread.run(Unknown Source)

"http-8080-1" daemon prio=6 tid=0x4ce4a400 nid=0x1248 waiting for monitor entry [0x4e8cd000..0x4e8cfc98]
   java.lang.Thread.State: BLOCKED (on object monitor)
    at org.geotools.metadata.iso.citation.CitationImpl.getIdentifiers(CitationImpl.java:292)
    - waiting to lock <0x078fdb20> (a org.geotools.metadata.iso.citation.CitationImpl)
    at sun.reflect.GeneratedMethodAccessor35.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.geotools.metadata.PropertyAccessor.get(PropertyAccessor.java:339)
    at org.geotools.metadata.PropertyAccessor.shallowEquals(PropertyAccessor.java:420)
    at org.geotools.metadata.MetadataStandard.shallowEquals(MetadataStandard.java:283)
    at org.geotools.metadata.AbstractMetadata.equals(AbstractMetadata.java:160)
    - locked <0x07c332b0> (a org.geotools.metadata.iso.citation.CitationImpl)
    at org.geotools.resources.Utilities.equals(Utilities.java:53)
    at org.geotools.referencing.NamedIdentifier.equals(NamedIdentifier.java:670)
    at org.geotools.resources.Utilities.equals(Utilities.java:53)
    at org.geotools.referencing.AbstractIdentifiedObject.equals(AbstractIdentifiedObject.java:858)
    at org.geotools.referencing.AbstractReferenceSystem.equals(AbstractReferenceSystem.java:164)
    at org.geotools.referencing.crs.AbstractCRS.equals(AbstractCRS.java:159)
    at org.geotools.referencing.crs.AbstractSingleCRS.equals(AbstractSingleCRS.java:154)
    at org.geotools.referencing.AbstractIdentifiedObject.equals(AbstractIdentifiedObject.java:824)
    at org.geotools.data.crs.ForceCoordinateSystemFeatureResults.forceType(ForceCoordinateSystemFeatureResults.java:95)
    at org.geotools.data.crs.ForceCoordinateSystemFeatureResults.<init>(ForceCoordinateSystemFeatureResults.java:71)
    at org.geotools.data.crs.ForceCoordinateSystemFeatureResults.<init>(ForceCoordinateSystemFeatureResults.java:66)
    at org.vfny.geoserver.global.GeoServerFeatureSource.reprojectFeatureCollection(GeoServerFeatureSource.java:397)
    at org.vfny.geoserver.global.GeoServerFeatureSource.getFeatures(GeoServerFeatureSource.java:321)
    at org.geoserver.wfs.GetFeature.getFeatures(GetFeature.java:345)
    at org.geoserver.wfs.GetFeature.run(GetFeature.java:257)
    at org.geoserver.wfs.DefaultWebFeatureService.getFeature(DefaultWebFeatureService.java:108)
    at sun.reflect.GeneratedMethodAccessor111.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:292)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:155)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:122)
    at org.geoserver.wfs.WFSLogger.invoke(WFSLogger.java:44)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:174)
    at $Proxy0.getFeature(Unknown Source)
    at sun.reflect.GeneratedMethodAccessor128.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.geoserver.security.OperationSecurityInterceptor.invoke(OperationSecurityInterceptor.java:41)
    at org.geoserver.ows.Dispatcher.execute(Dispatcher.java:495)
    at org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:188)
    at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:139)
    at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:44)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:684)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:625)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:392)
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:357)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    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.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:69)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:47)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:264)
    at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
    at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
    at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110)
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
    at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
    at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:178)
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
    at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:229)
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
    at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:148)
    at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    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:263)
    at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:852)
    at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:584)
    at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1508)
    at java.lang.Thread.run(Unknown Source)

Any thoughts as to what the problem might be or how to get around this? Thanks, David

--

David R Robison
Open Roads Consulting, Inc.
708 S. Battlefield Blvd., Chesapeake, VA 23322
phone: (757) 546-3401
e-mail: drrobison@anonymised.com
web: http://openroadsconsulting.com
blog: http://therobe.blogspot.com
book: http://www.xulonpress.com/book_detail.php?id=2579

David R Robison a écrit :

Under high load, we are occasionally seeing what appears to be a deadlock situation. We ran a full thread dump in the Tomcat process and found two threads that appear to be in a deadlock situation. Here are their stack traces: Notice the locks on addresses 0x078fdb20 and 0x07c332b0.

Created a JIRA task:

http://jira.codehaus.org/browse/GEOT-1777

Thanks for reporting,

  Martin

If I set SRSHandling to LEAVE, will it not call this code and thus not risk a deadlock? TNX David

Martin Desruisseaux wrote:

···
-- 

David R Robison
Open Roads Consulting, Inc.
708 S. Battlefield Blvd., Chesapeake, VA 23322
phone: (757) 546-3401
e-mail: [drrobison@anonymised.com](mailto:drrobison@anonymised.com)
web: [http://openroadsconsulting.com](http://openroadsconsulting.com)
blog: [http://therobe.blogspot.com](http://therobe.blogspot.com)
book: [http://www.xulonpress.com/book_detail.php?id=2579](http://www.xulonpress.com/book_detail.php?id=2579)

 

David R Robison ha scritto:

If I set SRSHandling to LEAVE, will it not call this code and thus not risk a deadlock? TNX David

No, it will reach the same code using a different path. It's a matter
of time and bad luck, but eventually it will deadlock anyways...

Cheers
Andrea

We are about to go into production on a system that makes heavy use of geoserver. Any thoughts as to how to work around this? Any help would be appreciated. TNX David

Andrea Aime wrote:

David R Robison ha scritto:

If I set SRSHandling to LEAVE, will it not call this code and thus not risk a deadlock? TNX David

No, it will reach the same code using a different path. It's a matter
of time and bad luck, but eventually it will deadlock anyways...

Cheers
Andrea

--

David R Robison
Open Roads Consulting, Inc.
708 S. Battlefield Blvd., Chesapeake, VA 23322
phone: (757) 546-3401
e-mail: drrobison@anonymised.com
web: http://openroadsconsulting.com
blog: http://therobe.blogspot.com
book: http://www.xulonpress.com/book_detail.php?id=2579

David R Robison ha scritto:

We are about to go into production on a system that makes heavy use of geoserver. Any thoughts as to how to work around this? Any help would be appreciated. TNX David

No idea... it seems to be a bug in the code and has to be resolved
as such... the only thing that might help is a patch.
Cheers
Andrea

I am using a PostGIS data store, is it possible to request that the returned features be sorted in a WFS call? TNX David

--

David R Robison
Open Roads Consulting, Inc.
708 S. Battlefield Blvd., Chesapeake, VA 23322
phone: (757) 546-3401
e-mail: drrobison@anonymised.com
web: http://openroadsconsulting.com
blog: http://therobe.blogspot.com
book: http://www.xulonpress.com/book_detail.php?id=2579