[Geoserver-users] GeoServer Exception when generating bounding box

After loading a feature class using ArcGIS Catalog 9.3 and ArcSDE 9.3,

I tried to add the new feature type using GeoServer 1.6.5.

When selecting generate on the web page for Bounding Box I get the following
error from ArcSDE:

[Tue Nov 4 09:41:54 2008] [189] [ptsubc2b9] ENVP_fromclause:
MAPDATA.LIB_108_HYDRO_AQUEDCTL a
[Tue Nov 4 09:41:54 2008] [189] [ptsubc2b9] ENVP_sqlstmt: SELECT
MIN(a.SHAPE.minx), MIN(a.SHAPE.miny), MAX(a.SHAPE.maxx), MAX(a.SHAPE.maxy),
MIN(a.SHAPE.minz), MAX(a.SHAPE.maxz) FROM MAPDATA.LIB_108_HYDRO_AQUEDCTL a
where and a.SHAPE.entity != 0 and a.SHAPE.numpts != 0
[Tue Nov 4 09:41:54 2008] [189] [ptsubc2b9] S_exec_get_envelope() Fetch
Error (936)

Looks like the SQL statement is not correct, "where and a.SHAPE.entity !=
0"

I get the following exception from GeoServer:

GeoServer - Exception
The following exception was thrown:
    * class org.geotools.arcsde.ArcSdeException: [SDE error -51][Error
desc=DATABASE LEVEL ERROR OCCURRED.][Extended desc= ]
    * class com.esri.sde.sdk.client.SeException:
Details:
org.geotools.arcsde.ArcSdeException: [SDE error -51][Error desc=DATABASE
LEVEL ERROR OCCURRED.][Extended desc=
] at
org.geotools.arcsde.pool.Session.issue(Lorg/geotools/arcsde/pool/Command;)Ljava/lang/Object;(Session.java:261)
  at
org.geotools.arcsde.data.ArcSDEQuery.calculateQueryExtent()Lcom/vividsolutions/jts/geom/Envelope;(ArcSDEQuery.java:662)
  at
org.geotools.arcsde.data.ArcSDEQuery.calculateQueryExtent(Lorg/geotools/arcsde/pool/ISession;Lorg/geotools/arcsde/data/FeatureTypeInfo;Lorg/geotools/data/Query;Lorg/geotools/arcsde/data/versioning/ArcSdeVersionHandler;)Lcom/vividsolutions/jts/geom/Envelope;(ArcSDEQuery.java:571)
  at
org.geotools.arcsde.data.ArcSdeFeatureSource.getBounds(Lorg/geotools/data/Query;Lorg/geotools/arcsde/pool/ISession;)Lorg/geotools/geometry/jts/ReferencedEnvelope;(ArcSdeFeatureSource.java:149)
  at
org.geotools.arcsde.data.ArcSdeFeatureSource.getBounds(Lorg/geotools/data/Query;)Lcom/vividsolutions/jts/geom/Envelope;(ArcSdeFeatureSource.java:127)
  at
org.geotools.arcsde.data.ArcSdeFeatureSource.getBounds()Lcom/vividsolutions/jts/geom/Envelope;(ArcSdeFeatureSource.java:114)
  at
org.geoserver.feature.FeatureSourceUtils.getBoundingBoxEnvelope(Lorg/geotools/data/FeatureSource;)Lcom/vividsolutions/jts/geom/Envelope;(FeatureSourceUtils.java:40)
  at
org.vfny.geoserver.util.DataStoreUtils.getBoundingBoxEnvelope(Lorg/geotools/data/FeatureSource;)Lcom/vividsolutions/jts/geom/Envelope;(DataStoreUtils.java:277)
  at org.vfny.geoserver.action.data.TypesEditorAction.executeBBox

...

--
View this message in context: http://www.nabble.com/GeoServer-Exception-when-generating-bounding-box-tp20324128p20324128.html
Sent from the GeoServer - User mailing list archive at Nabble.com.

grabenold ha scritto:

After loading a feature class using ArcGIS Catalog 9.3 and ArcSDE 9.3,

I tried to add the new feature type using GeoServer 1.6.5.

While I cannot comment on the specific issue (never used SDE) the 1.7.0
release notes say the ArcSDE support has been improved a lot.
Maybe you can try that one?

Cheers
Andrea

--
Andrea Aime
OpenGeo - http://opengeo.org
Expert service straight from the developers.

I have a very similar problem, my WHERE clause is also problematic, here's
how it looks:

... FROM table a where (table.VRSTAP = '12345') and a.FEATUREID.entity !=
0 and a.FEATUREID.numpts !=

