ArcSDE plugin driver for MapServer

Howard Butler at GMAIL.COM
Tue May 15 13:25:14 EDT 2007


I have received a commitment to fund the implementation of RFC 3 and  
RFC 8 for the ArcSDE driver.  This work will be targeted for  
MapServer 5.0, but could be backported to the 4.10 branch if people  
think it is worthwhile (are we going to have another 4.10 release?).


	ESRI ArcSDE Plugin Driver for MapServer


To implement MapServer's plugin architecture (MS RFC 3 and MS RFC 8 [1])
for the MapServer ArcSDE driver to provide an alternative (and  
optional) approach to
alleviate the need for hard linking version-specific ArcSDE code in  

Technical Details


MapServer currently embeds all SDE-specifc symbols and linkages  
within libmap.dll.
The limitation of this approach is that the use of alternative versions
of the ArcSDE C API SDK (ie, version 9.0, 9.1, or 9.2) requires that  
be compiled separately against each version.  From a user-facing  
perspective, the
biggest problem is a user must partake in "dll swapping" to be able to
get the right combination of libmap.dll with a given linkage to a  


Consequences of the proposed approach in contrast to the current  

* Layers using this plugin will be of CONNECTIONTYPE 'PLUGIN' instead  
of 'SDE'.

* mapserv -v will not report SUPPORTS=SDE when using the SDE plugin  

* Each layer will require a 'PLUGIN' mapfile directive with the  
location of the
   MapServer SDE plugin dll.

* The scope of this work will be limited to mapsde.c, nmake.opt, and
   While it would be possible to use this approach on GNU-style  
builds, initial
   development will be contained to the MSVC/Windows platform only.

* An additional makefile symbol, USE_SDE_PLUGIN, will be added to  
switch the
   compilation of the plugin-specific code and switches.

* Development will take place against the "trunk" of MapServer,  
targeted at
   the MapServer 5.0 release.


Standard user documentation will be written and placed on the  
MapServer website
describing the compilation of the SDE plugin, which switches need to  
be set
in nmake.opt, and a short description of how to utilize a PLUGIN  
layer in a mapfile.

Intellectual Property

The code and configuration described in this proposal will become a  
part of the MapServer library and software project, and its source  
code and
documentation will be released under the normal MapServer open source  


More information about the mapserver-dev mailing list