Thursday, July 02, 2009

WebSphere v6 DataSource Jndi lookup

WebSphere v6의 데이터 소스를 셋팅후에 Java/Jsp에서 아래와 같이 lookup하여 사용하게 되면..
 
                ds = (DataSource)ctx.lookup("jdbc/db2DS");
 
아래와 같은 메시지가 쭈르륵 뜨게 된다..;;
 
[07. 4. 30   9:01:47:305 KST] 0000002c ConnectionFac W   J2CA0294W: jdbc/db2DS 자원의 직접 JNDI 찾아보기 사용법은 더이상 지원되지 않습니다. 다음 기본값이 사용됩니다: [Resource-ref settings]
 res-auth:                 1 (APPLICATION)
 res-isolation-level:      0 (TRANSACTION_NONE)
 res-sharing-scope:        true (SHAREABLE)
 loginConfigurationName:   null
 loginConfigProperties:    null
[Other attributes]
 res-resolution-control:   999 (undefined)
 res ref or CMP bean name: null
 Database pool properties: null
 primeID:                  0
isCMP1_x:                 false (not CMP1.x)
isJMS:                 false (not JMS)
 
Websphere v6에서는 DataSource에 대한 Global Jndi lookup기능이  deprecated되었다고 한다..
 
따라서 DataSource를 사용하기 위해서는 자원 맵핑을 해주어야 한다.
 
web.xml에 아래와 같이 입력하고 application을 deploy하면 된다.
 
<resource-ref id="ResourceRef_1100278378816">
      <res-ref-name>jdbc/db2DS</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    <res-sharing-scope>Shareable</res-sharing-scope> 
  </resource-ref>
 
 위와 같이 web.xml에 해당 내용을 넣고  application을 deploy하게 되면 아래 화면과 같이 "자원으로 자원 참조 맵핑"이라는 step이
 
 추가 된다. 이부분에서 자원에 대한 맵핑을 수행하게 된다.
 
 
위의 화면에서 "대상자원 JNDI이름"에서 "찾아보기"를 누르면 위와 같은 화면이 나타나는데 해당 화면에서 사용할 "데이터소스"를 선택하고,
 
application을 deploy하면 된다.

 

그리고, JSP/Java에서 아래와 같은 형태로 DataSource를 사용하면 된다.

 

                ds = (DataSource)ctx.lookup("java:comp/env/jdbc/db2DS");

 

참고로 WebSphere v6이전에서는 Global Jndi Lookup형태로 사용해도 된다...

 

왜 바꿔 버렸는지는... 망할  IBM ㅡㅡ^

 

No comments: