1. 首页 > 国产数据库教程 > 达梦DM教程 > 正文

DM教程FG031-达梦数据库中间件集成实战

内容简介:本文档风哥主要介绍DM达梦数据库与中间件的集成,涵盖中间件的概念、类型、集成优势,以及DM数据库与Web中间件、应用中间件、消息中间件和缓存中间件的集成等内容,风哥教程参考DM官方文档《DM8中间件集成指南》等官方资料。本文档为DM数据库学习系列的第三十一篇,重点介绍DM数据库与中间件的集成实战操作。

Part01-基础概念与理论知识

1.1 中间件概述

中间件是位于应用程序和操作系统之间的软件层,用于提供公共服务和功能,简化应用程序开发和部署。

1.1.1 中间件的定义

中间件是位于应用程序和操作系统之间的软件层,用于提供公共服务和功能,简化应用程序开发和部署。

1.1.2 中间件的特点

  • 屏蔽底层差异:屏蔽不同操作系统、数据库等底层技术的差异
  • 提供公共服务:提供诸如事务管理、安全认证、消息传递等公共服务
  • 简化开发:简化应用程序开发,提高开发效率
  • 提高可靠性:提高系统的可靠性和可维护性

1.2 中间件类型

中间件有多种类型,不同类型的中间件适用于不同的场景。

1.2.1 Web中间件

  • Tomcat:轻量级Web容器
  • WebLogic:企业级应用服务器
  • WebSphere:企业级应用服务器
  • Jetty:轻量级Web容器

1.2.2 应用中间件

  • Spring:Java应用框架
  • Spring Boot:快速开发框架
  • Spring Cloud:微服务框架

1.2.3 消息中间件

  • Kafka:分布式消息系统
  • RabbitMQ:消息队列
  • RocketMQ:分布式消息系统
  • ActiveMQ:消息队列

1.2.4 缓存中间件

  • Redis:内存数据库
  • Memcached:内存缓存
  • Ehcache:Java缓存框架

1.3 中间件集成优势

中间件集成具有多种优势,能够提高系统的性能和可靠性。

1.3.1 性能优势

  • 提高系统响应速度
  • 风哥提示:

  • 减轻数据库负担
  • 实现负载均衡
  • 提高系统吞吐量

1.3.2 可靠性优势

  • 实现故障转移
  • 提高系统可用性
  • 确保数据一致性
  • 简化系统维护

1.3.3 开发优势

  • 简化应用开发
  • 提高开发效率
  • 标准化开发流程
  • 便于系统集成

1.4 DM数据库与中间件集成

DM数据库支持与多种中间件的集成,提供了相应的驱动和配置方案。

1.4.1 DM数据库驱动

  • JDBC驱动:用于Java应用程序
  • ODBC驱动:用于ODBC应用程序
  • OCI驱动:用于Oracle兼容应用程序
  • Python驱动:用于Python应用程序

1.4.2 集成方式

  • 直接集成:应用程序直接连接DM数据库
  • 学习交流加群风哥微信: itpux-com

  • 中间件集成:通过中间件连接DM数据库
  • 服务集成:通过服务层连接DM数据库

Part02-生产环境规划与建议

2.1 中间件集成规划

合理的中间件集成规划是确保系统稳定运行的关键。

2.1.1 中间件集成规划目标

  • 确保系统性能
  • 提高系统可靠性
  • 简化系统维护
  • 降低运维成本

2.1.2 中间件集成规划内容

# 中间件集成规划内容
1. 需求分析:分析业务需求和技术需求
2. 中间件选型:选择适合的中间件产品
3. 架构设计:设计中间件集成架构
4. 资源规划:规划服务器、存储和网络资源
5. 安全规划:设计安全策略和访问控制
6. 监控规划:设计监控和告警机制

2.2 中间件集成设计

合理的中间件集成设计是确保系统性能和可靠性的关键。

2.2.1 中间件集成设计目标

  • 系统架构合理
  • 性能满足需求
  • 可靠性高
  • 可扩展性强

2.2.2 中间件集成设计内容