--
View this message in context: http://www.nabble.com/GeoServer-Exception-when-generating-bounding-box-tp20324128p20364281.html
Sent from the GeoServer - User mailing list archive at Nabble.com.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

I found that the SDE API apparently puts the " and " in when there is no
where clause set in the
sqlconstruct.

So in the method public SeQueryInfo getQueryInfo in ArcSDEQuery.java

If you add the else clause to stick in a where clause that is always true
the sql generated by the
SDE API is valid.

if (where != null && where.length() > 0) {
    sqlConstruct.setWhere(where);
}
// Here due to problem with sql generated
// by ESRI API
else
{
    sqlConstruct.setWhere("1=1");
}

I am not sure if there is a flag that can be set that tells the SDE API to
not
add any where clause

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

grabenold wrote:

After loading a feature class using ArcGIS Catalog 9.3 and ArcSDE 9.3,

I tried to add the new feature type using GeoServer 1.6.5.

When selecting generate on the web page for Bounding Box I get the
following error from ArcSDE:

[Tue Nov 4 09:41:54 2008] [189] [ptsubc2b9] ENVP_fromclause:
MAPDATA.LIB_108_HYDRO_AQUEDCTL a
[Tue Nov 4 09:41:54 2008] [189] [ptsubc2b9] ENVP_sqlstmt: SELECT
MIN(a.SHAPE.minx), MIN(a.SHAPE.miny), MAX(a.SHAPE.maxx),
MAX(a.SHAPE.maxy), MIN(a.SHAPE.minz), MAX(a.SHAPE.maxz) FROM
MAPDATA.LIB_108_HYDRO_AQUEDCTL a where and a.SHAPE.entity != 0 and
a.SHAPE.numpts != 0
[Tue Nov 4 09:41:54 2008] [189] [ptsubc2b9] S_exec_get_envelope() Fetch
Error (936)

Looks like the SQL statement is not correct, "where and a.SHAPE.entity
!= 0"

I get the following exception from GeoServer:

GeoServer - Exception
The following exception was thrown:
    * class org.geotools.arcsde.ArcSdeException: [SDE error -51][Error
desc=DATABASE LEVEL ERROR OCCURRED.][Extended desc= ]
    * class com.esri.sde.sdk.client.SeException:
Details:
org.geotools.arcsde.ArcSdeException: [SDE error -51][Error desc=DATABASE
LEVEL ERROR OCCURRED.][Extended desc=
] at
org.geotools.arcsde.pool.Session.issue(Lorg/geotools/arcsde/pool/Command;)Ljava/lang/Object;(Session.java:261)
  at
org.geotools.arcsde.data.ArcSDEQuery.calculateQueryExtent()Lcom/vividsolutions/jts/geom/Envelope;(ArcSDEQuery.java:662)
  at
org.geotools.arcsde.data.ArcSDEQuery.calculateQueryExtent(Lorg/geotools/arcsde/pool/ISession;Lorg/geotools/arcsde/data/FeatureTypeInfo;Lorg/geotools/data/Query;Lorg/geotools/arcsde/data/versioning/ArcSdeVersionHandler;)Lcom/vividsolutions/jts/geom/Envelope;(ArcSDEQuery.java:571)
  at
org.geotools.arcsde.data.ArcSdeFeatureSource.getBounds(Lorg/geotools/data/Query;Lorg/geotools/arcsde/pool/ISession;)Lorg/geotools/geometry/jts/ReferencedEnvelope;(ArcSdeFeatureSource.java:149)
  at
org.geotools.arcsde.data.ArcSdeFeatureSource.getBounds(Lorg/geotools/data/Query;)Lcom/vividsolutions/jts/geom/Envelope;(ArcSdeFeatureSource.java:127)
  at
org.geotools.arcsde.data.ArcSdeFeatureSource.getBounds()Lcom/vividsolutions/jts/geom/Envelope;(ArcSdeFeatureSource.java:114)
  at
org.geoserver.feature.FeatureSourceUtils.getBoundingBoxEnvelope(Lorg/geotools/data/FeatureSource;)Lcom/vividsolutions/jts/geom/Envelope;(FeatureSourceUtils.java:40)
  at
org.vfny.geoserver.util.DataStoreUtils.getBoundingBoxEnvelope(Lorg/geotools/data/FeatureSource;)Lcom/vividsolutions/jts/geom/Envelope;(DataStoreUtils.java:277)
  at org.vfny.geoserver.action.data.TypesEditorAction.executeBBox

...

--
View this message in context: http://www.nabble.com/GeoServer-Exception-when-generating-bounding-box-tp20324128p20381561.html
Sent from the GeoServer - User mailing list archive at Nabble.com.