锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲欧美日本韩国,亚洲精品夜夜夜妓女网,国产亚洲综合成人91精品http://www.tkk7.com/zhvfeng/&nbsp;&nbsp;&nbsp;&nbsp;<i>鍒嗕韓鐭ヨ瘑銆佸垎浜揩涔?lt;/i>zh-cnSun, 11 May 2025 14:07:47 GMTSun, 11 May 2025 14:07:47 GMT60璋佽兘瑙e喅澶氫釜MDB璇誨彇JBoss Topic涓婄殑BytesMessage鍑虹幇鐨勫鎬棶棰?/title><link>http://www.tkk7.com/zhvfeng/archive/2010/08/24/329795.html</link><dc:creator>澶╁揩榛戜簡</dc:creator><author>澶╁揩榛戜簡</author><pubDate>Tue, 24 Aug 2010 07:54:00 GMT</pubDate><guid>http://www.tkk7.com/zhvfeng/archive/2010/08/24/329795.html</guid><wfw:comment>http://www.tkk7.com/zhvfeng/comments/329795.html</wfw:comment><comments>http://www.tkk7.com/zhvfeng/archive/2010/08/24/329795.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/zhvfeng/comments/commentRss/329795.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/zhvfeng/services/trackbacks/329795.html</trackback:ping><description><![CDATA[2涓笉鍚岀殑MDB鐩戝惉JBoss 4.2.3 涓婄殑鍚屼竴涓猅opic (闆嗘垚JBoss Messaging 1.4.2 SP1)錛孴opic涓婄殑娑堟伅鏄疊ytesMessage銆傚彂涓涓秷鎭埌Topic涓婏紝2涓狹DB閮戒細(xì)鏀跺埌榪欎釜娑堟伅銆?br /> <br /> 浣嗗鎬殑鏄彧鏈変竴涓狹DB鑳芥甯歌鍙朆ytesMesage錛屽彟涓涓狹DB璇誨彇BytesMessage.<font style="background-color: #c0c0c0">readBytes</font>()濮嬬粓榪斿洖-1<br /> <br /> 鍚屾牱鐨勬祴璇曠▼搴忥紝鍦╓ebLogic涓婂氨姝e父銆?br /> <br /> JBoss鎬庝箞浼?xì)鍙戦佸悓涓涓狟ytesMessage瀵硅薄鍒版墍鏈夌殑subscriber錛熸湁浜鴻В鍐寵繃鍚屾牱鐨勯棶棰樺悧錛?<br /> <br /> <br /> google浜嗗緢闀挎椂闂達(dá)紝涔熷皾璇曚簡寰堝鏂規(guī)硶錛屼技涔庢病浠涔堝ソ鐨勫姙娉曘備竴縐嶆柟娉曟槸閬垮厤浣跨敤BytesMessage, 榪樻湁涓縐嶆柟娉曞氨鏄嬌鐢ㄥ弽灝勶紝鐩存帴澶嶅埗JBoss鐨凚ytesMessage瀹炵幇銆?br /> <br /> <div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img id="Codehighlighter1_35_358_Open_Image" onclick="this.style.display='none'; Codehighlighter1_35_358_Open_Text.style.display='none'; Codehighlighter1_35_358_Closed_Image.style.display='inline'; Codehighlighter1_35_358_Closed_Text.style.display='inline';" align="top" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedBlockStart.gif" alt="" /><img style="display: none" id="Codehighlighter1_35_358_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_35_358_Closed_Text.style.display='none'; Codehighlighter1_35_358_Open_Image.style.display='inline'; Codehighlighter1_35_358_Open_Text.style.display='inline';" align="top" src="http://www.tkk7.com/images/OutliningIndicators/ContractedBlock.gif" alt="" /><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> onMessage(Message msg) </span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_35_358_Closed_Text"><img src="http://www.tkk7.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_35_358_Open_Text"><span style="color: #000000">{<br /> <img align="top" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" alt="" /><br /> <img align="top" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" alt="" />  BytesMessageProxy msgProxy </span><span style="color: #000000">=</span><span style="color: #000000"> (BytesMessageProxy)msg;<br /> <img align="top" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" alt="" />        <br /> <img align="top" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" alt="" />        Class clazz </span><span style="color: #000000">=</span><span style="color: #000000"> MessageProxy.</span><span style="color: #0000ff">class</span><span style="color: #000000">;<br /> <img align="top" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" alt="" />        Field field </span><span style="color: #000000">=</span><span style="color: #000000"> clazz.getDeclaredField(</span><span style="color: #000000">"</span><span style="color: #000000">message</span><span style="color: #000000">"</span><span style="color: #000000">);<br /> <img align="top" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" alt="" />        field.setAccessible(</span><span style="color: #0000ff">true</span><span style="color: #000000">);<br /> <img align="top" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" alt="" />        JBossMessage rawMsg </span><span style="color: #000000">=</span><span style="color: #000000"> (JBossMessage)field.get(msgProxy);<br /> <img align="top" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" alt="" />        <br /> <img align="top" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" alt="" />        BytesMessage newMsg </span><span style="color: #000000">=</span><span style="color: #000000"> (BytesMessage)rawMsg.doCopy();<br /> <img align="top" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" alt="" /><br /> <img align="top" src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" alt="" />       </span><span style="color: #008000">//</span><span style="color: #008000"> read data from newMsg</span><span style="color: #008000"><br /> <img align="top" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedBlockEnd.gif" alt="" /></span><span style="color: #000000">}</span></span></div> <img src ="http://www.tkk7.com/zhvfeng/aggbug/329795.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/zhvfeng/" target="_blank">澶╁揩榛戜簡</a> 2010-08-24 15:54 <a href="http://www.tkk7.com/zhvfeng/archive/2010/08/24/329795.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Java铏氭嫙鏈烘帰闄╀箣Class Loaderhttp://www.tkk7.com/zhvfeng/archive/2010/08/17/329078.html澶╁揩榛戜簡澶╁揩榛戜簡Tue, 17 Aug 2010 02:47:00 GMThttp://www.tkk7.com/zhvfeng/archive/2010/08/17/329078.htmlhttp://www.tkk7.com/zhvfeng/comments/329078.htmlhttp://www.tkk7.com/zhvfeng/archive/2010/08/17/329078.html#Feedback0http://www.tkk7.com/zhvfeng/comments/commentRss/329078.htmlhttp://www.tkk7.com/zhvfeng/services/trackbacks/329078.html浼楁墍鍛ㄧ煡錛屾墍鏈夌殑Java class鏂囦歡閮芥槸鐢?/span>JVM錛堣櫄鎷熸満錛夊姞杞藉茍鎵ц鐨勩?/span>娣卞叆鐞嗚ВJVM瀵逛簬鎴戜滑鎻愰珮Java鎶鏈拰瑙e喅Java闂閮芥湁闈炲父澶х殑甯姪銆?/span>

