datasource 질문
- 작성자 :
- 김*양
- 작성일 :
- 2009-12-04 19:08:45
- 조회수 :
- 5,110
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
안녕하세요.
프래임워크에 대해 질문이 있어 글 올립니다.
다름이 아니라 제가 datasource 설정 부분에서
==============================================================
<!-- altibase -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="Altibase.jdbc.driver.AltibaseDriver"/>
<property name="url" value="jdbc:Altibase://211.232.6.111:20301/mydb?encoding=EUC-KR"/>
<property name="username" value="ep_user"/>
<property name="password" value="ep000"/>
<property name="maxActive" value="10"/>
</bean>
<!--
<bean id="jnditemplate" class="org.springframework.jndi.JndiTemplate" >
<property name="environment">
<props>
<prop key="java.naming.factory.initial">jeus.jndi.JNSContextFactory</prop>
<prop key="java.naming.provider.url">211.232.6.111</prop>
</props>
</property>
</bean>
<bean class="org.springframework.jndi.JndiObjectFactoryBean" id="dataSource">
<property name="jndiName" value="portalPool"/>
<property name="jndiTemplate" ref="jnditemplate"/>
</bean>
-->
===================================================================
이렇게 설정을 해서 사용을 하고 있습니다.
Altibase 부분은 로컬에서 개발을 할 때 사용하는 부분이고 아래의 설정부분은 개발서버에서 사용하는 bean class 입니다.
그런데 개발서버에서는 이렇게 설정을 하면은 DB 연결이 잘되는데 운영에 이 소스를 그래로 반영을 하면 에러가 발생합니다.
jeus.jndi.jns.common.NamingServerException: failed to initiate JNSLocal server.
왜 이런 차이가 있는지? 개발에서의 환경과 운영에서의 환경차이는 배포된 파일의 war 여부뿐입니다. 개발서버는 war 파일을 보고있도록 jeus 설정이 되어 있고
운영엔 war 파일이 풀어진 곳을 보도록 설정이 되어 있습니다. 혹시 몰라서 개발과
동일하게 설정을 해놓고 테스트를 해보아도 에러가 나는데...
원인을 찾을수가 없었습니다.
확인부탁드립니다.
프래임워크에 대해 질문이 있어 글 올립니다.
다름이 아니라 제가 datasource 설정 부분에서
==============================================================
<!-- altibase -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="Altibase.jdbc.driver.AltibaseDriver"/>
<property name="url" value="jdbc:Altibase://211.232.6.111:20301/mydb?encoding=EUC-KR"/>
<property name="username" value="ep_user"/>
<property name="password" value="ep000"/>
<property name="maxActive" value="10"/>
</bean>
<!--
<bean id="jnditemplate" class="org.springframework.jndi.JndiTemplate" >
<property name="environment">
<props>
<prop key="java.naming.factory.initial">jeus.jndi.JNSContextFactory</prop>
<prop key="java.naming.provider.url">211.232.6.111</prop>
</props>
</property>
</bean>
<bean class="org.springframework.jndi.JndiObjectFactoryBean" id="dataSource">
<property name="jndiName" value="portalPool"/>
<property name="jndiTemplate" ref="jnditemplate"/>
</bean>
-->
===================================================================
이렇게 설정을 해서 사용을 하고 있습니다.
Altibase 부분은 로컬에서 개발을 할 때 사용하는 부분이고 아래의 설정부분은 개발서버에서 사용하는 bean class 입니다.
그런데 개발서버에서는 이렇게 설정을 하면은 DB 연결이 잘되는데 운영에 이 소스를 그래로 반영을 하면 에러가 발생합니다.
jeus.jndi.jns.common.NamingServerException: failed to initiate JNSLocal server.
왜 이런 차이가 있는지? 개발에서의 환경과 운영에서의 환경차이는 배포된 파일의 war 여부뿐입니다. 개발서버는 war 파일을 보고있도록 jeus 설정이 되어 있고
운영엔 war 파일이 풀어진 곳을 보도록 설정이 되어 있습니다. 혹시 몰라서 개발과
동일하게 설정을 해놓고 테스트를 해보아도 에러가 나는데...
원인을 찾을수가 없었습니다.
확인부탁드립니다.
A
안녕하세요.. 김소양님..
JndiObjectFactoryBean를 사용하는 것은 JNDI상에 등록되어 있는 DataSource를 Spring bean으로 등록하여 사용하는 방식입니다.
이 경우는 현재 WAS상 또는 지정되어 있는 설정(JndiTemplate 등)상에 정보에 의해 WAS상에 JNDI가 등록되어 있어야 합니다.
이 JNDI 설정은 deploy대상인 war의 외부 영역의 WAS 설정상에 추가되기 때문에 김소양님과 같은 오류가 발생하는 것 같습니다.
그리고.. 일단.. DBCP를 하시는 첫번째 방식을 모두 적용하시는 것을 추천드립니다.
이 경우는 WAS 환경적인 요인을 받지 않기 때문에 서버, 로컬에서 모두 적용하실 수 있습니다.
그럼.. 즐거운 하루되십시오.
감사합니다.
JndiObjectFactoryBean를 사용하는 것은 JNDI상에 등록되어 있는 DataSource를 Spring bean으로 등록하여 사용하는 방식입니다.
이 경우는 현재 WAS상 또는 지정되어 있는 설정(JndiTemplate 등)상에 정보에 의해 WAS상에 JNDI가 등록되어 있어야 합니다.
이 JNDI 설정은 deploy대상인 war의 외부 영역의 WAS 설정상에 추가되기 때문에 김소양님과 같은 오류가 발생하는 것 같습니다.
그리고.. 일단.. DBCP를 하시는 첫번째 방식을 모두 적용하시는 것을 추천드립니다.
이 경우는 WAS 환경적인 요인을 받지 않기 때문에 서버, 로컬에서 모두 적용하실 수 있습니다.
그럼.. 즐거운 하루되십시오.
감사합니다.