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 服务器模块的业务对象处理。
RFC 服务器模块的业务对象处理以下列方式执行:
RFC 服务器模块使用 SAP 网关来维护事件的处理顺序并维护事件的状态。因为侦听器线程执行同步调用,所以必须将事件返回至 SAP 网关后才能认为已成功处理该事件。
开发环境包括一个实用程序,即 SAPODA,它基于 RFC 支持功能来生成业务对象定义。SAPODA 解释 RFC 支持功能的接口,将其接口参数映射至业务对象属性,并添加每个属性的特定于应用程序的信息。
对于每个业务对象定义,您必须生成一个特定于 RFC 服务器的相关业务对象处理程序,该处理程序调用相应的业务对象。有关开发业务对象和特定于 RFC 服务器的业务对象处理程序的更多信息,请参阅"为 RFC 服务器模块开发业务对象"。
要对 RFC 服务器模块触发事件,必须为远程功能调用指定 RFC 目标位置。可以采用两种方式来执行远程功能调用:使用程序和使用事务 SE37。使用程序,这种方式是 CALL FUNCTION 命令的变化形式,该命令指定必须使用目标位置。要为目标位置指定的值就是为了注册 RFC 服务器模块而创建的值。有关更多信息,请参阅“向 SAP 网关注册 RFC 服务器模块”这一节。当使用事务 SE37 时,RFC 目标系统必须与 RFC 目标位置相匹配。有关为 RFC 服务器模块创建和注册 RFC 目标位置的更多信息,请参阅“向 SAP 网关注册 RFC 服务器模块”这一节。