JVM鍐呴儴涓昏鍖呮嫭鍐呭瓨綆$悊鍜?/span>Class Loader錛堢被鍔犺澆鍣級(jí)涓や釜閮ㄥ垎銆傜啛鎮(zhèn)変簡鍐呭瓨綆$悊錛屾垜浠氨浼?xì)娓呮绋嬪簭鍦ㄥ唴瀛樹腑鏄庝箞鍒嗛厤鍜屾墽琛岀殑錛屽氨鑳借В鍐蟲墍鏈夊拰瀵硅薄鐩稿叧鐨勯棶棰橈紙姣斿Memory Leak錛夈傜悊瑙d簡Class Loader錛屽氨鑳借В鍐蟲墍鏈夌被鎵句笉鍒幫紙姣斿閬囧埌NoClassDefFoundError鎴?/span>ClassNotFoundException錛夋垨閰嶇疆鏂囦歡鎵句笉鍒伴棶棰樸?/span>

榪欐鎴戜滑鍙璁?/span>JVM鐨?/span>Class Loader錛屼笅嬈″啀璁ㄨJVM鐨勫唴瀛樼鐞嗐?/span>

Class Loader鐨勪富瑕佷綔鐢ㄥ氨鏄礋璐f煡鎵劇被騫跺皢鍏跺姞杞藉埌鍐呭瓨涓傛湁瓚g殑鏄紝Java涓殑Class Loader涔熸槸鐢?/span>Java鎵鍐欙紝灝卞拰鏅氱殑class涓鏍楓傝繖灝變駭鐢熶簡涓涓槸楦$敓铔嬭繕鏄泲鐢熼浮鐨勯棶棰橈紝鍒板簳絎竴涓?/span>class鐢辮皝鏉ュ姞杞藉憿錛熸垜浠◢鍚庝細(xì)鏉ヨ璁鴻繖涓棶棰樸?/span>

鍏堟潵鐪嬩竴涓?/span>Class Loader鎵鍏鋒湁鐨勭壒鐐廣?/span>

1.       緇ф壙鍏崇郴

铏界劧Class Loader涔熸槸涓涓?/span>Java class錛屼絾榪欓噷鐨勭戶鎵夸笉鏄寚瀹氫箟class鏃朵嬌鐢ㄧ殑extends鍏抽敭瀛楁潵瀹炵幇鐨勭戶鎵匡紝鑰屾槸鎸囩敱灞炴ф潵緇存寔鐨勭戶鎵垮叧緋匯傚嵆閫氳繃Class Loader鐨勬瀯閫犳柟娉曟垨鍏跺畠鏂規(guī)硶鏄懼紡鐨勮緗竴涓埗Class Loader銆?/span>

2.       浠g悊鍏崇郴

姣忎竴涓?/span>Class Loader鍦ㄦ帴鍒拌姹傚幓鍔犺澆涓涓被涔嬪墠錛堥粯璁わ紝璁塊棶涓涓被鐨勬椂鍊欙紝灝變細(xì)鐢卞姞杞藉綋鍓嶇被鐨?/span>Class Loader鍘誨姞杞借璁塊棶鐨勭被錛夛紝瀹冧細(xì)棣栧厛璇鋒眰瀹冪殑鐖?/span>Class Loader鏉ュ皾璇曞姞杞斤紝渚濇寰涓婏紝濡傛灉鐖?/span>Class Loader鍔犺澆鎴愬姛錛屽垯鐩存帴榪斿洖錛屽瓙Class Loader涓嶅啀鏌ユ壘銆?/span>

鍚﹀垯渚濇寰涓嬫煡鎵懼茍鍔犺澆銆傚鏋滅洿鍒拌璇鋒眰鐨?/span>Class Loader涔熸病鏈夋壘鍒拌鍔犺澆鐨勭被錛屽垯浼?xì)鍑虹?/span>NoClassDefFoundError鎴?/span>ClassNotFoundException

褰撶劧濡傛灉琚姹傜殑綾誨凡緇忓姞杞藉埌浜嗗唴瀛樹腑錛屽氨涓嶄細(xì)瑙﹀彂榪欎釜鏌ユ壘榪囩▼浜嗭紝鑰屾槸鐩存帴榪斿洖宸茬粡鍔犺澆鐨勭被銆?/span>

