锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲AV无码成人网站久久精品大 ,国产亚洲3p无码一区二区,亚洲av无码久久忘忧草http://m.tkk7.com/zhvfeng/&nbsp;&nbsp;&nbsp;&nbsp;<i>鍒嗕韓鐭ヨ瘑銆佸垎浜揩涔?lt;/i>zh-cnTue, 13 May 2025 10:19:22 GMTTue, 13 May 2025 10:19:22 GMT60璋佽兘瑙e喅澶氫釜MDB璇誨彇JBoss Topic涓婄殑BytesMessage鍑虹幇鐨勫鎬棶棰?/title><link>http://m.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://m.tkk7.com/zhvfeng/archive/2010/08/24/329795.html</guid><wfw:comment>http://m.tkk7.com/zhvfeng/comments/329795.html</wfw:comment><comments>http://m.tkk7.com/zhvfeng/archive/2010/08/24/329795.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/zhvfeng/comments/commentRss/329795.html</wfw:commentRss><trackback:ping>http://m.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閮戒細鏀跺埌榪欎釜娑堟伅銆?br /> <br /> 浣嗗鎬殑鏄彧鏈変竴涓狹DB鑳芥甯歌鍙朆ytesMesage錛屽彟涓涓狹DB璇誨彇BytesMessage.<font style="background-color: #c0c0c0">readBytes</font>()濮嬬粓榪斿洖-1<br /> <br /> 鍚屾牱鐨勬祴璇曠▼搴忥紝鍦╓ebLogic涓婂氨姝e父銆?br /> <br /> JBoss鎬庝箞浼氬彂閫佸悓涓涓狟ytesMessage瀵硅薄鍒版墍鏈夌殑subscriber錛熸湁浜鴻В鍐寵繃鍚屾牱鐨勯棶棰樺悧錛?<br /> <br /> <br /> google浜嗗緢闀挎椂闂達紝涔熷皾璇曚簡寰堝鏂規硶錛屼技涔庢病浠涔堝ソ鐨勫姙娉曘備竴縐嶆柟娉曟槸閬垮厤浣跨敤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://m.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://m.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://m.tkk7.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_35_358_Open_Text"><span style="color: #000000">{<br /> <img align="top" src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" alt="" /><br /> <img align="top" src="http://m.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://m.tkk7.com/images/OutliningIndicators/InBlock.gif" alt="" />        <br /> <img align="top" src="http://m.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://m.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://m.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://m.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://m.tkk7.com/images/OutliningIndicators/InBlock.gif" alt="" />        <br /> <img align="top" src="http://m.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://m.tkk7.com/images/OutliningIndicators/InBlock.gif" alt="" /><br /> <img align="top" src="http://m.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://m.tkk7.com/images/OutliningIndicators/ExpandedBlockEnd.gif" alt="" /></span><span style="color: #000000">}</span></span></div> <img src ="http://m.tkk7.com/zhvfeng/aggbug/329795.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/zhvfeng/" target="_blank">澶╁揩榛戜簡</a> 2010-08-24 15:54 <a href="http://m.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://m.tkk7.com/zhvfeng/archive/2010/08/17/329078.html澶╁揩榛戜簡澶╁揩榛戜簡Tue, 17 Aug 2010 02:47:00 GMThttp://m.tkk7.com/zhvfeng/archive/2010/08/17/329078.htmlhttp://m.tkk7.com/zhvfeng/comments/329078.htmlhttp://m.tkk7.com/zhvfeng/archive/2010/08/17/329078.html#Feedback0http://m.tkk7.com/zhvfeng/comments/commentRss/329078.htmlhttp://m.tkk7.com/zhvfeng/services/trackbacks/329078.html浼楁墍鍛ㄧ煡錛屾墍鏈夌殑Java class鏂囦歡閮芥槸鐢?/span>JVM錛堣櫄鎷熸満錛夊姞杞藉茍鎵ц鐨勩?/span>娣卞叆鐞嗚ВJVM瀵逛簬鎴戜滑鎻愰珮Java鎶鏈拰瑙e喅Java闂閮芥湁闈炲父澶х殑甯姪銆?/span>

JVM鍐呴儴涓昏鍖呮嫭鍐呭瓨綆$悊鍜?/span>Class Loader錛堢被鍔犺澆鍣級涓や釜閮ㄥ垎銆傜啛鎮変簡鍐呭瓨綆$悊錛屾垜浠氨浼氭竻妤氱▼搴忓湪鍐呭瓨涓槸鎬庝箞鍒嗛厤鍜屾墽琛岀殑錛屽氨鑳借В鍐蟲墍鏈夊拰瀵硅薄鐩稿叧鐨勯棶棰橈紙姣斿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鐢辮皝鏉ュ姞杞藉憿錛熸垜浠◢鍚庝細鏉ヨ璁鴻繖涓棶棰樸?/span>

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

1.       緇ф壙鍏崇郴

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

2.       浠g悊鍏崇郴

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

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

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

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


