前言
前面已部署了达梦数据库的单机环境,并分享了日常基本使用及巡检的相关内容。今天我将分享之前撰写的一篇文章,详细讲解使用东方通部署达梦企业管理工具(DEM)的教程。通常我们都采用Tomcat进行部署,但为何这里选择东方通呢?Tomcat作为开源产品,在某些场景下可能不完全符合安全规范,且频繁的版本升级可能会增加工作负担。相比之下,使用国产软件可以有效规避这些问题。
1.操作系统及中间件版本信息
中间件版本:TongWeb7.0.4.7_Enterprise_Linux.tar.gz
DEM版本:6.2.1
JDK版本: open jdk
[root@dm95 ~]# java -version
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)
[root@dm95 ~]#
2.操作系统信息
[root@dm95 ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.6 (Maipo)
[root@dm95 ~]# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 3
On-line CPU(s) list: 0-2
Thread(s) per core: 1
Core(s) per socket: 3
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 62
Model name: Intel(R) Xeon(R) CPU E5-2695 v2 @ 2.40GHz
Stepping: 4
CPU MHz: 2400.004
BogoMIPS: 4800.00
Hypervisor vendor: VMware
Virtualization type: full
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 30720K
NUMA node0 CPU(s): 0-2
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timeraes xsave avx f16c rdrand hypervisor lahf_lm ssbd ibrs ibpb stibp fsgsbase tsc_adjust smep arat spec_ctrl intel_stibp flush_l1d arch_capabilities
[root@dm95 ~]# free -g
total used free shared buff/cache available
Mem: 7 0 4 0 2 5

Swap: 7 0 7
[root@dm95 ~]#
2.中间件部署
2.1.中间件部署
7.4.4以后的版本只需要解压到当前目录即可
[dmdba@dm95 dmback]$ tar -zxvf TongWeb7.0.4.7_Enterprise_Linux.tar.gz
进去到中间件目录,拷贝授权文件到当前目录下
[dmdba@dm95 dmback]$ cd TongWeb7.0.4.7_Enterprise_Linux/
[dmdba@dm95 TongWeb7.0.4.7_Enterprise_Linux]$
[dmdba@dm95 TongWeb7.0.4.7_Enterprise_Linux]$ cp /dm/dmback/license.dat .
2.2.启动中间件服务
使用startservernohup.sh
后台启动中间件
[dmdba@dm95 bin]$ ./startservernohup.sh
[dmdba@dm95 bin]$ ps -ef|grep java
dmdba 58204 58110 99 08:58 pts/2 00:00:06 usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-7.b13.el7.x86_64/jre/bin/java -classpath usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-7.b13.el7.x86_64/jre/lib/tools.jar:/dm/dmback/TongWeb7.0.4.7_Enterprise_Linux/lib/bootstrap.jar:/dm/dmback/TongWeb7.0.4.7_Enterprise_Linux/lib/jdk-api.jar -Xms2048m -Xmx2048m -XX:CICompilerCount=6 -server -XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput -Djava.io.tmpdir=/dm/dmback/TongWeb7.0.4.7_Enterprise_Linux/temp -Duser.dir=/dm/dmback/TongWeb7.0.4.7_Enterprise_Linux/bin -Djava.security.egd=file:/dev/./urandom -XX:LogFile=/dm/dmback/TongWeb7.0.4.7_Enterprise_Linux/logs/jvm.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/dm/dmback/TongWeb7.0.4.7_Enterprise_Linux/logs/heap202210150858.hprof -Djava.security.policy=/dm/dmback/TongWeb7.0.4.7_Enterprise_Linux/conf/tongweb.policy -Djava.endorsed.dirs=/dm/dmback/TongWeb7.0.4.7_Enterprise_Linux/lib/endorsed -Djava.util.logging.manager=com.tongweb.log.TongwebLogManager -javaagent:/dm/dmback/TongWeb7.0.4.7_Enterprise_Linux/lib/ejb-agent.jar -Djava.awt.headless=true -Dibm.stream.nio=true -Djava.net.preferIPv4Stack=false -Dcom.tongweb.commons.logging.Log=com.tongweb.commons.logging.impl.Jdk14Logger -Dtongweb.restart.interval=1 -Dtongweb.java=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-7.b13.el7.x86_64/jre -Dtongweb.upload=/dm/dmback/TongWeb7.0.4.7_Enterprise_Linux/temp/upload -Dtongweb.app=/dm/dmback/TongWeb7.0.4.7_Enterprise_Linux/deployment -Dtongweb.sysapp=/dm/dmback/TongWeb7.0.4.7_Enterprise_Linux/applications -Dtongweb.base=/dm/dmback/TongWeb7.0.4.7_Enterprise_Linux -Dtongweb.home=/dm/dmback/TongWeb7.0.4.7_Enterprise_Linux -DcheckNonXADB=true -Dtongweb.jndi.lookup.relaxVersion=false -DWebserviceCXF.OFF=true -DgenSessionCookieNameForContext=console -DresLowversionLoad=false -DcompatibleWithWas=false -DTONGTECH_BC_JAR_PATH=/dm/dmback/TongWeb7.0.4.7_Enterprise_Linux/lib/bc/bcprov.jar -DWebModuleOnly=false -DShutdownSocketDisabled=false -Dstartup.secure=false -Dxss_defense=true -Dxss_apps=console,heimdall -DdisableVerCode=true -DdisableResourceCache=true -DLoadClassCache.Disabled=true -DuseBeanManagerInCompJNDI=false -DjvProfile=true -Dtongweb.X_Frame_Options=SAMEORIGIN -Denable_query_cache=false -Dcdi.passivate=false -Dpid_file_path=/dm/dmback/TongWeb7.0.4.7_Enterprise_Linux/tongweb.pid com.tongweb.web.thor.startup.ThorBootstrap start
dmdba 58228 57700 0 08:58 pts/2 00:00:00 grep --color=auto java
[dmdba@dm95 bin]$
2.3 登录测试
启动成功后,在浏览器输入http://localhost:9060/console/
浏览器打开地址:http://192.168.25.95:9060/console/
默认账号:thanos
默认密码:thanos123.com



配置完成保存之后,输入密码登录,信息如下

3.DEM环境准备
3.1.修改DEM数据库配置文件
3.1.1.war包路径一般部署路径web目录下

3.1.2.将war下载包本地修改后缀为rar

注意:这一步不能直接解压文件,然后在然后回来,会破坏war包结构导致异常
3.1.3.使用压缩工具打开文件,修改db.xml信息

3.1.4.修改为实际的用户信息,然后保存

3.1.5.根据压缩工具提示更新,然后将压缩包后缀修改.war格式


3.2.在数据库创建DEM所需要的基础信息
可以在disql直接运行直接执行dem_ini.sql文件,也可以编辑文件打开拷贝里面的内容去管理工具执行
注意使用配套的SQL初始化脚本,否则部署完成应用因版本的变化可能存在问题
4.应用部署
4.1.打开应用管理,点部署应用

4.2.选择本机,然后选择文件,等待上传完成

4.3.文件上传成功之后,开始部署

4.4.全部采用默认方式,下一步

4.5.配置基本属性

4.6.确认信息,没问题之后点完成开始部署

部署过程中报错以下信息
应用状态信息提示出错com.tongweb.deploy.interfaces.DeployException: com.tongweb.deploy.interfaces.DeployException: com.tongweb.web.thanos.startup.DeployInnerWebtierException: com.tongweb.web.thanos.startup.DeployInnerWebtierException: java.lang.IllegalStateException: ContainerBase.addChild: start: com.tongweb.tomee.catalina.TomEERuntimeException: com.tongweb.tongejb.OpenEJBException: Cannot unmarshall the web.xml file: file:/dm/dmback/TongWeb7.0.4.7_Enterprise_Linux/deployment/dem/WEB-INF/web.xml: Unexpected attribute {https://www.w3.org/2001/XMLSchema-instance}schemaLocation, expected [id, metadata-complete, version]--------this exception is deploy,exception occur is in exceptionWebtierInnerPhaserootcause is
java.lang.IllegalStateException: ContainerBase.addChild: start: com.tongweb.tomee.catalina.TomEERuntimeException: com.tongweb.tongejb.OpenEJBException: Cannot unmarshall the web.xml file: file:/dm/dmback/TongWeb7.0.4.7_Enterprise_Linux/deployment/dem/WEB-INF/web.xml: Unexpected attribute {https://www.w3.org/2001/XMLSchema-instance}schemaLocation, expected [id, metadata-complete, version]--------this exception is deploy,exception occur is in exceptionWebtierInnerPhaserootcause is
com.tongweb.web.thanos.startup.DeployInnerWebtierException: java.lang.IllegalStateException: ContainerBase.addChild: start: com.tongweb.tomee.catalina.TomEERuntimeException: com.tongweb.tongejb.OpenEJBException: Cannot unmarshall the web.xml file: file:/dm/dmback/TongWeb7.0.4.7_Enterprise_Linux/deployment/dem/WEB-INF/web.xml: Unexpected attribute {https://www.w3.org/2001/XMLSchema-instance}schemaLocation, expected [id, metadata-complete, version]--------this exception is deploy,exception occur is in exceptionWebtierInnerPhaserootcause is
java.lang.IllegalStateException: ContainerBase.addChild: start: com.tongweb.tomee.catalina.TomEERuntimeException: com.tongweb.tongejb.OpenEJBException: Cannot unmarshall the web.xml file: file:/dm/dmback/TongWeb7.0.4.7_Enterprise_Linux/deployment/dem/WEB-INF/web.xml: Unexpected attribute {https://www.w3.org/2001/XMLSchema-instance}schemaLocation, expected [id, metadata-complete, version]
at com.tongweb.deploy.TongWebDeployer.deploy(TongWebDeployer.java:344)

解决办法
java.lang.IllegalStateException: ContainerBase.addChild: start: com.tongweb.tomee.catalina.TomEERuntimeException: com.tongweb.tongejb.OpenEJBException: Cannot unmarshall the web.xml file: file:/dm/dmback/TongWeb7.0.4.7_Enterprise_Linux/deployment/dem/WEB-INF/web.xml: Unexpected attribute根据提示去DEM目录下对
web.xml 处理,先备份文件

如下如标记部分注释掉,新加入,然后保存

4.7.重启东方通服务

检查
server日志信息,可以看见标记信息提示部署成功

登录东方通检查应用情况,可以看到状态是已启动

4.8.测试应用是否部署完成
点击标记http访问,会跳转到应用登录页面

正常访问到页面,后续可以直接使用地址访问

检查功能也正常,至此DEM应用已部署完成

5.其他版本测试情况
5.1.东方通版本Install_TW7.0.4.2 部署DEM 5.3.2正常
5.2.东方通版本Install_TW7.0.4.7 部署DEM 6.2.1,部署错误按4.6步骤处理可以解决
5.3.东方通版本Install_TW7.0.4.7 部署DEM 6.4.3,部署错误按4.6步骤处理可以解决
5.4.东方通版本Install_TW7.0.4.4 部署DEM 6.4.3,部署错误按4.6步骤处理可以解决
提示:笔者在后面的项目中使用东方通8.0以上的版本时可以直接部署成功,无需按4.6步骤处理调整web.xml
信息
6.其他解压问题
注意: dem.war包更新文件时,建议不要直接解压。可以拷贝到本地修改之后上传处理。用java打包时需注意版本。避免部署完成之后,日志无明显错误,控制台也可以正常启停业务,访问DEM
时报错404问题
往期分享
安装部署
1.分享一个以前搭建主备集群遇到的一个路径乱码案例
2.给大家分享如何标准化部署达梦单机环境
3.DM达梦数据库中大写敏感介绍分享
数据迁移
1.分享工作中数据迁移的实用技巧与方法
2.Oracle迁移DM数据库实践
3.SQLark迁移实践分享(oracle-达梦数据库)
SQL调优
1.DM 传统行业SQL优化案例分享
2.DM数据库SQL优化案例分享
3.如何查询DM 数据库缓存执行计划与清理
4.使用ob_tools包收集分析oceanbase数据库oracle租户缓慢sql语句
5.使用format_obproxy_digest_log工具分析obproxy网络层耗时SQL
6.DM数据库回表优化案例
7.SQL优化案例分享
工具使用与日常处理
1.DataGrip访问国产数据库_datagrip 连接国产数据库
2.如何使用dbeaver连接达梦数据库
3.更新大字段提示-2201无效的对象问题
4.DM7读写分离部署问题总结
5.DM7读写分离集群备库数据不同步问题处理
6.达梦数据库DISQL工具部署及使用技巧
7.达梦数据库日常巡检方法分享
8.如何查询达梦数据库缓存执行计划与清理
9.达梦数据库运维工具分享




