목차

1. 사용중인 Oracle DB 버전 & JDK의 버전에 맞는 ojdbc jar파일을 받기

2-1. 단일 Oracle DB와 연동시 설정 방법

2-2. 1개 이상의 Oracle DB와 연동시 설정 방법(ex. oracle rac 구성 등)

3. Tomcat 로그파일(=catalina.out)에서 에러 발생여부 확인

 


※ 참고내용(DB의 SID, ServiceName)
1) SID : DB 하나의 인스턴스(SID가 1개)

SELECT instance_name FROM v$instance;



2) Service Name : 1개 이상의 DB인스턴스를 모여진 시스템(SID가 여러개)

SELECT name FROM v$services;

 

※ SID, ServiceName 관련 참고 URL

https://corona-world.tistory.com/87

https://change-words.tistory.com/entry/Oracle-SID-ServiceName


1. 사용중인 Oracle DB 버전 & JDK의 버전에 맞는 ojdbc jar파일을 받기

- Oracle DB버전과 사용중인 JDK 버전에 따른 ojdbc 버전은 아래 URL의 내용 참고

https://oingdaddy.tistory.com/372
https://jsp-making.tistory.com/489

 

maxTotal
(=maxActive)
커넥션 풀에서 최대 DB커넥션 값. 동시 접속 가능한 커넥션 수. 
설정값을 -1로 설정시, 무제한으로 적용 됨.
maxIdle 커넥션 풀에서 유지하는 유휴 커넥션의 수.
설정값을  -1로 설정시 무제한으로 적용 됨.
maxWaitMillis
(=maxWait)
풀에서 사용 가능한 커넥션이 없을 경우, 커넥션이 생길때까지 대기하는 시간을 설정(msec 단위). 
설정값을  -1로 할 경우 무제한으로 대기한다.

2-1. 단일 Oracle DB와 연동시 설정 방법

- tomcat설치경로/conf/context.xml에 아래 내용을 입력한다.

vi context.xml

<Context>
(중략)

<Resource 
		name="jdbc/(dbname입력)" 
		auth="Container"             
		type="javax.sql.DataSource" 
		driverClassName="oracle.jdbc.OracleDriver"
		url="jdbc:oracle:thin:@(DB서버의IP):1521:(DB_SID)"
		username="(username입력)" 
		password="(password입력)"
		validationInterval="30000" // 이 시간 안에는 validationquery를 하지 않는다. default 값은 30000
		validationQuery="SELECT 1 FROM DUAL" // connection 유효성 체크 query이다. oracle에는 "SELECT 1 FROM DUAL"을 넣는다.
		maxTotal="20" 
		maxIdle="10"
		maxWaitMillis="-1"   />

</Context>

 

- Tomcat설치경로/conf/web.xml에 아래 내용을 입력한다.

vi web.xml

(중략)

	<resource-ref>
		 <description>Oracle Datasource example</description>
		 <res-ref-name>jdbc/(dbname입력)</res-ref-name>
		 <res-type>javax.sql.DataSource</res-type>
		 <res-auth>Container</res-auth>
	</resource-ref>

</web-app>

 

※ 참고 URL

https://velog.io/@jwa/Tomcat-JDBC-%EC%84%A4%EC%A0%95
https://sarc.io/index.php/tomcat/21-tomcat-datasource


2-2. 여러개의 Oracle DB와 연동시 설정 방법(ex. oracle rac 구성 등)

- tomcat설치경로/conf/context.xml에 아래 내용을 입력한다.(단일구성과 다름)

vi context.xml

(중략)

	<Resource
		name="jdbc/(dbname입력)"
		auth="Container"
		type="javax.sql.DataSource"
		validationQuery="SELECT 1 FROM DUAL"
		validationInterval="30000"
		driverClassName = "oracle.jdbc.driver.OracleDriver"
		description="Oracle Datasource"
		url="jdbc:oracle:thin:@(DESCRIPTION=(FAILOVER=ON)(LOAD_BALANCE=ON)(ADDRESS=(PROTOCOL=TCP)(HOST=db서버1_IP입력)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=db서버2_IP입력)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=DB_ServiceName입력)))"
		username="(username입력)"
		password="(password입력)"
		maxTotal="100"
		maxIdle= "30"
		maxWaitMillis= "10000"           />


</Context>

 

 

- Tomcat설치경로/conf/web.xml에 아래 내용을 입력한다.

vi web.xml

(중략)

	<resource-ref>
		 <description>Oracle Datasource example</description>
		 <res-ref-name>jdbc/(dbname입력)</res-ref-name>
		 <res-type>javax.sql.DataSource</res-type>
		 <res-auth>Container</res-auth>
	</resource-ref>

</web-app>

 

※ 참고 URL

https://mcpaint.tistory.com/199


 

https://change-words.tistory.com/entry/Oracle-SID-ServiceName
https://oingdaddy.tistory.com/372
https://jsp-making.tistory.com/489
https://corona-world.tistory.com/87

 

 

 

'Infra > DB' 카테고리의 다른 글

DB Log(제너럴로그, 슬로우쿼리로그)  (0) 2024.01.15
HA, RAC 구성에 대해(Oracle)  (0) 2024.01.15
Tomcat 10.1 & MariaDB 10.6.15 연동, DBCP 적용  (0) 2023.10.26
Mariadb 설치(RHEL8)  (0) 2023.10.25

+ Recent posts