鎴戜滑鏉ョ湅涓涓緥瀛愶紝鍋囪鏈夊浘1涓殑Class Loader灞傛錛?/span>


濡傛灉鎴戜滑璇鋒眰
Class Loader E鍘誨姞杞?/span>Test.class錛岄鍏堝畠浼?xì)璇锋眰鐖?/span>Class Loader D鍘誨皾璇曞姞杞姐傚悓鏍?/span>Class Loader D浼?xì)鍏堣h眰瀹冪殑鐖?/span>Class Loader C鍘誨皾璇曞姞杞?/span>Test.class銆傚綋鐒惰繖閲?/span>Class Loader C鎵句笉鍒?/span>Test.class錛屼簬鏄漿鍥炵敱Class Loader D鍘誨姞杞姐傛渶緇?/span>Class Loader D鎴愬姛鎵懼埌浜?/span>D:"Test.class錛屽茍灝嗗叾鍔犺澆鍒板唴瀛樹腑銆?/span>

鍚屾牱錛屽鏋滄垜浠姹?/span>Class Loader F鍘誨姞杞?/span>Test3.class銆?/span>Class Loader C鍜?/span>Class Loader D鍦ㄥ悇鑷殑鎼滅儲(chǔ)鑼冨洿鍐呴兘鎵句笉鍒?/span>Test3.class銆傛渶緇堜細(xì)鐢?/span>Class Loader F鑷繁鍔犺澆F:"Test3.class鍒板唴瀛樹腑銆?/span>

濡傛灉鎴戜滑璇鋒眰Class Loader D鍘誨姞杞?/span>Test3.class錛屾渶緇堝氨浼?xì)鍑虹?/span>NoClassDefFoundError鎴?/span>ClassNotFoundException

3.       鍚屼竴緇ф壙閾懼彲瑙佹?/span>

鍦ㄥ悓涓涓?/span>Class Loader瀵硅薄鐨勭戶鎵塊摼涓紝涓嬮潰琚姞杞界殑綾誨彲浠ヨ闂笂闈㈣鍔犺澆鐨勭被錛屽弽涔嬪垯涓嶅彲浠ャ?/span>

鍚屾牱浠ュ浘1涓轟緥錛?/span>Test4.class鍙互璁塊棶鍒?/span>D:"Test.class鍜?/span>C:"Test2.class

鑰屽鏋?/span>D:"Test.class鎴?/span>C:"Test2.class灝濊瘯璁塊棶Test4.class錛屽氨浼?xì)鍑虹?/span>NoClassDefFoundError鎴?/span>ClassNotFoundException

4.       澶氫釜緇ф壙閾句笉鍙鎬?/span>

澶氫釜緇ф壙閾句箣闂村郊姝ょ湅涓嶅埌瀵規(guī)柟錛屼笉鑳界浉浜掕闂?/span>

榪樹互鍥?/span>1涓轟緥錛屽鏋?/span>Test4.class璁塊棶Test3.class錛屾垨鍙嶈繃鏉?/span>Test3.class璁塊棶Test4.class錛岄兘浼?xì)寮曡?/span>NoClassDefFoundError鎴?/span>ClassNotFoundException

鐞嗚В浜?/span>Class Loader鎵鍏鋒湁鐨勭壒鐐癸紝鎴戜滑鏉ョ湅鐪?/span>JDK涓兘棰勭疆浜嗗摢浜?/span>Class Loader銆備篃鏄?/span>JVM鍚姩鏃墮粯璁ゅ垱寤虹殑Class Loader銆傚鍥?/span>2


閫氳繃鍥?/span>2錛屾垜浠彲浠ョ湅鍒?/span>Bootstrap Class Loader鏄?/span>JVM涓殑紲栧厛Class Loader銆傚畠鏄?/span>JDK涓敮涓涓涓敱C++鎵鍐欑殑Class Loader錛屽畠璐熻矗鍔犺澆JDK鐨勬牳蹇冪被搴?/span>(rt.jar)浠ュ強(qiáng)鍙﹀涓や釜鐢?/span>Java鎵鍐欑殑Class Loader錛?/span>Ext Class Loader鍜?/span>App Class Loader錛夈備箣鍚庡氨鍔熸垚韜錛岃漿鐢?/span>Ext Class Loader鍜?/span>App Class Loader鍔犺澆鎵鏈夊簲鐢ㄤ腑鐢ㄥ埌鐨勭被銆?/span>

涓鑸垜浠殑搴旂敤閮芥槸閫氳繃璁劇疆CLASSPATH錛屾渶緇堢敱App Class Loader鏉ュ姞杞姐傛牴鎹?/span>Class Loader鐨勭戶鎵垮叧緋伙紝鎴戜滑搴旂敤涓殑綾誨彲浠ヨ闂?/span>JDK鐨勬牳蹇冪被搴撱傚弽涔嬪垯浼?xì)鍑洪敊銆?/span>

鎴戜滑鍐嶆潵鐪嬬湅WebLogic涓?/span>Class Loader鐨勫眰嬈″叧緋伙紙濡傚浘4錛夈傚鏋滈渶瑕侊紝澶у鍙互鍙傝冧竴涓?/span>WebLogic涓?/span>WAR鍜?/span>EAR鐨勬枃浠剁粨鏋勶紙濡傚浘3錛?/span>




WLS
涓嚜瀹氫箟浜嗗緢澶氭柊鐨?/span>Class Loader錛屽綋鐒朵粬浠殑紲栧厛Class Loader閮芥槸JDK涓殑App (or System) Class Loader銆傛垜浠潵鐪嬩竴涓嬫瘡涓?/span>Class Loader鐨勮亴璐c?/span>

