# 信创环境部署问题案例
# 高频问题清单
序号 | 分类 | 类别 | 检查项 | 检查要求及标准 |
---|---|---|---|---|
1 | 重点问题 | 信创环境配置 | openjdk版本检查 | 要求版本必须为1.8.0.212或者以上版本 ,若java版本低于1.8.0.212可能存在压力测试失败、宝兰德中间件启动协同服务异常问题 ,登录系统管理员账号,系统监控可以查看当前使用的JVM详细信息以及版本信息 。 |
2 | 重点问题 | 信创环境配置 | jvm参数配置 | 信创中间件需要增加jvm参数 : -Djava.awt.headless=true -XX:MaxMetaspaceSize=2G -XX:ReservedCodeCacheSize=1G 东方通需要增加或修改jvm参数,启动参数配置,服务器参数 -DenableJPA=false -DWebModuleOnly=true -Dopenejb.webservices.enabled=false -Djava.awt.headless=true |
3 | 重点问题 | 信创环境配置 | 全文检索jdk配置 | jdk不能部署于/root或者其子目录下(影响全文检索服务启动) |
4 | 高频问题 | 信创环境配置 | 东方通7.0.4.X阈值配置不合理 导致系统频繁卡顿、宕机 | 管理控制台 --> 监视 --> 阈值配置 --> default1 --> 勾选了快照jmap会在触发时执行fullgc导致卡顿现象 解决方法: 方法1:阈值配置,删除默认监视策略default1,并删除TongWeb安装目录/snapshot下已产生的快照文件 方法2:调整配合不合理的阈值,建议修改方法: ①、将最大线程数10改成300 ②、无内存泄漏问题,去掉jmap勾选 |
5 | 高频问题 | 信创环境配置 | 东方通乱码问题检查要点 | 调整tongweb.xml,调整uri-encoding为utf-8(涉及多个listener)。 容器配置-默认请求参数解码字符集修改为ISO-8859-1(东方通7.0.4.0以前版本为utf-8) 。 WEB容器配置-HTTP通道管理-其他设置-uri处理不勾选 |
6 | 高频问题 | 信创环境配置 | 东方通部署协同服务多个页面系统级错误问题 | 东方通7.0.4.X页面出现“提示信息系统级错误”;涉及关联文档、修改公文单、表单等 更新东方通补丁包解决,不同版本补丁包联系东方通获取。 东方通7.0.4.X补丁包打包步骤: 补丁包下文件Parser.class替换文件:tongweb安装目录\lib\tongweb.jar打开jar包,注意备份文件,需要替换的文件路径为:com\tongweb\jasper\compiler\Parser.class 修改配置文件: 修改bin目录下external.vmoptions文件,增加一行: -Dcom.tongweb.jasper.compiler.Parser.STRICT_WHITESPACE=false 修改conf目录下default-web.xml 在com.tongweb.web.jasper.servlet.ThanosJspServlet下增加init参数: |
7 | 高频问题 | 信创环境配置 | 涉密操作系统常见问题 | 涉密操作系统部署完成后无法启动应用,日志中出现sqlite异常 解决方法:更新sqllite补丁包 |
8 | 高频问题 | 信创环境配置 | 涉密操作系统常见问题 | 涉密操作系统部署完成功能异常,日志中出现异常: java.io.IOException: Cannot run program "/opt/V5/ApacheJetspeed/webapps/seeyon/common/phantomjs/bin/phantomjs_linux64": error=13, Permission denied 解决方法:可执行文件phantomjs_linux64需要通过涉密机专有方式上传,请涉密操作系统厂商处理 |
9 | 高频问题 | 信创环境配置 | 涉密操作系统部署注意事项 | 涉密操作系统安装中间件和部署A8N产品请参照以下两种方式进行: 涉密操作系统厂商安装好对应版本的金蝶或东方通后,通过控制台按手册修改中间件参数后进行A8N产品部署; 或者在涉密操作系统厂商提供的非涉密开发版操作系统上安装中间件并部署A8N的产品后,请涉密厂商协助将部署后的中间件和A8N产品重新打包,并通过涉密操作系统中的“安全配置管理”软件安装重新打包后的产品。 |
10 | 高频问题 | 信创环境配置 | 达梦,人大金仓,神通数据库 大小写不敏感 | 1、安装达梦数据库服务时,字符集需要选择UTF-8,并勾选“VARCHAR类型以字符为单位”, 查询设置:SELECT SF_GET_CASE_SENSITIVE_FLAG();--1为大小写敏感,0为大小写不敏感; 2、人大金仓:安装时勾选“CASE-INSENSTIVE”,show case_sensitive;如果显示 on,为大小写敏感;显示 off ,为大小写不敏感; 3、神通数据库安装勾选“数据比较大小写不敏感” |
11 | 高频问题 | 信创环境配置 | 数据库连接数最大值设置 | 设置信创中间件jdbc连接数最小值10,最大值500 数据库自身的最大连接数限制建议改成1000 。 |
12 | 高频问题 | 信创环境配置 | 不同芯片可执行程序配置 | 根据芯片类型(ARM或MIPS),修改文件名去掉_arm或者_mips64后缀替换原文件,比如arm芯片系统下,修改nginx/sbin/nginx_arm文件名并替换nginx/sbin/nginx 1、音视频 ./V5_XinChuang/Mediaservice/nginx/sbin/nginx_arm ./V5_XinChuang/Mediaservice/nginx/sbin/nginx_mips64 ./V5_XinChuang/Mediaservice/ffmpegbin/ffmpeg.linux_arm ./V5_XinChuang/Mediaservice/ffmpegbin/ffmpeg.linux_mips64 2、V5 ./V5_XinChuang/V5/ApacheJetspeed/webapps/seeyon/common/phantomjs/bin/phantomjs_linux64_arm ./V5_XinChuang/V5/ApacheJetspeed/webapps/seeyon/common/phantomjs/bin/phantomjs_linux64_mips64 3、nginx ./V5_XinChuang/NginxServer/nginx/sbin/nginx_arm ./V5_XinChuang/NginxServer/nginx/sbin/nginx_mips64 |
13 | 服务器 | 操作系统 | 时区以及日期时间 | 各服务器时区配置统一,日期时间正确 |
14 | 高频问题 | 数据库检查 | 数据库驱动jar文件数量检查 | 达梦数据库驱动jar文件不能放入多个,只能用一个 ApacheJetspeed/lib目录里需要检查 中间件lib目录下需要检查 |
15 | 高频问题 | 数据库检查 | 8.0SP2LTS以及以下版本,人大金仓数据库,R3版本,迁移以后数据库自定义函数需要手工补充 | create or replace internal function sys_catalog.bool_eq_numeric(bool, numeric) returns bool as $$ select $1::numeric = $2; $$ language sql; create operator sys_catalog.= (procedure = bool_eq_numeric,leftarg = bool,rightarg = numeric,commutator = =); create or replace internal function sys_catalog.numeric_eq_bool(numeric, bool) returns bool as $$ select $1 = $2::numeric; $$ language sql; create operator sys_catalog.= (procedure = numeric_eq_bool,leftarg = numeric,rightarg = bool,commutator = =); create or replace internal function sys_catalog.numeric_eq_bool(smallint, bool) returns bool as $$ select $1 = $2::smallint; $$ language sql; create operator sys_catalog.= (procedure = numeric_eq_bool,leftarg = smallint,rightarg = bool,commutator = =); create or replace internal function sys_catalog.varchar_eq_bool(varchar, bool) returns bool as $$ select $1::bool = $2; $$ language sql; create operator sys_catalog.= (procedure = varchar_eq_bool,leftarg = varchar,rightarg = bool,commutator = =); create or replace INTERNAL function DATE_FORMAT(timestamp, text) returns text as $$ declare fm_string text;begin fm_string := $2;fm_string := replace (fm_string, '%Y', 'yyyy');fm_string := replace (fm_string, '%m', 'mm');fm_string := replace (fm_string, '%d', 'dd');fm_string := replace (fm_string, '%H', 'hh24');fm_string := replace (fm_string, '%i', 'mi');return to_char($1, fm_string);end;$$ language plsql; |
# 中创/金蝶部署A8-N 9.0启动不了
【启动问题】中创部署协同V9.0启动不了,存在dynamicColumnRequestListenerRegister关键字异常 https://open.seeyoncloud.com/#/faq/faq/v1/share?url=Z2JySmU+MjMxNg==
【启动问题】金蝶部署协同V9.0启动不了,存在dynamicColumnRequestListenerRegister关键字异常 https://open.seeyoncloud.com/#/faq/faq/v1/share?url=Z2JySmU+MjMxOA==
# A8-N 9.0连接达梦V8 8.1保存CAP4表单报错
CAP4应用设计师新建保存表单提示“网络异常,请检查网络状态”:
达梦数据库信息:
DM Database Server 64 V8,8.1,企业版,DB Version: 0x7000c,03134284172-20240507-227421-20093,Msg Version: 0,Gsu level(3-4) cnt: 3,Gsu level(5) cnt: 0,03134284172-20240507-227421-20093 Pack3
OA后台logs_sy/cap.log日志分析异常,存在如下信息:
org.springframework.dao.DataIntegrityViolationException: could not execute query; SQL [select capformtri0_.ID as ID1169_, capformtri0_.TASK_STATE as TASK2_1169_, capformtri0_.EVENT_ID as EVENT3_1169_, capformtri0_.EVENT_CREATE_TIME as EVENT4_1169_, capformtri0_.SOURCE_TYPE as SOURCE5_1169_, capformtri0_.SOURCE_USER_ID as SOURCE6_1169_, capformtri0_.SOURCE_USER_NAME as SOURCE7_1169_, capformtri0_.TRIGGER_ID as TRIGGER8_1169_, capformtri0_.TRIGGER_NAME as TRIGGER9_1169_, capformtri0_.TRIGGER_JSON as TRIGGER10_1169_, capformtri0_.SOURCE_FORM_ID as SOURCE11_1169_, capformtri0_.SOURCE_FORM_NAME as SOURCE12_1169_, capformtri0_.SOURCE_MASTER_ID as SOURCE13_1169_, capformtri0_.SOURCE_TITLE as SOURCE14_1169_, capformtri0_.SOURCE_APP_ID as SOURCE15_1169_, capformtri0_.SOURCE_APP_NAME as SOURCE16_1169_, capformtri0_.TARGET_APP_ID as TARGET17_1169_, capformtri0_.TARGET_APP_NAME as TARGET18_1169_, capformtri0_.TARGET_FORM_ID as TARGET19_1169_, capformtri0_.ACTION_ID as ACTION20_1169_, capformtri0_.ACTION_NAME as ACTION21_1169_, capformtri0_.CONTEXT_PARAM as CONTEXT22_1169_, capformtri0_.GROUP_ID as GROUP23_1169_, capformtri0_.REFER_GROUP_ID as REFER24_1169_, capformtri0_.PARALLEL as PARALLEL1169_, capformtri0_.NOTIFY as NOTIFY1169_, capformtri0_.CREATE_TIME as CREATE27_1169_, capformtri0_.MODIFY_TIME as MODIFY28_1169_ from CAP_FORM_TRIGGER_TASK capformtri0_ where capformtri0_.TASK_STATE=? order by capformtri0_.CREATE_TIME, capformtri0_.TRIGGER_ID, capformtri0_.ACTION_NAME]; nested exception is org.hibernate.exception.DataException: could not execute query
忽略若干堆栈信息
at com.seeyon.cap4.form.modules.engin.trigger.CAP4FormTriggerTaskDAOImpl.getTasks(CAP4FormTriggerTaskDAOImpl.java:56) ~[seeyon-cap-trigger-engine.jar:?]
at com.seeyon.cap4.task.Cap4TriggerEventPreProcessor.handleEngineUpgradeUndoDataOnlyOnce(Cap4TriggerEventPreProcessor.java:166) ~[seeyon-cap-trigger-engine.jar:?]
at com.seeyon.cap4.task.Cap4TriggerEventPreProcessor.init(Cap4TriggerEventPreProcessor.java:114) ~[seeyon-cap-trigger-engine.jar:?]
忽略若干堆栈信息
Caused by: dm.jdbc.driver.DMException: 第1 行附近出现错误:
无法解析的成员访问表达式[capformtri0_.PARALLEL]
at dm.jdbc.driver.DBError.throwException(SourceFile:738) ~[DmJdbcDriver18.jar:- 8.1.3.140 - Production]
at dm.jdbc.a.a.y.r(SourceFile:623) ~[DmJdbcDriver18.jar:- 8.1.3.140 - Production]
at dm.jdbc.a.a.f.r(SourceFile:138) ~[DmJdbcDriver18.jar:- 8.1.3.140 - Production]
at dm.jdbc.a.a.y.z(SourceFile:555) ~[DmJdbcDriver18.jar:- 8.1.3.140 - Production]
at dm.jdbc.a.a.y.L(SourceFile:536) ~[DmJdbcDriver18.jar:- 8.1.3.140 - Production]
at dm.jdbc.a.a.a(SourceFile:269) ~[DmJdbcDriver18.jar:- 8.1.3.140 - Production]
at dm.jdbc.a.a.a(SourceFile:792) ~[DmJdbcDriver18.jar:- 8.1.3.140 - Production]
at dm.jdbc.driver.DmdbPreparedStatement.prepareSql(SourceFile:321) ~[DmJdbcDriver18.jar:- 8.1.3.140 - Production]
at dm.jdbc.driver.DmdbPreparedStatement.allocateHandle(SourceFile:246) ~[DmJdbcDriver18.jar:- 8.1.3.140 - Production]
问题原因是CAP_FORM_TRIGGER_TASK表的PARALLEL字段存在SQL查询报错问题,达梦将PARALLEL定义为关键字无法使用。由于MySQL8.3数据库也存此问题,故致远标准产品做了调整,可联系致远提供补丁。
# 获取数据库连接失败
启动日志中显示:Error:Utils:获取数据库连接失败:jdbc/ctpDataSource,如下图所示
分析:出现“获取数据库连接失败”异常,重点就是分析数据库连接配置,通过中间件配置检查数据库的配置。
如下图所示:由于JNDI名称出现了两个jdbc导致启动失败,规范的配置是“jdbc/ctpDataSource”,去掉一个“jdbc/”即可:
# init-admin无法登录系统
V8.1系列版本没有信创部署工具,通过手工部署后,使用默认的帐号init-admin无法登录系统
分析:同样先检查数据库配置,参考同版本信创安装部署手册数据库配置部分做检查。本问题的原因是:驱动类名未做调整,需要参考手册调整为致远的驱动类名:
# init-admin创建第一个单位失败
第一次启动OA完成后,通过init-admin登录,创建第一个单位弹出:Transaction rolled back because it has been marked as rollback-only:
通过日志查看异常信息提示:KSQLException:错误:类型 9 的缓存查找失败,异常源头出自于kingbase8-8.2.0.jar:V008R003,即人大金仓数据库驱动包。
出现这类问题首先分析驱动jar包匹配性:这个异常堆栈显示驱动包来自于金仓的R3版本,而客户数据库是人大金仓R6版本,则解决方案很明确:找到人大金仓R6的驱动jar更换即可。
# 不支持的数据库类型
启动后无法访问查看日志报错:不支持的数据库类型
分析:
1、解压后直接启动金蝶可以正常登录
2、调整jar包配置后启动控制刚开始能打开首页提示加载中,过一会儿就无法显示
3、通过排除测试发现是seeyon-ctp-giant-panda.jar和seeyon-ctp-jdbcproxydriver.jar调整到中间件aas\lib目录就有问题,移除后再启动中间件可以正常登录
4、联系对应开发分析,seeyon-ctp-giant-panda.jar有安全校验,不支持的数据库无法检测通过导致,金蝶V10内部使用了derby数据库
解决方法:提供补丁包兼容该数据库,更新seeyon-ctp-giant-panda.jar后正常
# 访问协同首页跳转到金蝶页面
访问协同首页跳转到金蝶的页面
问题分析:
访问http://ip:port/seeyon (opens new window) 正常,初步判断上下文跳转问题
- 检测ROOT部署时上下文设置正确
- 在金蝶默认域下发现了也有一个ROOT
经过和金蝶确认启动默认加载了自身虚拟机主机的文档根目录导致
解决方法:金蝶控制台-配置管理-server-config-虚拟主机,清空文档根目录,保存重启。