[Geoserver-users] WFS GetFeature request fails

Having trouble with 1 of 2 GeoServers that we deployed-- one works fine, the other has a problem as described below.

The call that we use to test:

http://xxx:8080/geoserver/xxx/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=xxx:tz_world_mp&cql_filter=CONTAINS%28the_geom,POINT%28-84+10%29%29&maxFeatures=1&propertyName=TZID&outputFormat=json

What the “good” server returns:
{“type”:“FeatureCollection”,“totalFeatures”:1,“features”:[{“type”:“Feature”,“id”:“tz_world_mp.386”,“geometry”:null,“properties”:{“TZID”:“America/Costa_Rica”}}],“crs”:null}

What the “bad” server returns:
{ “type”: “FeatureCollection”, “totalFeatures”: 0, “features”: , “crs”: null }

Same exact call to both, the only difference is the host name.

Also, poking around in the Data => Layer Preview, we notice that we are missing data at certain zoom levels-- but it’s the SAME data as deployed on our “good” GeoServer.

We are stumped. Both deployments should work the same but obviously something is different. I don’t expect people to solve this remotely, but any hints as to where to look would be greatly appreciated.

Background:
jdk1.7.0_45_x64
apache-tomcat-7.0.50

Data
http://efele.net/maps/tz/world/

GeoServer:
Version 2.6.1
Build Date 15-Nov-2014 10:59
GeoTools Version 12.1
GeoWebCache Version 1.6.0
Locks 0
Free locks
Connections 1
Memory Usage 404 MB
JVM Version Oracle Corporation: 1.7.0_45
Native JAI false
Native JAI ImageIO false

