웹로직 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