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

Reply via email to