When you upgrade to Host Integration Server 2010 or use Unconfigure Feature to reset the Data Integration Feature in Host Integration Server 2010, the Host Integration Server drops tables even if other servers are using the required SQL tables
This article describes how to upgrade Microsoft Host Integration Server 2009 to Microsoft Host Integration Server 2010 in a multiserver Host integration Server environment when distributed transactions are being used together with TCP/IP or when you use Unconfigure Feature to reset the Data Integration Feature.
You run Host Integration Server 2009 in a multiserver environment. (For example, multiple instances of Host Integration Server are sharing the same Host Integration Server subdomain, and you are using distributed transactions.) In this scenario, you can use a single instance of Microsoft SQL Server to hold transaction data.
Note The same issue may be seen if you use Unconfigure Feature on the Data Integration Feature.
When you configure the distributed transaction, you have to specify an instance of SQL Server. A SQL Server database named MSHIS_DATA will be created on the configured instance of SQL Server to hold the following tables:
These are needed in order to store the transaction identifiers. You can use a single instance of SQL Server for this purpose.
When you now try to upgrade Host Integration Server 2009 to Host Integration Server 2010, the Setup program uninstalls Host Integration Server 2009 as part of the upgrade process. This causes the DUWTCPLog and DUWTCPReferences tables that were created in the MSHIS_DATA database to be dropped. After the tables are dropped, other distributed transactions that are running on different instances of Host Integration Server in the multiserver environment no longer work correctly. This occurs because the other distributed transactions are supposed to use the SQL Server tables that were dropped.
To work around this issue, follow these steps:
Open Windows Explorer, and then locate the Microsoft Host Integration Server\System folder.
Open the DuwTcpCleanup.sql file.
Locate line 11, where you see the following statements:
DELETE FROM "DUWTCPReferences" WHERE NAME = HOST_NAME() IF EXISTS (SELECT COUNT(*) FROM "DUWTCPReferences") BEGIN
Change the second line to the following:
IF NOT EXISTS (SELECT * FROM "DUWTCPReferences")
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.