WebLogic 10.3 JDBC 설정(DataSource)

Posted at 2009.04.18 05:48 | Posted in Server/WebLogic

- console 접속


- 왼쪽 트리메뉴에서 도메인이름 → Serviews → JDBC → Data Sources 선택





- 현재 등록되어있는 DataSource 목록이 나옵니다. New 클릭



- 기본 속성 입력
Name : 그냥 표시되는 이름
JDI Name : 중요!! DataSource 를 찾을 때 쓰는 이름입니다.
Database Type : 디비 종류
Database Driver : 드라이버





- 트랜잭션 설정 : 잘 모르겠습니다 -_- Next





- SID, 아이디, 비번, 주소 등등 입력합니다. Next





- 접속 테스트 합니다. Test Configuration 클릭





- Connection test succeeded. 가 나와야 성공. Next





- 타겟 서버를 선택합니다. Finish





- 추가된 것 확인




- 등록 완료



테스트

- 간단하게 테스트하기 위해 Server Runtime 을 Orcle WebLogic Server v10.3으로 선택





- 간단한 테스트 페이지 작성

<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%>
<%@ page import="javax.naming.*, javax.sql.*, java.sql.*" %>
<%@ page import="java.util.Properties"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>WebLogic 10.3 JDBC 테스트</title>
</head>
<body>

<%
Context ctx = null;
DataSource ds = null;
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;

try
{
   ctx = new InitialContext();
   ds = (DataSource)ctx.lookup("AntopTest");

   conn = ds.getConnection();
   stmt = conn.createStatement();

   rs = stmt.executeQuery("select * from tab");

   while(rs.next()) {
      out.print(rs.getString(1) + " - " + rs.getString(2) + "<br>");
   }
}
catch(Exception e)
{
   out.print("error : " + e.getMessage());
}
finally
{
   try { if(rs != null) rs.close(); } catch (SQLException ignore) { }
   try { if(stmt != null) stmt.close(); } catch (SQLException ignore) { }
   try { if(conn != null) conn.close(); } catch (SQLException ignore) { }

   ds = null;
   try { if(ctx != null) ctx.close(); } catch (NamingException ignore) { }
}
%>

</body>
</html>



- 실행 결과





tag: ,
  1. seo
    맙소사 weblogic 10.3 install 구글에서 검색했는데 안탑께 나왓어....-__-;;;;
  2. hjbeauty
    -,.- 흘려가며 눈 뻘개져가며 찾아 헤몄는데 구글 영문탄도 보고요 , 이렇게 속시원하게 만들어 늫으신것을 이제야 찾아서 얼마나 감사한지요. 계속 구독하고 싶어요
    그리고 감사 꾸벅
  3. 복덩이
    기존 8버전대에선 커넥션풀도 잡고 데이터소스도 잡아줬는데
    버전 10으로 가면서 커넥션풀은 안 잡고 데이터소스만 잡으라고 가이드 하던데요..

    그렇게 되면 8버전대에서 쓰던 프로그램을 수정해야 하는 일들이 발생하더군요..

    공통파일...JDBC관련 자바파일에서요..

    다른 분들도 그런 일 있었나요??
    • 2009.08.27 15:07 신고 [Edit/Del]
      음.. 웹로직 8.1sp6 깔고 커넥션풀은 대충 잡고 DataSource JNDI 이름 맞춰서 하고 위에 소스 그대로 테스트 했는데 잘 되었습니다.

      음.. 공통파일이라는게 이럴때(서버환경바꼇을때?) 한번만 바꾸라고 만든거니.. 공통 파일을 바꾸는 것도...
  4. Seeker
    테스트 페이지를 퍼갔으니 저도 뭔가 알려드려야겠죠....;;

    트랜잭션에는 일반적으로 다음의 세가지가 관계되어 있습니다.
    1. 애플리케이션: 트랜잭션 요청 착수
    2. data store(데이터베이스 등):트랜잭션 구동
    3. API(드라이버 등):애플리케이션과 데이터 창고 간의 통신. J2EE 플랫폼에서는 J2EE- compliant 애플리케이션 서버에 의해 API(또는 드라이버)가 제공된다. 이 애플리케이션 프로그램은 애플리케이션 서버를 호출하여 트랙잭션을 수행.

    어찌되었건...non-XA 드라이버를 사용하는 경우 트랜젝션 처리 방법에대해서 WebLogic에서는 세가지 방법을 제시합니다.

    one phase는 말그대로 한번에...검사하지 않고 넘어가는 방식이고
    emulate two phase는 첫번째로, 트랜잭션이 오류 없이 구동 되었는지를 확인하는 검사가 실행한 후, 오류가 없다면 두번째로 넘어가며, 에러가 있다면 트랜잭션은 초기화합니다.
    LLR은 위 방법보다는 더 안정적이라고 하는데(실행된 것에대하여 다시 읽어옵니다.) 뭐...

    어쨋든...트랜젝션 안쓰면 빼는것을 추천합니다.(가끔 안빼서 Error나는 경우가 있더군요)
  5. 복덩이
    웹로직 10 설치하고서



    혹,,이런 에러 본적 있나요..
    DataSource로 커넥션 맺고 insert하는 과정에서


    setAutoCommit(false);
    ...
    execute();
    ...
    con.commit(); => 에러 발생!!!



    ejb_jar.xml에서는 Required(Container)로 설정..



    무엇이 문제일까요? 웹로직 8에서는 commit있어도 에러 없었음.



    DataSource를 사용하면서 문제가 되는거 같기도 하구요..

    이런식으로 코딩해놓은 소스가 너무 많아서 다 고치기도 어렵구요..(테스트하기 어려움)



    참..에러메시지는

    java.sql.SQLException: Cannot call Connection.commit in distributed transaction.
    Transaction Manager will commit the resource manager when the distributed tran
    saction is committed.
    at weblogic.jdbc.wrapper.JTSConnection.commit(JTSConnection.java:611)
    ......

    이런식입니다.

    윗분이 트랜잭션 관련 설명해주셨는데요..
    저희쪽 데이터소스 설정 시 OnePhaseCommit으로 설정되어 있네요..(이게 디폴트 같기도 하구요)
  6. tacchinardi
    웹로직과 OracleDB 연동 부분을 검색하다가 들르게 되었습니다.
    DB DataSource를 등록하는 과정에 마지막 타켓 서버 지정해주는 부분을 빼먹는 바람에
    몇 시간 삽질했는데...-_-;;;
    덕분에 해결되었습니다.
    이 페이지를 제 싸이 게시판에 링크 걸어두고 싶은데 괜찮으신지 모르겠습니다
  7. 저도 위에분과 같이 타겟서버 지정하는거 때문에 한시간을 허비했군요... 좋은정보입니다!!!

    티스토리가 의외로 깔끔하군요..
  8. 히야!
    정말 굿입니다..
    일주일간 검색을 헛했네요 ㅋㅋㅋ

댓글 (Comment)

Name*

Password*

Link (Your Website)

Comment

SECRET | 비밀글로 남기기