[Geoserver-users] ArcSDE,ECW

Hello.
Sorry, I'm novice to GeoServer.

1. I use ArcSDE 9.2(it likes to add Annotation fields to all layers)
I spent about 2 days to connect to ArcSDE. Many users have NullPointerException on this line:
ArcSDEAdapter.java:747 typeClass = (Class) sde2JavaTypes.get(sdeType);

I think more convenient way is to use exception for unsupported columns or skip it:
ArcSDEAdapter.java:385
  Object obj=sde2JavaTypes.get(sdeType);
  if(obj==null)
  {
                // another way is to skip this with "continue;" I used.
    throw new DataSourceException("Unsupported column type ("+sdeType.intValue()+") for "+attName);
  }
        typeClass = (Class) obj;
I did not commit my changes because I'am novice(but I can).
2. I like to use GUID type for attribute. I tried to activate it with uncomment:
  ArcSDEAdapter.java: sde2JavaTypes.put(new Integer(SeColumnDefinition.TYPE_UUID),String.class);
Is it correct?
3. When I "Register" a layer " As versioned" I had a bug with ArcSDEQuery. It closes ESRI giomgr.exe instance with fault exception but attributes are correct showed in OpenLayers.js. I think PoolConnection not ok for versioned layers.
  I try to find the bug in ArcSDEQuery.java myself with no result. I'am in stupid with this:
