COM+ Queued Components
.NET
has a built-in mechanism for invoking a
method call on an object: using a delegate asynchronously. The client
creates a delegate class that wraps the method it wants to invoke
synchronously, and the compiler provides definition and
implementation for a BeginInvoke( )
method, which asynchronously calls the required method on the object.
The compiler also generates the EndInvoke( )
method to allow the client to poll for the method completion.
Additionally, .NET provides a helper class called
AsyncCallback
to manage asynchronous callbacks from the
object once the call is done.
Compared with COM+ queued components, the .NET approach leaves much to be desired. First, .NET does not support disconnected work. Both the client and the server have to be running at the same time, and their machines must be connected to each other on the network. Second, the client’s code in the asynchronous case is very different from the usual synchronous invocation of the same method on the object’s interface. Third, there is no built-in support for transactional forwarding of calls to the server, nor is there an auto-retry mechanism. In short, you should use COM+ queued components if you want to invoke asynchronous method calls in .NET.
The
ApplicationQueuing
assembly attribute is used to
configure queuing support for the hosting COM+ application. The
ApplicationQueuing
attribute has two public
properties that you can set. The Boolean
Enabled
property corresponds to the ...
Get COM & .NET Component Services now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.