# 中间件集成设计内容
1. 架构设计:设计中间件集成架构
2. 网络设计:设计网络拓扑和连接方式
3. 安全设计:设计安全策略和访问控制
4. 性能设计:设计性能优化策略
5. 扩展性设计:设计系统扩展策略 学习交流加群风哥QQ113257174
6. 故障处理设计:设计故障处理和恢复策略

2.3 中间件集成策略

不同的中间件集成策略适用于不同的场景。

2.3.1 部署策略

  • 单机部署:适用于小型应用
  • 集群部署:适用于大型应用
  • 云部署:适用于云环境

2.3.2 连接策略

  • 直连:应用程序直接连接数据库
  • 连接池:使用连接池管理数据库连接
  • 代理:通过代理服务器连接数据库

2.4 中间件集成最佳实践

最佳实践是确保中间件集成成功的关键。

2.4.1 最佳实践目标

  • 提高系统性能
  • 确保系统可靠性
  • 简化系统维护
  • 降低运营成本

2.4.2 最佳实践内容

# 最佳实践内容
1. 选择合适的中间件:根据业务需求选择合适的中间件
2. 合理配置中间件:根据系统需求配置中间件参数
3. 使用连接池:使用连接池管理数据库连接
4. 实现监控:建立完善的监控机制
5. 定期维护:定期进行中间件维护和优化
6. 备份和恢复:建立完善的备份和恢复机制

Part03-生产环境项目实施方案

3.1 Web中间件集成

详细介绍DM数据库与Web中间件的集成过程。

3.1.1 Tomcat与DM数据库集成

更多视频教程www.fgedu.net.cn
# Tomcat与DM数据库集成
#
# 1. 复制DM JDBC驱动到Tomcat lib目录
$ cp /dm/app/drivers/jdbc/DmJdbcDriver18.jar $CATALINA_HOME/lib/
#
# 2. 配置Tomcat数据源
$ vi $CATALINA_HOME/conf/server.xml

#
# 3. 配置应用程序数据源
$ vi $CATALINA_HOME/webapps/yourapp/WEB-INF/web.xml

DM Database Connection
jdbc/fgedudb
javax.sql.DataSource
Container

3.1.2 WebLogic与DM数据库集成

# WebLogic与DM数据库集成
#
# 1. 复制DM JDBC驱动到WebLogic lib目录
$ cp /dm/app/drivers/jdbc/DmJdbcDriver18.jar $WEBLOGIC_HOME/wlserver/server/lib/
#
# 2. 启动WebLogic控制台
$ $WEBLOGIC_HOME/user_projects/domains/base_domain/startWebLogic.sh
#
# 3. 配置数据源
– 登录WebLogic控制台
– 导航到”服务” → “数据源”
– 点击”新建” → “一般数据源”
– 填写数据源名称和JNDI名称
– 选择数据库类型为”Other”
– 填写驱动类名:dm.jdbc.driver.DmDriver
– 填写URL:jdbc:dm://192.168.1.101:5236/fgedudb
– 填写用户名和密码 更多学习教程公众号风哥教程itpux_com
– 测试连接并保存

3.2 应用中间件集成

详细介绍DM数据库与应用中间件的集成过程。

3.2.1 Spring与DM数据库集成

# Spring与DM数据库集成
#
# 1. 添加DM JDBC驱动依赖
$ vi pom.xml

com.dm
DmJdbcDriver18
8.1.1
system
/dm/app/drivers/jdbc/DmJdbcDriver18.jar

#
# 2. 配置数据源
$ vi application.properties
spring.datasource.url=jdbc:dm://192.168.1.101:5236/fgedudb
spring.datasource.username=SYSDBA
spring.datasource.password=SYSDBA
spring.datasource.driver-class-name=dm.jdbc.driver.DmDriver
#
# 3. 配置JPA(可选)
spring.jpa.database-platform=org.hibernate.dialect.DmDialect
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update

3.2.2 Spring Boot与DM数据库集成

# Spring Boot与DM数据库集成 from DB视频:www.itpux.com
#
# 1. 创建Spring Boot项目
$ spring init –dependencies=web,jpa,mysql spring-boot-dm
#
# 2. 添加DM JDBC驱动依赖
$ vi pom.xml

com.dm
DmJdbcDriver18
8.1.1
system
/dm/app/drivers/jdbc/DmJdbcDriver18.jar

