'Server'에 해당되는 글 36건

  1. 2014.01.16 Linux /proc 디렉터리에 있는 정보 확인
  2. 2012.08.28 vi 에서 붙여넣기 할 때 탭이 깨지는 경우
  3. 2012.01.26 [Linux] top에서의 VIRT와 RES 2
  4. 2011.12.09 원격 장비의 MAC address (맥 어드레스) 확인하는 방법
  5. 2011.12.08 [TCP 설정] 리눅스에서 TCP 설정하기
  6. 2011.09.07 [id_rsa] ssh 서버에 쉽게 로그인하기
  7. 2011.08.30 [JDK7] 2011년 8월 현재 JDK 7은 시기상조인듯 1
  8. 2011.07.27 [Linux] vi 에서 커서 이동이 잘 안되고, 이상한 문자가 찍힐때 로케일(locale) 수정방법
  9. 2010.12.03 [Linux] 리눅스 서버의 cached 된 메모리가 많을 때...
  10. 2010.07.09 [Servlet 3.0] Servlet 3.0에 대한 보다 자세한 자료 1
  11. 2010.05.25 [Servlet 3.0] 서블릿 3.0의 변경사항을 쉽게 볼 수 있는 Glassfish 샘플들
  12. 2010.04.04 [Filesystem] 파일 시스템 별 차이 위키
  13. 2010.03.12 [Linux 리눅스] 계정 추가 삭제 (사용자 추가 삭제)
  14. 2010.02.18 [Glassfish] Glassfish 서버 메모리 세팅 관련 링크
  15. 2010.01.01 [linux] 커버로스(kerberos) 패스워드 변경 명령어. (kinit)
  16. 2009.11.04 [Linux] netstat와 wc 명령어를 사용하여 네트워크 상태 확인하기
  17. 2009.10.08 [Tomcat] Tomcat 성능 튜닝 가이드라인 (tomcat performance tuning)
  18. 2009.08.14 [IBM RedBooks] 리눅스 관련 성능 튜닝 가이드 라인
  19. 2009.08.11 [폴더 or 디렉토리 크기] 리눅스에서 특정 폴더 크기 확인하기
  20. 2009.06.12 [Linux] RSA 키가 바뀌었다는 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! 메시지가 뜨면
  21. 2009.05.19 [Glassfish] Glassfish 설치하기 - 4. Admin 콘솔 실행하기
  22. 2009.05.18 [리눅스] 리눅스에서 vi 나, 각종 메시지에서 한글이 깨질때 (리눅스 한글 변경)
  23. 2009.05.10 [Google Application Engine] Google App Engine 시작하기
  24. 2009.05.06 [가상OS] Virtualbox 제거(삭제)하기
  25. 2009.04.17 [Glassfish] 요청한 URL이 없는 경우 디렉토리 목록(Directory listring) 안보이게 하기
  26. 2009.03.23 [가상 OS] VMware, Parallels 등은 더이상 필요 없다. 이제 Virtualbox 다. 3
  27. 2009.02.27 [Apache와 Tomcat 연동] 한대의 apache(아파치)와 두대의 tomcat(톰켓, 탐킷)을 연동할 때...
  28. 2009.02.06 [리눅스] 자바 개발용 환경 세팅
  29. 2009.02.05 [리눅스 설치] Centos 설치시 관련 세팅
  30. 2009.01.23 [Glassfish] Glassfish 설치하기 - 3. 서버 시작하기

리눅스의 /proc에는 시스템에 대한 많은 정보들을 제공한다.

특히 /proc 디렉터리에 있는 숫자로 된 디렉터리 안에는 각 프로세스의 정보를 상세히 제공한다. 여기서 숫자는 해당 프로세스의 아이디다. 

예를 들어 /proc/1 디렉터리에 들어가면 매우 많은 파일들이 존재하는 것을 볼 수 있다.

프로세스 정보 디렉터리에 존재하는 파일에 대한 정보가 잘 정리된 위키가 있어서 공유한다.

http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/system_programing/proc/GetSMSInfo

