Stripes 가 워낙 편해서 왠간하면 잘 쓸라했는데, 다른 WAS 는 잘 돌아가는데 꼭 웹로직과는 문제가 생긴다.

지금까지 내가 발견했던 악성 궁합은 이렇다. 대체로 문제가 발생하는 것은 레이아웃 기능을 사용하면 그렇다. 하지만 레이아웃 기능을 뺀 스트라이프트는 스트라이프가 아니지-_-;; (물론 빼도 쓸만하지만, 너무 매력적이지..음)

 

 WAS Stripes 버젼  내용 

 Weblogic 10.0

1.5.3 

레이아웃 고급 기능이 제대로 동작안한다. 1.5.4 에서는 패치되었다. 

- Layout break

- Fixed 1.5.4

 Weblogic 11g(10.3.5)

1.5.4 

화면이 안나온다. 

- No Visible

 Weblogic 12c

1.5.6 

레이아웃이 이상하게 나온다. 1.5.7-SNAPSHOT 에서는 수정되었다.

- Fixed 1.5.7-SNAPSHOT

 Weblogic 12c

1.5.7-SNAPSHOT 

수정된 줄 알았으나, 이슈 트래커에는 수정된 것으로 나온다. 하지만, 일부 페이지에는 화면이 안 나오는 부분이 있다.

* 현재 다른 원인이 있는지 제가 그 원인을 찾고 있는 중입니다.:)

- Fixed 1.5.7-SNAPSHOT???

 Jeus 5.x 1.5.4 

레이아웃 사용시 동적 속성을 String 외에 사용할 수 없다.  

* 이 부분은 제우스가 표준을 안 지킨 것인지, 다른 WAS 가 기능이 더 좋아서 그런것인지는 불분명하다.

- Can't use dynamic attribute for Layout

 Jeus 6.x

1.5.7-SNAPSHOT 

web.xml 에서 welocme page 로 등록된 페이지에 접근시('/' 으로 접근시), Stripes  Filter 를 통과하지 못한다.

- Incorrect Weblcome Page

 Tomcat 6.x

1.5.3 ~ 1.5.7-SNAPSHOT 

Good 
 Jetty

1.5.3 ~ 1.5.7-SNAPSHOT

Good 

 Websphere 8.0

1.5.6  Good 

 

톰캣은 아주 좋다. 개발자가 톰캣만 테스트만 하나보다.

여튼 1.6.0 도 기대해보지만, 과연 나오긴 할 것인지..

Stripes 마지막 릴리즈가 1년전이다. -_-;

 

그래서 직접 Stripes 소스를 분석해 커미터가 되어볼까, 아니면 그냥 다른 사람들 많이 쓰는 Spring Web MVC 조합으로 바꿔버릴까,

 

 

웹로직 12c 에 아파치 dbcp 로 데이터 소스를 구성할 경우, 서버 자체가 응답이 없는(무한 대기 상태에 빠지는) 현상이 발생한다. 결국, 자체적인 데이터 소스를 구성하지 않고, 웹로직의 데이터 소스를 구성해 jndi 로 룩업하여 해결하였다. 아파치 dbcp 를 사용하기 위해서 다른 설정을 해야할 것인지, 아니면 그냥 버그인지는 모르겠으나 일단 좀 더 아름다운 구성이 맞을거 같아서 버그 리포팅은 안하기로 했다.


여튼, 이거 하느라고 하루를 날려버린 것도 있고, 웹로직에 오라클이 아닌 타 벤더의 JDBC 데이터 소스를 등록할 경우, 시간을 허비할 지 모르는 개발자들을 위해 블로깅을 해본다.


이 문서에서는 MS 사의 SQL Server 용 JDBC 등록하는 것에 대하여 작성할 것이다. 

본 문서에 사용된 환경 변수에 대한 패스 정보는 다음과 같다.


 변수

설명

예제 경로 
 WL_HOME  웹로직이 설치된 홈 디렉토리  C:\Oracle\Middleware\wlserver_12.1
 WLS_HOME  홈 디렉토리 하위 Server 디렉토리  C:\Oracle\Middleware\wlserver_12.1\serve