濡傛灉鎴戜滑璇鋒眰
Class Loader E鍘誨姞杞?/span>Test.class錛岄鍏堝畠浼氳姹傜埗Class Loader D鍘誨皾璇曞姞杞姐傚悓鏍?/span>Class Loader D浼氬厛璇鋒眰瀹冪殑鐖?/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鍦ㄥ悇鑷殑鎼滅儲鑼冨洿鍐呴兘鎵句笉鍒?/span>Test3.class銆傛渶緇堜細鐢?/span>Class Loader F鑷繁鍔犺澆F:"Test3.class鍒板唴瀛樹腑銆?/span>

濡傛灉鎴戜滑璇鋒眰Class Loader D鍘誨姞杞?/span>Test3.class錛屾渶緇堝氨浼氬嚭鐜?/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錛屽氨浼氬嚭鐜?/span>NoClassDefFoundError鎴?/span>ClassNotFoundException

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

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

榪樹互鍥?/span>1涓轟緥錛屽鏋?/span>Test4.class璁塊棶Test3.class錛屾垨鍙嶈繃鏉?/span>Test3.class璁塊棶Test4.class錛岄兘浼氬紩璧?/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)浠ュ強鍙﹀涓や釜鐢?/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鐨勬牳蹇冪被搴撱傚弽涔嬪垯浼氬嚭閿欍?/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       鎵鏈夌殑綾婚兘浼氭渶鍏堢敱瀹冨皾璇曞姞杞?/span>

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

2.       EJB Class Loader (1)

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

l       涓嶅悓鐨?/span>EJB jar鏂囦歡浼氳涓嶅悓瀹炰緥鐨?/span>Class Loader鍔犺澆錛屽洜姝?/span>EJB jar褰兼涔嬮棿浜掔浉鐪嬩笉鍒板鏂?/span>

3.       WAR Class Loader (1)

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

l       涓嶅悓鐨?/span>WAR鏂囦歡浼氳涓嶅悓瀹炰緥鐨?/span>Class Loader鍔犺澆錛屽洜姝?/span>WAR褰兼涔嬮棿浜掔浉鐪嬩笉鍒板鏂?/span>

4.       EAR Class Loader

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

l       涓嶅悓鐨?/span>EAR鏂囦歡浼氳涓嶅悓瀹炰緥鐨?/span>EAR Class Loader鍔犺澆錛屽洜姝?/span>EAR褰兼涔嬮棿浜掔浉鐪嬩笉鍒板鏂?/span>

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

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

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

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

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



]]>
璋佽兘甯繖瑙i噴涓涓嬩負浠涔堣繖涓▼搴忎細姝婚攣錛?/title><link>http://m.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://m.tkk7.com/zhvfeng/archive/2010/08/04/327956.html</guid><wfw:comment>http://m.tkk7.com/zhvfeng/comments/327956.html</wfw:comment><comments>http://m.tkk7.com/zhvfeng/archive/2010/08/04/327956.html#Feedback</comments><slash:comments>23</slash:comments><wfw:commentRss>http://m.tkk7.com/zhvfeng/comments/commentRss/327956.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/zhvfeng/services/trackbacks/327956.html</trackback:ping><description><![CDATA[<p> 澶у涓嶇敤鍏沖績紼嬪簭瀹為檯閫昏緫鏄惁姝g‘錛屽彧鏄ソ濂囷紝涓轟粈涔堣繖涓▼搴忎細hang浣忎笉榪愯浜嗭紵鑰屼笖CPU浼氬崰鐢?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浼氱湅鍒幫紝紼嬪簭hang鍒幫細<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://m.tkk7.com/zhvfeng/aggbug/327956.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/zhvfeng/" target="_blank">澶╁揩榛戜簡</a> 2010-08-04 17:40 <a href="http://m.tkk7.com/zhvfeng/archive/2010/08/04/327956.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍙︾被NoClassDefFoundErrorhttp://m.tkk7.com/zhvfeng/archive/2010/07/29/327446.html澶╁揩榛戜簡澶╁揩榛戜簡Thu, 29 Jul 2010 07:54:00 GMThttp://m.tkk7.com/zhvfeng/archive/2010/07/29/327446.htmlhttp://m.tkk7.com/zhvfeng/comments/327446.htmlhttp://m.tkk7.com/zhvfeng/archive/2010/07/29/327446.html#Feedback0http://m.tkk7.com/zhvfeng/comments/commentRss/327446.htmlhttp://m.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錛屽氨浼氬嚭鐜癗oClassDefFoundError

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

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://m.tkk7.com/zhvfeng/archive/2010/07/28/327281.html澶╁揩榛戜簡澶╁揩榛戜簡Wed, 28 Jul 2010 01:23:00 GMThttp://m.tkk7.com/zhvfeng/archive/2010/07/28/327281.htmlhttp://m.tkk7.com/zhvfeng/comments/327281.htmlhttp://m.tkk7.com/zhvfeng/archive/2010/07/28/327281.html#Feedback1http://m.tkk7.com/zhvfeng/comments/commentRss/327281.htmlhttp://m.tkk7.com/zhvfeng/services/trackbacks/327281.html1.       Socket ack (acknowledgement)

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