1.       JDK App (or System) Class Loader

l       璐熻矗鍔犺澆WLS鍚姩鑴氭湰涓?/span>CLASSPATH涓緗殑綾?/span>

l       鎵鏈夌殑綾婚兘浼?xì)鏈鍏堢敱瀹冨皾璇曞姞杞?/span>

l       鍥犱負(fù)CLASSPATH鐨勫煎湪榪愯鏈熶笉鍏佽淇敼錛屾墍浠ョ敱璇?/span>Class Loader鍔犺澆鐨勭被鍦ㄨ繍琛屾湡涓嶈兘琚姩鎬佸嵏杞斤紙鏇挎崲錛?/span>

2.       EJB Class Loader (1)

l       璐熻矗鍔犺澆鍗曠嫭鐨?/span>EJB jar閲岀殑綾匯?/span>

l       涓嶅悓鐨?/span>EJB jar鏂囦歡浼?xì)琚笉鍚屽疄渚嬬?/span>Class Loader鍔犺澆錛屽洜姝?/span>EJB jar褰兼涔嬮棿浜掔浉鐪嬩笉鍒板鏂?/span>

3.       WAR Class Loader (1)

l       璐熻矗鍔犺澆鍗曠嫭鐨?/span>WAR閲岀殑綾?/span>

l       涓嶅悓鐨?/span>WAR鏂囦歡浼?xì)琚笉鍚屽疄渚嬬?/span>Class Loader鍔犺澆錛屽洜姝?/span>WAR褰兼涔嬮棿浜掔浉鐪嬩笉鍒板鏂?/span>

4.       EAR Class Loader

l       璐熻矗鍔犺澆EAR閲岄潰鐨?/span>APP-INF涓嬬殑綾?/span>

l       涓嶅悓鐨?/span>EAR鏂囦歡浼?xì)琚笉鍚屽疄渚嬬?/span>EAR Class Loader鍔犺澆錛屽洜姝?/span>EAR褰兼涔嬮棿浜掔浉鐪嬩笉鍒板鏂?/span>

l       瀹冧笅闈㈡湁涓涓?/span>EJB Class Loader (2) 瀹炰緥,璐熻矗鍔犺澆EAR閲岄潰鎵鏈夌殑EJB jar銆傚洜姝わ紝EAR涓殑EJB褰兼涔嬮棿鍙互鐪嬪埌瀵規(guī)柟

l       EJB Class Loader (2) 涓嬫湁澶氫釜WAR Class Loader (2) 瀹炰緥銆傛瘡涓疄渚嬭礋璐e姞杞?/span>EAR閲岄潰鐨勪竴涓?/span>WAR銆傛墍浠ワ紝EAR涓殑WAR褰兼涔嬮棿鐪嬩笉鍒板鏂?/span>

l       鏍規(guī)嵁緇ф壙閾捐鍒欙紝WAR鍙互鐪嬪埌鎵鏈夌殑EJB鍙?/span>APP-INF涓嬬殑鎵鏈夌被銆?/span> EJB鍙互鐪嬪埌APP-INF涓嬬殑鎵鏈夌被錛屼絾鍙嶄箣鍒欎笉鍙互

Class Loader铏界劧縐頒負(fù)綾誨姞杞藉櫒錛屼絾騫朵笉鎰忓懗鐫鍙兘鐢ㄦ潵鍔犺澆Class錛屾垜浠繕鍙互鍒╃敤瀹冩潵鏌ユ壘鍥劇墖鍜岄厤緗枃浠剁瓑璧勬簮銆傛瘮濡傦紝鎴戜滑緇忓父浣跨敤getClass().getResourceAsStream(name)鏉ユ煡鎵鵑厤緗枃浠躲傚悓鏍鳳紝鏌ユ壘鍏跺畠璧勬簮鏂囦歡鐨勬柟寮忓拰涓婇潰涓鏍鳳紝涔熶細(xì)鍏堣姹傜埗Class Loader鏉ヨ礋璐f煡鎵俱?/span>

榪欓噷錛屾垜浠彧綆鍗曚粙緇嶄簡Class Loader瀵逛簬綾葷殑鏌ユ壘錛岃屽叧浜?/span>Class Loader鐨勫叿浣撳姞杞姐佹牎楠屽拰鍒濆鍖栫殑榪囩▼錛屾劅鍏磋叮鐨勬湅鍙嬪彲浠ュ弬鑰冦婃繁鍏?/span>Java铏氭嫙鏈恒?/span>



]]>
璋佽兘甯繖瑙i噴涓涓嬩負(fù)浠涔堣繖涓▼搴忎細(xì)姝婚攣錛?/title><link>http://www.tkk7.com/zhvfeng/archive/2010/08/04/327956.html</link><dc:creator>澶╁揩榛戜簡</dc:creator><author>澶╁揩榛戜簡</author><pubDate>Wed, 04 Aug 2010 09:40:00 GMT</pubDate><guid>http://www.tkk7.com/zhvfeng/archive/2010/08/04/327956.html</guid><wfw:comment>http://www.tkk7.com/zhvfeng/comments/327956.html</wfw:comment><comments>http://www.tkk7.com/zhvfeng/archive/2010/08/04/327956.html#Feedback</comments><slash:comments>23</slash:comments><wfw:commentRss>http://www.tkk7.com/zhvfeng/comments/commentRss/327956.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/zhvfeng/services/trackbacks/327956.html</trackback:ping><description><![CDATA[<p> 澶у涓嶇敤鍏沖績紼嬪簭瀹為檯閫昏緫鏄惁姝g‘錛屽彧鏄ソ濂囷紝涓轟粈涔堣繖涓▼搴忎細(xì)hang浣忎笉榪愯浜嗭紵鑰屼笖CPU浼?xì)鍗犵?00%</p> <div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #0000FF; ">import</span><span style="color: #000000; "> java.util.HashMap;<br /> <br /> </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">class</span><span style="color: #000000; "> TestLock {<br /> <br /> </span><span style="color: #0000FF; ">private</span><span style="color: #000000; "> HashMap map </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> HashMap();<br /> <br /> </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> TestLock() {<br /> Thread t1 </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> Thread() {<br /> </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> run() {<br /> </span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> i</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">; i</span><span style="color: #000000; "><</span><span style="color: #000000; ">50000</span><span style="color: #000000; ">; i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">) {<br /> map.put(</span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> Integer(i), i);<br /> }<br /> System.out.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">t1 over</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br /> }<br /> };<br /> <br /> Thread t2 </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> Thread() {<br /> </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> run() {<br /> </span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> i</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">; i</span><span style="color: #000000; "><</span><span style="color: #000000; ">50000</span><span style="color: #000000; ">; i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">) {<br /> map.put(</span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> Integer(i), i);<br /> }<br /> <br /> System.out.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">t2 over</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br /> }<br /> };<br /> <br /> <br /> t1.start();<br /> t2.start();<br /> <br /> }<br /> <br /> <br /> </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">static</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> main(String[] args) {    <br /> </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> TestLock();<br /> }<br /> }<br /> </span></div> <br /> <br /> Dump thread浼?xì)鐪嬪垘图尳E嬪簭hang鍒幫細(xì)<br /> <br /> <p><font style="background-color: #c0c0c0">"Thread-1" prio=6 tid=0x00c70bd8 nid=0x914 runnable [0x02ebf000..0x02ebfc68]<br /> at java.util.HashMap.put(HashMap.java:420)<br /> at TestLock$2.run(TestLock.java:20)</font></p> <p><font style="background-color: #c0c0c0">"Thread-0" prio=6 tid=0x00c70a50 nid=0x578 runnable [0x02e7f000..0x02e7fb68]<br /> at java.util.HashMap.put(HashMap.java:420)<br /> at TestLock$1.run(TestLock.java:11)<br /> </font></p> <img src ="http://www.tkk7.com/zhvfeng/aggbug/327956.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/zhvfeng/" target="_blank">澶╁揩榛戜簡</a> 2010-08-04 17:40 <a href="http://www.tkk7.com/zhvfeng/archive/2010/08/04/327956.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍙︾被NoClassDefFoundErrorhttp://www.tkk7.com/zhvfeng/archive/2010/07/29/327446.html澶╁揩榛戜簡澶╁揩榛戜簡Thu, 29 Jul 2010 07:54:00 GMThttp://www.tkk7.com/zhvfeng/archive/2010/07/29/327446.htmlhttp://www.tkk7.com/zhvfeng/comments/327446.htmlhttp://www.tkk7.com/zhvfeng/archive/2010/07/29/327446.html#Feedback0http://www.tkk7.com/zhvfeng/comments/commentRss/327446.htmlhttp://www.tkk7.com/zhvfeng/services/trackbacks/327446.html
榪樻湁涓嬮潰涓縐嶅彟綾葷殑NoClassDefFoundError錛?br /> 1. Class A 璋冪敤 Class B
2. JVM灝濊瘯鍔犺澆Class B錛屽茍鎵цClass B鐨勯潤鎬佸潡
3. Class B鐨勯潤鎬佸潡鍐呮姏鍑篟untimeException錛屼粠鑰屽鑷碕VM鍔犺澆Class B澶辮觸
4. 涔嬪悗錛屼換浣曠被鍙璋冪敤Class B錛屽氨浼?xì)鍑虹幇NoClassDefFoundError

澶у鍙互榪愯涓嬮潰鐨勪緥瀛愯瘯涓涓?

1 public class B 
2 {
3     static {
4         String s = null;
5         s.substring(0);
6     }
7 }

 1 public class A 
 2 {
 3     public static void main(String[] args) 
 4     {
 5         try
 6         {
 7             B b = new B();    
 8         }
 9         catch (Throwable e)
10         {
11             e.printStackTrace();
12         }
13 
14         try
15         {
16             B b = new B();    
17         }
18         catch (Throwable e)
19         {
20             e.printStackTrace();
21         }
22     }
23 }


澶╁揩榛戜簡 2010-07-29 15:54 鍙戣〃璇勮
]]>
Socket Programming Considerations (2)http://www.tkk7.com/zhvfeng/archive/2010/07/28/327281.html澶╁揩榛戜簡澶╁揩榛戜簡Wed, 28 Jul 2010 01:23:00 GMThttp://www.tkk7.com/zhvfeng/archive/2010/07/28/327281.htmlhttp://www.tkk7.com/zhvfeng/comments/327281.htmlhttp://www.tkk7.com/zhvfeng/archive/2010/07/28/327281.html#Feedback1http://www.tkk7.com/zhvfeng/comments/commentRss/327281.htmlhttp://www.tkk7.com/zhvfeng/services/trackbacks/327281.html1.       Socket ack (acknowledgement)

Socket ack鏄寚褰?/span>socket鎺ユ敹鍒版暟鎹箣鍚庯紝鍙戦佷竴涓?/span>ack瀛楃涓?/span>(姣斿$ACK)緇?/span>socket鍙戦佹柟銆傝繖鏍鳳紝socket鍙戦佹柟鍙互鏍規(guī)嵁鏄惁鏀跺埌浜?/span>ack鍒ゆ柇瀵規(guī)柟鏄惁鏀跺埌浜嗘暟鎹?/span>

