ESB:已知问题和已知限制 - 7.1

Talend Data Fabric 版本说明

author
Talend Documentation Team
EnrichVersion
7.1
EnrichProdName
Talend Data Fabric
task
数据治理

我们建议您查询 JIRA 错误跟踪工具,获取完整的未解决问题列表:

https://jira.talendforge.org/issues/?filter=28368

所有 ESB 用例 (路由、REST 和 SOAP 数据服务) 都需要 Java 8。

安装程序

问题

变通方法

默认情况下,macOS Sierra 会将所有下载的文件设为“隔离项”。这会禁止您运行 Studio。
  1. 按照正常方式将 Talend Studio 解压缩。
  2. 在您解压缩 Talend Studio 的文件夹上打开一个 Terminal (终端) 窗口。
  3. 执行以下任一命令:xattr -d com.apple.quarantine *xattr -c *
  4. 正常启动 Talend Studio
使用最新版本 Mac OS X 的用户可能需要更新其 Gatekeeper 设置才能安装 Talend 产品。OS X 10.7.5 以上版本提供了 Gatekeeper。
  1. 单击 Apple 图标,然后单击 System Preferences (系统首选项)
  2. System Preferences (系统首选项) 下面,单击 Security & Privacy (安全和隐私)
  3. Security & Privacy (安全和隐私) 下面,单击 General (常规) 选项卡。
  4. 单击 Click the lock to make changes (单击锁进行更改) 旁边的锁图标,然后使用具有管理员权限的帐户用户名和密码标识身份。只有管理员才能更改安全设置。
  5. Allow apps download from (允许以下位置下载的应用) 下面,选择 Anywhere (任何位置) 单选按钮,然后在打开的对话框中确认您的选择。
  6. 关闭所有窗口,使您的 Mac 自动为您重新锁定 Security & Privacy (安全和隐私) 设置。
  7. 按照正常的安装程序安装 Talend Studio (或您想要安装的任何其他可执行程序)。请注意,在您双击 Talend-Studio-macosx-cocoa.app 文件时,您会看到一条警告,提示这是从互联网下载的应用程序,但如果您单击 Open (打开),您的 Mac 将会允许您安装此应用程序,而不会产生更多问题。
  8. 完成安装过程后,如果您愿意,可以重复以上步骤,将您的 Security & Privacy (安全和隐私) 设置恢复至先前的值。
在同一服务器上执行 Talend Runtime 和 Job-Server 的自定义安装可能导致端口冲突 [TUP-832]

如果将 Talend Runtime 和 Job-Server 安装为同一计算机上的服务,您需要确保更改独立 Job-Server 的 Job-Server 端口。否则,这些端口将会与 Talend Runtime 中包含的 Job-Server 发生冲突,因为它们使用与独立 Job-Server 相同的默认端口。

作为一种变通方法,首先考虑您实际需要独立的 Job-Server、Talend Runtime (也包括一个仅供 DI 使用的 Job-Server),还是需要两者在同一计算机上。只有在最后一种情况下,您才应该确保在独立的 Job-Server 设置期间 (安装期间会显示一个配置页面) 使用其他端口。

Studio

限制

描述

不支持 Java PSU 仅在 Java CPU 版本上支持 Talend,在 Java PSU 版本上不支持。

一些用户报告,将 Talend Studio 与 Java PSU 版本 (例如 jdk8_u92) 一起使用时出现了问题,但恢复至 Java CPU 版本 (例如 jdk8_u91) 后问题便得到了解决。

另请参阅:http://www.oracle.com/technetwork/java/javase/cpu-psu-explained-2331472.html

仅支持符合 WS-I 基本配置文件规范的 WSDL 文档 如果您想要在 Talend Studio 中使用 WSDL 服务描述,所有 WSDL 服务描述至少应该符合 WS-I 基本配置文件规范。请参阅http://ws-i.org/deliverables/workinggroup.aspx?wg=basicprofile%20for%20more%20information。其他 WSDL 文档可能也有作用,但更有可能失败。
Studio 中提供的活动监控控制台和相关的控制面板屏幕可用于显示 tLogCatcher、tStatCatcher 和 tFlowMeterCatcher 事件。对于 Studio 中的这些组件和相关功能,Talend Enterprise ESB 中存在一些需要考虑的限制。
  • tLogCatcher 可在数据服务和作业中使用,但 tLogCatcher 组件必须显式包含在作业中,而且在此环境 (Talend Runtime - OSGi 容器) 中建议使用数据库进行日志记录。
  • tStatCatcher (包括使用在一些组件的 Advanced Settings (高级设置) 中提供的 tStaCatcher 选项) 和 tFlowMeterCatcher 只能在未定义为 Keep Listening (保持侦听) 的作业中使用,而不能在数据服务 (其中的操作是在 Keep Listing (保持侦听) 作业中实现) 中使用。此外,这些组件必须显式包含在作业中,而且在此环境 (Talend OSGi 容器) 中建议使用数据库进行日志记录。
  • 整个活动监控控制台功能的 tLogCatcher、tStatCatcher 和 tFlowMeterCatcher 不能在使用 Route Designer 和 Studio 一起开发的路由中使用,这意味着系统根本不支持 cTalendJob 所调用的作业使用这些组件。
  • 请注意,您可以使用 Talend Enterprise ESB Studio 中的 AMC 视图,但 TAC 中相关的 AMC Web 控制台仅提供了一个包含 DI 产品的许可证 (例如 Talend Platform for Data Services 许可证)。
