[Geoserver-users] WFS-T questions

Hello,

GeoServer 1.6.2 installed on WinXP.

Testing against 3 datastores (default (shp?), MIF plugin, and Oracle
plugin) I get a variety of results.
-- With the sample table tiger_roads, Insert, Update, and Delete
mostly all work. The caveat comes with the Insert operation -- the
fid returned in the TransactionResult is bogus. I suspect that is a
limitation of the datastore, and not GeoServer.

-- With the MIF plugin, only Insert works, with the same limitation as
above -- a bogus fid is returned. For Update and Delete, it appears
nothing happens on the server, but the TransactionResult contains
Status - SUCCESS. That seems to indicate that the TransactionRequest
was well-formed and processed by the server, but the server didn't
find any matching records to Update or Delete. How can I diagnose the
problem with the TransactionRequest? Is there anything in the output
on the GeoServer console that would help?
Or is this maybe a limitation of the MIF plugin? How can I
distinguish between the two (limitation of datastore vs bad request)?

-- On Oracle, only the Delete operation works. For Insert and Update
I get a ServiceException regarding the Geometry. I'll have to compare
the geometry we receive with the geometry we send in a request.

I understand that 'partial commits' are possible. For example, if the
TransactionRequest contains 3 Insert elements, 1 and 3 might succeed,
while 2 does not. If I try to send a request with 2 valid objects and
one invalid object (polygon instead of LineString, for example), I get
a ServiceException, and none of the objects are inserted. Is this
expected?

Thanks for any insight...

CB wrote:

Hello,

GeoServer 1.6.2 installed on WinXP.

Testing against 3 datastores (default (shp?), MIF plugin, and Oracle
plugin) I get a variety of results.
-- With the sample table tiger_roads, Insert, Update, and Delete
mostly all work. The caveat comes with the Insert operation -- the
fid returned in the TransactionResult is bogus. I suspect that is a
limitation of the datastore, and not GeoServer.

Correct, all datastores exception for jdbc ones (which can actually do transactions properly) have this limitation.

-- With the MIF plugin, only Insert works, with the same limitation as
above -- a bogus fid is returned. For Update and Delete, it appears
nothing happens on the server, but the TransactionResult contains
Status - SUCCESS. That seems to indicate that the TransactionRequest
was well-formed and processed by the server, but the server didn't
find any matching records to Update or Delete. How can I diagnose the
problem with the TransactionRequest? Is there anything in the output
on the GeoServer console that would help?
Or is this maybe a limitation of the MIF plugin? How can I
distinguish between the two (limitation of datastore vs bad request)?

The best way would be to debug... if that is not your cup of tea the next best way would be to create a bug report, attach your data, and have a developer test it. This is of course if your data is reasonable size and non confidential.

Another thing might be to turn up logging and see if any informative messages appear on the console.

-- On Oracle, only the Delete operation works. For Insert and Update
I get a ServiceException regarding the Geometry. I'll have to compare
the geometry we receive with the geometry we send in a request.

Hmm... more info will be needed, if you could include entire service exception, including any stack traces in the log or console that would be helpeful.

I understand that 'partial commits' are possible. For example, if the
TransactionRequest contains 3 Insert elements, 1 and 3 might succeed,
while 2 does not. If I try to send a request with 2 valid objects and
one invalid object (polygon instead of LineString, for example), I get
a ServiceException, and none of the objects are inserted. Is this
expected?

While the wfs spec allows it, geoServer does not implement, and all transactions are atomic, which means if one operation fails, the entire transaction fails, and anything that was changed previous to the failure is rolled back.

Thanks for any insight...

-Justin

-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Don't miss this year's exciting event. There's still time to save $100. Use priority code J8TL2D2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

!DSPAM:4007,47fcf59b197671628642973!

--
Justin Deoliveira
The Open Planning Project
jdeolive@anonymised.com

CB ha scritto:

Hello,

GeoServer 1.6.2 installed on WinXP.

Testing against 3 datastores (default (shp?), MIF plugin, and Oracle
plugin) I get a variety of results.
-- With the sample table tiger_roads, Insert, Update, and Delete
mostly all work. The caveat comes with the Insert operation -- the
fid returned in the TransactionResult is bogus. I suspect that is a
limitation of the datastore, and not GeoServer.

Yes, shapefiles have no primary keys

-- With the MIF plugin, only Insert works, with the same limitation as
above -- a bogus fid is returned. For Update and Delete, it appears
nothing happens on the server, but the TransactionResult contains
Status - SUCCESS. That seems to indicate that the TransactionRequest
was well-formed and processed by the server, but the server didn't
find any matching records to Update or Delete. How can I diagnose the
problem with the TransactionRequest? Is there anything in the output
on the GeoServer console that would help?
Or is this maybe a limitation of the MIF plugin? How can I
distinguish between the two (limitation of datastore vs bad request)?

-- On Oracle, only the Delete operation works. For Insert and Update
I get a ServiceException regarding the Geometry. I'll have to compare
the geometry we receive with the geometry we send in a request.

MIF and Oracle are not bound with the main download because the
quality level is not up to production levels. You can expect
them to work read only, read write is not guaranteed nor tested
by the developers.
Yet, in my experience a properly configured Oracle should work.
Usually failure in inserts is due to misconfigured SRS.
Post the stack traces found in the geoserver log to the mailing list
and we'll try to figure out what's wrong.

I understand that 'partial commits' are possible. For example, if the
TransactionRequest contains 3 Insert elements, 1 and 3 might succeed,
while 2 does not. If I try to send a request with 2 valid objects and
one invalid object (polygon instead of LineString, for example), I get
a ServiceException, and none of the objects are inserted. Is this
expected?

No, everything should either go or fail, transaction should be atomic.
Yet, the transaction guarantees are not in the geoserver code, but
in the datastore ones, so your mileage may vary.
The only fully tested datastore write wise is PostGIS.

Sample data and requests to reproduce the failures are appreciated.
Cheers
Andrea