Socket ack鏄樉紺虹殑鍦ㄥ簲鐢ㄧ▼搴忎腑鍔犲叆鐨勪竴縐嶉氳鍗忚銆傚鏋滀笉浣跨敤ack錛屽湪socket閫氳涓紝鍙兘浼?xì)涓㈠け鏁版嵁銆?/span>

姣斿錛?/span>socket client瑕佽繛緇殑緇?/span>socket server鍙戦?/span>100鏉℃秷鎭傚鏋滄垜浠湪server鏀跺埌絎?/span>50鏉℃秷鎭殑鏃跺欙紝寮鴻kill浜?/span>server銆傞偅涔堟煡璇?/span>client绔彂閫佺殑log錛屽彲鑳?/span>client绔垚鍔熷彂閫佷簡51鏉°傚彧鏈夊綋client绔彂閫佺52鏉℃秷鎭殑鏃跺欐墠閬囧埌寮傚父銆傝繖鏍風(fēng)51鏉℃秷鎭氨涓㈠け浜嗐?/span>

鎵浠ヤ負(fù)浜嗙‘淇濇暟鎹紶杈撶殑鍑嗙‘鎬э紝鎴戜滑鍙互寮曞叆ack鍗忚銆傛湁鏃舵垜浠笉浠呰紜繚server涓嶄絾鏀跺埌浜嗘暟鎹紝鑰屼笖榪樿淇濊瘉server鎴愬姛澶勭悊浜嗘暟鎹傝繖鏃訛紝鍙互絳?/span>server鎴愬姛澶勭悊瀹屾暟鎹箣鍚庯紝鍐嶇粰client鍙?/span>ack銆?/span>

2.       Socket Keep Alive

Socket榪炴帴鍍忔暟鎹簱榪炴帴涓鏍鳳紝灞炰簬閲嶉噺鍨嬭祫婧愩傚鏋滄垜浠綣佺殑鍒涘緩socket銆佸彂閫?/span>/鎺ユ敹鏁版嵁銆佸叧闂?/span>socket錛岄偅涔堜細(xì)鏈夊緢澶т竴閮ㄥ垎鏃墮棿嫻垂鍦?/span>socket鐨勫垱寤哄拰鍏抽棴涓娿?/span>

鎵浠ワ紝濡傛灉鎴戜滑緇忓父闇瑕佷笌鍚屼竴涓?/span>socket鍦板潃鍙戦?/span>/鎺ユ敹鏁版嵁鏃訛紝搴旇鑰冭檻鍙垱寤轟竴嬈?/span>socket錛岀劧鍚庝竴鐩翠嬌鐢ㄨ繖涓?/span>socket瀵硅薄鍙戦?/span>/鎺ユ敹鏁版嵁銆?/span>

3.       Heartbeat

閫氬父錛屾垜浠細(xì)璁劇疆socket鐨?/span>receive timeout銆傝繖鏍鳳紝濡傛灉鎴戜滑涓鐩存墦寮鐫socket (keep alive)錛?/span> 鑰屽緢闀挎椂闂村張娌℃湁鏁版嵁閫氳錛?/span>socket鎺ユ敹鏂瑰氨浼?/span>timeout錛屾渶緇堝鑷存墦寮鐨勮繛鎺ュ潖鎺夈?/span>

濡傛灉寰堥暱鏃墮棿娌℃湁鏁版嵁閫氳錛岄槻鐏鎴栦唬鐞嗘湇鍔″櫒涔熷彲鑳戒細(xì)鍏抽棴鎵撳紑鐨?/span>socket榪炴帴銆?/span>

鎵浠ヤ負(fù)浜嗕繚璇佹墦寮鐨?/span>socket榪炴帴涓鐩村彲鐢紝濡傛灉涓孌墊椂闂存病鏈夋暟鎹繘琛岄氳錛堟垨鎸囧畾涓涓椂闂撮棿闅旓級(jí)錛屾垜浠彲浠ユ樉紺虹殑鍙戦佷竴涓?/span>heartbeat娑堟伅(姣斿: $HRT)緇欏鏂癸紝浠庤屼繚璇佽繛鎺ヤ笉浼?xì)琚紓甯稿叧闂?/span>

4.       Socket Close

姣忎竴涓猻ocket瀵硅薄浼?xì)鎸佹湁涓涓猻ocket descriptor (鍏跺疄灝辨槸file descriptor)錛屾搷浣滅郴緇熷浜巗ocket descriptor鏈変竴涓渶澶ч檺鍒?/span>銆傚洜姝ゅ綋socket涓嶅啀浣跨敤鏃訛紝涓瀹氳璁板緱鍏抽棴錛屽嵆浣?/span>socket榪炴帴澶辮觸鎴栧嚭鐜板紓甯革紝鍙socket瀵硅薄涓嶄負(fù)null錛屼竴瀹氳璁板緱鍏抽棴銆?/span>

涓嬮潰鍥炬樉紺轟簡錛屽綋socket鍏抽棴鏃訛紝socket鐨勭姸鎬佸彉鍖?/span>(socket鐘舵佸彲浠ラ氳繃netstat鍛戒護(hù)鏌ョ湅)銆傛洿璇︾粏鐨勮В閲婏紝鍙互google涓涓嬨?br />

褰撲富鍔ㄤ竴鏂硅皟鐢?/span>close(鍏堣皟鐢?/span>close)鏃剁殑鐘舵佸彉鍖?/span>:

ESTABLISHED -> FIN_WAIT_1-> FIN_WAIT_2 -> TIME_WAIT -> CLOSED