이거 만드신 분 복받으실 꺼에요. (중간에 오타는 좀 보이지만, 그래도 ...)

Posted by tuning-java
,

가끔 vi에서 설정 파일을 열어서 웹에서 복사한 내용을 붙여넣기 할 때,
앞에 탭이 마음대로 추가되는 경우가 있다. 

이 경우 붙여넣기 전에 다음의 작업을 수행해 주면 된다고 한다. 

:set paste

이렇게 해놓고 편집모드에서 붙여 넣으면 깔끔하게 내용이 추가된다.
원상 복구하려면  

:set nopaste

명령을 실행하면 된다. 


이런 작업을 하고 싶지 않으면, 명령모드에서 

gg=G

라고 치면 자동으로 indent정렬을 해준다. 이클립스에서 Ctrl+Shift+F 누른거 처럼...


검색 관련 내용 

추가로 /를 사용하여 검색할 때,
:set hlsearch
를 지정해주면, 검색한 단어가 하이라이트 표시된다. 

그리고, / 자체가 검색을 나타내는 단축키이므로,
/deploy/tomcat을 조회하려면
/\/deploy\/tomcat
이렇게 조회하여야만 한다.

 

Posted by tuning-java
,

top이라는 명령어로 리눅스를 모니터링하다보면
VIRT 와 RES가 있는 것을 볼 수 있다. 


man top 에서 확인해 보니

