为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
环境信息:
DM版本】:DM Database Server 64 V8 DB Version: 0x7000c
4-2-98-21.12.16-153423-10040-ENT
【操作系统】:版本 Windows 10 专业版
版本号 21H2
安装日期 2022-09-21
操作系统内部版本 19044.2546
体验 Windows Feature Experience Pack 120.2212.4190.0
【CPU】: lntel(R) Core(TM) i7-8550U CPU @ 1.80GHz
【问题描述】*:
做了一个nginx server 端口访问8085 端口代理至达梦数据库的5236端口。
在windows笔记电脑的dm管理工具客户端连接nginx server 的 8085端口,可以访问达梦数据库的5236端口实例。可以执行数据库的sql。
但是现在有一个问题是: dm管理工具查询分析器,只要过10分钟左右没有活动。就需要重新连接dm数据库,重新连接接后又可继续使用dm数据库,失败提示:
总共1个语句正依次执行...
[执行语句1]:
select * from GL_SJSQ where kjnd='2023' /and userid='235'/ and rolecode like 'BMFZR-%'
执行失败(语句1)
6001: 网络通信异常(重连)
1条语句执行失败
产生这个问题有二个方面的原因: 1. dm管理工具客户端至 nginx server 的 8085端口,nginx server至 达梦数据库的5236端口的这整条网络链路、网络连接需要设置为长连接(这是网络方面的设置,这方面的原因可以排除,因为和网络管理员已经沟通过此事,已经开放整个网络链路的各个网络设置的长连接。)
下面是nginx.conf 文件的我从默认文件修改的地方,并且重新启动过nginx,还是会出现数据库从新连接的提示,我怀疑哪里修改得不对?应该怎么修改?
#add by mike #这段是我加的,为了代理至达梦数据库的5236
stream {
server {
listen 8085;
proxy_pass 10.223.199.103:5236 ;
}
}
#add end by mike #这段是我加的,为了代理至达梦数据库的5236
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
#keepalive_timeout 65;
keepalive_timeout 172800; #这段是我改的。
关于代理达梦数据库,正确的keepalive_timeout参考应该怎么写?放在哪个位置 ?
这些是默认值,都没有改变过。可能是出现nginx的配置上面,有认可以指导一下。nginx关于代理达梦5236端口的keepalive_timeout怎么配置。
达梦数据库不会主动去断开应用发起的连接,所以大概率还是网络或中间件设置超时问题,可以从这两个方面来检查。
另外达梦数据库,可以检查下使用的登录用户是否设置过会话空闲期等限制。 用户-修改用户-用户资源里、
