Try the following book for a possible answer:
Transactional COM+: Building Scalable Apps
Or contact Tim Ewald and ask this question from him. He may reply. Find his email at www.develop.com.
Main Topics
Browse All TopicsFor the most part I understand the principles of both COM+ and ADO transactions. What I require is to execute a series of stored procedures that may be rolled back at any time (ORACLE and SQL Server 2K). My investigations on COM+ tell me not to run transactions longer than a minute but in this case I require transactions to be running for extended periods, as long as a day or perhaps even longer.
The task requires me to further develop a recent WIP solution written in Visual Basic that synchronizes data in GIS system to non-GIS, business tables within an extended transaction. Currently the existing software solution is designed to extend a third party, spatial GIS (Geographic Information System) object framework. This GIS software allows the user with an editing environment so as to edit polygons among other spatial object types. The GIS object model framework exports a series of interfaces that expose on_create, on_change, on_delete events for each class of each spatial object and further exports edit session interfaces providing the state of the user’s edit session once again through events.
The spatial object data is persisted in ORACLE or SQL server data tables in a proprietary format such that it is recommended by the GIS vendor not to modify data table structure, as the GIS system must independently manage this on its own and may change table names and structure frequently. This limitation thus will not allow one to apply user-based triggers directly on object tables themselves. The WIP application currently simulates triggers as described below.
To facilitate the event mapping of spatial object data to non-GIS business tables a second client application provides a mechanism to map the attribute field value from the spatial object's data table to the input and/or output parameters of a selected stored procedure within the external non-GIS business database table(s). The client tool allows many spatial to stored procedure mappings to be edited against each object class, and persists the mapping details into the GIS object class structure as XML.
When a GIS editor begins to edit an object class type, the XML mapping details are acquired so that as the object fires through their respective class creation/change/delete events the SP mapping details are which provides all the necessary details on how to execute the appropriate SP for that class and event. A simple ADO exercise at this point in the event procedure executes the appropriate stored procedure, passing the values from the fields/attributes of the polygon in to the appropriate parameters of the chosen stored procedure.
This all works, however not within transactions.
By now you may see where this is going. If the user decides not to save the changes, I would like to rollback all of the changes made within the previously executed stored procedures. I know when a user begins and exits the edit session as well if they drop their edit changes.
My initial thoughts were to create a COM+ server that was launched at the start of their edit session, and was act as the portal for all stored procedure calls. This server would support transactions thus in the event the user decides not to save their edit session changes, the com server would be signaled to rollback all data transactions that occurred through it, or all edit session related transactions. As I initially pointed out, it would appear COM+ is perhaps not a likely candidate to provide such long transactional control, this perhaps is my question.
I am looking for a nice solution to this problem.
This Question has been solved and asker verified All Experts Exchange premium technology solutions are available to subscription members.
Experts Exchange has been collecting answers to technology questions since 1996…3 million and counting! If you have a question, chances are we already have your answer.
If you can't find the exact answer you're looking for, ask our exclusive community of 50,000 experts. You’ll get a personalized answer from a trusted professional.
Thousands of free tech tips, tricks, how-to’s and tutorials are available in our peer reviewed articles section. See for yourself how smart our experts are, no login required.
Access the answers to your technology questions today.
30-day free trial. Register in 60 seconds.
Members of the expert community talk about why the experience at Experts Exchange is different than what you will find anywhere else.

Try it out and discover for yourself.
30-day free trial. Register in 60 seconds.
Join the community of experts here and help other tech pros by answering question in your area of expertise. You can earn FREE access to all Experts Exchange's premium features and resources.
Try the following book for a possible answer:
Transactional COM+: Building Scalable Apps
Or contact Tim Ewald and ask this question from him. He may reply. Find his email at www.develop.com.
Hi jkears,
It appears that you have forgotten this question. I will ask Community Support to close it unless you finalize it within 7 days. I will ask a Community Support Moderator to:
Split points between: AzraSound and tdubroff
jkears, if you think your question was not answered at all or if you need help, just post a new comment here; Community Support will help you. DO NOT accept this comment as an answer.
EXPERTS: If you disagree with that recommendation, please post an explanatory comment.
==========
DanRollins -- EE database cleanup volunteer
Per recommendation, force-accepted.
Netminder
CS Moderator
AzraSound: points for you at http://www.experts-exchang
Business Accounts
Answer for Membership
by: AzraSoundPosted on 2001-12-18 at 14:41:40ID: 6684369
Consider the use of a temp data table. Upon session start, store the current attributes into the temp table, and then allow the user to make changes as desired, each time updating this temp table data. Then, if they ever decide to "rollback", no problem, no harm done to the original data stored in the DB. If they wish to "commit", then copy over the temp data into the true DB table.