Sounds nicer, more concise :)

So I guess i will stick with the patch locally until it gets fixed on gwc
trunk and anyone trying out dbconfig in the meantime will have to disable
gwc.

Thanks guys.

-Justin

On Mon, Oct 4, 2010 at 1:14 PM, Arne Kepp <[email protected]> wrote:

>  Looks fine to me too, alternatively could just use loadDelay < 1.
>
> -Arne
>
>
>
> On 10/4/10 7:41 PM, Justin Deoliveira wrote:
>
> Thanks for the explanation Arne. Makes more sense now.
>
>  On Mon, Oct 4, 2010 at 11:17 AM, Arne Kepp <[email protected]> wrote:
>
>>  It's a leftover from the days when GWC first needed GeoServer's WMS to be
>> ready to serve a getcapabilities document before GWC could initialize.
>>
>> In theory it is still useful if you wanted to use GWC integrated in
>> GeoServer and connect to another instance running in the same servlet
>> container. I don't think very many people need that, and it was very painful
>> to write in the first place, so I'd be happy to get rid of it.
>>
>> Are you trying to fix 2.1 or 2.0.x as well? Standalone GWC still needs the
>> code for as long as people use the getcapabilities configuration, I (or
>> Gabriel) would have to look into whether it can be toggled with a flag. In
>> the long run I want to get rid of that kind of dynamic configuration anyway.
>>
>
>  This would only be 2.1. On 2.1 the default is the CatalogConfiguration
> right? Can one set it to be the wms configuration on 2.1.x? For what it is
> worth here is a patch i had success with. Although i did not test
> gwc thoroughly after ward.
>
>  Index: src/main/java/org/geowebcache/layer/TileLayerDispatcher.java
> ===================================================================
> --- src/main/java/org/geowebcache/layer/TileLayerDispatcher.java (revision
> 1188)
> +++ src/main/java/org/geowebcache/layer/TileLayerDispatcher.java (working
> copy)
> @@ -64,14 +64,30 @@
>
>      public TileLayerDispatcher(GridSetBroker gridSetBroker,
> List<Configuration> configs,
>              int loadDelay) {
> +        this(gridSetBroker, configs, true, loadDelay);
> +    }
> +
> +    public TileLayerDispatcher(GridSetBroker gridSetBroker,
> List<Configuration> configs,
> +        boolean threaded, int loadDelay) {
> +
>          this.gridSetBroker = gridSetBroker;
>
>          this.configs = configs;
>
> -        ThreadFactory tfac = new CustomizableThreadFactory("GWC
> Configuration loader thread");
> -        configLoadService = Executors.newSingleThreadExecutor(tfac);
> -        ConfigurationLoader loader = new ConfigurationLoader(this,
> loadDelay);
> -        configurationLoadTask = configLoadService.submit(loader);
> +        if (threaded) {
> +            ThreadFactory tfac = new CustomizableThreadFactory("GWC
> Configuration loader thread");
> +            configLoadService = Executors.newSingleThreadExecutor(tfac);
> +            ConfigurationLoader loader = new ConfigurationLoader(this,
> loadDelay);
> +            configurationLoadTask = configLoadService.submit(loader);
> +        }
> +        else {
> +            try {
> +                configuredLayers = new ConfigurationLoader(this,
> loadDelay).call();
> +            }
> +            catch (Exception e) {
> +                throw new RuntimeException(e);
> +            }
> +        }
>      }
>
>      public TileLayer getTileLayer(String layerIdent) throws
> GeoWebCacheException {
>
>
>
>
>>
>> -Arne
>>
>>
>> On 10/4/10 6:50 PM, Justin Deoliveira wrote:
>>
>> Hi all,
>>
>>  Currently the gwc module does its configuration in a separate thread.
>> This is problematic for dbconfig because during that configuration gwc must
>> access the catalog. The way session management is set up currently is that
>> it is thread local based. So this leads to issues.
>>
>>  Describing the issue a bit more... the way the hibernate dao is setup is
>> that its proxy will allow methods to be called on the catalog and create a
>> session on demand... howver that session is closed after the method called.
>> Which prevents any sort of lazy initialization. So what we do on startup is
>> create a thread local session and keep it around until geoserver startup is
>> complete. And so if gwc did its config in the main startup thread there
>> would be no issue... but since it does not ... kaboom.
>>
>>  So... thoughts on this issue? It would be easy enough to patch the gwc
>> TileLayerDispatcher to load in the current thread... but i don't know enough
>> about gwc to know if that is a good idea.
>>
>>  -Justin
>>
>> --
>> Justin Deoliveira
>> OpenGeo - http://opengeo.org
>> Enterprise support for open source geospatial.
>>
>>
>>
>
>
> --
> Justin Deoliveira
> OpenGeo - http://opengeo.org
> Enterprise support for open source geospatial.
>
>
>


-- 
Justin Deoliveira
OpenGeo - http://opengeo.org
Enterprise support for open source geospatial.
------------------------------------------------------------------------------
Virtualization is moving to the mainstream and overtaking non-virtualized
environment for deploying applications. Does it make network security 
easier or more difficult to achieve? Read this whitepaper to separate the 
two and get a better understanding.
http://p.sf.net/sfu/hp-phase2-d2d
_______________________________________________
Geoserver-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

Reply via email to