ArcSDEConnectionPool.java:294
        for (int i = 0; i < 3; i++) {
            //randomly ArcSDE craps out doing this. Catch the nullpointer exception
            //and try again, I guess.
        ...
How to establish connection?
4. I don't want to edit layers with GeoServer WFS, only show to user(may be in future). But I want to highlight single selected feature. Is it possible. Features selected by mouse click.
5. I try to pass test for ArcSDE plugin. Not all test passed. Sometimes I have message like "WARNING: Out of connections: Timeout waiting for idle object". I increse pool(MaxConnections) up to 10 with another results. I use NetBeans 5(with Meven2) and can't debug test step by step with breakpoints.
6. Is It possible to create a Coverage with ECW (ErMapper Compressed Wavelets raster format)? I'm not found plugin for this. The problem is only to implement the corresponding JNI bindings in C and create a Coverage plugin.

Thank you.
Andrew.

Hi,

Saul is our ArcSDE expert, he can answer your questions to that end.

About ECW, there is work currently going to build a geotools plugin for
it but it is still being worked on and it is not part of the core yet.
The plugin wraps up the gdal plugin for ECW. When it is complete it will
be shipped with GeoServer and available for use.

Simone: any sort of time frame?

Семененко Андрея wrote:

Hello.
Sorry, I'm novice to GeoServer.

1. I use ArcSDE 9.2(it likes to add Annotation fields to all layers)
I spent about 2 days to connect to ArcSDE. Many users have NullPointerException on this line:
ArcSDEAdapter.java:747 typeClass = (Class) sde2JavaTypes.get(sdeType);

I think more convenient way is to use exception for unsupported columns or skip it:
ArcSDEAdapter.java:385
  Object obj=sde2JavaTypes.get(sdeType);
  if(obj==null)
  {
                // another way is to skip this with "continue;" I used.
    throw new DataSourceException("Unsupported column type ("+sdeType.intValue()+") for "+attName);
  }
        typeClass = (Class) obj;
I did not commit my changes because I'am novice(but I can).
2. I like to use GUID type for attribute. I tried to activate it with uncomment:
  ArcSDEAdapter.java: sde2JavaTypes.put(new Integer(SeColumnDefinition.TYPE_UUID),String.class);
Is it correct?
3. When I "Register" a layer " As versioned" I had a bug with ArcSDEQuery. It closes ESRI giomgr.exe instance with fault exception but attributes are correct showed in OpenLayers.js. I think PoolConnection not ok for versioned layers.
  I try to find the bug in ArcSDEQuery.java myself with no result. I'am in stupid with this:
ArcSDEConnectionPool.java:294
        for (int i = 0; i < 3; i++) {
            //randomly ArcSDE craps out doing this. Catch the nullpointer exception
            //and try again, I guess.
        ...
How to establish connection?
4. I don't want to edit layers with GeoServer WFS, only show to user(may be in future). But I want to highlight single selected feature. Is it possible. Features selected by mouse click.
5. I try to pass test for ArcSDE plugin. Not all test passed. Sometimes I have message like "WARNING: Out of connections: Timeout waiting for idle object". I increse pool(MaxConnections) up to 10 with another results. I use NetBeans 5(with Meven2) and can't debug test step by step with breakpoints.
6. Is It possible to create a Coverage with ECW (ErMapper Compressed Wavelets raster format)? I'm not found plugin for this. The problem is only to implement the corresponding JNI bindings in C and create a Coverage plugin.

Thank you.
Andrew.

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

!DSPAM:4007,4714e05421541431913854!

--
Justin Deoliveira
The Open Planning Project
http://topp.openplans.org

Семененко Андрея ha scritto:

Hello. Sorry, I'm novice to GeoServer.

4. I don't want to edit layers with GeoServer WFS, only show to
user(may be in future). But I want to highlight single selected
feature. Is it possible. Features selected by mouse click.

Yes, it is, with a combination of WFS and OpenLayers on the client,
thought it requires good javascript knowledge to be implemented
properly.
Tim, can you elaborate a bit more? Is the versioning example still
on line?
Cheers
Andrea

Thanks for the detailed feedback on the ArcSDE extension. All of your
suggestions are good ones, and if you can provide a patch to the geotools
2.4.x branch and to the geotools trunk, then I'll gladly apply them!

cemehehko wrote:

1. I use ArcSDE 9.2(it likes to add Annotation fields to all layers)
I spent about 2 days to connect to ArcSDE. Many users have
NullPointerException on this line:
ArcSDEAdapter.java:747 typeClass = (Class)
sde2JavaTypes.get(sdeType);

I think more convenient way is to use exception for unsupported columns or
skip it:
ArcSDEAdapter.java:385
  Object obj=sde2JavaTypes.get(sdeType);
  if(obj==null)
  {
                // another way is to skip this with "continue;" I used.
    throw new DataSourceException("Unsupported column type
("+sdeType.intValue()+") for "+attName);
  }
        typeClass = (Class) obj;
I did not commit my changes because I'am novice(but I can).

That looks like a great change, and the logic is similar to how we catch the
conversion the other way (java2SDETypes at a different point in the file).

2. I like to use GUID type for attribute. I tried to activate it with
uncomment:
  ArcSDEAdapter.java: sde2JavaTypes.put(new
Integer(SeColumnDefinition.TYPE_UUID),String.class);
Is it correct?

That looks good to me! Does it work for you?

3. When I "Register" a layer " As versioned" I had a bug with ArcSDEQuery.
It closes ESRI giomgr.exe instance with fault exception but attributes are
correct showed in OpenLayers.js. I think PoolConnection not ok for
versioned layers.
  I try to find the bug in ArcSDEQuery.java myself with no result. I'am in
stupid with this:
ArcSDEConnectionPool.java:294
        for (int i = 0; i < 3; i++) {
            //randomly ArcSDE craps out doing this. Catch the nullpointer
exception
            //and try again, I guess.
        ...
How to establish connection?

This is a great question...we don't have explicit support for ArcSDE
versions at *all* yet. It would be fairly straightforward to add support
for connecting to a specific version at the datastore level, but I suspect
that folks would like to connect to different versions via a parameter in
the GetFeature request (otherwise they could just post everything up to
SDE.DEFAULT) and that would take much more work.

4. I don't want to edit layers with GeoServer WFS, only show to user(may
be in future). But I want to highlight single selected feature. Is it
possible. Features selected by mouse click.

This is indeed possible. As andrea pointed out, some slick use of
openlayers, SLD, WFS and javascript to tie it together should make it work
great. I'd suggest starting at the "map preview" pane, and then working
with SLD to figure out how you can highlight a polygon by adding a rule to a
style (perhaps to identify the highlighted polygon by id) and then passing
it to a GetMap request as a custom SLD. Alternatively you could use
CQL_FILTER and a 'standard' highlight-style to do this a different way (with
the same effect)

5. I try to pass test for ArcSDE plugin. Not all test passed. Sometimes I
have message like "WARNING: Out of connections: Timeout waiting for idle
object". I increse pool(MaxConnections) up to 10 with another results. I
use NetBeans 5(with Meven2) and can't debug test step by step with
breakpoints.

I've fixed a number of these problems, but I totally forgot to commit my
changes! Oops. I'm commiting changes that should fix a number of those
tests. Right now not all tests are passing completely, but it's pretty
close (I think there's a failing test or two in ArcSDEDataStoreTest.java
somewhere) and those "out of connection" errors should be solved.

Glad to see someone is stretching the ArcSDE plugin a bit!
--saul
--
View this message in context: http://www.nabble.com/ArcSDE%2CECW-tf4635130.html#a13239286
Sent from the GeoServer - User mailing list archive at Nabble.com.

Andrew,

Thanks for sending the patch to me, I'll review it right now and apply if it
makes sense.

In the future, can you take the following steps when providing a patch to
Geotools or Geoserver?

1) Create a JIRA issue. To do this, you'll need to log on to
jira.codehaus.org, find the geotools/geoserver project and 'create a new
issue'. Please include a description of which component the bug applies to,
what your reccomended fix is (if you have one) as well as any other info you
think is relevant.

2) If you solve the bug you just created in #1, please attach your patch to
the JIRA issue. Then let us know that we should be reviewing the patch.
We'll do so, and soon it will likely get applied. Note that we may ask you
to patch both geotools 2.4.x (which works with geoserver 1.6.x) and *also*
geotools trunk (which isn't behind any geoserver at all yet)

I'll start reviewing your patch right now, but can you look through the JIRA
issues and see if there's one there that matches the bugs your patch fixes?
If there isn't one, can you create a JIRA issue in the sde module that
outlines the bugs your patch fixes and then attach your patch to it?

Thanks much Andrew. We're really happy that you've put so much time into
making this product better for everyone!

--saul

sfarber wrote:

Thanks for the detailed feedback on the ArcSDE extension. All of your
suggestions are good ones, and if you can provide a patch to the geotools
2.4.x branch and to the geotools trunk, then I'll gladly apply them!

--
View this message in context: http://www.nabble.com/ArcSDE%2CECW-tf4635130.html#a13255713
Sent from the GeoServer - User mailing list archive at Nabble.com.

Andrew,

I've applied your patch to trunk and 2.4.x. I changed the comments around a
bit to reflect the default impl, and the question that your comment added.

Basically, if we can't handle a column in the database, should we fail to
support the entire table, or just drop that one column?

Gabriel, any opinion?

--saul

sfarber wrote:

Andrew,

Thanks for sending the patch to me, I'll review it right now and apply if
it makes sense.

In the future, can you take the following steps when providing a patch to
Geotools or Geoserver?

1) Create a JIRA issue. To do this, you'll need to log on to
jira.codehaus.org, find the geotools/geoserver project and 'create a new
issue'. Please include a description of which component the bug applies
to, what your reccomended fix is (if you have one) as well as any other
info you think is relevant.

2) If you solve the bug you just created in #1, please attach your patch
to the JIRA issue. Then let us know that we should be reviewing the
patch. We'll do so, and soon it will likely get applied. Note that we
may ask you to patch both geotools 2.4.x (which works with geoserver
1.6.x) and *also* geotools trunk (which isn't behind any geoserver at all
yet)