Socket ack鏄樉紺虹殑鍦ㄥ簲鐢ㄧ▼搴忎腑鍔犲叆鐨勪竴縐嶉氳鍗忚銆傚鏋滀笉浣跨敤ack錛屽湪socket閫氳涓紝鍙兘浼氫涪澶辨暟鎹?/span>

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

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

2.       Socket Keep Alive

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

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

3.       Heartbeat

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

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

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

4.       Socket Close

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

涓嬮潰鍥炬樉紺轟簡錛屽綋socket鍏抽棴鏃訛紝socket鐨勭姸鎬佸彉鍖?/span>(socket鐘舵佸彲浠ラ氳繃netstat鍛戒護鏌ョ湅)銆傛洿璇︾粏鐨勮В閲婏紝鍙互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鍒嗛挓)灝變細鑷姩娑堝け.

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

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 (瀵規柟宸茬粡close浜?/span>)

5.       SO_REUSEADDR Option

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

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

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

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

Client socket涔熸湁榪欎釜鏂規硶錛岃屼笖鏈夋椂鍙兘闇瑕佹寚鏄?/span>client榪炴帴server鏃舵墍浣跨敤鐨勬湰鍦?/span>IP/PORT(涓鑸笉鐢ㄦ寚鏄庯紝緋葷粺浼氶殢鏈洪夋嫨涓涓?/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://m.tkk7.com/zhvfeng/archive/2010/07/26/327114.html澶╁揩榛戜簡澶╁揩榛戜簡Mon, 26 Jul 2010 01:31:00 GMThttp://m.tkk7.com/zhvfeng/archive/2010/07/26/327114.htmlhttp://m.tkk7.com/zhvfeng/comments/327114.htmlhttp://m.tkk7.com/zhvfeng/archive/2010/07/26/327114.html#Feedback1http://m.tkk7.com/zhvfeng/comments/commentRss/327114.htmlhttp://m.tkk7.com/zhvfeng/services/trackbacks/327114.html
鏈榪戜竴鐩村湪鍋歋ocket紼嬪簭錛岃繖閲屾妸涓浜汼ocket紼嬪簭鐨勬敞鎰忎簨欏規葷粨涓涓嬨備粖澶╁厛璇磋Socket涓殑Timeout錛屽叾瀹冪殑涓嬫琛ュ叏銆?br />

1.       Socket Timeout

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

1.1         Accept Timeout

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

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

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

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

濡傛灉娌℃湁鎸囧畾錛屼細浣跨敤鎿嶄綔緋葷粺鐨勯粯璁ゅ?/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浠庡彟涓鏂規帴鏀舵暟鎹椂錛屽彲浠ヨ緗?/span>Receive Timeout

榛樿娌℃湁timeout錛?/span>socket浼氫竴鐩撮樆濉炵洿鍒版湁鏁版嵁鍙鍙栥?/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鍙戦佹暟鎹殑鏃跺欙紝浼氶鍏堝彂閫佸埌鏈満OS鐨勪竴涓?/span>buffer鍐呫備竴鑸彧瑕佷竴嬈″彂閫佺殑鏁版嵁涓嶆槸寰堝ぇ錛屽嵆浣垮鏂規寕璧鋒垨鏆傛椂涓嶈兘鎺ユ敹鏁版嵁錛屼篃涓嶄細瀵艱嚧鍙戦佹柟鎸傝搗銆?/span>




澶╁揩榛戜簡 2010-07-26 09:31 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 曰批全过程免费视频免费看| 97无码免费人妻超级碰碰夜夜| 日韩在线视频线视频免费网站| 中文字幕无码亚洲欧洲日韩| 亚洲自国产拍揄拍| jlzzjlzz亚洲jzjzjz| 亚洲天堂2016| 国内免费高清在线观看| 亚洲另类无码一区二区三区| 黄网站色视频免费看无下截| 999在线视频精品免费播放观看| 国产成人免费福利网站| 亚洲国产三级在线观看| 亚洲乱码在线视频| 国产成人精品一区二区三区免费| 色窝窝免费一区二区三区| 五月天网站亚洲小说| 福利片免费一区二区三区| 最近免费中文字幕高清大全| 亚洲精品第一国产综合精品99| 亚洲同性男gay网站在线观看| 在线a级毛片免费视频| 国产亚洲精品精品精品| 在线观看亚洲精品福利片| 亚洲欧美日韩中文二区| 免费一级毛片在播放视频| 亚洲中文无码永久免| 91精品国产免费久久久久久青草 | 亚洲精品福利在线观看| 国产美女无遮挡免费视频网站| 亚洲av无一区二区三区| 免费毛片a在线观看67194| 国产精品久免费的黄网站 | 国色精品va在线观看免费视频| 人与禽交免费网站视频| 亚洲AV无码日韩AV无码导航| 黄 色一级 成 人网站免费| 国产一级淫片免费播放电影| 天堂亚洲国产中文在线| 亚洲另类激情专区小说图片| 午夜影院免费观看|