培训时间:2023年8月24日
授课讲师:原厂讲师
培训目标:围绕TongWeb中间件产品功能、运维使用、运维管理等进行全面培训,使学员能够了解并使用TongWeb中间件产品。

安装后的目录介绍

autodeploy:自动部署目录
applications:系统应用所在目录
bin:服务器启动,停止脚本目录
conf:服务器的配置文件所在目录
deployment:已部署应用的应用程序目录
domain_template:域模板目录
doc:手册压缩包存放目录(快速上手的话推荐看下这里的快速使用手册)
TongDataGrid:TongDataGrid缓存所在目录
lib:服务器类文件所在目录(自带性能分析工具apm所在目录)
logs:服务器存放日志文件的目录
samples:TongWeb的示例目录
persistence:存放各类监视量的持久化文件
snapshot:存放服务器生成的快照文件
service:以系统服务方式运行TongWeb服务的工具存储目录
temp:服务器产生的临时文件 (应用清缓存从这清理)
Tools:集成开发可以使用Eclipse、idea等IDE插件l,使用方法参考手册。

TongWeb的启停

启动

  • Windows

    • 快捷方式
      开始->所有程序-> TongWeb7 ->启动TongWeb7
    • 命令行方式
      执行TongWeb7的bin目录下的startserver.bat
    • 服务方式
      TW注册成系统服务,从服务列表里启动
  • Linux/Unix

    • TongWeb7的bin目录下的./startserver.sh
      前台启动,终端关掉进程会停止
    • 远程调试启动
      /startserver.sh debug 8888
    • 后台启动,终端关掉进程也不会停止
      ./startservernohup.sh (脚本已集成nohup)
  • 自动重启
    ./startserver.sh restart <——只有 startserver.sh 有 restart
    此时,使用 ps 可以查看到两个进程,一个 monitor 进程,一个 tongweb进程。这样,当 tongweb进程意外崩溃后(如 kill -9),会自动拉起来。

停止

  • Windows

    • 使用Ctr+C组合键
      在TongWeb的运行窗口直接按Ctrl+C组合键,即可停止TongWeb
    • 运行停止脚本
      TongWeb安装成功后,运行bin目录下的stopserver.bat,即可停止TongWeb
  • Linux

    • 使用Ctr+C组合键
      在TongWeb的前台运行窗口直接按Ctrl+C组合键,即可停止TongWeb
    • 运行停止脚本
      在bin目录下运行stopserver.sh,即可停止TongWeb

TongWeb bin下常用命令

版本信息查看:
./version.sh

查看cpu占用较高的java进程的堆栈:
./thread-profiler.sh pid (pid为java进程id)

命令行工具:
./commandstool.sh
该工具非常强大,使用方法参考手册。

TonbWeb 域管理

如果想在同一台主机上安装两套TongWeb,直接安装在两个不同的目录,端口会冲突,需要将 <DIR>/conf/tongweb.xml 中的默认端口进行修改。

Tongweb 引入了域的概念,每创建一个域后,就会在 <DIR>/domains/ 目录下生成一个与域同名的目录。各个域之间互不冲突。

TonbWeb 安装完成后,就存在一个默认域(此时 domains 目录下无内容):

$ cat <DIR>/conf/domains.list 
/home/xuwang/tongweb7

创建域:

$ ./domain.sh create domain1
[DomainUtil] 2023-08-26 01:02:24: TongWeb home: /home/xuwang/tongweb7
[DomainUtil] 2023-08-26 01:02:24: Agent home: /home/xuwang/tongweb7/Agent
[DomainUtil] 2023-08-26 01:02:24: creating domain: /home/xuwang/tongweb7/domains/domain1
[DomainUtil] 2023-08-26 01:02:24: Operation has been completed.

创建域的命令会在 domains 目录下生成与域同名的目录,同时在 domain.list 文件中生成记录。

[xuwang@demo1 tongweb7]$ ll domains
total 0
drwxrwxr-x 11 xuwang xuwang 135 Aug 26 01:02 domain1
 
[xuwang@demo1 tongweb7]$ cat conf/domains.list 
/home/xuwang/tongweb7/domains/domain1
/home/xuwang/tongweb7

删除域:

[xuwang@demo1 bin]$ ./domain.sh delete domain1
[DomainUtil] 2023-08-26 01:05:30: TongWeb home: /home/xuwang/tongweb7
[DomainUtil] 2023-08-26 01:05:30: Agent home: /home/xuwang/tongweb7/Agent
[DomainUtil] 2023-08-26 01:05:30: You are going to delete the domain [/home/xuwang/tongweb7/domains/domain1], are you sure? [ yes / no ]
yes
[DomainUtil] 2023-08-26 01:05:39: deleting domain: /home/xuwang/tongweb7/domains/domain1
[DomainUtil] 2023-08-26 01:05:39: Operation has been completed.

删除域的命令会删除目录,同时删除 domains.list 中的记录。
注意:如果直接使用 rm 只删除域目录,没有删除文件中的记录的话,TongWeb会出错。

启动域:

$ nohup ./startdomain.sh domain1 > /dev/null 2>&1 &

停止域:

./stopdomain.sh domain1

domain的启停除了可以使用上面的 *domain.sh 命令来完成外,还可以进入到 domain 所在的目录,使用域目录下的bin目录下的脚本启动。

TongWeb 管理控制台

建议通过管理控制台对TongWeb进行管理。
单节点控制台http://[TongWeblP]:9060/console; thanos/thanos123.com
集中管理控制台http://[TongWeblP]:9060/heimdall; rig/rig123.com

首次登录后,会提示修改密码,必须点击“修改密码”进行密码修改。

首页

在首页里,可以看到TongWeb的安装目录、版本号、补丁信息、JDK信息、License信息等。

另外,可以下载 TongWeb.xml 和 external.vmoptions 文件。这两个文件之所以单独拿出来,是因为这两个文件很重要。前者是TongWeb的配置文件,后者TongWeb启动时就需要的配置文件。

“服务器选择文件可选目录”是指定一个目录,在TongWeb进行配置需要选择文件时,就从该指定的目录选择。
“控制台应用前缀配置”就是指http://192.168.189.141:9060/console/中的这个"console"字 串

启动参数配置

有这几个标签页:jvm参数、其他jvm参数、服务器参数、环境变量。
通常只需要配置 “jvm 参数” 标签中的 “最大堆内存” 和 “最小堆内存”。
对应的配置文件是 <DIR>/bin/external.vmoptions
配置文件中的 # 是配置区域识别符,所以不用使用 # 当作注释来使用。
修改后重启生效。

$ ps aux | grep java
xuwang    27309  194 46.1 4599416 459584 pts/1  Sl   04:18   0:07 /home/xuwang/jdk1.8.0_201/bin/java -classpath …… -Xmx2048m -Xms1024m ……

这儿的 Xmx就是最大堆内存,Xms就是最小堆内存。

JDBC配置(连接池)

数据库驱动可以由框架来管理,也可以由应用容器来管理。
如果使用的应用框架来管理,则不需要配置这儿的JDBC,当然,也可以配置但不调用。

基本属性:
名称:mysql8(自定义)
数据库类型:选择mysql8
数据库驱动类名:保持默认 com.mysql.cj.jdbc.Driver
连接 url:jdbc:mysql://127.0.0.1:3306/cydb
用户名:cyapp
密码:cypassword
驱动路径:点击浏览选择驱动文件 mysql-connector-j-8.1.0.jar(注意驱动文件要放在首页指定的路径下)。

注意,如果已经将驱动文件放到了 <DIR>/lib/ 目录下,这儿也可以不选择驱动文件。

池设置:
设置最大连接数、最小空闲连接数、获取连接的最大等待超时时间等。

验证连接属性:
生产上建立把“创建连接时验证”、“获取连接时验证”、“归还连接时验证” 这三个验证都开启。

高级属性:
根据自己的实际情况设置,例如慢sql检测。

应用程序如何引用数据源的,请参考开发手册。也可以通过 JNDI > 服务器资源域下的 JNDI 树进行引用。
下面是引用数据库连接的一些简单的示例:

方式1:应用配置文件(常用)

如SpingMVC项目等,修改应用中数据库连接池相关配置文件。

方式2:直接调用

