WebSphere에서 JNDI DataSource 설정
- 작성자 :
- 최*혁
- 작성일 :
- 2014-08-19 08:01:15
- 조회수 :
- 2,707
- 구분 :
- 기타
- 진행상태 :
- 완료
Q
안녕하세요. WebSphere에서 JNDI DataSource 설정에 대해서 문의드립니다.
WebSphere 6.1이고, eGovFramework 버전은 2.0 으로 추정됩니다.
여기 묻고 답하기 검색결과 한 건이 검색이 되는 데 그 글 내용 그대로 따라해도 아래와 같은 에러가 발생합니다.
<<Exception>>
CommonService E egovframework.rte.fdl.cmmn.aspect.ExceptionTransfer transfer Could not open JDBC Connection for transaction; nested exception is java.sql.SQLException: 호출에 부적합한 인수입니다DSRA0010E: SQL 상태 = null, 오류 코드 = 17,433
java.sql.SQLException: 호출에 부적합한 인수입니다DSRA0010E: SQL 상태 = null, 오류 코드 = 17,433
at oracle.jdbc.driver.DatabaseError.throwSqlException (DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException (DatabaseError.java:146)
at oracle.jdbc.driver.DatabaseError.throwSqlException (DatabaseError.java:208)
at oracle.jdbc.driver.T4CConnection.logon (T4CConnection.java:236)
at oracle.jdbc.driver.PhysicalConnection.<init> (PhysicalConnection.java:414)
...
at com.ibm.ejs.j2c.ConnectionManager.allocateMCWrapper (ConnectionManager.java:940)
at com.ibm.ejs.j2c.ConnectionManager.allocateConnection (ConnectionManager.java:614)
at com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection (WSJdbcDataSource.java:449)
at com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection (WSJdbcDataSource.java:418)
at org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin (DataSourceTransactionManager.java:202)
...
조치내역
1. WebSphere admin console 에서 DataSource 연결테스트 성공
1) Connection Pool 생성확인
2) DataSource 생성확인 및 J2C 인증생성 확인
3) DataSource 연결테스트 성공 (J2C 인증과 연결설정 확인)
2. WAR의 web.xml 에 resource-ref 설정
<resource-ref>
<res-ref-name>jdbc/xxxxDS</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
3. context-datasource.xml 에 bean 정의
<bean id="dataSource-oracle" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="jdbc/xxxxDS"/>
<property name="proxyInterface" value="javax.sql.DataSource"/>
</bean>
<- 여기다가 resource-ref="true" 속성정의도 추가해보고, proxyInterface property도 삭제해보고하였으나 마찬가지의 Exception 발생
에러메시지만 봐서는 User Credential 쪽 문제인 듯 한데...Google검색을 해봐도 역부족이네요.
WebSphere 6.1이고, eGovFramework 버전은 2.0 으로 추정됩니다.
여기 묻고 답하기 검색결과 한 건이 검색이 되는 데 그 글 내용 그대로 따라해도 아래와 같은 에러가 발생합니다.
<<Exception>>
CommonService E egovframework.rte.fdl.cmmn.aspect.ExceptionTransfer transfer Could not open JDBC Connection for transaction; nested exception is java.sql.SQLException: 호출에 부적합한 인수입니다DSRA0010E: SQL 상태 = null, 오류 코드 = 17,433
java.sql.SQLException: 호출에 부적합한 인수입니다DSRA0010E: SQL 상태 = null, 오류 코드 = 17,433
at oracle.jdbc.driver.DatabaseError.throwSqlException (DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException (DatabaseError.java:146)
at oracle.jdbc.driver.DatabaseError.throwSqlException (DatabaseError.java:208)
at oracle.jdbc.driver.T4CConnection.logon (T4CConnection.java:236)
at oracle.jdbc.driver.PhysicalConnection.<init> (PhysicalConnection.java:414)
...
at com.ibm.ejs.j2c.ConnectionManager.allocateMCWrapper (ConnectionManager.java:940)
at com.ibm.ejs.j2c.ConnectionManager.allocateConnection (ConnectionManager.java:614)
at com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection (WSJdbcDataSource.java:449)
at com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection (WSJdbcDataSource.java:418)
at org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin (DataSourceTransactionManager.java:202)
...
조치내역
1. WebSphere admin console 에서 DataSource 연결테스트 성공
1) Connection Pool 생성확인
2) DataSource 생성확인 및 J2C 인증생성 확인
3) DataSource 연결테스트 성공 (J2C 인증과 연결설정 확인)
2. WAR의 web.xml 에 resource-ref 설정
<resource-ref>
<res-ref-name>jdbc/xxxxDS</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
3. context-datasource.xml 에 bean 정의
<bean id="dataSource-oracle" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="jdbc/xxxxDS"/>
<property name="proxyInterface" value="javax.sql.DataSource"/>
</bean>
<- 여기다가 resource-ref="true" 속성정의도 추가해보고, proxyInterface property도 삭제해보고하였으나 마찬가지의 Exception 발생
에러메시지만 봐서는 User Credential 쪽 문제인 듯 한데...Google검색을 해봐도 역부족이네요.
A
안녕하세요. 최재혁님.
우선, web.xml 상에 지정하신 resource-ref 부분은 설정이 필요없으실 것 같습니다.
다음으로 context-datasource.xml 상에 지정하신 jndiName의 prefix 부분을 확인해 보십시오. WAS마다 지정하시는 방식이 다릅니다.
(WebSphere 문서 참조)
마지막으로 다음 URL을 참조하셔서 NodeAgent 부분을 재기동해 보시기 바랍니다.
https://www.ibm.com/developerworks/community/forums/html/topic?id=77777777-0000-0000-0000-000013728251
그럼, 즐거운 하루되십시오.
감사합니다.
우선, web.xml 상에 지정하신 resource-ref 부분은 설정이 필요없으실 것 같습니다.
다음으로 context-datasource.xml 상에 지정하신 jndiName의 prefix 부분을 확인해 보십시오. WAS마다 지정하시는 방식이 다릅니다.
(WebSphere 문서 참조)
마지막으로 다음 URL을 참조하셔서 NodeAgent 부분을 재기동해 보시기 바랍니다.
https://www.ibm.com/developerworks/community/forums/html/topic?id=77777777-0000-0000-0000-000013728251
그럼, 즐거운 하루되십시오.
감사합니다.