免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: VIP_fuck
打印 上一主题 下一主题

[C++] 请教超时处理 [复制链接]

论坛徽章:
12
2015年辞旧岁徽章
日期:2015-03-03 16:54:1515-16赛季CBA联赛之同曦
日期:2017-03-17 19:13:162016科比退役纪念章
日期:2016-11-07 08:28:12luobin
日期:2016-06-17 17:46:36wusuopu
日期:2016-06-17 17:43:4515-16赛季CBA联赛之福建
日期:2016-01-14 12:49:22程序设计版块每日发帖之星
日期:2015-12-13 06:20:00程序设计版块每日发帖之星
日期:2015-06-08 22:20:00程序设计版块每日发帖之星
日期:2015-06-08 22:20:002015年亚洲杯之科威特
日期:2015-03-24 14:21:272015年迎新春徽章
日期:2015-03-04 09:57:092016科比退役纪念章
日期:2018-04-10 16:20:18
11 [报告]
发表于 2016-10-09 16:00 |只看该作者
回复 10# yulihua49

多谢多谢
我们现在的做法其实也差不多,是建立连接池,保持连接,有业务需要直接就用了。

不过空闲的连接在一段时间后会被我们的防火墙断开,所以为了保持连接池的连接状态,就打算发心跳保活。不过,心跳也有可能发出去就没反应了,这段时间我们希望可控,如果超时就做后续的自愈处理。

但是 oracle 自己的库貌似不支持我们这么做。


咱们的做法差不多相反,不过看起来比我们合理得多。我可以试试。

多谢指教

论坛徽章:
15
射手座
日期:2014-11-29 19:22:4915-16赛季CBA联赛之青岛
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16赛季CBA联赛之四川
日期:2017-02-07 21:08:572015年亚冠纪念徽章
日期:2015-11-06 12:31:58每日论坛发贴之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-07-12 22:20:002015亚冠之浦和红钻
日期:2015-07-08 10:10:132015亚冠之大阪钢巴
日期:2015-06-29 11:21:122015亚冠之广州恒大
日期:2015-05-22 21:55:412015年亚洲杯之伊朗
日期:2015-04-10 16:28:25
12 [报告]
发表于 2016-10-10 11:00 |只看该作者
本帖最后由 yulihua49 于 2016-10-10 11:14 编辑
VIP_fuck 发表于 2016-10-09 16:00
回复 10# yulihua49

多谢多谢

那你的要抢在防火墙之前断掉。就是说t0必须小于防火墙断线时间。看来我的连接池的t0应该是可配置的。
但是正在使用的连接你是管不了的,这就要求使用者得到连接后,必须使用,不使用了就必须归还,静止时间必须小于防火墙的断线时间。
还有一个问题,求如果一个请求,数据库长时间不应答,防火墙是会断开的,这你怎么解决?完全
因此我建议数据库不跨防火墙。
外部的客户端不直接访问数据库,要通过交易服务器来访问数据库。客户端与交易服务器间有防火墙,交易服务器与数据库间直接联系。
这就是交易中间件的作用。

论坛徽章:
15
射手座
日期:2014-11-29 19:22:4915-16赛季CBA联赛之青岛
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16赛季CBA联赛之四川
日期:2017-02-07 21:08:572015年亚冠纪念徽章
日期:2015-11-06 12:31:58每日论坛发贴之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-07-12 22:20:002015亚冠之浦和红钻
日期:2015-07-08 10:10:132015亚冠之大阪钢巴
日期:2015-06-29 11:21:122015亚冠之广州恒大
日期:2015-05-22 21:55:412015年亚洲杯之伊朗
日期:2015-04-10 16:28:25
13 [报告]
发表于 2016-10-10 11:19 |只看该作者
本帖最后由 yulihua49 于 2016-10-10 11:25 编辑
yulihua49 发表于 2016-10-10 11:00
那你的要抢在防火墙之前断掉。就是说t0必须小于防火墙断线时间。看来我的连接池的t0应该是可配置的。
但 ...

交易中间件是协助开发在线交易系统(OLTP)C/S/S应用框架。它提供如下功能:

  • 支持大量客户端的连接和高并发度的交易处理。帮助应用系统有效的使用服务器的各种资源,如CPU、内存、文件系统、数据库、IO设备等等,方便的实现并发操作,包括一个主机各种资源的并发使用和多台服务器主机的资源的并发使用。
  • 方便的定制应用服务功能,实现服务器端的应用业务逻辑。一般是通过远过程调用实现。也可以这么说,应该能够自定义远过程。这也意味着,在C/S间提供半双工的信息通道,区别于消息中间件的单工通道。
  • 对各个层次的资源能够均衡的使用,如数据库,各服务器及各CPU,各IO系统等。
  • 应能提供一定程度的交易安全保证,以便系统能够在开放的网络环境下进行安全的交易。
  • 提供应用路由,即内容决定的路由。
  • 提供分布式交易完整性管理(两阶段提交)
    一个交易框架系统,至少提供1,2才可以称为交易中间件。




