在当前页:
介绍
一旦检查了一致性,下一个阶段就是定义允许构建在应用程序中执行的事务的配置。这是通过为事务入口点和终点以及标识数据实体创建特定规则来实现的。 CAST 事务配置中心(TCC)是允许您执行与事务配置相关的所有任务的工具:
点击放大:
在事务配置阶段使用了几个概念及其相关步骤:
- 配置事务入口点:此步骤描述定义规则,用终端用户或其他应用程序选择任何类型的接口。
- 配置数据实体:此步骤描述定义规则,以选择应用程序中的任何类型的数据持久性层。
- 配置事务终点:此步骤描述了定义规则,以选择任何类型的数据持久性层,这些层不是应用程序的一部分(它们属于其他应用程序),并且不随源代码一起交付。 因此,它们应被视为事务终点。
- 配置排除项:定义规则,以从应用程序边界中排除特定元素(数据实体或事务入口点)。
在每个步骤中,根据需要处理的对象,可以定义四种类型的规则:
- 按名称:使用其名称搜索对象
- 按继承:使用拥有的继承链接搜索类和接口
- 按类型:通过其类型搜索对象
- 自由定义:定义复杂规则,根据名称、类型、链接和属性搜索对象
与CAST应用智能平台和扩展一起交付的预定义配置规则
请注意,下面讨论的预定义配置规则也可以通过SME工具包— 事务配置工具包获得 — 如果您使用的是CAST AIP ≥ 8.3.x ,则无需将此扩展作为规则进行下载和安装,因为它们是现成提供的。
CAST AIP ≥ 8.3.x和一些CAST AIP扩展与一套预定义配置规则一起交付,这些规则旨在满足大多数简单用例。您可以在应用程序节点下的每个自由定义规则节点中看到这些预定义规则:
点击放大:
或者您可以在应用程序>事务配置节点中查看它们:
与这些预定义配置规则匹配的对象数量列在应用程序>事务配置>子节点>自由定义节点中:
CAST建议检查预定义的规则和匹配的对象是否合适,以避免创建重复的规则。如果发现规则不合适,可以在应用程序>事务配置>子节点>自由定义节点中停用预定义规则:
或在应用程序>事务配置节点中:
配置事务入口点
要执行的第一个操作是运行CAST事务配置中心并访问应用程序。 然后转到模板节点中的入口点节点。
此步骤旨在正确注册系统自动使用的默认接口,以标识事务入口点。 此操作的结果是由SME审查的事务列表,以确保您不会错过任何接口。
使用其类型搜索对象
CAST事务配置中心通过节点下的一组预定义对象类型按类型进行初始化:
您应该首先查看此列表以避免创建重复的规则。 还可以添加规则以选择新对象作为事务入口点。 例如,对于主机技术,默认情况下JCL作业和CICS事务被视为事务入口点。 但是,如果应用程序使用BMS映射,则可以添加一个规则来选择这类对象作为事务入口点。
如果你必须处理一个类型的子集,比如某一类的工作或程序,则应该结合排除使用自由定义规则(而不是添加新类型)来清理选定的对象。
使用其继承搜索对象
如果技术不允许您按对象的类型选择对象,那么您可以选择另一种方法。 例如,可以通过选择超级类作为事务入口点的根来处理基于JAVA Swing的执行。通过按继承规则为JFrame和JPanel类进行定义,这将自动选择应用程序中现有的屏幕。
如果父类的选择必须按名称而不是全名进行,则CAST建议使用自由定义规则而不是按继承规则。 您将使用自由定义规则获得更准确的结果:
搜索具有自由定义规则的对象
这类规则非常强大,通常允许您处理可能遇到的大多数情况:
按名称搜索对象
使用事务入口点的名称选择事务入口点应该是最后一个选项,因为这是一种声明性方法。 它强制您将特定任务作为正在进行的流程的一部分,定期与SME核实是否需要向规则集合添加新的事务入口点:
配置数据实体
要执行的第一个操作是运行CAST事务配置中心并访问应用程序。 然后转到模板节点中的数据实体节点:
作为持久层的部分,数据实体应作为元素类型来考虑。这些元素应该包含表或平面文件等数据。在此步骤中,不应将任何临时文件或对象作为目标。
使用其类型搜索对象
CAST事务配置中心由一组预定义的对象类型初始化。 您应该查看此列表以避免创建重复规则:
可以添加规则以选择新对象作为数据实体。例如,默认情况下,主机技术、CICS数据集、IMS DBD、SQL表和其他COBOL文件链接对象被视为数据实体。 这些对象是持久性层的潜在成员,但是,如果架构需要此排除,则某些类型的部分或所有对象可以在进一步的配置中排除。 例如,如果数据持久存在于数据库中,那么COBOL文件链接对象将被视为临时文件。 在这种情况下,我们只保留与报告或纯输出或输入相对应的COBOL文件链接对象。
根据应用程序的架构,可以添加一些特定元素作为持久性层的一部分。 在下面的示例中,我们添加了GSAM文件,因为应用程序将信息存储在IMS数据库和GSAM文件中:
点击放大:
使用其名称搜索对象
即使可以使用这种类型的规则,也很少使用数据实体的名称搜索数据实体。除了按名称选择对象之外,还应该查看“内置”部分中预定义的模式列表。 这些规则将自动从校准中排除元素。 这些数据实体不会显示在任何列表中(保留、忽略或删除的数据实体):
使用其继承搜索对象
即使可以使用这种类型的规则,通常也不建议使用继承搜索数据实体。
搜索具有自由定义规则的对象
即使可以使用这种类型的规则,通常也不建议使用自由定义规则搜索数据实体。
配置事务终点
CAST应用智能平台中接口审查和配置的下一步将继续使用CAST事务校准中心,以确保事务终点定义正确。 在本部分中,我们将回顾您必须加入的应用程序的潜在接口。如果应用程序使用其他应用程序公开的特定API或Web服务,那么您应该配置这些终点。
该方法用于检查带外部API的接口,以便获取与持久性层交互的所有内容,例如文件、输出流、输入流、MQueue、邮件、文件流、书写者、阅读者……所有这些API都应该配置为贡献设置为1的事务终点。 其他不代表持久层的API应该配置为贡献设置为0的事务终点:
使用其类型搜索对象
这是一个简单的选择,可以用来标识未解析对象或由通用分析器配置生成的某些对象:
使用其名称搜索对象
这种类型的规则通常与传统技术(如主机)一起使用,以选择用于在应用程序外部实现功能的特定程序。 在这种情况下,这些对象通常在未解析程序列表中,且很容易选择需要的对象:
搜索使用继承的对象
如果父类的选择必须按名称而不是全名进行,则CAST建议使用自由定义规则而不是继承规则。你将使用自由定义规则获取更多准确结果:
搜索使用自由定义规则的对象
自由定义规则是配置事务终点的一种非常强大的方法。 使用这种方法,您应该考虑在其他应用程序中要针对的总项(例如:Web服务、消息队列、API……)。事务终点是调用此总项的元素:
从外部API选择事务端点
一些外部类可以看作是其他应用程序提供的API。 在当前应用程序中,调用这些API的对象可以被视为事务终点。 此外,那些调用管理数据流的API的对象有助于增加事务权重。 创建处理这些对象的规则可以通过以下几个步骤完成:
- 搜索外部类
- 识别处理数据流的对象
- 生成要添加到自由定义规则选择标准中的对象列表
- 创建自由定义规则
搜索外部类
应用程序使用的外部JEE API
以下SQL查询收集用作API的Java方法:
SET Search_path=<Prefix>_local; SELECT DISTINCT OBJ.object_fullname FROM cdt_objects OBJ, OBJPRO EXT WHERE EXT.IDOBJ = OBJ.OBJECT_ID AND OBJ.object_language_name = 'Java' AND OBJ.object_type_str = 'Java Method' AND EXT.Prop = 1 AND OBJ.object_name NOT LIKE '_jspService' ORDER BY object_fullname ASC;
搜索应用程序使用的外部.NET API
以下SQL查询收集用作API的.NET类:
SET Search_path=<Prefix>_local; SELECT DISTINCT OBJ.object_fullname FROM cdt_objects OBJ, OBJPRO EXT WHERE EXT.IDOBJ = OBJ.OBJECT_ID AND OBJ.object_language_name = '.NET' AND OBJ.object_type_str like '%.NET Class' AND EXT.Prop = 1 ORDER BY object_fullname ASC;
识别处理数据流的外部API
回顾上一步中标识的对象,并标识处理数据的对象。然后,可以将它们添加到特定的自由定义规则中,用于定义贡献设置为1的事务终点。
添加在以下SQL查询选择标准中标识的对象的名称:
SET Search_path=<Prefix>_local; SELECT DISTINCT '<value>'||OBJ.object_fullname||'</value>' as pattern, count (1) FROM cdt_objects OBJ, OBJPRO EXT, ctv_links CLI WHERE EXT.IDOBJ = OBJ.OBJECT_ID AND OBJ.object_language_name = '.NET' AND OBJ.object_type_str like '%.NET Class' AND EXT.Prop = 1 AND CLI.called_id = OBJ.OBJECT_ID --AND OBJ.object_fullname like '%Stream%' and object_fullname not in ('<Replace With The Content Of Your Free Definition With A Contribution at 1>') GROUP BY 1 having count(1)< 10000 ORDER BY 2 DESC;
执行查询产生的结果应如下所示:
现在,您可以创建一个新的专用自由定义规则来选择与外部API对应的事务终点。例如,您可以将其称为“公开程序”。创建后,使用以下SQL查询(与环境匹配)替换规则中执行的正规表达式,在该查询中插入以前获得的对象列表:
set search_path=<Prefix>_mngt; update cal_objsetdef set setdefinition = '<set> <selection-criteria subobjects="no" externalobjects="yes"> <property name = "fullname" operator = "like" > <value>...</value> -- result of the previous query </property> </selection-criteria> </set> ' where setname = '<Replace With The Name Of Your Free Definition>';
结果在CAST事务配置中心的规则定义中可见:
现在可以创建自由定义规则来选择调用外部API处理数据的事务终点:
配置排除项
如果需要从应用程序边界中明确排除某些项,可以使用熟悉的按命名、按继承、按类型和自由定义规则进行排除:
如何重用和合并CAST事务配置中心配置?
每个应用程序在技术和框架方面都是特定的。配置事务的一项重要工作是涵盖通用和特定技术。 CAST事务配置中心配置库将帮助您配置公共部分,这意味着您可以将重点放在特定部分。 要构建CAST事务配置中心默认配置,应使用以下说明:
- 检查应用程序使用的技术和框架列表
- 对于每种技术,都有一个可用的".tccsetup"导出文件
- 在CAST事务配置中心的模板节点中执行更新配置
- 将常规配置从模板节点导出(导出设置)到“.tccsetup”文件中
- 右键单击应用程序设置节点,然后导入“.tccsetup”文件
- 根据尚未包含在此预定义库中的特定于应用程序的技术或框架调整事务配置
- 完成后,导出您的配置并与CAST联系人共享(后者将向CAST产品管理团队提供反馈),以帮助改进CAST事务配置中心配置库。
查看应用程序中使用的技术和框架列表
如果不知道应用程序使用的技术,可以执行的第一个简单操作是打开CAST事务配置中心并选择应用程序,如下所示。 使用右侧面板底部的表获取应用程序中标识的所有对象类型的列表:
点击放大:
上表允许您了解应用程序使用的技术。 如果要导入其他框架和API的配置,则应使用CAST Enlighten(如下所示)或执行SQL查询列出所有外部和内部类,包对包:
点击放大:
用.tccsetup 文件更新模板部分
第一步是在CAST事务配置中选择模板节点。确保模板是空的(除了入口点中的默认项>按类型和数据实体>忽略的表节点),以便不传送之前的配置是很重要的。 如果要从干净的环境开始,必须从另一个环境导出干净的配置,并将其导入模板节点,然后才能继续:
点击放大:
接下来,右键单击模板节点,并在弹出菜单中选择加载配置以丰富现有配置。如果应用程序中有多种技术,并且需要加载多个自定义tccsetup文件,则可以多次执行以下操作:
在下面的示例中,我们将导入主机的自定义配置:
加载配置后,可以看到与模板节点关联的视图上显示的数据实体、入口点、终点和排除项的新规则。加载操作可防止重复:配置不能导入/加载两次:
以下屏幕截图显示已导入/加载的自定义配置示例:
导出最终默认配置
一旦您的配置准备好用于应用程序,右键单击模板节点并选择导出配置:
将配置保存在文件中:
将TCC配置文件导入应用程序的安装节点
保存配置后,选择应用程序并展开它以查找事务配置节点。右键单击此项并选择导入配置:
请记住,此操作将用新配置替换应用程序中的当前配置。如果需要将特定配置与要导入的配置合并,则必须在模板节点中执行此操作。为此,请导出为应用程序定义的配置并将其上载到模板节点。
将配置文件导入应用程序: