查看应用启动错误
错误描述
- 应用重启后,起不来
- 应用的状态始终是未启动
- ide 启动不起来
处理步骤
手工执行应用初始化,看错误信息,根据错误信息解决问题
获取资源 ID
应用启动不起来,在应用服务管理中找到应用的服务名
ide 启动不起来,打开 ide,复制 url 中的域名
用 system 登录控制台,打开“运维管理-REDIS管理”
在 Redis 管理中,点击 Show All
点击 POOL_DOMAIN_LINK_RESOURCE 右侧的 view 图标
搜索服务名,Value 中的值即为资源 ID,复制这个资源 ID
执行应用初始化
应用启动不起来,用 system 登录控制台,打开“集群管理-池管理-部署池管理”,选择类型为 PROD 的池,点击 prod 按钮
ide 启动不起来,用 system 登录控制台,打开“集群管理-池管理-开发池管理”,选择类型为 IDE 的池,点击 ide 按钮
找任意一个服务为“就绪”的池,点“名称”列中的按钮,打开池详情
点“池名称”列中的按钮,打开 kube 控制面板
点击“在 pod 中运行”,打开命令行
切换到 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
应用初始化命令输出如下
看完日志后删除 pod
为了不影响这个池的后续使用,删除池,池会自动重建
已知的几种错误
解压用户主资源失败或网关连接失败
日志中显示解压用户主资源失败,或网关连接失败。执行下面的命令(第一句表示不使用缓存),看看初始化是否成功
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
日志中出现如下图的错误
进入终端执行 bash production.init.sh,提示流程导入失败,打开工作流应用的日志,查看错误
如果提示达梦数据库 DM 不能连接,添加用户自定义环境变量 BEX5_DB_PRO_PRODUCT_NAME=Oracle
init 没有错误,不能启动的原因
在 redis 中看不到 init 的记录
两种可能
- ip 解析不对
正常情况下,ping 应用的域名和控制台域名得到的 ip 应该一致,不一致则要看是否配置了 ingress,如果没有配置就需要检查 dns 解析
- https 的证书不对