If you have written or use an application such as Host Access Management Agent (HAMA) that uses the Session Integrator (SI) feature included with Host Integration Server 2006, you might run into a situation where the application fails to work properly. One of the logical troubleshooting steps at this point might be to check the application event log to see if there are any events that might help you determine the cause of the problem. 

While looking through the event log, you might encounter event messages similar to the following:

Event Type: Warning
Event Source: Session Integrator Server
Event Category: None
Event ID: 6
Date: Date
Time: Time
User: N/A
Computer: Computer Name
Description:
The Session Integrator Service received a connect request from a client that did
not support the Icom3270SessionClient interface (hr = 0x80070005)

Event Type: Warning
Event Source: Session Integrator Proxy
Event Category: None
Event ID: 24
Date: Date
Time: Time
User: N/A
Computer: Computer Name
Description:
An application unsuccessfully tried to connect a session using LU 'LU Name' (hr =
0x80040218).

Of course, the next question is: What do these event message really mean and why is Session Integrator logging them?

The answer is actually in the Host Integration Server 2006 README.htm file. Of course, how many people really read the README files that are included with most products? Even if you had actually read the README, it still might not be obvious that this particular problem is discussed because the information doesn’t include any details about these two particular event messages.

Here is the section of the README.htm that applies to this situation:

Session Integrator might fail when you use two different user accounts

The Session Integrator features currently exhibit problems when the Client application and the Service component are running under two different user accounts. The problem is related to a DCOM callback that is made from the Server components to the client. The Server user account must have Local and/or Remote access to the DCOM classes.

You can follow these steps as a workaround:

1.    Start DCOMCNFG.
2.    Expand the Component Services.
3.    Right-click My Computer.
4.    On the COM Security tab, click Edit Default under Access Permissions.
5.    In the Access Permission dialog box, click Add to add the Server user context.
6.    If the Server is not on the same computer as the client, you must allow Remote Access to the user.
7.    Click OK twice.

Note: In Step 3 above, you need to right-click My Computer and then click Properties. I wanted to copy the text from the README as is, so I didn’t correct the step above.

Following these steps has resolved all of the reported instances of this particular problem that I am aware of.

Just to provide a bit more detail about the Session Integrator components, be aware that Session Integrator includes a client and a server component. The client component is the Session Integrator Proxy (siproxy.dll) and the server component is the Session Integrator service (siserver.exe).

If you do happen to use the Host Access Management Agent (HAMA) with Microsoft Identity Integration Server 2003 (MIIS) or Identity Lifecycle Manager (ILM) 2007, and you see these event messages, here are some additional steps that you may need to take to resolve the problem:

In addition, you may see an error message such as the following when this occurs when using HAMA:

The Host Integration Server is not available or there is no network connectivity to the host.

- The service account used for Session Integrator service should be given access to
the MIIS service. This is because the Session Integrator server makes a callback
into the Session Integrator client that is loaded in the MIIS service. To configure
this:

1. Start the Component Services MMC snap-in.
2. Expand the Component Services.
3. Expand My Computer.
4. Expand DCOM Config.
5. Right click Microsoft Metadirectory Services and click on Properties.
6. Select the Security tab.
7. Give the Session Integrator service account 'Launch and Activation Permissions',
and 'Access Permissions'.

- The service account used for the MIIS\ILM service should be given access to the Session
Integrator service. This is needed since the Session Integrator client (siproxy.dll) loaded in MIIS\ILM
service calls the Session Integrator server. To configure this:

1. Start Component Services MMC snap-in.
2. Expand the Component Services.
3. Expand My Computer.
4. Expand DCOM Config.
5. Right-click {9BC26375-BAA7-11D2-A039-0000F663518E} and click on
Properties. This is the DCOM properties for the Session Integrator Server service (siserver.exe). Note: If HIS 2004 and a previous version of HAMA was installed on the system previously, the entry to look for is “tss” (without quotes) instead of the GUID shown.
6. Select the Security tab.
7. Give the MIIS service account 'Launch and Activation Permissions', and 'Access
Permissions'.

Note: You may need to update the “Launch and Activation Permissions” when using Session Integrator as part of a Biztalk Server solution. In this case, you would need to grant access to the service account being used by Biztalk Server. This may also apply with other applications as well where the Session Integrator service and the application service (or user context) need corresponding access to each other.