Normally the package loading process in Maestro is as follows.
- Select the package file
- Maestro invokes APPLYRESOURCEPACKAGE on the MapGuide Server and uploads the package file
- Twiddle your thumbs, because there is no way to know how long this operation will take
- The operation being transactional means that the operation will wholly suceeed or wholly fail.
Non-transactional package takes a different approach. It eschews using the APPLYRESOURCEPACKAGE API (the cause of the thumb twiddling and waiting because there is no way to track progress) for an approach that allows progress to be measured. At the heart of a MapGuide Package is the resource package manifest, which is simply a list of resource service operations to execute on the MapGuide Server, which are generally a mixture of:
- SETRESOURCE
- SETRESOURCEDATA
- DELETERESOURCE
Now when you load a package, you will be asked to choose the method of uploading:
Choosing the Transactional method will load the package in the existing fashion. Choosing the other option will use the non-transactional method and because this approach is measurable, we get a nice meaningful progress dialog to relay the upload progress.
So in what cases would you use non-transactional package loading over the default transactional one? Here's a few I've thought of:
- The package file is several hundred MBs in size
- The package file contains hundreds of resources to be loaded
- The package file is not loadable via the transactional method, which is generally the result of any of the above items.
I've received some test packages which completely failed to load under the official package loading methods. These packages loaded without issues in the non-transactional mode. So no matter low large or small your data packages are, Maestro can upload it for you. One way or another.
No comments:
Post a Comment