查看应用启动错误

错误描述

  1. 应用重启后,起不来
  2. 应用的状态始终是未启动
  3. ide 启动不起来

处理步骤

手工执行应用初始化,看错误信息,根据错误信息解决问题

获取资源 ID

应用启动不起来,在应用服务管理中找到应用的服务名

1723713656622

ide 启动不起来,打开 ide,复制 url 中的域名

用 system 登录控制台,打开“运维管理-REDIS管理”

1723713710950

在 Redis 管理中,点击 Show All

点击 POOL_DOMAIN_LINK_RESOURCE 右侧的 view 图标

搜索服务名,Value 中的值即为资源 ID,复制这个资源 ID

执行应用初始化

应用启动不起来,用 system 登录控制台,打开“集群管理-池管理-部署池管理”,选择类型为 PROD 的池,点击 prod 按钮

1723713827179

ide 启动不起来,用 system 登录控制台,打开“集群管理-池管理-开发池管理”,选择类型为 IDE 的池,点击 ide 按钮

1723713909094

找任意一个服务为“就绪”的池,点“名称”列中的按钮,打开池详情

1723714104250

点“池名称”列中的按钮,打开 kube 控制面板

1723714134100

点击“在 pod 中运行”,打开命令行

1723714205949

切换到 app-init,输入应用初始化命令

    source /usr/local/bin/init-default-env.sh
    init.sh 资源ID

本例为

    source /usr/local/bin/init-default-env.sh
    init.sh zx0416/255b5f40-1ced-4568-863a-4c997fe4f972

1723714323706

应用初始化命令输出如下

看完日志后删除 pod

为了不影响这个池的后续使用,删除池,池会自动重建

1723714533668

已知的几种错误

解压用户主资源失败或网关连接失败

日志中显示解压用户主资源失败,或网关连接失败。执行下面的命令(第一句表示不使用缓存),看看初始化是否成功

    export NO_CACHE=true
    source /usr/local/bin/init-default-env.sh
    init.sh 资源ID

如果成功,清除缓存后,即可正常访问,清除缓存的方法是执行下面的命令

    source init-default-env.sh
    curl -X DELETE -I -m 10 -f $RES_SERVICE_URL/console-resource/resource/delete/资源ID/resservice密码

其中 resservice 密码的获取方法是进入 kube 控制面板,选择 newdao-console 名空间,打开 pods ,搜索 resservice,打开池,找到 resource_passwd

SQL 错误,违反约束

日志中出现如下的错误,说明自动插入数据时违反了唯一约束,需要手动修改数据:

Caused by: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry 'entry' for key 'uni_manager_service_name'

修改方法如下:

  • 使用租户管理员,在应用/服务管理中,点击应用右侧的资源按钮,进入业务数据库
  • 在数据库管理页面,打开报错的数据表(本例为 manager_service),找到会出现重复的数据进行修改(本例中“企业门户”那一行记录的 id 必须是entry,编辑数据,将 id 值修改为 entry)
  • 再次执行应用初始化,查看是否正常

模板已被删除或模板路径无效

日志中出现如下图的错误

如果是 ide 启动不起来,可以恢复为上一个资源,方法是进入 console 数据库,打开 app_resource 和 app_res_storage 表,其中a pp_id 是资源 id 的后半部分,从 app_res_storage 表中找到前一个资源,将 id 写入a pp_resource 表的 app_res_id 列,app_res_version 写入 app_resource 表的 app_res_version 列。换成上一个资源后,打开 ide 看看能否打开。

如果是出现了共享存储满的情况,导致应用打不开,需要重建 nexus 索引,参考《重建nexus索引》,重建 nexus 索引后,重启应用即可

没有项目文件

日志中出现如下图的错误

这种情况的原因是:新建的应用必须由租户管理员打开一次,其他开发者才能打开

git clone 远程仓库失败

日志中出现如下图的错误

这种情况查看 git,会发现 project members 里面没有当前开发者,所以获取不到 git 资源。

用租户管理员登录控制台,在应用的团队中删除开发者,重新添加即可

git 有问题

日志中出现如下图的错误

在浏览器中访问 http://控制台域名/service/app/config/资源ID,访问出错 get token error ::{"msg":"java.net.ConnectException: Connection refused (Connection refused)","code":"001001","success":false}

说明 git 出问题了,在 kubu 控制面板中看 git 的日志解决问题

网关2连接失败

日志中出现网关2连接失败

看 gateway 的日志,如果是连接数据库失败,就检查应用服务管理-门户-资源中 kongdb2 的连接情况

停在 production.init.sh

日志中出现如下图的错误

1735291839069

进入终端执行 bash production.init.sh,提示流程导入失败,打开工作流应用的日志,查看错误

如果提示达梦数据库 DM 不能连接,添加用户自定义环境变量 BEX5_DB_PRO_PRODUCT_NAME=Oracle

1735292256275

init 没有错误,不能启动的原因

在 redis 中看不到 init 的记录

两种可能

  • ip 解析不对

img 正常情况下,ping 应用的域名和控制台域名得到的 ip 应该一致,不一致则要看是否配置了 ingress,如果没有配置就需要检查 dns 解析

  • https 的证书不对

results matching ""

    No results matching ""