java 板


LINE

如标题,主要是想用类似资料库连线(Connection) 或是socket连线上 像这种东西,我觉得有一个很麻烦的地方 就是必须要在不用时,去呼叫close的方法 程式才会去关闭连线 如果忘记呼叫的话,像下面这样 //开个资料库连线,然後把他设null,不呼叫close() Conn conn= new Conn(); conn.select(); //conn.close(); conn=null; Thread.sleep(600000L); 就会....... mysql> SHOW PROCESSLIST; +----+------+----------------+------+---------+------+-------+---------------- | Id | User | Host | db | Command | Time | State |Info +----+------+----------------+------+---------+------+-------+---------------- | 42 | root | localhost:2769 | test | Sleep | 163 | |NULL | 44 | root | localhost:2772 | NULL | Query | 0 | NULL |SHOW PROCESSLIST +----+------+----------------+------+---------+------+-------+---------------- 2 rows in set (0.00 sec) 上面那个资料库连线就一直卡在那边了..... 现在我正在写个连线池去管理资料库连线。 请问有任何办法可以防止,使用这个连线池的人,拿了连线就没还的状况吗? 不管是吐错误也好,或是强制回收连线也行..... 或是,有办法去取得,有多少物件正在参照这个物件吗? 如果有的话就能自己写回收机制了..... -- --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 125.233.153.51
1F:→ awert:虽然不同,不过可考虑用 guava i/o supplier的方式 06/12 00:55
2F:推 joetsai:官网的 http://ppt.cc/oBJW 06/12 01:10
看了官网的lease,他是用个bool去判断是不是在使用中。 然後记录领取时间,超时的话就自己收回去 public synchronized boolean lease() { if(inuse) { return false; } else { inuse=true; timestamp=System.currentTimeMillis(); return true; } } 不是很想这样用 因为假设我打算长时间使用资料库连线的话 可能用到一半就被收回去了。 ※ 编辑: LaPass 来自: 125.233.153.51 (06/12 01:31)
3F:→ awert:有什麽特别需求要一直开着连线嘛? 06/12 01:35
4F:推 lausai:不怕麻烦的话..写一个conn wapper? 06/12 01:59
5F:推 qrtt1:为什麽不直接用 connection pool library 06/12 07:21
6F:→ qrtt1:自己实作除了兴趣,其实很难保证考虑到各种情况。 06/12 07:21
7F:→ LaPass:应该说是.... 针对自己的习惯下去写吧 06/12 08:11
8F:→ qrtt1:什麽样的习惯? 06/12 09:35
9F:→ LaPass:一些自己的介面以及一些状况的处理原则之类的 06/12 11:58
10F:→ qrtt1:那到底是什麽!? 06/12 12:52
11F:→ aleelyle:他是从c++跳过来的吧 这是c++常用的 RAII 06/12 13:34
12F:推 Chikei:finalize或PhantomReference+ReferenceQueue 06/12 17:18
13F:→ Chikei:不过都不保证执行时间点 06/12 17:19
14F:推 LPH66:以他的状况来看用 finalize 应该就行了 06/12 17:53
15F:→ LaPass:如果仍然连线中,finalize就不会被执行到,试过了 06/12 18:59
16F:→ bitlife:不应该在finalize中才去释放自OS/其它AP 取得应还的资源 06/12 19:01
17F:→ LaPass:PhantomReference跟ReferenceQueue我再去研究看看这是什麽 06/12 19:02
18F:推 Chikei:挂个proxy class然後在proxy object跑finalize,这样也会因 06/13 01:28
19F:→ Chikei:为後端conn obj还在连线而不会被回收? 06/13 01:29
20F:→ Chikei:anyway, it's nondeterministic safeguard approach 06/13 02:20
21F:→ Chikei:对JVM来说"物件没有参照了"这件事的时间点是非确定性的 06/13 02:22
22F:推 aceldama:java 7有 try with resource 可以用吗? 06/16 12:30







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Soft_Job站内搜寻

TOP