ABAP 扩展模块故障诊断

本节描述当启动或运行 ABAP 扩展模块时可能会遇到的问题。它包括三个方面的故障诊断:

传送文件

如果在安装 ABAP 扩展模块的适配器传送文件时发生错误:

启动问题

如果连接器成功登录到 SAP 应用程序,但 SAP 应用程序中连接器的日志为空:

Microsoft Windows 上的事件分布问题(仅限于连接器版本 4.2.7)

在 Windows 上升级至 IBM CrossWorlds SAP 连接器版本 4.2.7 之后,在以下情况下,事件保留在事件表中,且连接器不会选取和处理这些事件:

此问题是由 SAP 在其 java API(SAP JCo)中所作的更改所引起的。

要修正此问题,装入仅更改由适配器提供的事件请求和事件返回功能模块的补丁传送包。在具有名称空间(/CWLD/)基础结构的 4.0 和 4.5 SAP 系统中装入此补丁传送包。

注:
名称空间 ABAP 基础结构没有此问题。

事件处理

以下子节对事件处理问题提供了建议。

预订业务对象未调用 ABAP 扩展模块

如果 ABAP 扩展模块不处理预订业务对象,则执行以下操作:

连接器不选取事件

如果您的连接器不从 SAP 应用程序中选取事件:

业务对象未能处理

如果业务对象未能成功处理,则检查 SAP 应用程序中的连接器日志。失败事件的条目以红色出现。使用重新处理工具重新处理事件,该工具使您能够像您逐步执行事务一样在代码中设置断点。有关重新处理对象的更多信息,请参阅重新处理已归档的对象

注意: 不要在生产环境中使用重新处理工具,因为它会导致 WebSphere Business Integration 系统和 SAP 应用程序不同步。

事件表的死锁

当前事件表和将来的事件表可能会在一次添加许多事件时遇到死锁情况。如果由于数据库调整而未使用为事件表提供的索引,则会发行这种情况。调整通常在非高峰期间发生,这时事件表中只有很少的事件或没有事件。当数据库表没有或只有很少条目时,不使用索引来读取表效率会更高。要避免死锁情况,在运行数据库调整实用程序时排除当前事件表和将来的事件表。

大对象

大对象可能需要进行额外更改才能成功处理。在将数据传递至 SAP 应用程序之前,将把 ABAP 扩展模块对象转换为平面结构,或者在从 SAP 应用程序接收数据时将该对象从平面结构转换。有关更多信息,请参阅业务对象至平面结构的转换。此平面结构保持在内存中,对象实例的每个属性为该结构中的一行。对于每个属性,将在连接器和 SAP 应用程序之间传递 373 个字节的数据。属性数乘以 373 将给出平面结构的近似大小。另外,对象的实例也在内存中。因此,具有许多子对象(段)的对象可能需要在连接器的 Java 进程的启动脚本中对 Java 堆大小作出更改,以避免内存不够错误。
Windows

start_SAP.bat 脚本中,将 -mx128m Java 堆大小选项参数缺省值更改为足够处理平面结构和对象实例的值。大于运行 Java 进程的机器上可用内存的值也会导致内存不够错误。128m 表示最大 Java 堆大小为 128 MB。

Unix

SAP 应用程序还可能需要更改 ABAP 超时参数以成功处理大对象。

Copyright IBM Corp. 1997, 2004