When monitoring activation/deactivations it does appear that the serviced components are deactivating. The deactivation timing is not exactly in synch with the serviced component method call returns but as these events are based on COM+ runtime it seems as this would be the case. So appears that deactivation is occuring as the loop generates serviced component instances and method calls however eventually there is an Oracle max cursor exceeded error (there's a DataSet that's retrieved and returned from a serviced data component). The thing that seems odd is that this situation appears only to occur when an exception is thrown across from the serviced component to a managed client from the tight loop. If throwing the exception from the "outer" serviced component out to the managed client is removed from the scenario there are no issues with the Oracle max cursor error.
Originally, I thought that possibly the data serviced data component was not releasing ADO.Net objects properly and so was holding onto resources but the issue appears to be tied to making serviced component calls in a loop and also in throwing an exception from the method. So if the entier transaction is being committed (consistency and done bits are true) prior to the exception being thrown from the serviced object method and it appears that the objects are being deactivated what am I missing in Oracle's ability to release cursors? =================================== This list is hosted by DevelopMentorĀ® http://www.develop.com View archives and manage your subscription(s) at http://discuss.develop.com