商品的有TUXEDO,东方通等,价格不菲。开源的也有。SDBC算一个,SDBC Secure DataBaseConnect(安全数据库连接)的缩写。


论坛徽章:
12
2015年辞旧岁徽章
日期:2015-03-03 16:54:1515-16赛季CBA联赛之同曦
日期:2017-03-17 19:13:162016科比退役纪念章
日期:2016-11-07 08:28:12luobin
日期:2016-06-17 17:46:36wusuopu
日期:2016-06-17 17:43:4515-16赛季CBA联赛之福建
日期:2016-01-14 12:49:22程序设计版块每日发帖之星
日期:2015-12-13 06:20:00程序设计版块每日发帖之星
日期:2015-06-08 22:20:00程序设计版块每日发帖之星
日期:2015-06-08 22:20:002015年亚洲杯之科威特
日期:2015-03-24 14:21:272015年迎新春徽章
日期:2015-03-04 09:57:092016科比退役纪念章
日期:2018-04-10 16:20:18
14 [报告]
发表于 2016-10-10 11:28 |只看该作者
回复 13# yulihua49

多谢,我们这个估计不会用中间件,防火墙也去不掉。
再想想别的办法吧。
occi 本身基本是指望不上了,或者我们会。。。绕过这个,用个比较笨的办法也说不准。

论坛徽章:
15
射手座
日期:2014-11-29 19:22:4915-16赛季CBA联赛之青岛
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16赛季CBA联赛之四川
日期:2017-02-07 21:08:572015年亚冠纪念徽章
日期:2015-11-06 12:31:58每日论坛发贴之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-07-12 22:20:002015亚冠之浦和红钻
日期:2015-07-08 10:10:132015亚冠之大阪钢巴
日期:2015-06-29 11:21:122015亚冠之广州恒大
日期:2015-05-22 21:55:412015年亚洲杯之伊朗
日期:2015-04-10 16:28:25
15 [报告]
发表于 2016-10-11 19:52 |只看该作者
VIP_fuck 发表于 2016-10-10 11:28
回复 13# yulihua49

多谢,我们这个估计不会用中间件,防火墙也去不掉。

中间件你可以自己写,可以参照别人的经验。

论坛徽章:
12
2015年辞旧岁徽章
日期:2015-03-03 16:54:1515-16赛季CBA联赛之同曦
日期:2017-03-17 19:13:162016科比退役纪念章
日期:2016-11-07 08:28:12luobin
日期:2016-06-17 17:46:36wusuopu
日期:2016-06-17 17:43:4515-16赛季CBA联赛之福建
日期:2016-01-14 12:49:22程序设计版块每日发帖之星
日期:2015-12-13 06:20:00程序设计版块每日发帖之星
日期:2015-06-08 22:20:00程序设计版块每日发帖之星
日期:2015-06-08 22:20:002015年亚洲杯之科威特
日期:2015-03-24 14:21:272015年迎新春徽章
日期:2015-03-04 09:57:092016科比退役纪念章
日期:2018-04-10 16:20:18
16 [报告]
发表于 2016-10-12 08:36 |只看该作者
回复 15# yulihua49

多谢指教

论坛徽章:
0
17 [报告]
发表于 2016-10-25 14:39 |只看该作者
yulihua49 发表于 2016-09-26 16:48
数据库无需心跳。
我们不用心跳保活机制,因为谁也保不了活。
我们是自愈机制,就是谁有病,你管不了, ...

这个思路不错,好像很多公司都是这么干的

论坛徽章:
15
射手座
日期:2014-11-29 19:22:4915-16赛季CBA联赛之青岛
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16赛季CBA联赛之四川
日期:2017-02-07 21:08:572015年亚冠纪念徽章
日期:2015-11-06 12:31:58每日论坛发贴之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-07-12 22:20:002015亚冠之浦和红钻
日期:2015-07-08 10:10:132015亚冠之大阪钢巴
日期:2015-06-29 11:21:122015亚冠之广州恒大
日期:2015-05-22 21:55:412015年亚洲杯之伊朗
日期:2015-04-10 16:28:25
18 [报告]
发表于 2016-10-26 10:24 |只看该作者
本帖最后由 yulihua49 于 2016-10-26 10:34 编辑
感冒九十九 发表于 2016-10-25 14:39
这个思路不错,好像很多公司都是这么干的

简单说来,就是“保死”。
既然谁也保不了活,那就都给他弄死。这样,状态就是确定的,肯定是死的。无需健康检查和健康维护。系统变得极其简单。
谁使用谁打开。经常用不关闭,这样保持高效率。发生异常或久不使用就关闭。
无论“保活”还是“保死”,都解决不了一个问题:数据库请求发出之后,长时间不回应,中间的防火墙关闭连接的问题。

这要从两个方面下手。
1.跨防火墙的数据库访问,没有长响应时间的访问,优化你的语句。
2.改变系统架构,使用中间件,数据库和中间件在一个域。中间件访问数据库不受限制。客户端与中间件间的访问受控,但是协议是你自己的,可以采用各种方法来解决。


您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP