Federico Boerr’s Blog


Category Archive

The following is a list of all entries from the AddIn category.

.Net AddIn Framework: Concurrency problem

Using .Net System.AddIn framework in an environment that needs to handle concurrency may be a bad idea.

The problem is that the communication between Host adapter and AddIn adater, using remoting, can handle only 2 concurent conections.

This is because the implemented remoting communication is opening only 2 channels as shown in the picture below.

Remoting Channels

If more than 2 concurrent requests arrives to the Host adapter, the folowing exception is raised:

RemotingException: Port is busy (…) All pipe instances are busy.”

 Remoting Exception

A proposed approach to solve this issue would be to create an AddIn pool as shown below.

AddIn pool solution

 


.Net AddIn Framework structure

Addin Structure 

Component

Description

Application compoment

The Application that will use the AddIn.

Host adapter component

Component that runs on the application’s ApplicationDomain.

It is the gateway between the application and the addIn.

AddIn adapter component

Component that runs on the addIn’s ApplicationDomain.

It is the entry point of the addIn.

AddIn component

The AddIn that is executed.

The call to it is made by the AddIn Adapter.

 

For mor information on the AddIn Framework: