일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- WebLogic
- JDOM
- MFC
- PHP
- jsr 296
- appspresso
- ibsheet
- sencha touch
- 선택적조인
- rowspan
- tomcat
- Ajax
- MySQL
- JSON
- Eclipse
- dock
- oracle
- Google Map
- GPS
- jQuery
- swingx
- iBATIS
- 전자정부프레임워크
- PLSQL
- 가우스
- phonegap
- node.js
- Android
- Struts
- Spring
- Today
- Total
Where The Streets Have No Name
Weblogic상에서의 ConnectionPool의 생성 및 환경 설정, DataSource 본문
▩ 오라클 9i 설치
1. 웹로직은 자체적으로 오라클 8.1.7부터 지원함, 오라클 9i설치
- Oracle Enterprise Manager Consol에서 서버관리할 것
2. Client에서 Net Manager 실행
- ora9
- 192.168.0.43, 1521
- ora9.it
3. 오라클 클라이언트 툴 설치하기, SqlGate 설치하기
- http://www.sqlgate.com
4. 오라클 셋팅하기
- scott, tiger 계정은 웨로직에서 사용할 수 없습니다.
5. 테이블 스페이스 생성, 계정, 권한주기
-- 테이블 스페이스 생성(ts_it+월+자신의 IP)
create tablespace ts_it0534
datafile 'D:oracledata200505 s_it0534.dbs' size 20M
default storage (initial 128k next 64k pctincrease 10);
--생성된 테이블 스페이스 보기
select tablespace_name, status, contents from dba_tablespaces;
--계정생성
create user it0534 identified by it123$
default tablespace ts_it0534
temporary tablespace temp;
--접속 권한주기
grant connect, resource to it0534;
-- 등록된 계정 목록 보기
select username, user_id from dba_users;
6. 생성된 계정으로 로그인하여 테이블을 생성하세요.
- 테이블 구조(comment, 데이터타입은 컬럼명으로 사용할 수 없습니다.)
CREATE TABLE visitor (
num int NOT NULL,
title varchar2(20) NULL ,
name varchar2(20) NULL ,
email varchar2(30) NULL
);
INSERT INTO visitor
VALUES(1, '안녕하세요', '홍길순', 'webmaster@nulunggi.pe.kr');
select * from visitor;
commit;
▩ ConnectionPool의 생성 및 환경 설정
- Connection 객체를 미리 생성하여 속도향상을 가져온다.
- 많은 접속자수로 인해 서버의 리소스가 바닥나지 않도록 관리할 수 있다.
- connection 객체를 가지고 있다.
http://127.0.0.1:7001/console 에서 로그인해서 설정
▩ DataSource 생성 및 환경설정
- connection 객체 생성
1. JDBC thin드라이버를 이용한 JDBC 프로그래밍(MS-SQL, Oracle 9i)
1) 실습 폴더 새성
- application안의 폴더명을 소문자로만 쓸것
C:eauser_projectsdomainsmydomain2applicationsjdbc_testWEB-INFclasses
2) web.xml, C:eauser_projectsdomainsmydomainapplicationsjdbc_testWEB-INF에 저장
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
</web-app>
3) weblogic.xml, C:eauser_projectsdomainsmydomainapplicationsjdbc_testWEB-INF에 저장
<?xml version="1.0" ?>
<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN" "http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd">
<weblogic-web-app>
<charset-params>
<input-charset>
<resource-path>/*</resource-path>
<java-charset-name>KSC5601</java-charset-name>
</input-charset>
</charset-params>
<context-root>/jdbc_test</context-root>
</weblogic-web-app>
4) 사용자가 가지고 있는 모든 테이블 보기
<!--tablelist.jsp, C:eauser_projectsdomainsmydomainapplicationsjdbc_test에 저장-->
<%@ page contentType="text/html;charset=EUC-KR"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="javax.naming.*"%>
<html>
<head>
<title> 사용자가 가지고 있는 모든 테이블 보기 </title>
</head>
<body>
<h3>
<%
Context ctx = null;
DataSource ds = null;
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
String sql = "select * from tab";
try{
ctx = new InitialContext();
ds = (javax.sql.DataSource)ctx.lookup("ora9");
con = ds.getConnection();
con.setAutoCommit(false);
stmt = con.createStatement();
rs = stmt.executeQuery(sql);
while(rs.next()){
out.println(rs.getString(1) + " " + rs.getString(2));
}
}catch(Exception e){
out.println(e.toString());
}finally{
if(rs != null){
try{
rs.close();
}catch(SQLException ex){}
}
if(stmt != null){
try{
stmt.close();
}catch(SQLException ex){}
}
if(con != null){
try{
con.close();
}catch(SQLException ex){}
}
} // finally
%>
</h3>
</body>
</html>
- http://127.0.0.1:7001/jdbc_test/tablelist.jsp
2. JTA의 이용
- 2단계 커밋을 지원하는 분산 트랜잭션 지원
- XA thin드라이버를 이용한 JDBC 프로그래밍(MS-SQL, Oracle 9i)
1) 실습 폴더 새성
- application안의 폴더명을 소문자로만 쓸것
C:eauser_projectsdomainsmydomain2applicationsjdbcxatestWEB-INFclasses
2) web.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
</web-app>
3) weblogic.xml
<?xml version="1.0" ?>
<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN" "http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd">
<weblogic-web-app>
<charset-params>
<input-charset>
<resource-path>/*</resource-path>
<java-charset-name>KSC5601</java-charset-name>
</input-charset>
</charset-params>
<context-root>/jdbcxatest</context-root>
</weblogic-web-app>
4) xa_tablelist.jsp
<%@ page contentType="text/html;charset=EUC-KR"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="javax.naming.*"%>
<%@ page import="javax.transaction.*"%>
<html>
<head>
<title> 사용자가 가지고 있는 모든 테이블 보기 </title>
</head>
<body>
<h3>
<%
Context ctx = null;
DataSource ds = null;
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
UserTransaction tx = null;
String sql = "select * from tab";
try{
ctx = new InitialContext();
tx = (UserTransaction)ctx.lookup("javax.transaction.UserTransaction");
tx.begin();
ds = (javax.sql.DataSource)ctx.lookup("oraxa9");
con = ds.getConnection();
stmt = con.createStatement();
rs = stmt.executeQuery(sql);
while(rs.next()){
out.println(rs.getString(1) + " " + rs.getString(2));
}
tx.commit();
}catch(Exception e){
out.println(e.toString());
}finally{
if(rs != null){
try{
rs.close();
}catch(SQLException ex){}
}
if(stmt != null){
try{
stmt.close();
}catch(SQLException ex){}
}
if(con != null){
try{
con.close();
}catch(SQLException ex){}
}
} // finally
%>
</h3>
</body>
</html>
- http://127.0.0.1:7001/jdbcxatest/xa_tablelist.jsp