本节描述当启动或运行 ALE 模块时可能会遇到的问题。它包括以下主题:
以下子节对常见启动问题提供了建议。
如果连接器不能登录到 SAP 应用程序或向它注册:
- 检查 SAP 应用程序是否可用。
- 检查是否正确设置了标准的和特定于连接器的连接器配置属性:
- 检查是否已创建必需的 MQSeries 队列及其相应的配置属性是否正确地指定其名称。
- 对于请求处理,检查 Sysnr、Client、Hostname 和 Modules 属性。
- 对于事件处理,检查 gwService、Hostname、RfcProgramId 和 Modules 属性。
有关更多信息,请参阅配置连接器和连接器故障诊断。
- 验证为连接器设置的用户名和密码是否具有适当级别的优先权。
如果连接器不轮询来自 SAP 应用程序的事件:
- 检查特定于应用程序的查询描述信息,以查看是否已修改所需查询描述以具有正确的消息类型、消息代码和消息功能。
- 检查查询描述 AleOutboundVerbs 是否存在以及是否具有有效查询描述的列表。
- 检查是否已正确创建事件队列(SAPALE_Event_Queue 和
SAPALE_Wip_Queue),以及是否正在 event 队列上执行轮询。
- 验证以下各项在系统上是否正在运行:
- 验证 SAP 应用程序内的 ALE 配置是否正确;有关更多信息,请参阅ALE 模块概述。
- 检查连接器是否至少执行了一次轮询调用;这样做将安装功能模块以执行事件处理。
- 检查是否已将一条消息写入 wip 队列并且已移至 event
队列。
连接器将有关 JMS-MQ 事件消息(在 SAPALE_Event_Queue 配置属性中指定的队列中)中已成功处理的 IDoc 的信息写入
EventState.log 文件。此文件位于 AleEventDir 配置属性中指定的目录中。
- 注:
- 每条事件消息都可以包含多个 IDoc,每个 IDoc
表示一个业务对象。
如果连接器在处理当前事件消息中的所有 IDoc 之前当机,则它在恢复期间使用
EventState.log 文件以确保它只将每个 IDoc
发送至集成代理程序一次。
- 重要提示:
- 连接器在首次处理事件时不会自动创建该日志文件。在首次运行连接器之前,您必须创建此文件。
日志文件的格式为:
TID: OS, 1S, 2F, 3U
其中 <TID>
是正在处理的当前事务标识,每个数字表示事件消息中所有工作单元的序号。
例如,如果连接器已成功处理当前事件消息中前 4 个 IDoc 中的 3 个,第二个 IDoc
在处理时失败,并且连接器尚未完成处理当前事件消息,则
EventState.log
文件可能显示:
<TID> :: OS, 1F, 2S, 3S
如果连接器在处理整个事件消息之前当机,则连接器在启动时将使用该日志文件中的信息来在它停止处理的位置继续处理消息中的事件。连接器读取该日志以获取要恢复的事件的事务标识、最新的工作单元和每个工作单元的状态。然后连接器开始将一些业务对象发送至集成代理程序,这些业务对象表示事件消息中序号大于日志文件中最后一个号码的每个
IDoc。在先前示例中,连接器将处理当前事件消息中第 5 个 IDoc。
连接器将该日志文件的内容保留在内存中以增强性能。连接器访问磁盘上的该文件只是为了用新条目更新它。连接器仅在恢复时读取该日志文件。
有关连接器在恢复过程中如何使用 EventState.log
文件的信息,请参阅故障恢复。
- 注:
- 如果发生磁盘故障或磁盘已满,则这些恢复步骤不适用。
为了在事件通知期间从故障中恢复,连接器执行以下操作:
- 连接器处理事件队列(在 SAPALE_Event_Queue 配置属性中指定)的 JMS-MQ 消息中的
IDoc。当它成功处理一个 IDoc 时,连接器将一个条目写入
EventState.log 文件。
- 如果事件消息中没有任何工作单元在处理时失败,则连接器以
IDocProcessStatus 的 success 值将该事件消息移至归档队列。
- 如果事件队列消息中有任何工作单元在处理时失败,则连接器将把该事件消息移至归档队列并将
IDocProcessStatus 更新为 partial 值。
- 在连接器处理事件消息中的所有 IDoc 之后,它清除
EventState.log
文件并开始将条目写入它以获取下一个事件消息。
- 如果连接器在处理事件消息中的所有 IDoc 之前当机,则它使用
EventState.log
中的信息来确定在恢复过程期间从何处开始处理。在恢复后,连接器检查该日志文件中是否存在任何条目。
如果连接器仅已创建 WIP
队列中消息的头部分,但未创建数据部分,则此过程将恢复该消息的数据部分。
- 检查 SAP
连接器日志以获取与业务对象的名称、消息类型或查询描述相关的错误消息。
- 对业务对象定义或连接器配置作出适当的修正。
- 注:
- 配置更改可以包括对 MQSeries 队列的更改。有关更多信息,请参阅运行 ALE 模块的先决条件。
- 重新启动连接器。
如果 ALE 模块未在处理预订业务对象,则执行以下操作:
- 检查可视连接器框架是否设置为调用 ALE 模块。Modules 属性必须设置为 ALE。
- 检查连接器是否预订该业务对象。
