java broken pipe_java Broken pipe 几种原因
Broken pipe產(chǎn)生的原因通常是當(dāng)管道讀端沒有在讀,而管道的寫端繼續(xù)有線程在寫,就會(huì)造成管道中斷。(由于管道是單向通信的) SIGSEGV(Segment fault)意味著指針?biāo)鶎?duì)應(yīng)的地址是無效地址,沒有物理內(nèi)存對(duì)應(yīng)該地址。 以下是UNIX的信號(hào)解釋: 11 / SIGSEGV: Unerlaubter Zugriff auf Hauptspeicher (Adressfehler). 12 / SIGUSER2: User-defined Signal 2 (POSIX). 把_JAVA_SR_SIGNUM改成12只是將信號(hào)至成user-defined,讓它不報(bào)出來而已,不能解決問題。 建議采取的方式:
1. 資源沒有完全釋放,用完后要至NULL 值(JAVA的GC沒那么完善)
2. 數(shù)據(jù)庫連接順序關(guān)閉!(RS,PS,CONN)
3. 優(yōu)化JAVA虛擬機(jī) 加入相應(yīng)的內(nèi)存參數(shù)!
4. 不要在數(shù)據(jù)庫中獲取大段文本(即一個(gè)欄位的值不要太大)
5. JAVA 不推薦 用String 獲取大量信息。(容易造成內(nèi)存泄露,建議用StringBuffer)
6. 頁面重復(fù)提交
7. 盡量將METHOD移到JAVA中,在JSP中所有的方法都看做全局變量,編譯執(zhí)行本身就有很多問題。
8. 如果是查詢功能,盡可能的使用非XA(事務(wù))。
9. 盡量用較新較穩(wěn)定版本的JDK,低版本的JVM本身也有很多BUG,比如1。5的垃圾回收比起1。2,1。3一定是非常明顯的進(jìn)步。
10. LINUX系統(tǒng)本身沒有這么穩(wěn)定,有些問題無法避免的~~:)
總結(jié)
以上是生活随笔為你收集整理的java broken pipe_java Broken pipe 几种原因的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: springboot+redis主从复制
- 下一篇: Typro简明教程