|
Hi,
GeoServer 2.1.2 is deployed on Weblogic 10.3.4.0, and configured an external data directory as specified in web.xml. The data directory is shared between the two servers in the cluster.
When starting GeoServer on both servers: one of the servers works fine, but the other one failes with an exception: "Invocation of init method failed; nested exception is com.sleepycat.je.EnvironmentLockedException: (JE 4.1.7) /data/datex/geoserver_data/gwc/diskquota_page_store
The environment cannot be locked for single writer access. ENV_LOCKED: The je.lck file could not be locked. Environment is invalid and must be closed." (see details below).
Through searching the internet, we understand that this might have something to do with the embedded GWC.
Is there a way to make GeoServer work with a shared data directory? Is it designed to work with a shared data directory at all? Has anyone got experience with installing and using GeoServer in a Weblogic server cluster?
Best regards,
Sebjørn Birkeland
More details from the stack trace:
####<Feb 14, 2012 12:38:08 PM CET> <Warning> <HTTP> <svvujapp06> <server-datex-01> <[ACTIVE] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1329219488254> <BEA-101162> <User defined listener
org.geoserver.platform.GeoServerContextLoaderListener failed: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'gwcFacade' defined in URL [zip:/opt/Oracle/Middleware/user_projects/domains/domain-tmt- u01/servers/server-datex-01/tmp/_WL_user/geoserver/3lc4ia/war/WEB-INF/lib/gwc-2.1.2.jar!/geowebcache-geoserver-context.xml]: Cannot resolve reference to bean 'DiskQuotaStore' while setting constructor argument; nested
exception is org.sp ringframework.beans.factory.BeanCreationException: Error creating bean with name 'DiskQuotaStore' defined in URL [zip:/opt/Oracle/Middleware/user_projects/domains/domain-tmt-u01/servers/server-datex-01/tmp/_WL_user/geoserver/3lc4ia/war/W EB-INF/lib/gwc-2.1.2.jar!/geowebcache-diskquota-context.xml]: Invocation of init method failed; nested exception is com.sleepycat.je.EnvironmentLockedException: (JE 4.1.7) /data/datex/geoserver_data/gwc/diskquota_page_store
The environme nt cannot be locked for single writer access. ENV_LOCKED: The je.lck file could not be locked. Environment is invalid and must be closed.. org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'gwcFacade' defined in URL [zip:/opt/Oracle/Middleware/user_projects/domains/domain-tmt-u01/servers/server-datex-01/tmp/_WL_user/geoserver/3lc4ia/war/ WEB-INF/lib/gwc-2.1.2.jar!/geowebcache-geoserver-context.xml]: Cannot resolve reference to bean 'DiskQuotaStore' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException:
Error creat ing bean with name 'DiskQuotaStore' defined in URL [zip:/opt/Oracle/Middleware/user_projects/domains/domain-tmt-u01/servers/server-datex-01/tmp/_WL_user/geoserver/3lc4ia/war/WEB-INF/lib/gwc-2.1.2.jar!/geowebcache-diskquota-context.xml]: Invocation of init method failed; nested exception is com.sleepycat.je.EnvironmentLockedException: (JE 4.1.7) /data/datex/geoserver_data/gwc/diskquota_page_store The environment cannot be locked for single writer access.
ENV_LOCKED: The je.lck file could not be locked. Environment is invalid and must be closed. at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:275) at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:104) at org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:495) at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:162) SEBJØRN SÆTHER BIRKELAND
SENIOR CONSULTANT
+47 982 19 301
[hidden email] | www.bekk.no | open.bekk.no
BEKK CONSULTING AS
AKERSHUSSTRANDA 21 SKUR 39
P.O.BOX 134 SENTRUM, 0102
OSLO, NORWAY
------------------------------------------------------------------------------ Keep Your Developer Skills Current with LearnDevNow! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you subscribe now! http://p.sf.net/sfu/learndevnow-d2d _______________________________________________ Geoserver-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/geoserver-users |
|
On Tue, Feb 14, 2012 at 1:26 PM, Sebjørn Birkeland
<[hidden email]> wrote: > > Hi, > > GeoServer 2.1.2 is deployed on Weblogic 10.3.4.0, and configured an external data directory as specified in web.xml. The data directory is shared between the two servers in the cluster. > > When starting GeoServer on both servers: one of the servers works fine, but the other one failes with an exception: "Invocation of init method failed; nested exception is com.sleepycat.je.EnvironmentLockedException: (JE 4.1.7) /data/datex/geoserver_data/gwc/diskquota_page_store The environment cannot be locked for single writer access. ENV_LOCKED: The je.lck file could not be locked. Environment is invalid and must be closed." (see details below). > > Through searching the internet, we understand that this might have something to do with the embedded GWC. > > Is there a way to make GeoServer work with a shared data directory? Is it designed to work with a shared data directory at all? Has anyone got experience with installing and using GeoServer in a Weblogic server cluster? Yes, it has able to cluster since many years ago, unfortunately GWC has a couple of functionalities, enabled by default, that do not work in clustered mode: the disk quota module and the metastore. If you don't need GWC the easiest thing to do is to go in WEB-INF/lib and just remove all the *gwc* jars, the rest of GeoServer will be mostly unaffected (there is only one or two optional KML modules that actually need GWC afaik). Otherwise you can setup the following system variables in the JVM that runs GeoServer: -DGWC_DISKQUOTA_DISABLED=true -DGWC_METASTORE_DISABLED=true See http://geowebcache.org/docs/current/configuration/diskquotas.html and http://geowebcache.org/docs/current/configuration/storage.html#metastore Cheers Andrea -- ------------------------------------------------------- Ing. Andrea Aime GeoSolutions S.A.S. Tech lead Via Poggio alle Viti 1187 55054 Massarosa (LU) Italy phone: +39 0584 962313 fax: +39 0584 962313 mob: +39 339 8844549 http://www.geo-solutions.it http://geo-solutions.blogspot.com/ http://www.youtube.com/user/GeoSolutionsIT http://www.linkedin.com/in/andreaaime http://twitter.com/geowolf ------------------------------------------------------- ------------------------------------------------------------------------------ Keep Your Developer Skills Current with LearnDevNow! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you subscribe now! http://p.sf.net/sfu/learndevnow-d2d _______________________________________________ Geoserver-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/geoserver-users |
|
Hi Andrea,
Thank you for your answer. We have tried removing all the jar-files related to GWC, and this seems to work. For the moment, this is ok, but we are not sure how we can find good long term solution to this. At some point we need to be able to run GS with GWC on our Weblogic-servers. Is the solution to use stand-alone GWC-s, or will this give us the same result? Perhaps someone else has GS/GWC running on Weblogic and can give us some input? To disable diskquota and metastore seems, from the documentation, to disable core functionality of the GWC (the metastore in particular)? Would we not end up with a poorly configured / performing cache with these options disabled? Best regards, Sebjørn Birkeland SEBJØRN SÆTHER BIRKELAND SENIOR CONSULTANT +47 982 19 301 [hidden email] | www.bekk.no | open.bekk.no ________________________________________ Fra: [hidden email] [[hidden email]] på vegne av Andrea Aime [[hidden email]] Sendt: 14. februar 2012 14:08 To: Sebjørn Birkeland Cc: [hidden email] Emne: Re: [Geoserver-users] Using GeoServer with shared data directory On Tue, Feb 14, 2012 at 1:26 PM, Sebjørn Birkeland <[hidden email]> wrote: > > Hi, > > GeoServer 2.1.2 is deployed on Weblogic 10.3.4.0, and configured an external data directory as specified in web.xml. The data directory is shared between the two servers in the cluster. > > When starting GeoServer on both servers: one of the servers works fine, but the other one failes with an exception: "Invocation of init method failed; nested exception is com.sleepycat.je.EnvironmentLockedException: (JE 4.1.7) /data/datex/geoserver_data/gwc/diskquota_page_store The environment cannot be locked for single writer access. ENV_LOCKED: The je.lck file could not be locked. Environment is invalid and must be closed." (see details below). > > Through searching the internet, we understand that this might have something to do with the embedded GWC. > > Is there a way to make GeoServer work with a shared data directory? Is it designed to work with a shared data directory at all? Has anyone got experience with installing and using GeoServer in a Weblogic server cluster? Yes, it has able to cluster since many years ago, unfortunately GWC has a couple of functionalities, enabled by default, that do not work in clustered mode: the disk quota module and the metastore. If you don't need GWC the easiest thing to do is to go in WEB-INF/lib and just remove all the *gwc* jars, the rest of GeoServer will be mostly unaffected (there is only one or two optional KML modules that actually need GWC afaik). Otherwise you can setup the following system variables in the JVM that runs GeoServer: -DGWC_DISKQUOTA_DISABLED=true -DGWC_METASTORE_DISABLED=true See http://geowebcache.org/docs/current/configuration/diskquotas.html and http://geowebcache.org/docs/current/configuration/storage.html#metastore Cheers Andrea -- ------------------------------------------------------- Ing. Andrea Aime GeoSolutions S.A.S. Tech lead Via Poggio alle Viti 1187 55054 Massarosa (LU) Italy phone: +39 0584 962313 fax: +39 0584 962313 mob: +39 339 8844549 http://www.geo-solutions.it http://geo-solutions.blogspot.com/ http://www.youtube.com/user/GeoSolutionsIT http://www.linkedin.com/in/andreaaime http://twitter.com/geowolf ------------------------------------------------------- ------------------------------------------------------------------------------ Keep Your Developer Skills Current with LearnDevNow! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you subscribe now! http://p.sf.net/sfu/learndevnow-d2d _______________________________________________ Geoserver-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/geoserver-users |
|
2012/2/14 Sebjørn Birkeland <[hidden email]> Hi Andrea, Yes, use standalong gwc as front end to your clustered geoservers. A single gwc instance can round robin requests to various wms's. Just add multiple elements to the wmsLayer wmsUrl property: <wmsUrl> <string>http://geoserver1/geoserver/wms</string> <string>http://geoserver2/geoserver/wms</string>
</wmsUrl>
Will not end up with a poorly configured nor less performant gwc. Both components are designed to be disabled. Disabling the disk quota makes no (noticeable) effect on performance. Lost functionality is... well... no disk quota enforcement.
Disabling the metastore does boost performance, as a database query does not need to be made for each and every tile request. You loose the ability to add parameter filters and tile expiration HTTP response headers though.
Cheers, Gabriel
Gabriel Roldan OpenGeo - http://opengeo.org Expert service straight from the developers. ------------------------------------------------------------------------------ Keep Your Developer Skills Current with LearnDevNow! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you subscribe now! http://p.sf.net/sfu/learndevnow-d2d _______________________________________________ Geoserver-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/geoserver-users |
|
Hi,
Thank you for your response.
We will take these considerations into account when we start "designing" our complete production enviroment based on Weblogic servers.
Best regards,
Sebjørn Birkeland
SEBJØRN SÆTHER BIRKELAND
SENIOR CONSULTANT
+47 982 19 301
[hidden email] | www.bekk.no | open.bekk.no Fra: Gabriel Roldan [[hidden email]]
Sendt: 14. februar 2012 19:23 To: Sebjørn Birkeland Cc: Andrea Aime; [hidden email] Emne: Re: [Geoserver-users] Using GeoServer with shared data directory 2012/2/14 Sebjørn Birkeland <[hidden email]>
Hi Andrea, Yes, use standalong gwc as front end to your clustered geoservers. A single gwc instance can round robin requests to various wms's. Just add multiple elements to the wmsLayer wmsUrl property:
<wmsUrl>
<string>http://geoserver1/geoserver/wms</string>
<string>http://geoserver2/geoserver/wms</string>
</wmsUrl>
Will not end up with a poorly configured nor less performant gwc. Both components are designed to be disabled.
Disabling the disk quota makes no (noticeable) effect on performance. Lost functionality is... well... no disk quota enforcement.
Disabling the metastore does boost performance, as a database query does not need to be made for each and every tile request. You loose the ability to add parameter filters and tile expiration HTTP response headers though.
Cheers,
Gabriel
Gabriel Roldan OpenGeo - http://opengeo.org Expert service straight from the developers. ------------------------------------------------------------------------------ Virtualization & Cloud Management Using Capacity Planning Cloud computing makes use of virtualization - but cloud computing also focuses on allowing computing to be delivered as a service. http://www.accelacomm.com/jaw/sfnl/114/51521223/ _______________________________________________ Geoserver-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/geoserver-users |
|
In reply to this post by Gabriel Roldan
On Tue, Feb 14, 2012 at 7:23 PM, Gabriel Roldan <[hidden email]> wrote:
This works, but mind two downsides: * you cannot cluster it if you need the metastore and the disk quota, if you cluster it in order to get HA you'll have to disable them and use a fallback configuration for it (not round robit)
* cache seeding will be slower as GWC has to ask for PNG meta-tiles to GeoServer, and then decode them, slice them in tiles and save them on disk, with the integrated version the png encoding/decoding is dodged
We normally go for the former (two GWC in fallback) and if we have big pre-seed jobs we use a separate GeoServer+integrated GWC dedicated to build the tiles quickly (this also avoids loading the machines that are supposed to serve the end user requests).
Cheers Andrea ------------------------------------------------------- Ing. Andrea Aime GeoSolutions S.A.S. Tech lead Via Poggio alle Viti 1187 55054 Massarosa (LU) Italy phone: +39 0584 962313 fax: +39 0584 962313 mob: +39 339 8844549 http://www.geo-solutions.it http://geo-solutions.blogspot.com/ http://www.youtube.com/user/GeoSolutionsIT http://www.linkedin.com/in/andreaaime http://twitter.com/geowolf ------------------------------------------------------- ------------------------------------------------------------------------------ Virtualization & Cloud Management Using Capacity Planning Cloud computing makes use of virtualization - but cloud computing also focuses on allowing computing to be delivered as a service. http://www.accelacomm.com/jaw/sfnl/114/51521223/ _______________________________________________ Geoserver-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/geoserver-users |
|
Hi Andrea and Gabriel,
We rely on using parameterFilters for our GWC-layers, so I guess that means that we cannot disable the metastore-functionality.
Does that mean that our only option is to use a single GWC-instance with multiple GeoServer-instances? Would not this result in a single point of failure?
Does anyone use multiple GWC-instances on Weblogic with a shared data directory? Is it perhaps possible to configure the servers so that each instance can use a seperate blob store directory?
Best regards,
Sebjørn Birkeland
SEBJØRN SÆTHER BIRKELAND
SENIOR CONSULTANT
+47 982 19 301
[hidden email] | www.bekk.no | open.bekk.no Fra: [hidden email] [[hidden email]] på vegne av Andrea Aime [[hidden email]]
Sendt: 15. februar 2012 12:17 To: Gabriel Roldan Cc: Sebjørn Birkeland; [hidden email] Emne: Re: [Geoserver-users] Using GeoServer with shared data directory On Tue, Feb 14, 2012 at 7:23 PM, Gabriel Roldan
<[hidden email]> wrote:
This works, but mind two downsides:
* you cannot cluster it if you need the metastore and the disk quota, if you cluster it in order to get HA you'll have to disable them and use a fallback configuration for it (not round robit)
* cache seeding will be slower as GWC has to ask for PNG meta-tiles to GeoServer, and then decode them, slice them in tiles and save them on disk, with the integrated version
the png encoding/decoding is dodged
We normally go for the former (two GWC in fallback) and if we have big pre-seed jobs we use a separate GeoServer+integrated GWC dedicated to build the tiles quickly (this also
avoids loading the machines that are supposed to serve the end user requests).
Cheers
Andrea
------------------------------------------------------- Ing. Andrea Aime GeoSolutions S.A.S. Tech lead Via Poggio alle Viti 1187 55054 Massarosa (LU) Italy phone: +39 0584 962313 fax: +39 0584 962313 mob: +39 339 8844549 http://www.geo-solutions.it http://geo-solutions.blogspot.com/ http://www.youtube.com/user/GeoSolutionsIT http://www.linkedin.com/in/andreaaime http://twitter.com/geowolf ------------------------------------------------------- ------------------------------------------------------------------------------ Virtualization & Cloud Management Using Capacity Planning Cloud computing makes use of virtualization - but cloud computing also focuses on allowing computing to be delivered as a service. http://www.accelacomm.com/jaw/sfnl/114/51521223/ _______________________________________________ Geoserver-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/geoserver-users |
|
On Wed, Feb 22, 2012 at 3:58 PM, Sebjørn Birkeland <[hidden email]> wrote:
I believe this is your only option at the moment. And yes, it will result in a single point of failure.
Separate blob stores... hmmm.. this might work but you'll end up wit two separate tile caches too, as far as I remember once the metastore is enabled GWC will check the existance of the tile
in the meta-store too. A solution that would require some modifications to GWC would be to have the metastore become pluggable and allow for usage of a centralized database, like a shared Oracle/PostgreSQL.
And then some way for the two GWC to avoid stepping on each other toes so that they don't try to write the same tiles in parallel. Cheers Andrea ------------------------------------------------------- Ing. Andrea Aime GeoSolutions S.A.S. Tech lead Via Poggio alle Viti 1187 55054 Massarosa (LU) Italy phone: +39 0584 962313 fax: +39 0584 962313 mob: +39 339 8844549 http://www.geo-solutions.it http://geo-solutions.blogspot.com/ http://www.youtube.com/user/GeoSolutionsIT http://www.linkedin.com/in/andreaaime http://twitter.com/geowolf ------------------------------------------------------- ------------------------------------------------------------------------------ Virtualization & Cloud Management Using Capacity Planning Cloud computing makes use of virtualization - but cloud computing also focuses on allowing computing to be delivered as a service. http://www.accelacomm.com/jaw/sfnl/114/51521223/ _______________________________________________ Geoserver-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/geoserver-users |
|
Hi,
Thank you for your response.
Regarding using multiple GWC-instances with separate directories, I was thinking of using completely separate directories both for the metastore and the blobstore. This would mean that the two instances will not share any infomation.
This will, of course, result in two tile caches. But I cannot see any other solution than having duplicated cache if we wish to have redundancy / no single point of failure. This will be exactly the same as deploying GWC on two different servers. It seems
like this is the only option if we want multiple GWC-instances.
Pehaps there is little actual experience in using GWC in a Weblogic cluster environment the same way we are trying to do. The environment architecture is a decision outside of our control :)
Best regards,
Sebjørn Birkeland
Fra: [hidden email] [[hidden email]] på vegne av Andrea Aime [[hidden email]]
Sendt: 22. februar 2012 16:11 To: Sebjørn Birkeland Cc: Gabriel Roldan; [hidden email] Emne: Re: [Geoserver-users] Using GeoServer with shared data directory On Wed, Feb 22, 2012 at 3:58 PM, Sebjørn Birkeland
<[hidden email]> wrote:
I believe this is your only option at the moment. And yes, it will result in a single point of failure.
Separate blob stores... hmmm.. this might work but you'll end up wit two separate tile caches too,
as far as I remember once the metastore is enabled GWC will check the existance of the tile
in the meta-store too.
A solution that would require some modifications to GWC would be to have the metastore become
pluggable and allow for usage of a centralized database, like a shared Oracle/PostgreSQL.
And then some way for the two GWC to avoid stepping on each other toes so that they
don't try to write the same tiles in parallel.
Cheers
Andrea
------------------------------------------------------- Ing. Andrea Aime GeoSolutions S.A.S. Tech lead Via Poggio alle Viti 1187 55054 Massarosa (LU) Italy phone: +39 0584 962313 fax: +39 0584 962313 mob: +39 339 8844549 http://www.geo-solutions.it http://geo-solutions.blogspot.com/ http://www.youtube.com/user/GeoSolutionsIT http://www.linkedin.com/in/andreaaime http://twitter.com/geowolf ------------------------------------------------------- ------------------------------------------------------------------------------ Virtualization & Cloud Management Using Capacity Planning Cloud computing makes use of virtualization - but cloud computing also focuses on allowing computing to be delivered as a service. http://www.accelacomm.com/jaw/sfnl/114/51521223/ _______________________________________________ Geoserver-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/geoserver-users |
|
Hey,
sounds like a reasonable solution to me. Please report back on your experience? Cheers, Gabriel.
2012/2/22 Sebjørn Birkeland <[hidden email]>
Gabriel Roldan OpenGeo - http://opengeo.org Expert service straight from the developers. ------------------------------------------------------------------------------ Virtualization & Cloud Management Using Capacity Planning Cloud computing makes use of virtualization - but cloud computing also focuses on allowing computing to be delivered as a service. http://www.accelacomm.com/jaw/sfnl/114/51521223/ _______________________________________________ Geoserver-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/geoserver-users |
| Powered by Nabble | Edit this page |
