鏈榪戜竴鐩村湪鎹i紦HBase鐨勯」鐩紝涔嬪墠鍐欎簡涓浜涗唬鐮佷粠鏁版嵁搴撳姞杞芥暟鎹埌HBase錛屾墍鏈夌殑浠g爜閮借窇寰楀ソ濂藉湴錛岀劧鑰屼粖澶╁皾璇曠潃鎹簡涓涓暟鎹簱錛屽氨璺戜笉閫氫簡銆傞氳繃鏁版嵁宸ュ叿錛屽彲浠ュ彂鐜拌繛鎺ユ病鏈夐棶棰橈紝鑰屼笖鏈夐儴鍒嗛昏緫寰堥『鍒╅氳繃浜嗭紝鐒惰屾湁涓浜涘氨鏄崱涓諱簡錛岄氳繃jstack鎵撳嵃鍑烘潵鐨勪俊鎭彲浠ユ壘鍒拌繖鏍風(fēng)殑鍫嗘爤錛?/span>"runner{object-loader#292}-objecthandler" #323 prio=5 os_prio=0 tid=0x00002aaadc5ec800 nid=0x7f62 in Object.wait() [0x0000000056ce4000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:502)
at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1104)
- locked <0x00000007736013e8> (a org.apache.commons.pool.impl.GenericObjectPool$Latch)
at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:106)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111)
at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77)
鎵浠ュ紑濮嬫垜鎬鐤戞槸榪炴帴鐨勯棶棰橈紝浠庣綉涓婁篃鎵懼埌浜嗕竴涓被鍨嬬殑鐜拌薄錛屾湁浜烘鐤戞槸DBPC鐨勪竴涓猙ug瀵艱嚧姝婚攣錛歨ttp://stackoverflow.com/questions/5714511/deadlock-issue-in-dbcp-deployed-on-tomcat錛屾墍浠ユ垜鍗囩駭浜咲BCP鐗堟湰1.4錛岀劧鑰屽拰榪欎漢涓鏍風(fēng)殑緇撴灉錛屽崌綰BCP鐗堟湰騫舵病鏈夎В鍐抽棶棰樸傜畝鍗曠殑鐪婦BCP鐨勪唬鐮侊紝閮藉紑濮嬫鐤戞槸涓嶆槸鍥犱負娌℃湁Spring JdbcTemplate娌℃湁姝g‘鐨勬妸Connection榪斿洖鍥炲幓寮曡搗娉勬紡浜嗭紝鐒惰屼篃鏈夌偣鎰熻涓嶅お鍙兘錛屽洜涓鴻繖孌典唬鐮佸湪鍏朵粬鏁版嵁搴撻兘璺戝緱濂藉ソ鍦幫紝浣嗘槸鎴戜滑鐨勬暟鎹簱鐗堟湰閮芥槸涓鑷寸殑錛岀劧鑰屽叾浠栭厤緗笂涔熻鍋囪涓鑷翠簡錛堣蹇界暐鐨勪竴涓噸瑕佺殑鐐癸級銆?br />
鍚庢潵寮濮嬭皟閰嶇疆錛屽噺灝戣繛鎺ユ暟錛屽噺灝戠嚎紼嬫暟錛岀粡榪囧悇縐嶇粍鍚堬紝鍙戠幇褰撴妸DB璇葷殑batch闄嶅埌1鐨勬椂鍊欏氨鍙互work浜嗭紝闈炲父璇″紓鐨勪竴涓棶棰樸備粠鏁版嵁宸ュ叿涓煡鍒幫紝濡傛灉鐢╞atch錛屽緱鍒扮殑SQL鏄?
SELECT <column>, <column> FROM <table> where iid in (@p0, @p1

)
濡傛灉鏄痓atch鏄?鐨勮瘽錛?br />SELECT <column>, <column> FROM <table> where iid in (@p0)
榪欐SQL璇彞鏄繖涔堜駭鐢熺殑錛?br />DataSource dataSource = ....this.jdbc = new NamedParameterJdbcTemplate(dataSource);...
MapSqlParameterSource parameters = new MapSqlParameterSource();
parameters.addValue("params", paramsMap.keySet());
jdbc.query("SELECT <columns> FROM <table> where <column> in (:params)";, parameters, new ResultSetExtractor<Void>() {
....
})
濡傛灉鏄竴涓猙atch鐨勮瘽錛屽湪jstack鍫嗘爤涓彲浠ョ湅鍒板畠涓鐩村湪絳夋暟鎹簱鐨勮繑鍥炵粨鏋滐細
"runner{object-loader#16}-objecthandler" #47 prio=5 os_prio=0 tid=0x0000000006ddd800 nid=0x2694 runnable [0x0000000045434000]
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
at java.net.SocketInputStream.read(SocketInputStream.java:170)
at java.net.SocketInputStream.read(SocketInputStream.java:141)
at com.sybase.jdbc3.timedio.RawDbio.reallyRead(Unknown Source)
at com.sybase.jdbc3.timedio.Dbio.doRead(Unknown Source)
at com.sybase.jdbc3.timedio.InStreamMgr.a(Unknown Source)
at com.sybase.jdbc3.timedio.InStreamMgr.doRead(Unknown Source)
at com.sybase.jdbc3.tds.TdsProtocolContext.getChunk(Unknown Source)
榪欎篃瑙i噴浜嗙涓涓爢鏍堜竴鐩村仠鍦╞orrowObject(getConnection)鐨勯樁孌碉紝鍥犱負涔嬪墠鎵鏈夌殑Connection閮藉湪鏁版嵁搴撳牭浣忔病鏈夎繑鍥烇紝鎵浠ヨ繖涓嚎紼嬪啀鎷緾onnection鐨勬椂鍊欒秴榪囦簡鎴戣緗殑鏈澶onnection鏁幫紝鎵浠ュ氨絳夌潃鎷夸笉鍒癈onnection銆?br />
鍦ㄥ悗鏉ユ煡浜嗕竴涓嬩笉鍚屾暟鎹簱鐨凧DBC Driver淇℃伅(sp_version):
jConnect (TM) for JDBC(TM)/7.07 ESD #4 (Build 26793)/P/EBF20302/JDK 1.6.0/jdbcmain/OPT/Thu Jul 5 22:08:44 PDT 2012
jConnect (TM) for JDBC(TM)/1000/Wed Mar 11 05:01:24 2015 PDT
涔熷氨鏄榪欑鐢ㄦ硶鏄洜涓烘棫鐨凧DBC Driver瀵筃amedParameterJdbcTemplate涓嶅畬鍠勫紩璧風(fēng)殑錛岃繖涓潙鑺變簡鎴戜竴鏁村ぉ鐨勬椂闂淬傘傘傘?img src ="http://www.tkk7.com/DLevin/aggbug/428149.html" width = "1" height = "1" />
]]>