'resin'에 해당되는 글 4

  1. 2010.06.04 윈도우 프로세스 - 동일한 실행 파일을 사용한 서비스
  2. 2009.12.27 Closing dangling connections
  3. 2009.12.16 갑자기 레진에서 JSP 컴파일이 안된다.
  4. 2009.03.01 유지보수 - 소스

윈도우 프로세스 - 동일한 실행 파일을 사용한 서비스

개발자가 프로그램을 올리고 콘솔에서 WAS를 다시 시작시킴.
WAS가 내려가 있는 줄 알고 다시 시작했고(WAS를 내리지 않고 작업을 했음) 사이트가 제대로 돌아가는지 확인은 하지 않음.
사이트가 돌아가지 않아 서버관리자가 재부팅을 시킴.
서비스에 등록된 WAS가 동작해서 서비스함.

> netstat -nao | findstr LIST | findstr :80
  TCP    0.0.0.0:80             0.0.0.0:0              LISTENING       1920
  TCP    0.0.0.0:8080           0.0.0.0:0              LISTENING       1900

> tasklist | findstr httpd
httpd.exe                     1708 Console //80
httpd.exe                     1732 Console //8080

> tasklist | findstr java
java.exe                      1900 Console //8080
java.exe                      1920 Console //80

> tasklist /m | findstr httpd
httpd.exe                     1708 ntdll.dll, kernel32.dll, WS2_32.dll,
httpd.exe                     1732 ntdll.dll, kernel32.dll, WS2_32.dll,
                                   libhttpd.dll, USER32.dll, GDI32.dll,
                                   libhttpd.dll, USER32.dll, GDI32.dll,
                                   libhttpd.dll, USER32.dll, GDI32.dll,

테스트용으로 등록해뒀는 서비스가 8080포트로 동작하고 있었음.
사용하지 않는 서비스는 사용않함으로 둘 것.

PrcView에서 1708 httpd.exe의 커맨드라인 확인
"c:\resin-pro-3.0.25\httpd.exe" -service -java_home  C:\Java\jdk1.5.0_12 -resin_home  c:\resin-pro-3.0.25  -J-server  -Xms512m  -Xmx512m  -XX:PermSize=256m  -XX:MaxPermSize=256m

서비스에 등록된 실행경로
"c:\resin-pro-3.0.25\httpd.exe" -service -java_home  C:\Java\jdk1.5.0_12 -resin_home  c:\resin-pro-3.0.25  -J-server  -Xms512m  -Xmx512m  -XX:PermSize=256m  -XX:MaxPermSize=256m

1708은 80포트를 사용하는 서비스임.

테스트 WAS의 실행경로
"C:\resin-pro-3.0.25\httpd.exe" -service -java_home  C:\Java\jdk1.5.0_12 -resin_home  C:\resin-pro-3.0.25  -J-server  -Xms512m  -Xmx512m  -XX:PermSize=256m  -XX:MaxPermSize=256m  -conf  conf/test.conf  -server  test

PrcView에서 1920 java.exe의 커맨드라인
"C:\Java\jdk1.5.0_12\bin\java.exe" "-server" "-Xms512m" "-Xmx512m" "-XX:PermSize=256m" "-XX:MaxPermSize=256m" -classpath "c:\resin-pro-3.0.25\classes;c:\resin-pro-3.0.25\lib\resin.jar;C:\Java\jdk1.5.0_12\lib\tools.jar;C:\Java\jdk1.5.0_12\jre\lib\rt.jar;c:\resin-pro-3.0.25\lib\activation.jar;..." -Dresin.home="c:\resin-pro-3.0.25" -Dserver.root="c:\resin-pro-3.0.25" -Djava.util.logging.manager=com.caucho.log.LogManagerImpl -Djavax.management.builder.initial=com.caucho.jmx.MBeanServerBuilderImpl com.caucho.server.resin.Resin -socketwait 1029

> netstat -nao | findstr 1029
  TCP    127.0.0.1:1029         0.0.0.0:0              LISTENING       1708
  TCP    127.0.0.1:1029         127.0.0.1:1036         ESTABLISHED     1708
  TCP    127.0.0.1:1036         127.0.0.1:1029         ESTABLISHED     1920

