[Info]Tags categorized posts and contents patterns..

[AJAX] Ajax Code E xamples.. [Book] About the book.. [CSS] CSS Code E xamples.. [DB] Sql Code E xamples.. [DEV] All development stor...

레이블이 WAS인 게시물을 표시합니다. 모든 게시물 표시
레이블이 WAS인 게시물을 표시합니다. 모든 게시물 표시

2016년 2월 12일 금요일

[JAVA]Weblogic에서 DataSource로 디비(DB) 연결하기..

출처 : Outsider's Dev Story https://blog.outsider.ne.kr/

JDBC를 이용해서 웹로직에서 제공하는 Data Source를 이용해서 DB 접속을 해보자. 웹로직에서 Data Source 설정을 해주어야 하는데 이건 웹로직 설치가이드 문서를 참고하기 바란다. 뒷부분에 보면 커넥션풀과 데이터소스를 설정하는 부분에 대해서 나와있다.

사용자 삽입 이미지
왼쪽 그림과 같이 설정이 되어야 한다.

먼저 Connection Pools를 만들고 만들어진 Connection Pools(여기선 ibisPool)을 이용해서 Data Sources를 만든다.

그리고 Java쪽에서는 만들어진 Data Sources(여기서는 ibisDS)를 사용하여 DB에 연결한다.





디비 연결 클래스를 보자.

Java

// Weblogic DBConnection Class
import java.sql.Connection;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;

import java.sql.ResultSet;
import java.sql.PreparedStatement;
import java.sql.Statement;

public class DBConnection {

    public DBConnection() {
    }

    public Connection getConnection() throws Exception {
        return getConnection("jdbc/ibisDS");
    }

    public Connection getConnection(String dsName) throws Exception {
        Context ctx = null;
        DataSource ds = null;
        try {
            ctx = new InitialContext();
            ds = (DataSource) ctx.lookup(dsName);
        } catch (NamingException e) {
            e.printStackTrace();
            return null;
        } finally {
            try {
                if (ctx != null)
                    ctx.close();
            } catch (NamingException ne) {
                System.err.println("comm.util.conPoool : can't close context resource !!");
            }
        }
        return (Connection) ds.getConnection();
    }

    public void disConnection(ResultSet rs, PreparedStatement pstmt, Statement cstmt, Connection conn) {
        try { if(rs   != null) rs.close()   ; rs    = null; } catch(Exception e) { rs    = null;}
        try { if(pstmt!= null) pstmt.close(); pstmt = null; } catch(Exception e) { pstmt = null;}
        try { if(cstmt!= null) cstmt.close(); cstmt = null; } catch(Exception e) { cstmt = null;}
        try { if(conn != null) conn.close() ; conn  = null; } catch(Exception e) { conn  = null;}
    }
}

기존의 JDBC 연결 클래스와 거의 동일하기 때문에 JDBC로 연결을 해본 사람이라면 웹로직에서도 크게 무리가 없으리라고 본다. (내가 그랬기 때문에.....)

일단 생성자인 DBConnection()에서는 아무것도 안하고 있고 오버로딩된 메서드 getConnection()이 2개 정의 되어 있다. 데이터소스 이름을 던져주면 2번째것이 실행되어서 데이터소스에서 해당이름으로 된것이 있는지 검색해서 커넥션을 리턴하고 파라미터를 던지지 않으면 기본으로 설정된 ibisDS(위에서 만든 이름이다. 당연히 각자 웹로직에서 사용한 이름으로...)의 커넥션을 리턴해준다. disConnection메서드에서는 사용한 디비자원을 닫아준다.

[JAVA]Weblogic 8.1에서 Production mode 설정..

출처 : Outsider's Dev Story https://blog.outsider.ne.kr/

웹로직에는 production mode와 development mode라는게 있다. 나도 잘 모르지만 대충 말하면 프로덕션 모드는 실제 서비스를 하는거고 development mode는 개발단계에서 쓰는거다. 개발단계에서 쓰므로 class파일을 교체해도 자동으로 리로드를 해주기 때문에 class파일을 재컴파일해도 바로 변경사항을 확인할 수 있다. production mode에서는 웹로직을 리스타트 해주어야 class 변경사항이 반영된다.

개발할때는 당연히 development mode에서 해야겠지...

C:\bea\user_projects\domains\mydomain\startWebLogic.cmd 파일을 보자.
(물론 여기서 mydomain은 내가 정해준 domain이름이다. 전에 올린 웹로직 설치문서 참고....)

set PRODUCTION_MODE=false

로 설정을 해주면 development mode가 되고 class가 바로바로 적용된다.(이거 안해놓으면 개발할때 엄청 불편하다.)

설정해주고 웹로직을 리스타해주면 된다. 물론 개발이 완료되고 서비스할때는 다시 true로...



덧) 이게 언제 한건데 이제야 포스팅을... ㅡ..ㅡ(오래되서 기억이 가물가물한 가운데...)

2016년 2월 11일 목요일

[JAVA]웹로직(Weblogic) 8.1 설치가이드 문서..

출처 : Outsider's Dev Story https://blog.outsider.ne.kr/

웹로직은 BEA사의 WAS[Web Application Server]이다.

이 WAS라는 것을 이해하기가 꽤 어려웠다. JSP쪽을 먼저 배우긴 했지만 아주 잠시였고 그 다음에는 ASP쪽을 계속 했었기 때문에 IIS가 모든 것을 하고 WAS라는 개념이 없는 MS쪽 서버환경에 익숙한 나에게는 이해하기가 좀 어려웠다.

WAS는 그 이름대로 서버사이드 언어를 해석해 주는게 주 역할이다. 나도 아주 잠시동안 사용해 본것이고 WAS의 개념을 다 이해했다고 하기에는 내가 만져본 WAS는 아주 기초적인 수준에 불과하지만 그나마 좀 이해한거 정도만 말해볼라고 한다. (왠지 나중에 보면 틀린 내용이 있을 것 같지만....)

IIS는 IIS가 모든 역할을 다 하지만 JSP쪽에서는(왜 다르게 구성되는진 잘 모르겠지만.. ㅡ..ㅡ) 웹서버와 WAS가 구분된다. 웹서버는 보통 요청을 처리하고 대개 Apache가 그 역할을 한다. HTML은 해석할 수 있지만 JSP등의 서버측 언어는 해석할 수 없기 때문에 WAS가 필요하고 트래픽이 큰 서비스는 WAS를 여러개 두기도 한다.

처음 JSP를 배울때는 보통 톰캣을 많이 사용하는데 위의 간략설명정도로만 보면 역할은 거의 동일하지만 성능을 보았을때 톰캣은 WAS라고 부르기는 좀 어려운듯 하다.(보통 컨테이너라고 호칭하는듯....) 이건 확실하진 않지만 WAS자체도 웹서버의 역할을 어느정도 수행할 수 있는듯하다. 마치 톰캣처럼...(일단 내 로컬에서 WAS만으로 페이지를 돌릴수 있었다.)


웹로직을 처음 한다고 했을때 꽤나 난감하고 당황스러웠었는데 정작 겪고 보니 그렇게 어렵지는 않았다. 물론 실서비스를 운영하려면 설정해야 할 것들이 많겠지만 돌려보는 정도로는 그렇게 어렵지 않았고 아래의 문서가 상당히 잘 정리가 되어 있어서 올린다. 8.1기반으로 되어 있고 문서는 오래되었지만 그냥 따라하는 정도로 설치와 기본설정등을 모두 할 수 있었다.(윈도우와 리눅스 모두 따라해서 WAS 설치를 완료할 수 있었다.)

사용자 삽입 이미지



물론 위에 캡처에 나온대로 이 문서는 내가 만든건 아니고 파일로 보아 BEA Korea측에서 작성한 듯 싶다. 동일한 문서가 여기저기 올려져 있기는 하지만 난 J2ee Study에서 이 문서를 얻었다.

웹로직은 BEA사이트에서 다운 받을수가 있다.