Posted on 2009-12-25 02:31
leekiang 閱讀(414)
評(píng)論(0) 編輯 收藏 所屬分類(lèi):
jdbc、事務(wù)、并發(fā)
1,關(guān)于statement,resultset和connection的問(wèn)題
statement,resultset屬于弱refrence,即如果statement關(guān)掉,resultset就會(huì)被自動(dòng)釋構(gòu),弱
refrence的做法不保險(xiǎn),所以JDBC3.0開(kāi)始明確規(guī)定了如果connection被關(guān),所有statement都應(yīng)該關(guān),不過(guò)這取決于使用的數(shù)
據(jù)庫(kù)驅(qū)動(dòng)。
應(yīng)該DBMS 執(zhí)行操作后,顯式的關(guān)閉statement ,因?yàn)樵赾onnection關(guān)閉前,JDBC statement仍舊處于打開(kāi)狀態(tài),當(dāng)返回resultset后,關(guān)閉statement是必要的,尤其在遇到異常的時(shí)候。
如果不使用connection pool可以直接關(guān)閉connection,不考慮statement的關(guān)閉,使用連接池的時(shí)候,務(wù)必關(guān)閉statement,否則你的連接馬上被用光,使用statement pooling除外。
http://www.w3china.org/blog/more.asp?name=hongrui&id=10283
2,Software caused connection abort: socket write error
最終找到了原因:sql寫(xiě)錯(cuò)了,寫(xiě)成了where name='?'
有人說(shuō)原因:
oracle數(shù)據(jù)庫(kù)連接與連接池之間沖突導(dǎo)至.
oracle database把空閑一段時(shí)間的連接關(guān)閉了,而應(yīng)用服務(wù)器連接池卻認(rèn)為該邊接還是可用的,再次訪(fǎng)問(wèn)時(shí)還是使用該連接,導(dǎo)致出現(xiàn)連接異常。
方法,當(dāng)然是改數(shù)據(jù)庫(kù)配置了.
spring對(duì)oracle的clob和StoredProcedure 的處理
經(jīng)過(guò)幾天的夜戰(zhàn),終于知道使用spring對(duì)oracle的存儲(chǔ)過(guò)程操作,程序死掉的真正原因,一旦執(zhí)行存儲(chǔ)過(guò)程沒(méi)有任何返回值,因?yàn)?“Statement.getUpdateCount() returns 1 instead of -1”,是oracle的驅(qū)動(dòng)的bug,10.1.0.2的驅(qū)動(dòng)就不行,聽(tīng)說(shuō)10.1.0.3就沒(méi)有問(wèn)題,但是10.1.0.3的jdbc驅(qū)動(dòng)不能下載。大家可以使用weblogic8.1SP3帶的10.1.0.2或weblogic9beta的10.1.0.2,可以解決這個(gè)問(wèn)題。不知道開(kāi)發(fā) oracle jdbc的程序員是什末人,沒(méi)畢業(yè)的大學(xué)生,還是拖欠了工資的程序員,開(kāi)發(fā)水平遠(yuǎn)不如開(kāi)源數(shù)據(jù)庫(kù)的jdbc驅(qū)動(dòng)的人呢,再次建議oracle驅(qū)動(dòng)最好是自己命名,把文件名加上版本信息,要不會(huì)死人的。
http://72.5.124.102/thread.jspa?messageID=1424984
http://group.gimoo.net/review/44109
http://azi.javaeye.com/blog/182146
http://hi.baidu.com/happyidea/blog/item/c84b313de75add0abba16779.html
3,Random Connection Closed Exceptions
These can occur when one request gets a db connection from the connection
pool and closes it twice.
見(jiàn)http://tomcat.apache.org/tomcat-4.1-doc/jndi-datasource-examples-howto.html