메모리릭으로 IBM AIX 서버의 웹로직 와스가 내려갔다.

그리고 아래처럼 힙덤프 파일이 쌓였다



이중 phd 파일은 IBM의 HeapAnalyzer 를 사용하여 볼 수 있다.

https://www.ibm.com/developerworks/community/groups/service/html/communityview?communityUuid=4544bafe-c7a2-455f-9d43-eb866ea60091

 ha445.jar

다운받아보면 그냥 jar 파일인데 실행은 아래처럼 시켜주면

java -Xmx1024m -jar ha445.jar

사용해볼 수 있다.


그래서 힙덤프파일을 open 하고 나면 위에처럼 분석하는 진행 화면이 나오고 




이렇게 멋진(?) GUI와 함께 볼수 있다.



이전에 jprofiler 처럼 실시간은 안되지만 이렇게 덤프파일을 할당한 객체를 트리형태로 보여주며 차트형식으로 보여주고

leak suspection 에서의 분석은 유용했다.


여튼 난 이걸로 큰거하나 잡았다. 휴~




참조링크#1,

참조링크#2


Posted by 없다캐라

호. 이렇게 간단히 될줄은 몰랐음.

구글링으로 건진 팁.


public static void generateScreenImage(String html) throws IOException, AWTException
{
	Robot r = new Robot();
	Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
	Rectangle rct = new Rectangle(0,0,d.width,d.height);

	BufferedImage bimg = r.createScreenCapture(rct);

	ImageIO.write(bimg,"jpeg",new File("screen_capture.jpg"));
}
 
Posted by 없다캐라

log4j 설정 파일로 xml로 사용하다 보니 이 에러가 났다.

무시하고 써도 상관없는 듯 하지만 구글링을 해보니. <참조>


문제는 <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 에 정의된 대로 순서를 지켜줘야 된다는 이야기

스키마 파일들은 어렵군.


<renderer></renderer>
<appender></appender>
<plugin></plugin>
<logger></logger>
<category></category>
<root></root>
<loggerfactory></loggerfactory>
<categoryfactory></categoryfactory>

이런 순서를 지켜서 xml 설정파일을 작성하여야 한다.


젠장~

Posted by 없다캐라
System.LoadLibrary()를 사용하여 native code를 JNI로 연결하여 사용하려고 할 경우 OSGI 경우에서는 약간의 문제가 있다.

dll을 jvm에서 load 하여 사용할 경우 jvm이 restart 되지 않는 이상 dll을 unload 못시킨다고 한다.
구글링을 해보니
만약, unload 시키려고 할 경우는 편법적인 방법을 사용하여 unload 시키네 마네 하지만 보장할 수 있는 방법은 아닌것 같다.

OSGi는 번들을 동적으로 load/unload 하여 deploy 시킬 수 있는 플랫폼이다.

이런 OSGi의 dynamic 함이 jvm의 dll load와 같이 설치는 가능하나 삭제는 극히 힘든 타입의 방식을 만나면 어떻게 처리될까?

그것이 Bundle-NativeCode 이며, OSGi에서 제안한 방법이다.

Bundle-NativeCode: lib/test.dll; osname=Win32; processor=x86

이런 형태로 지정하여 놓고 dll을 System.LoadLibrary()을 하면 2가지 문제가 해결된다.

첫째로는 위의 번들을 re-deploy 해도 dll load가 된다. 번들을 uninstall 하고 난 후 실제로 jvm에서 dll이 unload 되었는지는 확인해볼 수 없지만 개발자 입장에선 dynamic 함이 가능하게 보인다.

둘째로는 System.LoadLibrary()으로 load 함으로 system path에 등록된 경로를 뒤지는 코드는 집어 넣지 않아도 된다.
저렇게 lib 폴더 밑에 test.dll을 집어넣으면 System.LoadLibrary("test") 라고 하면 바로 된다.

^^하지만 과연 쉽게 쓸만한가?


Posted by 없다캐라
eclipse update 주소 바꼈드만

블로그글 따라 했다가 잘 안되드만 역시 그냥 해당 사이트 가서 확인하는게 제일 정확하네

현재 환경

eclipse 3.5 galileo에다가 m2eclipse update site는


뭐. 이것도 시간 지나면 바뀔 것이므로 안되면 

여기서 확인해야 한다.
Posted by 없다캐라
이전버튼 1 2 3 4 이전버튼

블로그 이미지
없다캐라

태그목록

공지사항

Yesterday40
Today22
Total188,692

달력

 « |  » 2018.11
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  

글 보관함