褰撹鍔ㄤ竴鏂硅皟鐢?/span>close(鍚庤皟鐢?/span>close)鏃剁殑鐘舵佸彉鍖?/span>:

ESTABLISHED -> CLOSE_WAIT -> LAST_ACK -> CLOSED

閫氬父錛?/span>TIME_WAIT 鏄甯哥姸鎬侊紝榪囦竴孌墊椂闂?/span>(2MSL, 1鍒?/span>4鍒嗛挓)灝變細(xì)鑷姩娑堝け.

鎴戜滑闇瑕佺壒鍒敞鎰?/span>CLOSE_WAIT 鐘舵侊細(xì)

1錛?span style="font: 7pt 'Times New Roman'">   濡傛灉寰堥暱鏃墮棿鎵嶆秷澶憋紝琛ㄦ槑socket server澶勭悊澶參錛屽緢澶?/span>client宸茬粡榪炴帴鍒?/span>server錛屽彂閫佸畬鏁版嵁騫?/span>close浜嗐?/span>

2錛?span style="font: 7pt 'Times New Roman'">   濡傛灉涓鐩翠篃涓嶆秷澶憋紝琛ㄦ槑鏈?/span>socket娌℃湁姝e父close (瀵規(guī)柟宸茬粡close浜?/span>)

5.       SO_REUSEADDR Option

褰?/span>socket涓誨姩璋冪敤close鐨勬椂鍊欙紝浠庝笂闈㈠彲浠ョ煡閬擄紝瀹冩渶緇堜細(xì)榪涘叆TIME_WAIT 鐘舵侊紝闇瑕佽繃1鍒?/span>4鍒嗛挓錛屾墠鑳藉畬鍏?/span>close銆?/span>

褰?/span>socket澶勪簬TIME_WAIT 鐘舵佹椂錛屽畠浠嶇劧鍗犵敤姝e湪浣跨敤鐨?/span>IP/PORT銆傝繖鏍鳳紝濡傛灉鎴戜滑鐨勭▼搴?/span>(姣斿socket server)浣跨敤浜嗕竴涓浐瀹氱殑IP/PORT錛屽綋socket澶勪簬TIME_WAIT 鐘舵佹椂錛岀▼搴忓皢涓嶈兘绔嬪嵆閲嶅惎錛屼細(xì)鍑虹幇绔彛鍗犵敤閿欒銆?/span>

Socket鎻愪緵浜嗕竴涓?/span>setReuseAddress()鏂規(guī)硶錛屽彲浠ヨ緗綋socket澶勪簬TIME_WAIT 鐘舵佹椂錛屾槸鍚﹀厑璁稿叾瀹冭繘紼嬬粦瀹氳繖涓鍙c?/span>

濡傛灉鎴戜滑姝e湪寮鍙?/span>socket server錛屼竴瀹氳璁板緱璋冪敤ServerSocket.setReuseAddress(true).

Client socket涔熸湁榪欎釜鏂規(guī)硶錛岃屼笖鏈夋椂鍙兘闇瑕佹寚鏄?/span>client榪炴帴server鏃舵墍浣跨敤鐨勬湰鍦?/span>IP/PORT(涓鑸笉鐢ㄦ寚鏄庯紝緋葷粺浼?xì)闅忔満閫夋嫨涓涓?/span>PORT)銆備絾瀹為檯嫻嬭瘯錛屽湪client socket涓婅緗繖涓柟娉曞湪Windows鍜?/span>Solaris涓嬪茍涓嶈搗浣滅敤銆傚綋socket澶勪簬TIME_WAIT 鐘舵佹椂錛岄噸鍚?/span>client浠嶇劧鍑虹幇绔彛鍗犵敤閿欒銆備笂緗戞悳绱簡寰堥暱鏃墮棿錛屽緢澶氫漢閮界鍒頒簡榪欎釜闂錛屽彲鑳芥槸鎿嶄綔緋葷粺搴曞眰socket瀹炵幇闂銆傚洜涓烘祴璇曚嬌鐢?/span>C璇█寮鍙戠殑socket client錛屽悓鏍蜂篃鏈夎繖涓敊璇傛湁浜鴻LINUX涓嬪ソ鐢紝榪樻湁灝辨槸鍙互灝濊瘯淇敼tcp_time_wait_interval鏉ュ噺灝?/span>TIME_WAIT絳夊緟鏃墮棿



澶╁揩榛戜簡 2010-07-28 09:23 鍙戣〃璇勮
]]>
Socket Programming Considerations (1)http://www.tkk7.com/zhvfeng/archive/2010/07/26/327114.html澶╁揩榛戜簡澶╁揩榛戜簡Mon, 26 Jul 2010 01:31:00 GMThttp://www.tkk7.com/zhvfeng/archive/2010/07/26/327114.htmlhttp://www.tkk7.com/zhvfeng/comments/327114.htmlhttp://www.tkk7.com/zhvfeng/archive/2010/07/26/327114.html#Feedback1http://www.tkk7.com/zhvfeng/comments/commentRss/327114.htmlhttp://www.tkk7.com/zhvfeng/services/trackbacks/327114.html
鏈榪戜竴鐩村湪鍋歋ocket紼嬪簭錛岃繖閲屾妸涓浜汼ocket紼嬪簭鐨勬敞鎰忎簨欏規(guī)葷粨涓涓嬨備粖澶╁厛璇磋Socket涓殑Timeout錛屽叾瀹冪殑涓嬫琛ュ叏銆?br />

1.       Socket Timeout

