[mapserver-users] Mapcache time dimension default value; and 'tearing down pooled connection' message

David Hoese dhoese at gmail.com
Mon Jan 17 17:52:28 PST 2022


Trygve,

Hello from outside the Pytroll community ;)

I can't answer your second question as I don't have much experience with 
getCapabilities, but I think I have an answer for the first question. My 
understanding for the `default` parameter was that that was the returned 
time string if no times were returned by the query (empty result). I 
have always expected this to be a normal time string like 
2022-01-01T12:00:00Z (to match your expected format. However, the fact 
that you always get the oldest image when the default is "d1" is 
surprising to me so I hope the mapcache devs can correct me.

As for the source code for this, I found that the default from the XML 
goes into a dimension object as "default_value". It then gets set as the 
default "requested_value" like here:

https://github.com/MapServer/mapcache/blob/447c0c6848fd101c11e6d54e451037e571117ef1/lib/tileset.c#L585

Going down the rabbit hole led me to here:

https://github.com/MapServer/mapcache/blob/447c0c6848fd101c11e6d54e451037e571117ef1/lib/dimension_pg.c#L265-L271

As far as I can tell "get_values_for_entry_query" is just the 
"validate_query" query from your XML config. So somehow your validate 
query with "dp1" input may be returning the oldest time in your 
database. Just a guess. I'm interested in this answer, but definitely 
not the best person to give it to you.

Dave

On 1/17/22 11:59, Trygve Aspenes wrote:
> Hi there!
> 
> Slowly I'm getting mapserver/mapcache up running and looks now how to 
> improve things.
> 
> First: When I load a mapcache tileset with time dimension from a pg db 
> the oldest image is displayed in my client. Is it possible to somehow 
> get the newest image as default?
> My tileset dimension look something like this:
> 
>              <dimension type="postgresql" name="time" default="d1" 
> time="true" unit="ISO8601">
>                  <connection>
>                      host=mapserver-db user=$PGSQ_USERNAME 
> password=$PGSQ_PASSWORD dbname=mapserver port=5432
>                  </connection>
>                  <list_query>SELECT to_char(time, 
> 'YYYY-MM-DD"T"HH24:MI:SS"Z"') FROM products where product_name='<some 
> product>' order by Id</list_query>
>                  <validate_query>
>                      SELECT to_char(time,'YYYY-MM-DD"T"HH24:MI:SS"Z"') 
> FROM products
>                      WHERE time >= to_timestamp(:start_timestamp)
>                      AND time <= to_timestamp(:end_timestamp)
>                      AND product_name='<some product>'
>                      ORDER BY time DESC
>                  </validate_query>
>              </dimension>
> 
> I saw the `d1` default value in the documentation, but don't understand 
> of that is a dummy or an actual selector. I have grepped around the 
> source code, but could not see anything obvious.
> 
> Second: My client updates/fetch the getCapabilities of my mapcache 
> server every minute. Each time this is fetched the mapcache log is 
> filled with messages like:
> 
> mod_mapcache.c(164): [client ] tearing down pooled connection (dim_<some 
> product>_time) to make room, referer: <my client>
> 
> I dont understand why these connections is teared down every time 
> getCapabilites is requested.
> 
> I have looked in the documentation, but could not see how to control 
> this. But in the mapcache.xml.sample the connection pool config is 
> described. But adding this to my mapcache config does not remove these 
> tear downs.
> 
>      <connection_pool>
>          <max_connections>2000</max_connections>
>          <time_to_live_us>120000000</time_to_live_us>
>      </connection_pool>
> 
> Any suggestions why this connection tear down is happening and if there 
> is something to do about it. It slows down the getCapabilities request a 
> bit, but if I add to many tileset I guess this will even further slow down.
> 
> Thanks
> 
> Trygve Aspenes
> _______________________________________________
> MapServer-users mailing list
> MapServer-users at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/mapserver-users



More information about the MapServer-users mailing list