I'll start reviewing your patch right now, but can you look through the
JIRA issues and see if there's one there that matches the bugs your patch
fixes? If there isn't one, can you create a JIRA issue in the sde module
that outlines the bugs your patch fixes and then attach your patch to it?

Thanks much Andrew. We're really happy that you've put so much time into
making this product better for everyone!

--saul

sfarber wrote:

Thanks for the detailed feedback on the ArcSDE extension. All of your
suggestions are good ones, and if you can provide a patch to the geotools
2.4.x branch and to the geotools trunk, then I'll gladly apply them!

--
View this message in context: http://www.nabble.com/ArcSDE%2CECW-tf4635130.html#a13262547
Sent from the GeoServer - User mailing list archive at Nabble.com.

Do you try query with versioning tables? I want to use the SDE.DEFAULT version only to fetch data. But grsvr.exe fails on GeoTools query when tables are versioning.
The same query with non-versioned tables are ok.
Is it possible to add a test-unit for versioning tables?

Basically, if we can't handle a column in the database, should we fail to
support the entire table, or just drop that one column?

I think we must drop one column without fail all table and singal user with warning in WEB(not Exception).

To highlight a specific feature that you've 'selected' is actually just a
visual trick. The steps are something like this:

1) Have the user click (using whichever viewer you're using)
2) Figure out where in spatial coordinates the user clicked (interpolate
using X/Y->spatial coords, probably)
3) Send a getfeature to the server asking for the id of the
polygon/line/point that the user clicked on (getFeature: filter:
Within(clickedpoint, spatialcol) )
4) Figure out the ID of the feature that the user has clicked by looking at
the response to #3
5) Send a new getmap request with some SLD that colors the polygon with the
ID from #4 differently (darker, with thicker borders?)
6) Overlay the image you get from #5 onto the map that the user clicked
on...this will make it look like the user has 'highlighted' a polygon

You don't have to do it exactly that way...it's just one of a number of ways
of doing highlighting.

--saul

bjoice@anonymised.com wrote:

ref: But I want to highlight single selected feature. Is it possible to
highlight only the feature returned in the WFS search to be highlighted on
the map?

--
View this message in context: http://www.nabble.com/ArcSDE%2CECW-tf4635130.html#a13277287
Sent from the GeoServer - User mailing list archive at Nabble.com.

Andrew,

I have not actually tried querying against versioned tables. I have,
however, used the Jsde api to query versioned tables before and I know it
can be a bit tricky.

I've long thought that we should support ArcSDE versions more explicitly,
but I haven't had a motivating use-case. I can offer a few suggestions
about how we might support versioning a bit better in ArcSDE, but if
gsrvr.exe is crashing on the server-side, then there are some other problems
somewhere that will need to get worked out first.

From the Geotools end, I figure that we could add basic versioning support

by allowing a 'version' parameter to be passed in along with the connection
pool config. This would create a pool of versioned connections, and would
be minimal work to support (except on the geoserver UI side...sigh)

Another alternative would be to allow a request for a different version each
time you request a connection from a pool, with a default of "SDE.DEFAULT"
if no explicit version is requested. This would be more work, and would be
difficult to connect through to the geoserver side in a 'normal' way (i.e.
without adding extra parameters just for ArcSDE datastore-backed
featuretypes)

As for figuring out why gsrvr.exe is crashing, I have a few questions:

1) Does anything show up in $SDEHOME/etc/sde_esri_sde.log that would
explain the crash?
2) Which DB are you using underneath ArcSDE?
3) Which version of ArcSDE are you using, and which version of the jsde_api
jars are you using? Do they match?

My best suggestion would be to try and replicate using just pure jsde_api
code the error that's occurring. Then see if you can isolate a way to get
access to the features that doesn't cause the crash to happen, and see if
you can mold the ArcSDE plugin flow to match the working way.

Working with ArcSDE can be really frustrating, so my sympathies are with
you!

--saul

Семененко Андрея wrote:

Do you try query with versioning tables? I want to use the SDE.DEFAULT
version only to fetch data. But grsvr.exe fails on GeoTools query when
tables are versioning.
The same query with non-versioned tables are ok.
Is it possible to add a test-unit for versioning tables?

Basically, if we can't handle a column in the database, should we fail to
support the entire table, or just drop that one column?

I think we must drop one column without fail all table and singal user
with warning in WEB(not Exception).

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

--
View this message in context: http://www.nabble.com/ArcSDE%2CECW-tf4635130.html#a13277463
Sent from the GeoServer - User mailing list archive at Nabble.com.