GeoServer Log:
2014-12-02 14:41:19,036 INFO [geoserver.wfs] -
Request: getServiceInfo
2014-12-02 14:41:19,041 INFO [geoserver.wfs] -
Request: getFeature
service = WFS
version = 1.0.0
baseUrl = http://xxx:8080/geoserver/
query[0]:
propertyName[0] = TZID
filter = [ the_geom contains POINT (-84 10) ]
typeName[0] = {http://xxx/geo/data/reference/}tz_world_mp
maxFeatures = 1
outputFormat = json
resultType = results
2014-12-02 14:41:19,043 INFO [wfs.json] - about to encode JSON

Thanks


John

In my experience, if two identical servers behave differently, they are not really identical :wink:

Although you only give configuration for one server, you seem to have checked the basics, namely Java, Tomcat and Geoserver versions.
Next step is to check the data source: How do you refer to data? Is it the same physical bits and bytes? If it is a copy, try copying again.

/julian
________________________________________
Fra: John DiMiceli [john.a.dimiceli@anonymised.com]
Sendt: 9. december 2014 20:59
Til: geoserver-users@lists.sourceforge.net
Emne: [Geoserver-users] WFS GetFeature request fails

Having trouble with 1 of 2 GeoServers that we deployed-- one works fine, the other has a problem as described below.

The call that we use to test:

http://xxx:8080/geoserver/xxx/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=xxx:tz_world_mp&cql_filter=CONTAINS(the_geom,POINT(-84+10))&maxFeatures=1&propertyName=TZID&outputFormat=json

What the "good" server returns:
{"type":"FeatureCollection","totalFeatures":1,"features":[{"type":"Feature","id":"tz_world_mp.386","geometry":null,"properties":{"TZID":"America/Costa_Rica"}}],"crs":null}

What the "bad" server returns:
{ "type": "FeatureCollection", "totalFeatures": 0, "features": , "crs": null }

Same exact call to both, the only difference is the host name.

Also, poking around in the Data => Layer Preview, we notice that we are missing data at certain zoom levels-- but it's the SAME data as deployed on our "good" GeoServer.

We are stumped. Both deployments should work the same but obviously something is different. I don't expect people to solve this remotely, but any hints as to where to look would be greatly appreciated.

Background:
    jdk1.7.0_45_x64
    apache-tomcat-7.0.50

Data
    http://efele.net/maps/tz/world/

GeoServer:
    Version 2.6.1
    Build Date 15-Nov-2014 10:59
    GeoTools Version 12.1
    GeoWebCache Version 1.6.0
    Locks 0
    Free locks
    Connections 1
    Memory Usage 404 MB
    JVM Version Oracle Corporation: 1.7.0_45
    Native JAI false
    Native JAI ImageIO false

GeoServer Log:
2014-12-02 14:41:19,036 INFO [geoserver.wfs] -
Request: getServiceInfo
2014-12-02 14:41:19,041 INFO [geoserver.wfs] -
Request: getFeature
    service = WFS
    version = 1.0.0
    baseUrl = http://xxx:8080/geoserver/
    query[0]:
        propertyName[0] = TZID
        filter = [ the_geom contains POINT (-84 10) ]
        typeName[0] = {http://xxx/geo/data/reference/\}tz_world_mp
    maxFeatures = 1
    outputFormat = json
    resultType = results
2014-12-02 14:41:19,043 INFO [wfs.json] - about to encode JSON

Thanks

--
John

We found the reason for the failure. It turns out there WAS a difference in the data between the “good” and “bad” servers!

There is a qix (shape index?) file that is generated by GeoServer, either upon deployment or first call to the application. This is something I didn’t know at first-- thinking the qix file was supplied with the data set. However the “bad” server experienced a memory exception upon deployment. We sorted that out (the details here: http://docs.geoserver.org/stable/en/user/production/container.html), but apparently the qix file remained in a corrupted state.

The kicker is that the file size of “good” and “bad” qix files were identical causing the mistaken belief that the file contents were identical. Finally, a md5sum check revealed the qix files were different.

The fix involved deleting the qix file which is located in the same folder as our timezone data, and upon re-applying the WFS request, the qix file was re-generated and the right data was returned.

···

On Wed, Dec 10, 2014 at 3:02 AM, Julian Hollingbery <julian@anonymised.com> wrote:

In my experience, if two identical servers behave differently, they are not really identical :wink:

Although you only give configuration for one server, you seem to have checked the basics, namely Java, Tomcat and Geoserver versions.
Next step is to check the data source: How do you refer to data? Is it the same physical bits and bytes? If it is a copy, try copying again.

/julian


Fra: John DiMiceli [john.a.dimiceli@anonymised.com]
Sendt: 9. december 2014 20:59
Til: geoserver-users@lists.sourceforge.net
Emne: [Geoserver-users] WFS GetFeature request fails

Having trouble with 1 of 2 GeoServers that we deployed-- one works fine, the other has a problem as described below.

The call that we use to test:

http://xxx:8080/geoserver/xxx/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=xxx:tz_world_mp&cql_filter=CONTAINS%28the_geom,POINT%28-84+10%29%29&maxFeatures=1&propertyName=TZID&outputFormat=json

What the “good” server returns:
{“type”:“FeatureCollection”,“totalFeatures”:1,“features”:[{“type”:“Feature”,“id”:“tz_world_mp.386”,“geometry”:null,“properties”:{“TZID”:“America/Costa_Rica”}}],“crs”:null}

What the “bad” server returns:
{ “type”: “FeatureCollection”, “totalFeatures”: 0, “features”: , “crs”: null }

Same exact call to both, the only difference is the host name.

Also, poking around in the Data => Layer Preview, we notice that we are missing data at certain zoom levels-- but it’s the SAME data as deployed on our “good” GeoServer.

We are stumped. Both deployments should work the same but obviously something is different. I don’t expect people to solve this remotely, but any hints as to where to look would be greatly appreciated.

Background:
jdk1.7.0_45_x64
apache-tomcat-7.0.50

Data
http://efele.net/maps/tz/world/

GeoServer:
Version 2.6.1
Build Date 15-Nov-2014 10:59
GeoTools Version 12.1
GeoWebCache Version 1.6.0
Locks 0
Free locks
Connections 1
Memory Usage 404 MB
JVM Version Oracle Corporation: 1.7.0_45
Native JAI false
Native JAI ImageIO false

GeoServer Log:
2014-12-02 14:41:19,036 INFO [geoserver.wfs] -
Request: getServiceInfo
2014-12-02 14:41:19,041 INFO [geoserver.wfs] -
Request: getFeature
service = WFS
version = 1.0.0
baseUrl = http://xxx:8080/geoserver/
query[0]:
propertyName[0] = TZID
filter = [ the_geom contains POINT (-84 10) ]
typeName[0] = {http://xxx/geo/data/reference/}tz_world_mp
maxFeatures = 1
outputFormat = json
resultType = results
2014-12-02 14:41:19,043 INFO [wfs.json] - about to encode JSON

Thanks


John


Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk


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

John