- PrcView로 프로세스 트리를 확인해 봄.


- 서비스가 아닌 구동 스크립트로 시작한 경우의 프로세스

직접 실행시킨 경우 사용자가 Administrator로 되어 있고 세션 이름이 RDP-...(원격데스크톱으로 들어갔음, 직접 들어가면 Console인가?)이다.
서비스로 구동시켰을때는 SYSTEM이고 세션 이름이 Services이다.

- ptree, tlist 등의 도구를 활용하면 비슷한 결과를 얻어낼 수 있다.

Closing dangling connections

[09/07/08 15:48:19.212] Closing dangling connections.  All connections must have a close() in a finally block.
[09/07/08 15:48:19.212] java.lang.IllegalStateException: unclosed connection: UserPoolItem[jdbc/erpDS2,2490] was allocated at
[09/07/08 15:48:19.212]  at com.caucho.jca.UserPoolItem.<init>(UserPoolItem.java:112)
[09/07/08 15:48:19.212]  at com.caucho.jca.UserPoolItem.<init>(UserPoolItem.java:118)
[09/07/08 15:48:19.212]  at com.caucho.jca.PoolItem.toActive(PoolItem.java:256)
[09/07/08 15:48:19.212]  at com.caucho.jca.ConnectionPool.create(ConnectionPool.java:791)
[09/07/08 15:48:19.212]  at com.caucho.jca.ConnectionPool.allocatePool(ConnectionPool.java:649)
[09/07/08 15:48:19.212]  at com.caucho.jca.ConnectionPool.allocate(ConnectionPool.java:608)
[09/07/08 15:48:19.212]  at com.caucho.jca.ConnectionPool.allocateConnection(ConnectionPool.java:505)
[09/07/08 15:48:19.212]  at com.caucho.sql.DataSourceImpl.getConnection(DataSourceImpl.java:65)
[09/07/08 15:48:19.212]  at com.caucho.sql.DBPool.getConnection(DBPool.java:624)
[09/07/08 15:48:19.212]  at xxx.prm.fw.common.DBConnectionManager.getERPConnection2(DBConnectionManager.java:118)
[09/07/08 15:48:19.212]  at xxx.prm.sm.model.SMConfirmDAO.open(SMConfirmDAO.java:29)
[09/07/08 15:48:19.212]  at xxx.prm.sm.model.SMDAO.masterUpdate(SMDAO.java:1151)
...
[09/07/08 15:48:19.212]  at com.caucho.util.ThreadPool.run(ThreadPool.java:442)
[09/07/08 15:48:19.212]  at java.lang.Thread.run(Thread.java:595)

갑자기 레진에서 JSP 컴파일이 안된다.

오전에는 아무 문제가 없었는데
갑자기 에러가 발생한다고 함.

[09/12/15 13:33:03.432] Compiling _jsp/_ct/_aaa/_input__jsp.java
[09/12/15 13:33:03.432] Unknown compiler error executing:
[09/12/15 13:33:03.432]  javac
[09/12/15 13:33:03.432]  -classpath
[09/12/15 13:33:03.432]  C:\WebappX\WebContent\WEB-INF\work-3.0.25;.;lib\resin.jar;C:\Program Files\Java\jdk1.5.0_12\lib\tools.jar;C:\Program Files\Java\jdk1.5.0_12\jre\lib\rt.jar;lib\activation.jar;lib\aopalliance.jar;lib\eclipse-compiler.jar;lib\ejb-20.jar;lib\ejb-30.jar;lib\j2ee-deploy-10.jar;lib\j2ee-management-10.jar;lib\javamail-14.jar;lib\jca-15.jar;...

Resin을 재시작함.

유지보수 - 소스

- 아주 긴 클래스에서 개발자가 소스를 수정하다가 현재 작업중인 부분과 전혀 상관없는 아래 코드를 잘못 수정했다.
이런 실수를 방지할 수 있는 방법은 없을까?
- 아래와 같은 JSTL 이 지금까지 에러 안나고 있었음
이전 환경 : Tomcat 5.0 이나 Resin 3.0.25
Tomcat 6.0.18 에서 에러 발생