早期版本 Windows 启动处理 (WIP) 的迁移注意事项
本主题包含以下部分,这些部分介绍如何从事务集成器的早期版本迁移 Windows-Initiated 处理:
转换 COM 类型库
不再支持类型库 (TRB) 。 必须将任何现有的 COMTI 或 TI TLB 类型库转换为 TI .NET 程序集,然后重新部署它们。
可通过两种方式执行转换:
建议使用事务集成器转换工具 (TIConverionTool.exe) 。 它支持单次和批量转换。
对于特殊情况,请使用Designer导入功能转换单个 TRB。
TIConversionTool.exe 是一个命令行实用工具,可以从命令提示符运行,也可以从另一个程序(如 PowerShell)调用。 TIConverionTool.exe 支持单一和批处理操作。 TIConversionTool.exe 位于以下文件夹中:
(OS) | 位置 |
---|---|
X64 | C:\Program Files\Microsoft Host Integration Server 2020\SysWOW64\ |
x86 | C:\Program Files\Microsoft Host Integration Server 2020\system\ |
有关 TIConverionTool 实用工具的命令行语法的详细信息,请参阅 事务集成器转换工具。
转换过程完成后,可以在之前创建要转换的 TLB 的情况下,使用现有 RU 部署新的 .NET 对象。 需要为在早期版本的 HIS 中创建的 TLB 创建新的 RE。
删除现有类型库
在部署新程序集之前,必须使用 TI 管理器删除现有的 TLB。 新版本的 TI 中存在更严格的约束,因此,如果较旧的 TLB 违反了这些约束,则可能会遇到一些警告或错误。 例如,在转换过程中,ADO RecordSet 将转换为 .NET DataTable。 如果要转换的 TLB 对于命名空间和 接口具有相同的名称,则转换工具会自动将_rename追加到接口名称中。 如果要转换的 TLB 的 ProgID 长度超过 39 个字符,转换工具将引发错误,并且 TLB 将不会转换。 对于 ProgID 超过 39 个字符的 TRB,必须使用 Designer/Import 方法来执行转换。 TI 事务 2010 中已删除对 IMS 隐式和显式的支持,这些类型的 TRB 将转换为使用 IMS Connect 模型。 有关详细信息,请参阅 IMS Connect。
使用 Designer升级类型库
可以通过创建具有相同特征的新 .NET 程序集,一次升级一个类型库。 然后,可以导入现有的 TLB。 如果在 TLB 中启用了客户端上下文,在导入过程中,TLB 将从旧样式的客户端上下文对象数组转换为新的客户端上下文对象模型。 然后,必须修改客户端应用程序以使用新的 Context 对象模型。 此过程耗时且容易出错,应仅用于 TIConversionTool 实用工具不支持的情况。 特殊情况包括:
持久性Connections要求使用客户端上下文对象模型,否则调用将失败。 还必须修改客户端代码以使用新的上下文模型。
ProgID 长度超过 39 个字符的 TRB。
支持上下文的新功能,例如动态 ES。
有关详细信息,请参阅帮助主题使用 TI Designer。
升级 .NET 程序集
根据用于创建 .NET 程序集的版本、承载模型 (.NET 远程处理、Web 服务、WCF 服务或直接调用) 和编程模型,可以使用不同的选项。 大多数 .NET 程序集将继续工作,无需更改。 在某些情况下,需要转换和重新部署程序集。 建议使用支持单一转换和批量转换的 TIConversionTool.exe 实用工具。 对于特殊情况,可以使用Designer和导入功能一次转换一个程序集。
除非使用网络类型 LU6.2,否则他的 .NET 程序集不需要进行任何更改。 在这种情况下,必须使用 TIConverionTool.exe 实用工具或使用Designer中的“导入”功能转换程序集。
IMS 隐式和 IMS 显式不再受支持,在使用 TIConversionTool.exe 转换时将转换为 IMS Connect 编程模型。 有关详细信息,请参阅 IMS Connect。
部署转换后的程序集
转换过程完成后,如果正在转换程序集,则可以使用现有的 RE 部署新的 .NET 对象。
删除了对 .NET 远程处理托管模型的支持。 必须使用 WCF 或直接调用托管模型部署 .NET 程序集。
使用 Designer升级程序集
使用 Designer 导入功能仅在特殊情况下转换 HIS 2006 和 HIS 2004 .NET 程序集。 如果在导入过程中在程序集中启用了客户端上下文,它将从旧样式的客户端上下文对象数组转换为新的客户端上下文对象模型。 必须修改客户端应用程序才能使用新的客户端上下文对象模型。 还必须在部署过程中创建新的匹配 RE。
持久性Connections要求使用新的客户端上下文对象模型,否则调用将失败。 还必须修改客户端代码才能使用新的上下文模型。
其他注意事项
完全升级类型库或程序集后,可能会更新旧类型库的以下两个方面,具体取决于所使用的升级过程。
远程环境类。
在库级别定义的默认转换信息。 .NET 和 COM 中用于转换数据类型的默认值不同。 有关详细信息,请参阅数据类型。
根据情况和应用程序的要求,可能需要更新其中一个或两者。 下表描述了用户操作、TI 操作、结果和建议。
用户操作 | TI 操作 | 结果 | 何时使用 |
---|---|---|---|
无。 使用现有的 .NET 对象和 RU | 不会对以下内容进行任何更改: - RE - Ti 对象 GUID - .NET 程序集默认转换 |
- TI .NET 对象和 RE 完全正常运行。 - 无法再修改类型库和 RE 中的属性。 - 使用 TI 项目创建的新 .NET 程序集不能与旧版 RU 相关联。 - 现有客户端不需要修改。 - COM TLB 和 NET LU6.2 程序集将不运行,必须使用 TIConverisionTool.exe 实用工具进行转换。 |
- 从以前的版本初始就地升级。 旧的 TI .NET 对象和旧的 ES 正常工作,不需要修改。 |
使用 TIConversionTool 实用工具转换 TRB 和 .NET 程序集 | 不会对以下内容进行任何更改: - ClientContext 模型 - 不更新远程环境类 |
- 旧类型的 TLB 和 .NET 程序集已更新为使用较新版本。 更新的 .NET 程序集只能与新的 RU 相关联。 建议转换后的 TRB 和 .NET 程序集也与 RB 相关联。 如果将旧类型库迁移到 .NET 程序集,TI 还会将所有 Visual Basic 版本 6.0 自动化数据类型迁移到 Visual Basic .NET 数据类型,包括: - 整数到短 - 长到整数 - 货币到十进制 - 记录集到 DataTable - UDT 到结构 使用 NewRecordset 函数创建断开连接的记录集的客户端应用程序必须修改代码。 .NET 不支持 NewRecordset 函数。 - 由于 GUID 更改,必须使用声明性绑定的现有 COM 客户端重新编译。 |
- 迁移 HIS 2009 TLB 和 .NET LU62 程序集。 - 从 HIS 2006 或 HIS 2004 TLB 和 .NET 程序集迁移。 - 必须在 Host Integration Server 2009 环境中创建新的 RE。 - 使用 RE 功能。 - 移动到 HIS 支持的环境。 - 编程模型保持不变。 |
使用 Designer 导入功能转换 TRB 和 .NET 程序集 | - 汇报 Remote Environment 类。 - 生成新的 .NET 程序集 使用新的对象模型 ClientContext |
方法属性 Include Context Parameter 自动设置为 True。 如果客户端应用程序不需要支持客户端上下文,并且工作不变,因为客户端上下文是一个可选参数。 在 Visual Studio TI 项目中,在 方法上将 Include Context Parameter 设置为 False 。 从对象数组转换为模型到对象模型的 ClientContext 模型。 需要更改客户端应用才能使用启用了 ClientContext 的新对象模型。 如果将旧类型库迁移到 .NET 程序集,TI 还会将所有 Visual Basic 版本 6.0 自动化数据类型迁移到 Visual Basic .NET 数据类型,包括: - 整数到短 - 长到整数 - 货币到十进制 - 记录集到 DataTable - UDT 到结构 使用 NewRecordset 函数创建断开连接的记录集的客户端应用程序必须修改代码。 .NET 不支持 NewRecordset 函数。 由于 GUID 更改,必须使用声明性绑定的现有 COM 客户端进行重新编译。 |
- 使用 Host Integration Server 2009 创建用于并行操作的应用程序的新实例,目的是扩展应用程序。 - 使用新的客户端上下文功能 (客户端安全性、持久Connections等) 。 - 编程模型更改 - 目标环境更改 (CICS、IMS、IBM i) - (WIP、HIP) 启动更改 - 转换 IMS 隐式程序集或 IMS 显式 .NET 程序集 ProgID 长度超过 39 个字符的 TRB。 |