RFC 服务器模块的工作方式

RFC 服务器模块实现 init()terminate()pollForEvents()process() 方法。

本节描述:

初始化和终止

init() 方法创建一个主线程,该线程衍生许多侦听器线程(该数目是可配置的),这些线程打开指向 SAP 网关的句柄。如果连接器未能初始化,则它使用 terminate() 方法来终止。连接器通过断开与 SAP 网关的连接来终止。

在初始化过程期间,RFC 服务器模块使用指定的程序标识向 SAP 网关注册。必须使用 RfcProgramID 连接器配置属性来设置此程序标识,且必须在 SAP 应用程序中将它设置为 TCP/IP 端口。有关设置 TCP/IP 端口的更多信息,请参阅"向 SAP 网关注册 RFC 服务器模块"

业务对象处理

RFC 服务器模块的 WebSphere 业务对象的所有处理由 SAP 应用程序中 RFC 支持功能启动。在 RFC 服务器模块中,特定于 RFC 服务器的业务对象处理程序仅支持一个 RFC 支持功能;因此,对于 SAP 应用程序中每个受支持的功能,您必须具有一个特定于 RFC 服务器的相关业务对象处理程序。另外,对于每个特定于 RFC 服务器的业务对象处理程序,您还必须具有一个相关业务对象。

图 56 举例说明了 RFC 服务器模块的业务对象处理。

图 56. 业务对象处理


RFC 服务器模块的业务对象处理以下列方式执行:

  1. 侦听器线程从 SAP 网关选取预订的事件,并使相应 RFC 支持功能的名称与特定于 RFC 服务器的业务对象处理程序匹配。
  2. 侦听器线程基于来自 SAP 网关上 RFC 事件的数据来实例化特定于 RFC 服务器的适当业务对象处理程序,然后创建相应业务对象的实例。
  3. 特定于 RFC 服务器的业务对象处理程序从 SAP 网关检索 RFC 接口数据,并填充 SAP 的 WebSphere 业务对象。
  4. 特定于 RFC 服务器的业务对象处理程序将业务对象传递至集成代理程序。
  5. 业务对象处理程序接收来自集成代理程序的返回业务对象,将它重新转换为 RFC 接口,然后将它返回至 SAP 网关。

RFC 服务器模块使用 SAP 网关来维护事件的处理顺序并维护事件的状态。因为侦听器线程执行同步调用,所以必须将事件返回至 SAP 网关后才能认为已成功处理该事件。

注:
如果 RFC 支持功能模块具有返回结构或返回表,则连接器检查消息类型 A(异常终止)和 E(错误)来确定是否成功处理了事件。消息类型 AE 指示未能处理事件。如果 RFC 支持功能模块不具有返回结构或返回表,则您必须实现您自己的错误处理。

支持 RFC 支持功能

IBM WebSphere Business Integration mySAP.com 适配器包括一个工具,即 SAPODA,它基于 RFC 支持功能来生成业务对象定义。SAPODA 解释 RFC 支持功能的接口,将其接口参数映射至业务对象属性,并添加每个属性的特定于应用程序的信息。

对于每个业务对象定义,您必须生成一个特定于 RFC 服务器的相关业务对象处理程序,该处理程序调用相应的业务对象。有关开发业务对象和特定于 RFC 服务器的业务对象处理程序的更多信息,请参阅为 RFC 服务器模块开发业务对象

注:
某些 RFC 支持功能不具有与 WebSphere 业务对象中简单属性对应的单一字段参数。连接器要求每个顶级业务对象都具有一个充当键属性的简单属性。因此,当从 RFC 支持功能生成业务对象和业务对象处理程序而没有单一字段参数时,SAPODA 在顶级业务对象中创建一个名为 Dummy_key 的键属性,将它标记为键属性,并添加 dummy_key 作为此属性的特定于应用程序的信息。Dummy_key 为连接器提供一个键属性,以便它可以处理该业务对象。但是,连接器在修改应用程序数据时会忽略 Dummy_key 属性的值。

Copyright IBM Corp. 1997, 2004