#
# 3. 配置数据源
$ vi application.yml
spring:
datasource:
url: jdbc:dm://192.168.1.101:5236/fgedudb
username: SYSDBA
password: SYSDBA
driver-class-name: dm.jdbc.driver.DmDriver
jpa:
database-platform: org.hibernate.dialect.DmDialect
show-sql: true
hibernate:
ddl-auto: update

3.3 消息中间件集成

详细介绍DM数据库与消息中间件的集成过程。

3.3.1 Kafka与DM数据库集成

# Kafka与DM数据库集成
#
# 1. 安装Kafka
$ wget https://downloads.apache.org/kafka/3.4.0/kafka_2.13-3.4.0.tgz
$ tar -xzf kafka_2.13-3.4.0.tgz
$ cd kafka_2.13-3.4.0
#
# 2. 启动Kafka
$ bin/zookeeper-server-start.sh config/zookeeper.properties &
$ bin/kafka-server-start.sh config/server.properties &
#
# 3. 创建Kafka主题
$ bin/kafka-topics.sh –create –topic fgedu-topic –bootstrap-server fgedu.localhost:9092 –partitions 1 –replication-factor 1
#
# 4. 编写Kafka生产者和消费者
##
# 生产者代码
import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.ProducerRecord;
import java.util.Properties;
public class KafkaProducerDemo {
public static void main(String[] args) {
Properties props = new Properties();
props.put(“bootstrap.servers”, “fgedu.localhost:9092”);
props.put(“key.serializer”, “org.apache.kafka.common.serialization.StringSerializer”);
props.put(“value.serializer”, “org.apache.kafka.common.serialization.StringSerializer”);
KafkaProducer producer = new KafkaProducer<>(props);
for (int i = 0; i < 10; i++) { producer.send(new ProducerRecord<>(‘fgedu-topic’, Integer.toString(i), ‘Message ‘ + i));
}
producer.close();
}
}
##
# 消费者代码
import org.apache.kafka.clients.consumer.KafkaConsumer;
import org.apache.kafka.clients.consumer.ConsumerRecords;
import org.apache.kafka.clients.consumer.ConsumerRecord;
import java.util.Collections;
import java.util.Properties;
public class KafkaConsumerDemo {
public static void main(String[] args) {
Properties props = new Properties();
props.put(“bootstrap.servers”, “fgedu.localhost:9092”);
props.put(“group.id”, “test-group”);
props.put(“key.deserializer”, “org.apache.kafka.common.serialization.StringDeserializer”);
props.put(“value.deserializer”, “org.apache.kafka.common.serialization.StringDeserializer”);
KafkaConsumer consumer = new KafkaConsumer<>(props);
consumer.subscribe(Collections.singletonList(‘fgedu-topic’));
while (true) {
ConsumerRecords records = consumer.poll(100);
for (ConsumerRecord record : records) {
System.out.printf(‘offset = %d, key = %s, value = %s%n’, record.offset(), record.key(), record.value());
// 处理消息并写入DM数据库
// insert into fgedu_message values (?, ?);
}
}
}
}

3.4 缓存中间件集成

详细介绍DM数据库与缓存中间件的集成过程。

3.4.1 Redis与DM数据库集成

# Redis与DM数据库集成
#
# 1. 安装Redis
$ wget https://download.redis.io/releases/redis-7.0.8.tar.gz
$ tar -xzf redis-7.0.8.tar.gz
$ cd redis-7.0.8
$ make
$ make install
#
# 2. 启动Redis
$ redis-server &
#
# 3. 编写Redis与DM数据库集成代码
import redis.clients.jedis.Jedis;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class RedisDmIntegration {
public static void main(String[] args) throws Exception {
// 连接Redis
Jedis jedis = new Jedis(“fgedu.localhost”, 6379);
// 连接DM数据库
Class.forName(“dm.jdbc.driver.DmDriver”);
Connection conn = DriverManager.getConnection(“jdbc:dm://192.168.1.101:5236/fgedudb”, “SYSDBA”, “SYSDBA”);
// 从Redis读取数据
String value = jedis.get(“key”);
if (value == null) {
// 从DM数据库读取数据
PreparedStatement ps = conn.prepareStatement(“select value from fgedu_cache where key = ?”);
ps.setString(1, “key”);
var rs = ps.executeQuery();
if (rs.next()) {
value = rs.getString(“value”);
// 写入Redis
jedis.set(“key”, value);
}
rs.close();
ps.close();
}
System.out.println(“Value: ” + value);
// 关闭连接
jedis.close();
conn.close();
}
}

Part04-生产案例与实战讲解

4.1 Tomcat与DM数据库集成实战

通过实际操作演示Tomcat与DM数据库的集成过程。

4.1.1 环境准备

# 环境准备
[dmdba@fgedu ~]$ uname -a
Linux fgedu.net.cn 5.14.0-284.30.1.el9_2.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Aug 25 13:14:19 EDT 2023 x86_64 x86_64 x86_64 GNU/Linux
[dmdba@fgedu ~]$ java -version
openjdk version “11.0.18” 2023-01-17 LTS
OpenJDK Runtime Environment (Red_Hat-11.0.18.0.9-1.el9_2) (build 11.0.18+9-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-11.0.18.0.9-1.el9_2) (build 11.0.18+9-LTS, mixed mode, sharing)
[dmdba@fgedu ~]$ wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.75/bin/apache-tomcat-9.0.75.tar.gz
[dmdba@fgedu ~]$ tar -xzf apache-tomcat-9.0.75.tar.gz
[dmdba@fgedu ~]$ mv apache-tomcat-9.0.75 /opt/tomcat

4.1.2 集成配置

# 集成配置
[dmdba@fgedu ~]$ cp /dm/app/drivers/jdbc/DmJdbcDriver18.jar /opt/tomcat/lib/
[dmdba@fgedu ~]$ vi /opt/tomcat/conf/server.xml

[dmdba@fgedu ~]$ mkdir -p /opt/tomcat/webapps/yourapp/WEB-INF
[dmdba@fgedu ~]$ vi /opt/tomcat/webapps/yourapp/WEB-INF/web.xml


DM Database Connection
jdbc/fgedudb
javax.sql.DataSource
Container


[dmdba@fgedu ~]$ vi /opt/tomcat/webapps/yourapp/index.jsp
<%@ page import="javax.naming.InitialContext" %>
<%@ page import="javax.sql.DataSource" %>
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.Statement" %>
<%@ page import="java.sql.ResultSet" %>

<% InitialContext ctx = new InitialContext(); DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/fgedudb"); Connection conn = ds.getConnection(); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("select * from fgedu_test"); while (rs.next()) { out.println("ID: " + rs.getInt("id") + "
“);
out.println(“Name: ” + rs.getString(“name”) + “
“);
}
rs.close();
stmt.close();
conn.close();
%>

4.1.3 启动测试

# 启动测试
[dmdba@fgedu ~]$ /opt/tomcat/bin/startup.sh
# 访问应用
http://fgedu.localhost:8080/yourapp/
# 输出信息
ID: 1
Name: 张三
ID: 2
Name: 李四

4.2 WebLogic与DM数据库集成实战

通过实际操作演示WebLogic与DM数据库的集成过程。

4.2.1 环境准备

# 环境准备
[dmdba@fgedu ~]$ wget https://www.oracle.com/middleware/technologies/weblogic-server-downloads.html
# 下载WebLogic安装包
[dmdba@fgedu ~]$ java -jar fmw_12.2.1.4.0_wls.jar
# 按照安装向导安装WebLogic

4.2.2 集成配置

# 集成配置
[dmdba@fgedu ~]$ cp /dm/app/drivers/jdbc/DmJdbcDriver18.jar $WEBLOGIC_HOME/wlserver/server/lib/
# 启动WebLogic控制台
[dmdba@fgedu ~]$ $WEBLOGIC_HOME/user_projects/domains/base_domain/startWebLogic.sh
# 登录WebLogic控制台
http://fgedu.localhost:7001/console
# 配置数据源
1. 导航到”服务” → “数据源”
2. 点击”新建” → “一般数据源”
3. 填写数据源名称:fgedudb
4. 填写JNDI名称:jdbc/fgedudb
5. 选择数据库类型:Other
6. 点击”下一步”
7. 填写驱动类名:dm.jdbc.driver.DmDriver
8. 填写URL:jdbc:dm://192.168.1.101:5236/fgedudb
9. 填写用户名:SYSDBA
10. 填写密码:SYSDBA
11. 点击”下一步”
12. 测试连接
13. 点击”完成”

