与其他应用程序集成 > Windchill ESI 简介 > 将 Windchill ESI 与 Oracle Applications 集成 > 故障排除 > 诊断其他问题
  
诊断其他问题
本节描述与前述诊断不符的常见问题和可能的原因。以下是常见问题列表。可以使用链接直接获得您所遇到问题的信息。如果在列表上找不到您所遇到的问题,或者表中建议的方法不能完全解决问题,请与系统管理员联络。
无法创建文档 (在 Oracle Applications 中找不到文档)
Windchill ESI 返回适配器超时消息
Windchill ESI 已在 Oracle Applications 中成功创建了一个或多个业务对象,但出现失败提示
Windchill PDMLink 无法预订 EMS 队列
错误显示在 PostResult 上
没有为发布对象分配分布目标
自上次发布之后,未再作出更改
无法连接至 TIBCO BusinessWorks EMS、Windchill,或者两者均连接失败
查看“ESI 事务处理日志”和“EAI 日志”时,在 Windchill ESI 发布一个对象出现错误,错误消息出现在已发布对象的旁边
响应主数据 - 子项属性冲突
TIBCO Adapter 处理 ESI 事务超时
显示 ESI 响应元信息文件错误消息
在 Windows 服务器上,ADB Agent 无法启动
“企业事务处理日志”中的发布始终保持在 "Pending" 状态
通过升级请求升级一组业务对象会为这些对象中的每一个创建 RTM 工作流
升级一个或多个业务对象时生成的 ESI 响应文件不包含除 ID 外的任何升级请求信息
启动 Process Archive 时,Tiboc BusinessWorks 设计器抛出 "Cannot create Transport" 和 "Process Definition Load" 错误
要配置 BusinessWorks,请按下列步骤操作:
1. 备份下列文件:
<<TibcoHome>>/designer/<<version>>/bin/designer.tra
2. 在文本编辑器中,打开下列文件:
<<TibcoHome>>/designer/<<version>>/bin/designer.tra
3. 搜索下列字符串:
tibco.env.CUSTOM_CP_EXT
4. 用下列内容替换此字符串:
tibco.env.CUSTOM_CP_EXT %RV_HOME%/lib/tibrvj.jar:%RV_HOME%/lib:%RV_HOME%/lib/64:
* 
该路径下可能有其他文件夹。替换字符串时,请保留这些条目。
5. 搜索下列字符串:
tibco.env.CUSTOM_LIB_PATH
6. 用下列内容替换此字符串:
tibco.env.CUSTOM_LIB_PATH %RV_HOME%/lib:%RV_HOME%/lib/64:
* 
该路径下可能有其他文件夹。替换字符串时,请保留这些条目。
7. 保存并关闭 designer.tra
8. 打开 TIBCO Designer 并启动 Process Archive。
无法创建文档 (在 Oracle Applications 中找不到文档)
由于 Oracle Applications API 存在限制,Windchill ESI 不支持向 Oracle Applications 发布文档 (附件)。
Windchill ESI 返回适配器超时消息
适配器配置不正确
ESITarget 是无效的
适配器实例无法运行
Oracle Applications 服务器不可用
适配器与 Oracle Applications 之间网络拥塞
* 
您需要 Windchill ESI 管理员的帮助以解决这些问题。
Windchill ESI 已在 Oracle Applications 中成功创建了一个或多个业务对象,但出现失败提示
适配器配置不正确
Windchill ESI 已成功发布了对象,但在等待 Oracle Applications 返回随之产生的日志表格消息期间出现超时
* 
您需要 Windchill ESI 管理员的帮助以解决这些问题
Windchill PDMLink 无法预订 EMS 队列
以下原因可能造成这个问题:
Windchill ESI 服务的安装不正确
EMS 服务器不起作用
在 Windchill Method 服务器和 EMS 服务器之间出现网络错误
Windchill Adapter EMS 的配置不正确
Windchill ESI 首选项错误地指定了一个或多个 EMS 队列名称、EMS 队列用户或 EMS 队列密码
* 
您需要 Windchill ESI 管理员的帮助以解决这些问题。
错误显示在 PostResult 上
以下原因可能造成这个问题:
在被发布的数据中有数据错误存在
一个或多个所需的 TIBCO 组件未联机
Oracle Applications 脱机
TIBCO Adapter for Oracle Applications 未正确配置
Windchill ESI Services 无法读出或写入一个 JMS 队列。这与 Windchill PDMLink 无法预订 EMS 队列 的原因相同。
Windchill PDMLink 中发生数据库错误
PostResult RPC 请求的格式不合适,原因是 Windchill ESI 中间件的程序错误
* 
您需要 Windchill ESI 管理员的帮助以解决这些问题。
没有为发布对象分配分布目标
以下原因可能造成这个问题:
Windchill ESI 首选项
分布目标查找器设置为
"com.ptc.winchill.esi.tgt.ESIRootInheritTargetFinder" 以便对象继承
来自于根对象的分布目标分配。
对象是 BOM 上的一个组件,且对象从父装配或父 BOM 继承分布目标分配。
在分配任何分布目标之前,试图发布一个对象
在移除所有分布目标分配之后,试图发布一个对象
自上次发布之后,未再作出更改
以下原因可能造成这个问题:
Windchill ESI 首选项“检查小版本”被设为“否”,且仅更改了正在发布的对象的小版本。
在上次发布之后,未再作出更改
您已经成功地将对象发布至所有与对象关联的分布目标
将新的分布目标分配添加到已发布对象后,试图发布该对象。
无法连接至 TIBCO BusinessWorks EMS、Windchill,或者两者均连接失败
以下原因可能造成这个问题:
EMS 服务器的配置不合适。如果将 EMS 服务器的名称指定为 "localhost",则仅在它所运行的计算机上才会识别该服务器。其他计算机无法与其连接。设置为连接到 EMS 服务器 "localhost" 的应用程序会试图查找在同一计算机上运行的 EMS 服务器。如果没有找到该服务器,则出现一条错误信息。如果将计算机名称指定为您的服务器名称,则其他计算机可以连接到您的 EMS 服务器。
将与 factories.conf 文件中的 QueueConnectionFactory 关联的 url 属性设置为 tcp://<machinename>:7222
其中,<machine name> 是正在运行 EMS 服务器的计算机。
- (根据运行 ESI 的位置,在 BW 引擎、TIBCO Designer 或 TIBCO Administrator 中) 将全局变量 ESIJMS\JNDIContextURL 设置为 = tibjmsnaming://<正在运行 EMS 服务器的计算机名称>:7222。
与这个 EMS 服务器的位置无关。它可以与 Windchill 位于同一台计算机上,也可以与中间件引擎位于同一台计算机上,还可以位于任何其他计算机上。只要对上述值进行相应设置 (并且计算机均在同一网络上),Windchill PDMLink 和中间件就可以连接至正确的 EMS 服务器。
要确定哪一台计算机以及哪一个用户名连接到了 EMS 服务器,请在 EMS 管理工具中键入命令:
>show connections
得到一个列表,列出连接的用户和连接的计算机。有关详细信息,请参见“TIBCO Enterprise for EMS”文档。
查看“ESI 事务处理日志”和“EAI 日志”时,在 Windchill ESI 发布一个对象出现错误,错误消息出现在已发布对象的旁边
以下错误消息显示在已发布对象的旁边:
Input Data Invalid
此错误表示数据未到达适配器。调用适配器活动时,适配器方案验证失败。
在 Oracle Applications 中,将数据发送到适配器之前,对有些值进行交叉引用 (根据 ESIORALookup.properties 文件) 而有些值会默认使用 (根据 ESIORADefault.properties 文件)。如果这些属性文件未正确配置 (例如,BOM 使用值为空或模板 ID 不匹配),则会将空数据传送至适配器,且适配器活动会生成上述异常消息。要想确切地知道哪些元素未正确填充,ESI Administrator 需要查看进程引擎日志、异常消息详细信息、元素名和验证错误。
响应主数据 - 子项属性冲突
可对 Oracle Inventory 进行配置,使得可以在主组织级别或子组织级别来控制某些项属性。如果一个项由 ESI 发布,并且操作尝试以与属性控制设置相冲突的方式来设置项属性,则 Oracle 项开放界面会返回一个错误。该错误消息将包含下面给出的文本,后跟引起该错误的属性列表。
Master - Child Conflict in one of these Attributes:
此消息表明 ESI 发布操作尝试在由主组织控制的子组织中设置一个项属性,但该子项的属性值与主数据项的属性值不一致。
要解决该问题,应检查属性控制设置来识别冲突。要知道,用于创建子项的项模板也可能会将项属性设置为错误的默认值。有关配置属性控制和项模板的信息,请参见 Oracle Inventory User's Guide (《Oracle Inventory 用户指南》) 中的 Item Setup and Control (项设置和控制) 一章。
TIBCO Adapter 处理 ESI 事务超时
如果在 TIBCO Adapter 与 ERP 的连接中断后,TIBCO Adapter 开始超时,请检查连接状态并重新启动适配器。
在使用 Windchill Enterprise Systems Integration for Oracle Applications 时,如果有任何发布的更改通告的更改通告号超出 10 个字符的限制,TIBCO Adapter "MasterConfiguration" 将停止。
为解决此问题,请在 ESI TIBCO 安装目录下将下面两个文件夹中带 .ldr 扩展名的总帐文件清除:
1. <Install_Home>\tibco\bw\5.13\
2. <Install_Home>\tibco\tra\domain\<DOMAIN_NAME>\application\Oracle_Apps\ledger
* 
必须先停止所有的适配器,才能清除总帐文件。
显示 ESI 响应元信息文件错误消息
在“新建分布目标”或“编辑分布目标”窗口中单击“完成”,会显示关于 ESI 响应元信息文件的错误消息
为“分布目标”属性 ESI 响应元信息文件路径指定值后,这种情况可能由于下列任一问题引起:
文件路径不存在。
文件内容不符合基础方案 (出厂设置,由 ESIResponseMetaInformation.xsd 文件提供方案)。
文件内容无效 – 例如,文件中的 MapInformation 元素引用不存在的 Map 元素。为何将文件内容视为无效,可能还有很多其他的原因。
与文件中至少一个 Map 元素关联的 id 属性已与不同的 Map 元素 (非关联的 Map 元素) 一起使用。例如,如果用户将分布目标 (正创建或编辑) 指向一个特定的 ESI 响应元信息文件,该文件的部件 Map 元素已被修改以适应其他全局属性,但其 id 属性仍具有 ESIPart 值,而此时,一个不同的分配目标已指向了默认提供的 ESI 响应元信息文件。
在 Windows 服务器上,ADB Agent 无法启动
将显示下列错误消息:
The ordinal 3823 could not be located in dynamic link library LIBEAY32.dll
要解决此问题,请运行下列命令:
1. MOVE /Y <Tibco_Home>/adapter/sdk/6.0/bin/libeay32.dll <Tibco_Home>/adapter/sdk/6.0/bin/libeay32_bk.dll
2. MOVE /Y <Tibco_Home>/adapter/sdk/6.0/bin/ssleay32.dll <Tibco_Home>/adapter/sdk/6.0/bin/ssleay32_bk.dll
3. COPY /Y <Tibco_Home>/tibrv/8.4/bin/libeay32.dll <Tibco_Home>/adapter/sdk/6.0/bin/libeay32.dll
4. COPY /Y <Tibco_Home>/tibrv/8.4/bin/ssleay32.dll <Tibco_Home>/adapter/sdk/6.0/bin/ssleay32.dll
“企业事务处理日志”中的发布始终保持在 "Pending" 状态
此问题可能由下列任一原因引起:
无法连接至 JMS Server tcp://<JMSServer>:7222
JMS 服务器不可获得或主机名未解析至正确 IP 地址时,会发生此种情况。tibjms.jar 文件的不正确版本也可能导致此问题。要解决此问题,请确保 Windchill 服务器上的 tibjms.jar 文件正在使用 TIBCO 服务器上正确版本的 JMS。
1. 从 Windchill 服务器打开命令窗口。
2. 当 Windchill 方法服务器日志中出现准确的字符串时,使用其 ping <JMSServer>。
3. 如果 ping 请求失败,则运行 ping <JMSServer_IP>。
4. 如果 ping 请求成功,则使用显示的 IP 地址或将下列条目添加至 %Windir%\System32\drivers\etc\hosts 文件:<JMSServer_IP> <JMSServer>
5. 如果 ping 请求继续失败,请联系您的网络管理员。
连接到 DataResponse 队列时失败。
要验证这是导致此问题的原因,连接到 JMS 服务器,检查 DataResponse 队列是否已创建,并且已授予 WCESI 用户 DataResponse 队列发送权限。如果 DataResponse 队列名称前显示星号 (*),这表示队列为临时队列且需要创建。如果手动部署 EAR,则会出现此问题。要解决此问题,请在 JMS 管理窗口中运行下列命令:
1. Create queue <DataResponse>
2. Setprop queue <DataResponse> secure
3. Grant queue <DataResponse> <EAIUser> receive
4. Grant queue <DataResponse> <WCESIUser> send
5. Setprop factory QueueConnectionFactory url=tcp://<JMSServer>:7222
6. Commit
Process Archive 未连接到 DataResponse 队列。
打开“JMS 管理”窗口,以确认 Process Archive 已预订 DataResponse 队列。当手动部署时,此步骤常被忽略,从而导致错误。如果未预订 DataResponse 队列,请通过导航至 TIBCO Administrator >“应用程序管理”>“应用程序名称”>“配置”>“部署名称”>“高级”> ESIJMS/DataResponseQueue 来验证 DataResponseQueue 的值
仅有一个 WCESI 用户连接到 EMS 服务器。通过导航至“EMS 管理工具”>“显示连接”进行验证。
ESISYS 与 ClientID (BW-ESIMaster_JMSConnection-queue-<应用程序名称>-Process_Archive) 连接的数量应该与配置的 ERP 实例数相等。如果不相等,可能有其他正在运行的进程存档实例正在使用 ESI 响应消息。通过导航至“EMS 管理工具”>“显示连接”来验证 ESISYS 连接数。
验证所有的连接都来自当前测试套件中的 TIBCO 或 Windchill 服务器,且没有来自于之前套件或国外计算机的连接。如果不相等,可能有其他正在运行的进程存档实例正在使用 ESI 响应消息。
Windchill 和 Process Archive 连接至相同的 JMS 队列。通过导航至“EMS 管理工具”>“显示队列”进行验证。
com.ptc.windchill.esi.Result 队列仅有一个接收者。通过导航至“EMS 管理工具”>“显示队列”进行验证。
有消息保留在队列中。通过导航至“EMS 管理工具”>“显示队列”进行验证。
创建分布目标时为属性 DSN 指定的值与运行 MICU 时为给定的 Oracle Applications 实例指定的相应值不匹配。这导致 Windchill ESI Services 生成有关 EMS 队列不存在的 ESI 响应消息,而这进而导致 ESI 事务处理始终处于待处理状态。
通过升级请求升级一组业务对象会为这些对象中的每一个创建 RTM 工作流
如果首选项“发布升级请求”的值为“否”,则会出现此问题。将该首选项设置为“是”,以便通过单个 RTM 工作流发布升级请求中的对象。
升级一个或多个业务对象时生成的 ESI 响应文件不包含除 ID 外的任何升级请求信息
这是预期行为。如果希望使用单独 XML 元素中的 ESI 响应来发送升级请求的其他相关属性,则需相应地配置 ESI 响应元信息文件。