작업 절차는 크게 다음과 같다.

  • JDBC 드라이버를 클래스 패스에 등록한다.
  • 관리콘솔에서 데이터 소스를 등록한다.

참조 : http://docs.oracle.com/cd/E24329_01/web.1211/e24367/jdbc_datasources.htm#g1218593


1. JDBC 드라이버 클래스 패스에 등록


오라클에 접속할 경우에는 이미 라이브러리가 클래스 패스에 존재하므로, 이 부분은 지나쳐도 된다.


웹로직에서는 데이터소스를 등록할 경우, 유명한 벤더들의 DBMS 에 대한 설정은 이미 제공되고 있다. 하지만, 오라클 외 타 벤더들에 대한 JDBC 에 대한 설정만 제공하지, 드라이버를 클래스패스에 두고 있지는 않다.


즉, 웹로직 관리콘솔에서 등록한다고 해서 무조건 돌아갈 거 다라는 것은 아니다라는 것이다. 잘 만들어진 GUI 에 현혹 되면 안된다.


그러나, 웹로직에서는 클래스 패스에 해당 드라이버를 넣어주고 있지는 않지만, 참조용으로 제공은 하고 있다. 


해당 드라이버들은 WL_HOME\server\lib 에서 찾을 수 있으며, 파일명은 다음과 같다.

  • For DB2: wldb2.jar
  • For Informix: wlinformix.jar
  • For MS SQL Server: wlsqlserver.jar
  • For Sybase: wlsybase.jar

참조 : http://docs.oracle.com/cd/E24329_01/web.1211/e24376/dd.htm#JDBCP153



해당 파일을 찾았으면, 클래스 패스에 등록을 해야하는데 다음 2가지 위치에서 택일을 한다.


  • 모든 도메인에 해당 드라이버를 적용하고 싶을 경우, WL_HOME/common/bin 하위에 commEnv.cmd/sh 파일을 편집하여 WEBLOGIC_CLASSPATH 환경변수에 jar 파일 위치를 추가한다.
  • 특정한 웹로직 서버 도메인에 해당 드라이버를 적용하고 싶을 경우, 도메인디렉토리/bin 하위에 setDomainEnv.cmd/sh 파일을 편집하여 PRE_CLASSPATH 환경변수에 jar 파일 위치를 추가한다.

다음은 SQL Server 용 jar 를 특정 도메인 환경에 적용한 경우이다.


[setDomainEnv.cmd]

set POST_CLASSPATH=%POST_CLASSPATH%;%WLS_HOME%\lib\wlsqlserver.jar


참조 : http://docs.oracle.com/cd/E24329_01/web.1211/e24487/weblogicserver.htm#i1023430


설정이 모두 되었으면 서버를 재시작한다.

 


2. 관리 콘솔에서 데이터 등록


콘솔에서 등록은 위보다 더 쉽다. 나오는대로 잘 선택하면 해주면 된다.


관리 콘솔에 로그인 한 후 '서비스/데이터소스' 를 선택한 후 '추가' 버튼을 클릭한다.


jndi 에서 조회할 이름과 데이터소스명을 입력하고 데이터베이스 유형을 선택한다.


본 문서에서는 slothinkdb 명으로 MS SQL Server 를 선택했다.




데이터베이스 드라이버는 'Microsoft's MS SQL Server Driver (type4 XA) Versions:2005 and later' 를 선택한다.  




트랜잭션 옵션을 선택한다. MS SQL 은 별다른 트랜잭션 옵션이 없다. '다음' 을 클릭한다.



DB 정보를 입력하고 '다음' 을 클릭한다.



화면 하단 아래에서 '구성 테스트' 를 클릭하여 접속이 옳바르게 되는지 확인 한 후 '다음' 을 클릭한다.



배포할 서버를 선택한 후 '완료' 를 클릭한다.



이제 모든 설정이 완료되었으며, 배포된 서버에 있는 어플리케이션은 JNDI 룩업을 통해 해당 데이터소스를 사용할 수 있다.


* Tested. Oracle Weblogic 12c, MS SQL Server 2008 R2


+ Recent posts