鍐?/span>Socket紼嬪簭鐨勬椂鍊欓渶瑕佹敞鎰忚緗笅闈㈢殑timeout錛岄伩鍏嶅鏂規(guī)病鏈夊搷搴旂殑鏃跺欙紝瀵艱嚧Socket紼嬪簭鎸傝搗鎴栫瓑寰呮椂闂磋繃闀?/span>

1.1         Accept Timeout

Accept timeout 浠呭ServerSocket鏈夌敤銆?/span>ServerSocket 浣跨敤accept()鏂規(guī)硶鏉ョ洃鍚鎴風(fēng)Socket鐨勮繛鎺ャ?/span>

榛樿錛?/span>ServerSocket.accept() 鏂規(guī)硶浼?xì)涓鐩撮樆濉炵洿鍒版湁瀹㈡埛绔潵榪炴帴銆傞氬父錛屾垜浠笉闇瑕佽緗?/span>accept timeout.

浣嗘湁鏃跺欑壒孌婃儏鍐碉紝榪樻槸瑕佽冭檻璁劇疆accept timeout.

姣斿: 紼嬪簭A緇欑▼搴?/span>B鍙戜簡涓涓?/span>JMS娑堟伅錛岀劧鍚庣▼搴?/span>A鍚姩涓涓?/span>Socket Server錛屾兂閫氳繃socket絳夊緟鎺ユ敹紼嬪簭B鐨勮繑鍥炴秷鎭傚鏋滀笉璁劇疆accept timeout, 騫朵笖紼嬪簭B鍥犱負(fù)鏌愪簺鍘熷洜涓鐩翠笉鑳借繛鎺?/span>Socket Server錛屾渶緇堜細(xì)瀵艱嚧紼嬪簭A鎸傝搗銆?/span>

Accept Timeout鍙互榪欐牱璁劇疆錛?/span>

ServerSocket serverSocket = new ServerSocket(5555);

serverSocket.setSoTimeout(5000); // in milliseconds

while (true) {

    Socket socket = serverSocket.accept();

        …

}

1.2         Connect Timeout

褰?/span>Client绔繛鎺?/span>Server绔殑鏃跺欙紝鍙互鎸囧畾Connect Timeout

濡傛灉娌℃湁鎸囧畾錛屼細(xì)浣跨敤鎿嶄綔緋葷粺鐨勯粯璁ゅ?/span>:

OS

Default TCP timeout

BSD

75 seconds

Linux

189 seconds

Solaris

225 seconds

Windows XP

21 seconds

Connect Timeout鍙互榪欐牱璁劇疆錛?/span>

SocketAddress socketAddress = new InetSocketAddress(host, port);

socket = new Socket();

socket.connect(socketAddress, connectTimeout);

1.3         Receive Timeout

褰?/span>socket浠庡彟涓鏂規(guī)帴鏀舵暟鎹椂錛屽彲浠ヨ緗?/span>Receive Timeout

榛樿娌℃湁timeout錛?/span>socket浼?xì)涓鐩撮樆濉炵洿鍒版湁鏁版嵁鍙鍙栥?/span>

Receive Timeout鍙互榪欐牱璁劇疆錛?/span>

Socket socket = new Socket(host, port);

socket.setSoTimeout(timeout);

1.4         Send Timeout

Send Timeout鏄?/span>socket緇欏彟涓鏂瑰彂閫佹暟鎹椂浣跨敤鐨勩?/span>

涓嶈繃Java閲屾病鏈夊姙娉曡緗?/span>Send Timeout.

褰撶劧錛?/span>socket鍙戦佹暟鎹殑鏃跺欙紝浼?xì)棣栧厛鍙戦佸埌鏈満OS鐨勪竴涓?/span>buffer鍐呫備竴鑸彧瑕佷竴嬈″彂閫佺殑鏁版嵁涓嶆槸寰堝ぇ錛屽嵆浣垮鏂規(guī)寕璧鋒垨鏆傛椂涓嶈兘鎺ユ敹鏁版嵁錛屼篃涓嶄細(xì)瀵艱嚧鍙戦佹柟鎸傝搗銆?/span>




澶╁揩榛戜簡 2010-07-26 09:31 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 色偷偷亚洲第一综合| 国产精品酒店视频免费看| 瑟瑟网站免费网站入口| 亚洲精品国产啊女成拍色拍| 在线亚洲精品福利网址导航| 日韩中文字幕在线免费观看| 黄瓜视频影院在线观看免费| 久久A级毛片免费观看| 在线观看免费视频网站色| 老司机午夜在线视频免费| 天堂亚洲国产中文在线| 亚洲日韩中文字幕天堂不卡| 亚洲AV日韩AV永久无码免下载| 亚洲国产日韩成人综合天堂| 国产精品免费看久久久久| 免费无码精品黄AV电影| 国产免费毛不卡片| 亚洲免费观看网站| 中文字幕在线免费| 免费精品无码AV片在线观看| 国产成人免费AV在线播放| 一级有奶水毛片免费看| 国产黄在线播放免费观看| 免费中文字幕视频| 免费精品国自产拍在线播放| 特级毛片全部免费播放a一级| 青青青亚洲精品国产| 国产精品亚洲а∨无码播放麻豆| 亚洲精品无码专区久久| 亚洲欧美熟妇综合久久久久 | 四虎精品免费永久免费视频| 337P日本欧洲亚洲大胆艺术图| 亚洲国产成人久久精品大牛影视| 亚洲美国产亚洲AV| 亚洲AV永久无码天堂影院| 亚洲国产午夜精品理论片在线播放 | 亚洲AV永久无码精品一百度影院 | 日韩a毛片免费观看| xxxxxx日本处大片免费看| 精品久久久久久国产免费了| 伊人免费在线观看|