4.3 Kafka与DM数据库集成实战

通过实际操作演示Kafka与DM数据库的集成过程。

4.3.1 环境准备

# 环境准备
[dmdba@fgedu ~]$ wget https://downloads.apache.org/kafka/3.4.0/kafka_2.13-3.4.0.tgz
[dmdba@fgedu ~]$ tar -xzf kafka_2.13-3.4.0.tgz
[dmdba@fgedu ~]$ mv kafka_2.13-3.4.0 /opt/kafka

4.3.2 启动Kafka

# 启动Kafka
[dmdba@fgedu ~]$ cd /opt/kafka
[dmdba@fgedu kafka]$ bin/zookeeper-server-start.sh config/zookeeper.properties &
[dmdba@fgedu kafka]$ bin/kafka-server-start.sh config/server.properties &
# 创建主题
[dmdba@fgedu kafka]$ bin/kafka-topics.sh –create –topic fgedu-topic –bootstrap-server fgedu.localhost:9092 –partitions 1 –replication-factor 1

4.3.3 编写集成代码

# 编写集成代码
[dmdba@fgedu ~]$ vi KafkaDmIntegration.java
import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.ProducerRecord;
import org.apache.kafka.clients.consumer.KafkaConsumer;
import org.apache.kafka.clients.consumer.ConsumerRecords;
import org.apache.kafka.clients.consumer.ConsumerRecord;
import java.util.Properties;
import java.util.Collections;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class KafkaDmIntegration {
public static void main(String[] args) throws Exception {
// 连接DM数据库
Class.forName(“dm.jdbc.driver.DmDriver”);
Connection conn = DriverManager.getConnection(“jdbc:dm://192.168.1.101:5236/fgedudb”, “SYSDBA”, “SYSDBA”);
// 创建消息表
PreparedStatement createTable = conn.prepareStatement(“create table if not exists fgedu_message (id int primary key, content varchar(1000))”);
createTable.execute();
createTable.close();
// 启动生产者
Thread producerThread = new Thread(() -> {
try {
Properties props = new Properties();
props.put(“bootstrap.servers”, “fgedu.localhost:9092”);
props.put(“key.serializer”, “org.apache.kafka.common.serialization.StringSerializer”);
props.put(“value.serializer”, “org.apache.kafka.common.serialization.StringSerializer”);
KafkaProducer producer = new KafkaProducer<>(props);
for (int i = 0; i < 10; i++) { producer.send(new ProducerRecord<>(‘fgedu-topic’, Integer.toString(i), ‘Message ‘ + i));
System.out.println(“Sent: Message ” + i);
Thread.sleep(1000);
}
producer.close();
} catch (Exception e) {
e.printStackTrace();
}
});
// 启动消费者
Thread consumerThread = new Thread(() -> {
try {
Properties props = new Properties();
props.put(“bootstrap.servers”, “fgedu.localhost:9092”);
props.put(“group.id”, “test-group”);
props.put(“key.deserializer”, “org.apache.kafka.common.serialization.StringDeserializer”);
props.put(“value.deserializer”, “org.apache.kafka.common.serialization.StringDeserializer”);
props.put(“auto.offset.reset”, “earliest”);
KafkaConsumer consumer = new KafkaConsumer<>(props);
consumer.subscribe(Collections.singletonList(‘fgedu-topic’));
while (true) {
ConsumerRecords records = consumer.poll(100);
for (ConsumerRecord record : records) {
System.out.printf(‘Received: offset = %d, key = %s, value = %s%n’, record.offset(), record.key(), record.value());
// 写入DM数据库
PreparedStatement ps = conn.prepareStatement(“insert into fgedu_message values (?, ?)”);
ps.setInt(1, Integer.parseInt(record.key()));
ps.setString(2, record.value());
ps.execute();
ps.close();
}
}
} catch (Exception e) {
e.printStackTrace();
}
});
producerThread.start();
consumerThread.start();
producerThread.join();
Thread.sleep(5000);
consumerThread.interrupt();
// 验证数据
PreparedStatement select = conn.prepareStatement(“select * from fgedu_message”);
var rs = select.executeQuery();
while (rs.next()) {
System.out.printf(“DB: id = %d, content = %s%n”, rs.getInt(“id”), rs.getString(“content”));
}
rs.close();
select.close();
conn.close();
}
}
# 编译和运行
[dmdba@fgedu ~]$ javac -cp “/opt/kafka/libs/*:/dm/app/drivers/jdbc/DmJdbcDriver18.jar” KafkaDmIntegration.java
[dmdba@fgedu ~]$ java -cp “.:/opt/kafka/libs/*:/dm/app/drivers/jdbc/DmJdbcDriver18.jar” KafkaDmIntegration

Part05-风哥经验总结与分享

5.1 中间件集成技巧与注意事项

基于实际经验,分享一些DM数据库与中间件集成的技巧和注意事项。

5.1.1 中间件集成技巧

  • 选择合适的中间件:根据业务需求选择合适的中间件
  • 合理配置中间件:根据系统需求配置中间件参数
  • 使用连接池:使用连接池管理数据库连接,提高性能
  • 实现监控:建立完善的监控机制,及时发现问题
  • 定期维护:定期进行中间件维护和优化
  • 备份和恢复:建立完善的备份和恢复机制

5.1.2 中间件集成注意事项

  • 版本兼容性:确保中间件版本与DM数据库版本兼容
  • 驱动配置:正确配置DM数据库驱动
  • 连接参数:合理配置连接参数,如连接池大小、超时时间等
  • 安全管理:加强中间件和数据库的安全管理
  • 性能监控:定期监控中间件和数据库的性能
  • 故障处理:制定详细的故障处理和恢复方案

5.2 中间件性能优化

基于实际经验,分享一些DM数据库与中间件集成的性能优化技巧。

5.2.1 性能优化技巧

  • 连接池优化:合理配置连接池大小和参数
  • 缓存优化:使用缓存减少数据库访问
  • 负载均衡:实现中间件集群,提高系统吞吐量
  • 索引优化:为常用查询字段创建索引
  • SQL优化:优化SQL语句,减少执行时间
  • 硬件优化:使用高性能服务器和存储设备

5.2.2 性能监控与调优

风哥提示:在进行DM数据库与中间件集成性能优化时,要定期监控系统性能,分析性能瓶颈,采取相应的优化措施,确保系统性能满足业务需求。

5.3 中间件集成最佳实践分享

基于实际经验,提供DM数据库与中间件集成的最佳实践。

5.3.1 Web中间件集成最佳实践

  • 使用连接池:配置合理的连接池大小
  • 优化Tomcat参数:根据系统需求优化Tomcat参数
  • 实现负载均衡:部署Tomcat集群
  • 监控Tomcat性能:使用监控工具监控Tomcat性能

5.3.2 应用中间件集成最佳实践

  • 使用Spring Boot:简化应用开发和部署
  • 配置合理的数据源参数:优化连接池配置
  • 实现事务管理:确保数据一致性
  • 使用缓存:减少数据库访问

5.3.3 消息中间件集成最佳实践

  • 选择合适的消息中间件:根据业务需求选择
  • 合理配置消息队列:根据消息量配置队列大小
  • 实现消息持久化:确保消息不丢失
  • 监控消息队列:监控消息队列的状态和性能

5.3.4 缓存中间件集成最佳实践

  • 选择合适的缓存中间件:根据业务需求选择
  • 合理配置缓存策略:根据数据访问模式配置
  • 实现缓存失效机制:确保缓存数据的一致性
  • 监控缓存性能:监控缓存的命中率和性能

5.3.5 运维管理最佳实践

  • 监控系统性能:实时监控中间件和数据库的性能
  • 告警机制:设置合理的告警阈值,及时发现问题
  • 定期维护:定期进行中间件和数据库的维护
  • 备份和恢复:建立完善的备份和恢复机制
  • 文档管理:维护详细的集成文档和操作手册

本文档风哥教程参考DM官方文档《DM8中间件集成指南》等资料编写,。

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息