VIRT  --  Virtual Image (kb)

          The total amount of virtual memory used by the task.  It includes all code, data and shared libraries plus pages that have been swapped out. (Note: you  can define the STATSIZE=1 environment variable and the VIRT will be calculated from the /proc/#/state VmSize field.)

          VIRT = SWAP + RES.


RES  --  Resident size (kb)

          The non-swapped physical memory a task has used.

          RES = CODE + DATA.


요렇게 나온다. 

결론적으로 해당 프로세스에서 물리적인 메모리를 사용하는 크기는 RES 이며,

SWAP 영역에서 사용하는 메모리 + shared + swapped를 합친것이 VIRT 다.


따라서 VIRT 값과 RES 값의 차이가 크다는 이야기는 SWAP 을 쓸 확률이 높다는 의미 인 것으로 보인다. 자바에서는 Shared 메모리의 크기가 그리 크지 않으므로, 만약 VIRT 만 크다면 SWAP 확인해 보고, 애플리케이션에서 도대체 무슨 일이 일어나는지를 잘 째려봐야 할 듯 하다.

어떻게 째려 봐야 할지는 좀 고민 해봐야 할 듯~~~ 

Posted by tuning-java
,
현재 사용하는 장비와 물려있는 네트워크 상의 장비에 대한 맥 어드레스를 확인할 일이 생겼는데, 알 방법이 없서 막막했다.
(맥 주소는 보통 16 진수의 조합으로 나타나는데, 해당 장비에서 제공한 맥 주소는 그냥 숫자로 나와서리 - -)

하지만, 구글링을 통해서 확인해 본 결과 다음의 명령어를 사용하면 된다.

arp -a

확인 결과 맥에서도 되고 윈도우에서도 된다. 그러나 리눅스에서는 안된다. (이것도 뭔가 있겠지? ㅎㅎ)
 
그런데, 그냥 숫자인 10진수로 나타나도 공학용 계산기로 16진수로 변환하면 동일하다는 것도 확인했다.  
Posted by tuning-java
,

 http://publib.boulder.ibm.com/wasce/V1.0.1/ko/Tasks/Tuning/Linux.html  
링크를 보면 TCP 설정을 어떻게 해야만 성능을 최적화 할 수 있는지 나와 있다.

timeout_timewait : TCP/IP가 닫힌 연결을 해제하여 자원을 다시 사용하기 전에 경과되어야 하는 시간은 
/proc/sys/net/ipv4/tcp_fin_timeout
파일에

tcp_keepalive_time : TCP/IP가 대기 연결이 계속 원래 상태를 유지하는지 확인을 시도하는 빈도 값은 
/proc/sys/net/ipv4/tcp_keepalive_time
파일에 (초 단위임)

tcp_keepalive_intvl : 상대로부터 활성화 상태 지속 응답이 수신되지 않을 경우 TCP/IP에서 활성화 상태 지속 전송을 반복하는 빈도 값은
/proc/sys/net/ipv4/tcp_keepalive_intvl
파일에

tcp_keepalive_probes : TCP/IP가 기존 연결에 대한 수신확인되지 않은 활성화 상태 지속 메시지를 재전송하는 횟수를 결정 값은
/proc/sys/net/ipv4/tcp_keepalive_probes
파일에 각각 선언되어 있다.  
 
Posted by tuning-java
,

http://blog.nextcube.pe.kr/entry/ssh-%EC%9D%B8%EC%A6%9D%ED%82%A4%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EB%A1%9C%EA%B7%B8%EC%9D%B8

그리고, 아래 URL도 정리가 깔끔하게 잘 되어 있다. 

http://newstars.tistory.com/122


2012년 4월 13일 추가

여기서 중요한 것은 키의 권한인데.

맥OS를 사용하면 
.ssh 디렉터리는 chmod 700 .ssh
id_rsa 파일은 chmod 600 id_rsa 
로 권한을 지정해야 함. 

그렇지 않으면 

bad permissions : ignore key : 하면서 패스워드 물어봄. 




Posted by tuning-java
,
http://www.theserverside.com/discussions/thread.tss?thread_id=62891
이 글을 읽어 보면,
JDK7에 적합한 Tomcat 8 을 준비한다고 한다.

게다가 JDK7은 Crash가 발생하는 버그도 있고...
Tomcat 8이 나온 후 안정화 되려면 멀었으니,
결론적으로는 JDK 7을 제대로 쓰려면 1년 이상 기다려야 한다는 이야기...

 
Posted by tuning-java
,
가끔 어떤 서버에 들어가서 작업할때 vi와 같은 에디터에서 
편집모드에서 커서 이동이 잘 안되고, 이상한 문자가 찍혀버릴때가 있다.
그런 경우에는 로케일이 한글로 되어 있을 확률이 높다.
따라서 콘솔 창에서

$  locale

이라고 쳐 보면 지역 정보가 어떻게 되어 있는지를 볼 수 있다.
어떤 로케일을 지원하는지 보려면,

$ locale -a

이라고 입력해보면 된다.
서버의 설정을 변경하지 않고,
지금 작업하고 있는 장비의 터미널창에서만 사용하는 로케일을 변경하려면

$ export LC_ALL=C

라고 지정하면, 모든 로케일을 C에 맞추어준다.

 나도 어깨너머로 배운거라서,
더 자세한것을 물어보면 모른다는 답변밖에~~~ ㅋㅋ 
Posted by tuning-java
,
free 라는 명령어를 사용하면 리눅스 서버의 메모리 사용량을 볼 수 있다.
여기에 -m옵션을 더하면 MB 단위로 데이터를 볼 수 있다.

만약 이 명령어를 사용했을 때 cached 메모리 크기가 몇기가일 경우,
매우 찜찜할 수도 있다.
따라서 이러한 경우엔 다음과 같은 명령어를 치면 된다.
(외쿡 아저씨들의 설명에는 아래의 sync명령어를 먼저 수행한 후 하라고 되어 있다.)

sync
echo 3 > /proc/sys/vm/drop_caches

이렇게 수행한 후 free -m 명령어를 수행해 보면,
cached 영역에 있는 메모리가 줄어든 것을 볼 수 있다.

관련 내용은 
를 참조하기 바란다.

Posted by tuning-java
,
드디어 Tomcat 7.0 Beta도 나오고,
Servlet 3.0을 쉽게 접할 수 있는 시대가 머지 않았다.

관련 자료를 찾던 중 가장 설명이 잘 되어 있는 문서를 찾았다.
작년 자바원에서 이미 자세히 설명해 놓았네...

자바 기반의 웹 개발하신다면 꼭 한번은 읽어 보시길...
Posted by tuning-java
,
https://glassfish-samples.dev.java.net/source/browse/*checkout*/glassfish-samples/tags/JAVAEE6_SAMPLES-0_9-b16/ws/javaee6/docs/list.html

링크를 보면 J2EE 6와 Servlet 3.0의 달라진 점들을 볼 수 있다.

좀더 뒤져보니 실제 소스는 
로 다운로드 하면 된다. ^^;

해당 파일을 다운 받아서
java -jar javaee6-samples-1.0-b03-installer.jar
를 커맨드 창에서 수행하면 된다.

그렇다면 Servlet 3.0은 머가 어떻게 바뀌었을까?
외국에 친절한 아저씨가 정리해 놓은 글이 있으니 아래 링크를 참조하기 바란다.
(영어 잘 못해도 자바 할 줄 알면 이해 될꺼다)

내가 필요한 기능들만 간단하게 두 줄로 요약하면,
- web.xml에 더 이상 설정할 필요없이 소스에 servlet과 filter를 지정하면되고, fragment라는 것도 지원한다.
- 하나의 쓰레드에서 여러 요청을 처리할 수 있는 AsyncContext를 제공한다.


그럼 이러한 Servlet 3.0을 돌릴수 있는 서버는 없을까나?
당연히 있다. Glassfish 3.0에서는 Servlet 3.0을 지원하고, J2EE 6를 지원한다.
가장 쉽게 개발해 볼 수 있는 환경은 glassfish가 내장된(?) eclipse를 설치해서 써 보는거다.
링크는 아래에...


Posted by tuning-java
,
http://en.wikipedia.org/wiki/Comparison_of_file_systems

파일시스템 별로 장단점과 차이점등이 잘 정리되어 있다.
Posted by tuning-java
,
계정 추가하기

useradd [userid]

계정 패스워드 지정하기

passwd [userid]
패스워드 입력1
패스워드 입력2
(두번 다 동일한 패스워드를 입력해야 함)

계정 삭제하기

userdel [userid]

계정 관련 파일들도 삭제하기

userdel -r [userid]

계정 그룹 삭제하기

groupdel [groupid]


Posted by tuning-java
,
Posted by tuning-java
,
보통 kinit을 통해서 커버로스 로그인을 수행한다.

매번 까먹을까봐 패스워드 변경 명령어를 적어놔야 겠다.

커버로스 패스워드 변경은 kpasswd 다.

Posted by tuning-java
,

netstat라는 명령어를 리눅스에서 사용하면,
네트워크의 상태를 볼 수 있다.

네트워크 상태를 진단할 때 매우 유용하게 사용할 수 있는데,
다음과 같이 사용하면 TIME_WAIT 상태인 연결들의 개수를 확인할 수 있다.
만약 연결된 개수를 확인하려면 grep 뒤에 CONNECTED로 바꾸면 된다.

netstat -n | grep TIME_WAIT | wc

여기서 netstat의 -n은 연결된 장비 이름이 IP 주소로 나타난다.
여기에 a 옵션을 추가하여 -an 이나 -na로 지정해 주면,
연결된 IP나 연결을 기다리는 장비의 IP와 함께 목록을 제공해준다.

추가로 wc 는 라인 및 단어의 개수를 제공하는 옵션이다.
wc만 쓸 경우
3 6 9
와 같이 3개의 숫자가 나타나는데,
가장 앞의 숫자는 라인수(여기서는 관련 연결 개수가 될 것이다.)
두번째는 단어 수,
세번째는 바이트 수를 의미한다.

라인수만 보고 싶을 때에는 -l
단어수만 보고 싶을 때에는 -w
바이트수만 보고 싶을 때에는 -c
옵션을 wc 뒤에 붙여주면 된다.



Posted by tuning-java
,
내가 한, 두번 Tomcat 5.5와 6성능 비교를 해 본 결과
동일한 Application을 수행할 때 Tomcat 6에는 성능 문제가 존재한다.
아직 정확한 성능 저하의 원인을 밝히진 못했지만,
TPS 상으로 적어도 10~20% 정도 저하된다.

어느정도 Tomcat 6의 성능이 안정화 될 때까지는 쓰지 않는 것을 권장한다.

참고로 아래 링크를 활용하면, 어떻게 Tomcat의 성능을 최적화 할 수 있는지 알 수 있다.

http://www.solutionhacker.com/?p=147




Posted by tuning-java
,
IBM의 RedBooks라는 사이트가 있다.
이 사이트에서는 여러 종류의 문서들을 제공해 주고 있는데,
그중 리눅스와 관련된 e-book(PDF 파일)들이 좋은게 있어서 링크를 걸어 둔다.

http://www.redbooks.ibm.com/Redbooks.nsf/portals/Linux?Open&page=popular


물론 무료이며,
리눅스쪽 관련 일을 한다면,
Linux Performance and Tuning Guidelines
http://www.redbooks.ibm.com/abstracts/redp4285.html?Open
를 읽어 보길 추천한다.
이 문서에는 다음과 같은 목차로 정리되어 있다.
Chapter 1, Understanding the Linux operating system
Chapter 2. Monitoring and benchmark tools
Chapter 3. Analyzing performance bottlenecks
Chapter 4. Tuning the operating system

난 아직 시간이 없어서 - -;

그리고,
나 같이 넷웍쪽 아는 정보가 별로 없다면,
TCP/IP Tutorial and Technical Overview
http://www.redbooks.ibm.com/abstracts/gg243376.html?Open
도 읽어 보면 많은 도움이 되리라 생각된다.
목차는 다음과 같다.

Part 1. Core TCP/IP protocols
Chapter 1. Architecture, history, standards, and trends
Chapter 2. Network interfaces
Chapter 3. Internetworking protocols
Chapter 4. Transport layer protocols
Chapter 5. Routing protocols
Chapter 6. IP multicast
Chapter 7. Mobile IP
Chapter 8. Quality of service
Chapter 9. IP version 6
Chapter 10. Wireless IP

Part 2. TCP/IP application protocols
Chapter 11. Application structure and programming interfaces
Chapter 12. Directory and naming protocols
Chapter 13. Remote execution and distributed computing
Chapter 14. File-related protocols
Chapter 15. Mail applications
Chapter 16. The Web
Chapter 17. Network management
Chapter 18. Wireless Application Protocol
Chapter 19. Presence over IP

Part 3. Advanced concepts and new technologies
Chapter 20. Voice over Internet Protocol
Chapter 21. Internet Protocol Television
Chapter 22. TCP/IP security
Chapter 23. Port based network access control
Chapter 24. Availability, scalability, and load balancing
Appendix A. Multiprotocol Label Switching






Posted by tuning-java
,
리눅스에서 어떤 폴더에 포함된 파일들의 크기를 확인하려면 du 라는 명령어를 사용하면 된다.
만약 aaa 라는 폴더에 여러개의 파일이 존재할 경우

du -h -s --apparent-size ./aaa/

라고 하면 해당 폴더가 갖고 있는 모든 파일의 크기만 보여준다.

여기서
-h: 바이트를 kb, mb 등으로 변환
-s: 지정한 폴더 크기만 출력(없으면, 하위 폴더 크기도 출력)
--apparent-size: 디스크 사용량이 아닌 apparent size를 출력(이게 뭔지 나도 잘 모름 - -)



Posted by tuning-java
,
http://www.cyberciti.biz/faq/warning-remote-host-identification-has-changed-error-and-solution/

동일한 IP 장비의 RSA키가 바뀌거나,
OS를 바꾸어서 rebooting 했을 경우
키가 변경되면 ssh로 쉽게 로그인하기가 어렵게된다.
이러한 경우에는 다음의 명령어를 수행하면된다.

ssh-keygen -R 서버IP
Posted by tuning-java
,

서버가 정상적으로 수행되었다면, 관리자 콘솔에 들어가야 한다.
웹과 커맨드라인 접근의 두가지 방법이 있는데, 웹으로 들어가보자.

웹 콘솔에 들어가는 방법은 다음의 URL로 들어가면 된다.
http://localhost:4848
그런데 이렇게 들어가면 id/pw를 묻는다.(이거 찾느라 좀 시간이 걸렸음)
만약 Glassfish를 서버에 설치했다면,
localhost 대신 서버 IP를 입력해야 한다.

admin 콘솔의 설치시 id/pw는 admin/adminadmin 이다.



Posted by tuning-java
,
가끔 몇몇 리눅스 서버에서 한글이 깨지는 경우가 발생한다.
그럴 땐 다음과 같이 간단히 ~~~ 변경 가능하다.

/etc/sysconfig/i18n 파일을 vi로 연다.
사용언어가 아마도 UTF-8로 되어 있을 확률이 높은데,
LANG="ko_KR.UTF-8"
다음과 같이 변경하면 된다.
LANG="ko_KR.eucKR"

변경후 이 파일을 적용하기 위해서는,
다시 로그인을 하거나, bash 쉘을 수행하면 한글이 깨지지 않은 상태에서
리눅스를 사용할 수 있다.

PS: 이 설명은 CentOS에서 작동이 잘 되지만, 다른 리눅스에선 해보지 않아서 제가 확답을 드리긴 어렵네요. ^^:
Posted by tuning-java
,
http://code.google.com/intl/ko/appengine/

Google에서 제공하는 Application Engine의 자바버전 Beta 서비스가 시작되었다.
아직까지는 무료버젼으로 제공되며,
- 500MB의 공간
- 월 500만 Page View
가 무료다.

Windows, Mac, Linux에서 개발할 수 있는 기능들을 제공하며,
Eclipse에서 개발을 쉽게 할 수 있도록 plug-in 도 제공된다.

아쉬운점은 시작하기 가이드를 한글로 제공하지 않는다는 것~~~.

시간되시는 분들은 한번씩 해보시길...
Posted by tuning-java
,
Virtualbox 2.2.2 버전이 새로 나왔다.

이전 버전(2.2)이 설치되어 있는 상태에서 제거를 하고 다시 설치하려고 할 경우나,
Virtualbox 2.2.2를 설치하려는 경우,
Virtualbox를 지우려고 할 경우에
제거작업을 하다가 오류가 발생한다는 메시지와 함께 모든 작업이 rollback 되는 경우가 발생한다.

참 거시기한 경우가 아닐 수 없다.

인터넷에 뒤져본 결과, 많은 사용자들이 나와 같은 경우가 발생한 것을 알 수 있었고,
가장 쉽게(?) 이 문제를 해결하는 방법은 다음과 같다.

1. 제어판에서 프로그램 설치 제거를 눌러서 Sun Virtualbox를 찾는다.
2. 제거를 누르지 말고, 변경을 누른다.
3. 거기서 Repair를 선택해서 새로 설치하도록 지정한다.
    (왜 Repair를 하냐고 묻지도 따지지도 말고 그냥 따라해 주기 바란다. ^^)
4. 작업을 마치면 PC를 껐다 키라고 하는데, 껐다 키지 말고 프로그램 설치 제거에서 삭제를 누른다.

제대로 이 작업을 따라했을 경우 정상적으로 해당 프로그램이 삭제된 것을 확인할 수 있을 겄이다.

관련 정보는 아래 링크를 확인하기 바란다.

http://forums.virtualbox.org/viewtopic.php?f=1&t=16460
Posted by tuning-java
,

Glassfish를 설치하여 사용하다보면,
없는 URL을 요청할 경우 디렉토리 목록이 나오게 된다.

대부분의 시스템 운영자는 디렉토리 목록에 어떤 파일이 있는지를 보여주기 안좋아 하므로,
옵션을 수정하여 안보이도록 해야 한다.


{glassfish설치위치}/domains/domain1/config
디렉토리로 이동한다.

디렉토리에 있는 default-web.xml 파일의 listing 부분을 false로 지정해야 한다.

<servlet>
    <servlet-name>default</servlet-name>
    <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
    <init-param>
      <param-name>debug</param-name>
      <param-value>0</param-value>
    </init-param>
    <init-param>
      <param-name>listings</param-name>
      <param-value>false</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>

참고로 내가 못찾은 건지 모르겠지만,
설정에는 이 옵션을 지정하는 부분이 없다.

Posted by tuning-java
,
http://www.virtualbox.org/wiki/Downloads
 
팀 동료가 얼마전 맥북 프로를 구매했는데,
vmware를 알아보다가
VirutalBox라는 것을 사용한다고 했다.

VirtualBox는 윈도우를 설치하여 사용할때, 리눅스를 사용하고 싶거나
Mac OSX를 사용하는데, 윈도우를 사용하고 싶을때 사용하는
가상 OS중 하나다.

가장 유명한 가상 OS는 vmware, Parallels등이 있다.

VisualBox는 오픈소스로 개발되고 있으며,
VirtualBox를 사용할 수 있는 OS는
  • Windows
  • Mac OSX
  • Linux
  • Solaris
다.

한번 관심있는 분들을 써보시길...


'Server > 가상OS' 카테고리의 다른 글

[가상OS] Virtualbox 제거(삭제)하기  (0) 2009.05.06
Posted by tuning-java
,
한대의 아파치 서버에서 두대의 Tomcat 서버로 연동하는 경우가 적지 않을 것이다.
http://thought-bytes.blogspot.com/2007/03/how-to-load-balance-tomcat-55-with.html

위의 링크를 보면, 어떻게 연동하는지 상세하게 정리 되어 있다. ^^;
Posted by tuning-java
,

리눅스 설치후 자바 개발용 세팅...

1. 자바 설치
   centos가 설치되면, 자바를 선택해서 설치할 수도 있는데, 버젼이 1.4다 - -;
   JDK 5.0이나 6.0 을 설치한 후 해당 경로를 프로파일에 등록한다.

   프로파일 수정은 계정 로그인 후 디렉토리에 존재하는 .bash_profile 파일을 변경하면 된다.
   유의사항 : jdkxxxx.bin파일을 수행한 위치에 jdk가 설치되므로, 압축이 해제될 위치에서 bin을 실행할 것.

2. eclipse 설치
   eclipse는 www.eclipse.org 사이트 들어가면, 자동으로 리눅스임을 인식하여 리눅스용을 다운 받을 수 있다
   이클립스 설치는 그리 어렵지 않으니(압축만 풀면 된다.

   그런데 만약 centos 5를 설치했다면 JVM exit code = -1 이 나타나면서 프로그램이 수행되지 않을 수도 있다. 그럴 경우 터미널에서 이클리브를 띄우면 다음과 같은 메시지가 나타날 수도 있다.

/jre/lib/i386/client/libjvm.so: reloc 후에 prot 세그먼트를 복구할 수 없습니다: 허가 거부됨

 이런 경우 SELinux 관련 옵션을 disable 해야 한다.

1. 다음 명령을 입력하여 로드한 라이브러리에 대한 기본 보안 컨텍스트를 변경
   이때 libjvm.so 가 있는 디렉토리로 이동해야함.
   chcon -t texrel_shlib_t *.so
2. /etc/selinux 의 config 파일에 다음 줄을 추가하여 SELinux를 비활성화.
   SELINUX=disabled


3. tomcat 설치
   tomcat도 다운로드해서 압축만 풀면 되므로, 그리 어렵지 않을 것이다.
   단지, catalina.sh에 JAVA_HOME 값을 지정하는 걸 잊지 말아야 한다.


Posted by tuning-java
,
centos 4를 맥북의 vmware에 깔았었다.

뭔가 개발하면서 확인하기 위해서 개발환경을 구축해 놨는데,
Flash 10 player를 설치하니 gblic 버젼이 낮다고 설치가 안된다.
이론 - -;
그래서 glibc 업그레이드를 하려고 했으나,
그작업은 리눅스를 모르면 절대 하지 말라는 글들이 많아서리... centos 5 를 설치했다.

centos를 그냥 깔면 gcc 나 개발용 환경이 구축되지 않으니,
아래 그림과 같이 추가 설치를 하는 것이 좋을 듯 하다.

<<개발용 도구 세팅 >>

<<시스템 도구 세팅>>

자바는 따로 선택 안해도 상호 연관성 체크후 깔리는 듯 하나,
버젼이 1.4 라는거~~~
자바는 되도록이면 직접 추가로 설치하는 것을 추천한다.


Posted by tuning-java
,

ant 스크립트를 수행한 이후에 몇가지 설정을 마치면 서버를 기동할 수 있다.

http://docs.sun.com/app/docs/doc/819-3193/aboaa?a=view

링크를 보면 몇몇가지 설정할 게 있으니 참조하기 바란다.
간단하게 정리하면(윈도우용)
1. bin 디렉토리를 path에 추가
2. AS_ADMIN_USER 라는 것을 환경 변수에 추가하고, 설치할때의 PC나 서버 계정을 추가한다.

서버를 다음의 명령어로 시작할 수 있다.

asadmin start-domain domain1

정상적으로 수행되었다면 다음과 같은 메시지가 나타난다.
도메인 domain1을(를) 시작합니다. 잠시 기다려 주십시오.
로그가 D:\glassfish\domains\domain1\logs\server.log(으)로 리디렉션되었습니다.
마스터 비밀번호를 입력하십시오>
출력을 D:/glassfish/domains/domain1/logs/server.log(으)로 리디렉션하는 중
도메인 domain1에서 클라이언트 요청을 받을 준비가 되었습니다. 백그라운드에서 추가
 서비스를 시작하는 중입니다.
다음에서 해당 구성 및 로그를 사용하여 도메인 [domain1]이(가) [Sun Java System Ap
plication Server 9.1_02 (build b04-fcs)]을(를) 실행하는 중입니다: [D:\glassfish\
domains].
관리 콘솔은 [http://localhost:4848]에서 사용할 수 있습니다.
"asadmin" 명령에도 같은 포트 [4848]을(를) 사용합니다.
사용자 웹 응용 프로그램은 다음 URL에서 사용할 수 있습니다:
[http://localhost:8080 https://localhost:8181 ].
다음 웹 내용을 사용할 수 있습니다:
[/web1  /__wstx-services ].
표준 JMX 클라이언트(예, JConsole)는 도메인 관리를 위해 JMXServiceURL:
[service:jmx:rmi:///jndi/rmi://smlee:8686/jmxrmi]에 연결될 수 있습니다.
도메인은 최소한 다음 포트에서 연결을 수신합니다:
[8080 8181 4848 3700 3820 3920 8686 ].
도메인이 Application Server 클러스터 및 다른 독립 실행형 인스턴스를 지원하지 않
습니다.

설치시 유의사항
서버를 수행할때 리눅스는 상관 없겠지만,
PC 이름이 한글일 경우 서버가 정상적으로 뜨지 않을 수 있다.
이 경우 domain1/logs 디렉토리의 server.log 파일에 다음과 같은 메시지가 나타난다.

com.sun.appserv.server.ServerLifecycleException
 at com.sun.enterprise.admin.server.core.JmxConnectorLifecycle.onStartup(JmxConnectorLifecycle.java:153)
 at com.sun.enterprise.server.ApplicationServer.onStartup(ApplicationServer.java:442)
 at com.sun.enterprise.server.ondemand.OnDemandServer.onStartup(OnDemandServer.java:120)
 at com.sun.enterprise.server.PEMain.run(PEMain.java:411)
 at com.sun.enterprise.server.PEMain.main(PEMain.java:338)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:597)
 at com.sun.enterprise.server.PELaunch.main(PELaunch.java:412)
Caused by: java.lang.NullPointerException
 at javax.management.remote.JMXConnectorServerFactory.newJMXConnectorServer(JMXConnectorServerFactory.java:283)
 at com.sun.enterprise.admin.jmx.remote.server.rmi.JmxConnectorServerDriver.startConnectorServer(JmxConnectorServerDriver.java:215)
 at com.sun.enterprise.admin.server.core.JmxConnectorLifecycle.onStartup(JmxConnectorLifecycle.java:134)
 ... 9 more

Posted by tuning-java
,