Talend ESB 数据服务和 tRoute 作业中不支持 tWaitForXXX 组件 不支持在 ESB 数据服务 (REST&SOAP) 或基于 tRouteInput 的作业 (cTalendJob 用例) 中使用 tWaitForFile、tWaitForSqlData 和 tWaitForSocket 组件。
支持 tRunJob 但存在限制 支持 tRunJob 组件但存在限制,这意味着仅接受 S4 (次要) 支持案例,并且未提供任何补丁。如果在数据服务和路由内使用 tRunJob (借助 cTalendJob),则仅按“最大努力”的原则提供支持。多数情况下,存在类加载问题,此问题有时可以解决,但不一定总能解决。

这是因为 tRunJob 并非设计为在服务/路由样式 (ESB) 的部署中工作,因此如果您决定使用它,将不会提供常规支持 (即便它在许多情况下可以正常工作)。过去如果使用了 tRunJob,建议您更改作业设计,转而使用 Joblet。

对于 DI 和非 ESB 用例,它仍是一个有价值的组件,并同以前一样提供完全支持。

此外,在 ESB 路由或数据服务中根本不支持 Use dynamic job (使用动态作业) 选项。

问题

变通方法

无法按软件包来组织 Route Builder Beans [TESB-3701]

路由构建中的 Beans 可用于添加路由构建器路由的 Java 代码,但所有 Beans 目前都位于一个软件包中。

在跟踪或调试模式下未完全显示 XML 有效负载内容

在跟踪/调试模式下启动数据服务作业时,流程的“Document (文档)”字段内容未完全显示 - 仅显示 XML 有效负载的第一行。

如果您需要查看 XML 数据,您可以在模型中的任意位置放置一个 tLogRow 组件。请谨记,Talend Studio 还允许您禁用此组件,以便您可以启用它已在 Talend Studio 内进行测试,但禁用它进行导出或发布。
对源路由中的组件所做的修改不会传播至测试用例 [TESB-17405]

在您更改路由中的组件配置时,这些更改不会自动传播至相关的路由测试用例中。

您可以关闭测试用例并重新打开,以获取在测试用例中传播的组件更改。
可以为 ESB 提供含 CI 的筛选器,以限制由 CI 构建器 Maven 插件构建和部署的数据服务和路由。但当路由使用 cTalendJob 时,仅在作业和路由都是筛选器 (条件) 时才可行。

建议以路由名称后带有额外详细信息的相同名称命名作业。这样,路由和作业具有相同的开始名称,将应用到该部分名称筛选器。或者,您可以构建没有限制的整个工程。

Routelets 不支持在 Routelet 内使用 cTalendJob。

由于 Routelets 本质上可选 (对某些用例而言仍然重要),建议将 Routelet 限制为不需要 cTalendJob 调用的部分,并添加 cTalendJob 部分到主路由中。如不可行,唯一可行的变通方法是放弃 Routelet 以及如下操作之一:

a) 再次添加 Routelet 部分到每个路由中

b) 使用 cVM 端点将 Routelet 建模为路由。然后,主要路由和该支持路由需要作为两个单独路由部署到 Talend Runtime (首先部署之前曾是 Routelet 的支持路由,然后部署使用支持路由的主要路由)。这种变通方法只适合将 OSGi 部署到 Talend Runtime,而不适合 Microservice 部署,因为目前一个 Microservice 是一条路由。对于 Microservice 部署的情况,需要 Socket、JMS 或 REST 通信。

运行时

限制

变通方法

当使用 Talend-LogServer 时,默认情况下,事件日志在存储时没有特定的安全保护,因此所有日志对所有具有服务器访问权限 (通过您网络内的 HTTP URL) 的人都可见。 有关如何停用 Talend Administration Center 日志记录屏幕和 Talend Log Server 的信息,请参阅位于 Talend 帮助中心 (https://help.talend.com) 的有关如何在 Talend Administration Center 的 Logging (日志记录) 页面上禁用日志事件的显示的文章。
OpenID 身份验证仅支持小写形式的用户名。如果用户名包含大写字母,Talend STS (Security Token Service) 将会抛出异常,指示未找到用户。 如果您想要使用 OpenID 身份验证,则用户名必须全部为小写。

问题

变通方法

OSGi 容器未能记录发送至 system.err / system.out 的消息 [TESB-11603]

在 tesb.log 文件中,您将看不到任何通过 system.err 或 system.out 发送的消息。

如果遇到此问题,您可以在控制台模式下运行 system.err 和 system.out 将在控制台上显示的相同场景。