Context initialContext-new InitialContext();
DataSource dataSource=(DataSource)initialContext.lookup(“testDB");

方式3:标注方式

@Resource(name=“testDB")
javax.sql.Datasource ds;

方式4:将全局JNDI资源映射到组件资源

Servlet 代码片断:
InitialContext initialcontext = new InitialContext();
DataSource ds =(DataSource)initialcontext.lookup("java:comp/env/TestDS");

web.xml片段:
  <resource-ref>
   <res-ref-name>TestDS</res-ref-name>
   <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth></resource-ref>

tongweb-web.xml片段:
  <resource-ref>
   <res-ref-name>TestDS</res-ref-name>
   <jndi-name>testDB</jndi-name>
   ……
  </resource-ref>
其中testDB为外部数据源的全局JNDI名,TestDS为组件资源中的JNDI名。

应用管理(应用部署)

Java EE应用文件的类型

类型扩展名用途和构成
Web应用.war包含Servlet和JSP等Web组件以及静态HTML页面、Jar文件、标记库等,在JavaEE6及以上规范中还可以存在EJB。
EJB应用.jar包含EJB实现以及EJB实现所需的类
连接器应用.rar包含连接器(资源适配器)的实现类
企业应用.ear包含上述三种应用类型

web应用结构

web应用结构

说明:classes中可以编写传统的servlet,也可以有EJB,对于JavaEE新规范,传统部署描述文件web.xml可以省略掉,通过JavaEE新规范的原注释定义在servlet类中。

EAR应用结构

EAR 应用结构
说明:application.xml是JavaEE标准的部署描述文件。APP-INF下存在的是企业应用的公共类。

控制台部署

应用包支持两种形式

  • 目录形式
    目录形式即应用以展开的目录方式进行部署,目录部署的优点是方便应用的修改。(开发时推荐)
  • 文件形式
    文件形式部署即应用以应用包(如.war,.ear等)的方式进行部署,部署后应用解压在deployment目录下。

点击“部署应用”,从本地或者服务器中选择应用包文件后,点击“开始部署”。

这儿以 <DIR>/samples/servletjsp-samples/servletjsp-tomcatexamples/TC_examples.war 为例

在“基本属性”标签中,设置应用名称、应用前缀等。
在“虚拟主机”标签中,选择应用的虚拟主机。
在“完成部署”标签,确认信息无误后,点击完成。

命令行部署

  • 执行 <DIR>/bin/commandstool.sh 命令
  • 首次使用需要修改默认密码:
    commandstool> change-admin-password --user cli (初始密码:cli123.com)
  • 举例-部署应用命令:
    commandstool> deploy --host=192.168.1.2 --port=9060 --contextroot=dbpooltest --applocation=/test.war testapp

详细的命令,可以参考“006_TongWeb7Commandstool使用指南.pdf”

自动部署

在控制台“服务”菜单中,打开自动部署开关、设置自动检查时间间隔、指定自动部署目录,将应用包以文件或目录形式放入autodeploy目录(默认),即完成自动部署。

默认已经打开,并且已经选择 autodeployment 目录作为自动部署目录。

  • 文件形式:会将应用包自动解压到deployment目录下
  • 目录形式:不会在deployment目录下生成数据
  • 是否部署成功:在 autodeploy/.autodeploystatus/ 目录下,部署成功会生成以”应用包名”命名的目录,部署失败会生成以”应用包名.failed”命名的目录

示例:

$ cd tongweb7/samples/servletjsp-samples/servletjsp-tomcatexamples/
$ cp TC_examples.war /home/xuwang/tongweb7/autodeploy/
$ ll /home/xuwang/tongweb7/autodeploy/
total 724
-rwxr-xr-x 1 xuwang xuwang 738277 Aug 27 23:52 TC_examples.war
$ ll /home/xuwang/tongweb7/autodeploy/.autodeploystatus/
total 0
drwxrwxr-x 2 xuwang xuwang 17 Aug 27 23:52 TC_examples.war

然后在控制台的”应用管理“下,就可以看到自动部署的TC_examples。
在deployment目录下也可以看到同名的解压后的目录。

热部署

在部署应用的时候,勾选”类热加载“即可。
这样一个,将修改的class文件直接扔到 deployement 目录下,替换相关文件即可。

监控

”监视“菜单。
在 ”监视配置“中,打开总开关和需要监控的条目开关。
在”监视明细“中,就可以看到监控数据了。
在”监视回放“中,可以对历史监控数据进行查看。
在”hung线程“中,可以对hung线程进行分析。
在”阈值配置“中,可以定义当发生某一条件时,生成快照信息,并且可以指定生成的快照信息包含的内容。
在”告警配置“中,显示了已创建的告警阈值配置。默认已经有了几条预定义的告警。

诊断

"诊断"菜单。
可以查看日志:系统日志、SQL日志、访问日志、告警记录。
在”快照“中,可以手动生成快照。如果产生的问题在前面的阈值配置里没有涵盖(没有自动生成快照),我们就可以在这儿手动生成快照。自动或者手动生成的快照都保存在 snapshot 目录下,生成后,可以查看生成的文件内容,分析问题。
在”snmp“中,可以配置 snmp 信息。

日志服务

日志级别配置:默认各个模块都是 INFO 级别,都会打印到 server.log 中
应用用得比较多的是 "System out"模块,在 server.log 中是[systemout]。
如果不想打印到 server.log中,可以设置为 OFF,这样,日志就打印到应用日志中了。

系统日志配置:配置系统日志数量、大小、轮转、目录等。

压缩日志配置:配置系统日志、访问日志、持久化日志的压缩。

类加载分析工具

类加载器树:对已经部署的应用分析具体类的加载与分布情况。
类资源分析:上传应用包文件,对应用包中的的类进行分析。
类冲突检测:上传应用包文件,对类冲突进行检测。

资源

文件集:这儿可以上传文件并对已经上传的文件进行管理,通常是库文件。
共享库:这儿可以创建共享库,选择文件集中的文件进行共享。

类的加载顺序

在应用管理界面,可以指定要使用的共享库和类加载顺序(父优先和子优先)。

父优先(tw 优先):tw/lib/endorsed > tw/lib > tw/lib/common > domain/lib > war/class > war/lib > 共享库
子优先(war包优先):tw/lib/endorsed > war/class > war/lib > 共享库 > tw/lib > tw/lib/common > domain/lib

通常推荐子优先(默认)。

乱码问题

在web应用访问过程中出现乱码,可以从如下三个地方修改字符集。

  • 容器配置
  • HTTP通道管理
  • <安装目录>/bin/exteral.vmoptions 中增加 Dfile.encoding 参数。

密码错误或权限不对

1.TongWeb 控制台密码忘记
2.conf/security 中文件损坏,报密码或权限不对
解决思路:用模版中的 security 目录替换现有目录。

具体方法如下:
1、停止 TongWeb
2、mv TongWeb/conf/security TongWeb/conf/security.old
3、cp -R TongWeb/domain_template/conf/security TongWeb/conf/security
4、重启 TongWeb

如此,thanos 密码恢复为 thanos123.com,cli 恢复为 cli123.com, rig 恢复为 rig123.com
cli 是 tongweb7 的命令行用户,rig 是集中管控控制台用户。

集中管理工具、集群简介

登录:http://192.168.189.141:9060/heimdall/
用户名/密码:rig/rig123.com
登录后,必须修改密码。

管理界面跟单机的管理控制台差不多。

节点管理

编辑被管理节点的 <DIR>/Agent/conf/agent.xml

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<configFile>
    <agentIp>192.168.189.141</agentIp>
    <agentPort>7070</agentPort>
    <fileReceiverPort>19090</fileReceiverPort>
    <masterIp>192.168.189.141</masterIp>
    <masterPort>9060</masterPort>
    <masterContextRoot>/heimdall</masterContextRoot>
</configFile>

agentIp 是被管理节点的IP地址,masterIp是集中管理工具所在服务器的IP地址。

然后启动 Agent:

cd /home/xuwang/tongweb7/Agent/bin
./startbg.sh

现在,在节点管理 > 节点代理中,就可以看到注册的节点了。

创建集群

点击 集群 > 创建集群。
创建集群,选择使用的节点(可以只要一个节点)。
部署完成后,把集群实例起起来。

发布应用

应用管理 > 部署应用
方法与单机类似,部署目标选择刚才创建的集群。
这样一来,集群中的所有节点就都部署上了。

此时,点击 服务器管理,可以看到受master管理的tongweb。

-- By 许望(RHCA、OCM、VCP)
最后修改:2025 年 12 月 18 日 03 : 25 PM
如果觉得我的文章对你有用,请随意赞赏