原创 比較難查找的死循環(java)

項目的開發人員找到我說遊戲掛掉了。症狀:1、客戶端能跟服務器創建連接,但是服務器對收到的消息不進行業務邏輯處理 2、cpu和內存均正常。本能

原创 java.lang.OutOfMemoryError: unable to create new native thread

bootstrap = new ServerBootstrap(new NioServerSocketChannelFactory( Executors.newCachedThreadPool(), Executors.ne

原创 AOP的三種實現

1、利用Spring AOP2、所依賴的包是普通java編譯,非aspectJ編譯<!-- 編譯加強 --> <plugin> <groupId>org.codehaus.mojo</groupId>

原创 同一個java工程打兩個不同的包

目的:1、打一個普通java包,用於spring aop 2、用aspectj打一個包,用於字節碼加強的實現方式實現: <profiles> <profile> <id>aspec

原创 log4j配置熱加載

log4j熱加載的原理網上說的很多,我就不多說了。主要整理一下如何定位目錄以及如何設置熱加載File f = new File("./log4j.xml"); logger.error("定位工作目錄:"

原创 項目發佈腳本

原理:兩個svn,一個研發svn,用於研發時使用,一個發佈svn用於產品發佈。實現時把研發svn的內容編譯打包,發佈到發佈svn。腳本release.sh代碼如下base_dir=`dirname $0`r

原创 小試groovy

# cat helloworld #!/usr/bin/env groovyprintln("Hello world")for (a in this.args) { println("Argument:

原创 獲取class類字節數組的方法

研究jvm hotswap的過程中,有一步需要讀取java class的字節流,本來想只提供一個class就好了,但是在Web項目下不通用,先記錄下來,留待以後使用。 private static byte

原创 samba使用總結

1、安裝 #rpm -qa | grep samba #yum install samba2、配置 cat /etc/samba/smb.conf [global]workgroup = wor

原创 複製文件的腳本(linux+windowx)

功能:把指定文件夾(不包括)下的所有東西複製到指定文件夾下。 在產品發佈的時候,某些不共享的配置文件可以通過此腳本在項目第一次發佈的時候生成。windows版本(當前目錄下resources)re

原创 批量替換指令

2155 find ./ -name "*.jsp" | xargs -i perl -p -i.bak -e 's/\r\n/\n/g' {}find ./ -name "*.bak" -type f

原创 開發經驗、流程總結

1、原則: 代碼應該儘早提交提交前提:所提交的代碼不會影響其他業務,不會影響其他人的使用。2、正確的開發流程:策劃設計需求--->技術閱讀需求文檔-->技術同策劃溝通,深入理解需求--》雙方確認無誤指定研發

原创 Linux下一鍵安裝軟件腳本

功能:一鍵安裝軟件。可以選擇要安裝的選項(如1 2 3 ),直接回車的話,默認全安裝#!/bin/sh:/bin/bash export PATH=/usr/bin:/bin:/sbin:/usr/sbi

原创 大量close_wait以及調用ip地址錯誤獲取方法引發的故障

記錄一下這幾天幫助兄弟項目組解決的幾個問題工程:網關服務器,業務邏輯少,操作不費時問題:大量的Close_wait,訪問速度較慢分析&解決:1、close_wait是TCP/IP協議中被動關閉方收到Fin後

原创 Btrace實戰

btrace可以對是針對java平臺的一個動態追蹤工具。簡單點說就是可以在不停服務的情況下,對現網數據進行追蹤分析和定位。最近爲了定位一個jvm進程退出時java進程的運行情況,我學習了下btrace的使用