EOS Low-Code Platform 8 EOS Low-Code Platform 8
产品简介
学习指南
更新说明
安装与集成
上线指南
初见EOS
低代码开发手册
专业代码开发手册
专题场景实战
公共服务框架
应用运行治理
最佳实践
运维指南
  • 数据源与连接类问题排查指南
  • 1. 数据源连接与配置问题
  • 1.1 新装环境启动失败:数据库初始化报错
  • 1.2 多数据源操作报错:Table '...' doesn't exist
  • 1.3 访问数据源超时或无响应
  • 2. 数据库兼容性与迁移问题
  • 2.1 迁移更换数据库后功能异常
  • 3. 数据源操作与运行时问题
  • 3.1 逻辑流操作数据库报类型转换错误
  • 3.2 定时任务调用逻辑流失败(跨数据源/跨应用)
  • 4. 数据源管理功能问题
  • 4.1 IDE 中无法选择数据源或加载表结构

# 数据源与连接类问题排查指南

# 1. 数据源连接与配置问题

# 1.1 新装环境启动失败:数据库初始化报错

  • 现象:
    • 应用启动失败,日志中包含 SQLException 或 CommunicationsException。
    • 页面提示“系统初始化中”,或报错 table/eos_lock doesn't exist。
  • 排查与处理:
    1. 核对配置文件:
      • 路径:config/{APP_NAME}/config/user-config.xml
      • 核对 C3p0-Url、C3p0-UserName、C3p0-Password 与目标库信息一致。
      • 微服务版检查 application-nacos.properties 或 bootstrap.properties 中 Nacos 配置。
    2. 检查驱动:
      • 确认对应数据库的 JDBC 驱动 JAR 已放置在 lib 或 lib/jdbc 目录下。
    3. 重跑初始化脚本:
      • 找到对应版本的 db-scripts/all.sql,在目标库重新执行并确认无报错。

# 1.2 多数据源操作报错:Table '...' doesn't exist

  • 现象:
    • 操作非默认数据源(如 eos833_btlsrm_db)的业务表时,报错提示在 default 数据源中找不到该表。
    • 示例:Table 'eos833_sass.wbtl_non_bulk_suppliers' doesn't exist。
  • 排查与处理:
    1. 实体数据源绑定:
      • 登录 AFCenter →【开发中心】→ 选择应用 →【配置管理】→【实体数据源配置】。
      • 按文档规则配置实体与数据源映射关系。
    2. 补丁:
      • 如配置无误仍报错,建议优先安装补丁合集,或打相关补丁(PLATFORM_8.3.3_AFCENTER_20250711_P1、PLATFORM_8.3.3_AFCENTER_20250912_P1)

# 1.3 访问数据源超时或无响应

  • 现象:
    • 后端日志出现 SocketTimeoutException 或 CommunicationsException。
  • 排查与处理:
    1. Linux 环境配置主机名/DNS:
      • 编辑 /etc/hosts,添加应用服务器与数据库服务器的 IP 和主机名映射。
      • 检查 /etc/resolv.conf 配置正确的内网 DNS。
    2. 调整连接池:
      • 修改 user-config.xml 或 application.properties,增大 C3p0-PoolSize、C3p0-MaxPoolSize 等参数。
    3. 网络检查:
      • 使用 telnet 或 nc 测试应用服务器到数据库端口的连通性。
      • 若经过网关,检查网关日志是否因加密或转发导致延迟。

# 2. 数据库兼容性与迁移问题

# 2.1 迁移更换数据库后功能异常

  • 现象:

    • 执行 SQL 时报语法错误或类型转换异常。
  • 排查与处理:

    1. 初始化脚本适配:

      • 检查脚本是否适配新数据库(如大小写敏感、关键字差异),必要时手动调整。
    2. 驱动版本:

      • 更换为与目标数据库完全匹配的 JDBC 驱动。
    3. 补丁:

      • 达梦/Oracle 下若 XXL-JOB 相关功能异常,打补丁 PLATFORM_8.3.3_AFCENTER_20250410_P1。

        4.需要适配处理


# 3. 数据源操作与运行时问题

# 3.1 逻辑流操作数据库报类型转换错误

  • 现象:
    • 主键为 int 时,逻辑流删除图元调用失败。
    • 日志:java.lang.Integer cannot be cast to java.lang.String。
  • 处理:
    • 打补丁 PLATFORM_8.3.3_AFCENTER_20251119_P1。

# 3.2 定时任务调用逻辑流失败(跨数据源/跨应用)

  • 现象:
    • 调度中心显示执行成功,但业务数据未更新。
    • 跨应用调用接口返回 401 Unauthorized。
    • 逻辑流中 systemVars 获取失败。
  • 排查与处理:
    1. 模拟登录(解决 401):
      • 在调用其他应用接口的 REST 图元中,手动设置请求头 Authorization。
      • 使用固定 Token:在 AFCenter“Token 管理”中为指定用户生成长期有效 Token,通过系统变量注入。
    2. 补丁(解决 systemVars 获取失败):
      • 打补丁 PLATFORM_8.3.3_AFCENTER_20250526_P1。

# 4. 数据源管理功能问题

# 4.1 IDE 中无法选择数据源或加载表结构

  • 现象:
    • 开发中心点击【数据源】下某数据源(如 Oracle)后,页面一直“加载中”。
    • 无法将表从数据源拖拽至数据集画布。
  • 排查与处理:
    1. 更换驱动:
      • 使用 server/afcenter/lib/jdbc 下自带驱动,或从官方下载匹配版本替换。
    2. 权限检查:
      • 确保连接用户对业务表有 SELECT 权限,且有查询系统表(读取元数据)的权限。
    3. 补丁:
      • 若为 Oracle 数据源,建议先打补丁合集或补丁 PLATFORM_8.3.3_AFCENTER_20250611_P1。

← 最佳实践 权限相关问题 →