database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
ㆍTibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Tibero Q&A 524 게시물 읽기
No. 524
티베로 + 스프링 사용중 에러.. ㅠㅠ
작성자
쵸리
작성일
2009-11-17 13:40ⓒ
2009-11-17 15:24ⓜ
조회수
37,740

티베로에 스프링 프레임 워크를 사용 중입니다.



 


 


 


 

  

 


DB연결 설정은 위와 같으며


자바에서는 


String query = "select * from A_TABLE";


JdbcTemplate jt = new JdbcTemplate(datsSource);


List result = jt.queryForList(query);   


위와 같이 했습니다만



org.springframework.jdbc.CannotGetJdbcConnectionException: 

     Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: 

            Cannot create PoolableConnectionFactory (TJDBC-90405:

                  I/O error while reading from server - stream buffer reading error)


원인을 잘 모르겠습니다.


위와 같은 에러가 나오는데... 좀 도와주세요 ㅠㅠ


복잡한 구성도 아닌데 말이죠 ㅠㅠ


무엇을 확인해 보면 좋을까요????




이 글에 대한 댓글이 총 4건 있습니다.

안녕하세요. 티베로 담당자 입니다.

현재 발생하는 에러는 DB와의 커넥션이 원활하지 않아서 발생하는 에러입니다.

$ tberr 90405
/*
 * err:   -90405
 * name:  ERROR_JDBC_COMM_IO_ERROR_READ
 * desc:   I/O error while reading from server.
 * cause:  An I/O error occurred while reading data from the server.
 * action: Check server connection.;
 */


서버와 커넥션이 원활하지 않은 이유는 여러가지가 있겠지만
올려주신 글 내용만으로는 파악이 어렵네요.

1. 설정하신 IP, Port, SID를 다시 확인해주세요
2. 네트웍사이 또는 서버에 방화벽 설정이 되어 있지 않은지 확인해주세요

위와 같은 조치로도 해결이 안된다면 
Connect 설정소스(환경파일)과 Connect을 얻어오는 소스를 첨부해주시면 
다시 확인해보겠습니다.

티맥스데이타(Tibero3)님이 2009-11-17 16:46에 작성한 댓글입니다.
이 댓글은 2009-11-17 16:47에 마지막으로 수정되었습니다.
DB설정내용

 <bean id="dsHmpg" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
  <property name="driverClassName" value="com.tmax.tibero.jdbc.TbDriver" />
  <property name="url" value="jdbc:tibero:thin:@xxx.x.xx.xxxx:8629:xxxx" />
  <property name="username" value="abc" />
  <property name="password" value="abc" />  
 </bean>

DB설정은 위와 같이 되었습니다.

태맥스테크넷 사이트에서 검색 결과 

티베로 설치된 디렉토리에서 JDBC를 다운 받아

해당 프로젝트 라이브러리 디렉토리에 tibero3-jdbc.jar 라는 이름으로 변경도 해보고

변경하지 않은채 그대로 복사해서 테스트 해봐도 결과는 같습니다.

(솔직히 왜 이름을 변경해야하는지도 잘 모르겠습니다. ㅡㅡ;)

아무쪼록 답변 부탁드립니다.

이틀째 삽질중이네요 ㅠㅠ
쵸리님이 2009-11-18 07:59에 작성한 댓글입니다. Edit

위 DB설정내용에 특이점은 안보입니다.

어플리케이션상의 설정이 맞다면

Tibero가 정상적으로 기동되어 있고 8629 포트로 Listening 하고 있는지 확인하시고

tbAdmin 또는 tbSQL로 Tibero 접속이 가능한지 확인해보시기 바랍니다.


그리고 JDBC 드라이버 이름을 특정이름으로 반드시 변경할 필요는 없습니다.
(단, classpath에 드라이버 이름까지 명시적으로 지정했거나 tbAdmin상에서 JDBC 드라이버를 로딩할때는 이름을 변경해야 합니다.)

티맥스데이타(Tibero3)님이 2009-11-18 10:05에 작성한 댓글입니다.
이 댓글은 2009-11-18 10:05에 마지막으로 수정되었습니다.

혹시 tbAdmin이나 tbSQL 을 사용할 수 있는 환경이 안된다면

아래 java 프로그램으로 테스트한 후에 실행결과나 에러를 올려주시면 다시 확인해보겠습니다.


1. 아래 java 소스를 카피해서 .java 파일로 만든 후

2. 굵게 표시된 부분은 사용자 환경에 맞게 IP, Port, ID, Password 를 설정 합니다.

3. Tibero가 설치된 Home 디렉토리에서 ~/client/lib/jar 디렉토리 밑에
   tibero3-jdbc.jar 또는 tibero4-jdbc.jar 파일을 1번에서 만든 .java 파일과 같은 디렉토리에 복사하고
   (이것도 역시 반드시 같은 디렉토리에 .jar 파일을 위치시킬 필요는 없고 classpath만 정확하게 설정해주면 됩니다.)

4. java 파일 컴파일 후 실행해주세요

ex) 
C:\JAVA>javac -classpath ./tibero-jdbc.jar ConnectionTest.java

C:\JAVA>java -classpath .;./tibero-jdbc.jar ConnectionTest
=====================================
DB_DRV : com.tmax.tibero.jdbc.TbDriver
DB_DRV : jdbc:tibero:thin:@localhost:8629:tibero
DB_ID  : tibero
DB_PWD : tmax
-------------------------------------
Tibero Connect Success
=====================================

=====================================
SQL : SELECT SID, USERNAME, SQL_ID, TO_CHAR(LOGON_TIME, 'YYYY-MM-DD HH24:MI:SS')
 LOGON_TIME FROM V$SESSION
-------------------------------------
SID        : 18
USERNAME   : TIBERO
SQL_ID     : 7
LOGON_TIME : 2009-11-18 10:35:35
=====================================




=============  DB접속 테스트용 java ==============

import java.sql.*;
import com.tmax.tibero.*;

public class ConnectionTest
{
    Connection        conn   = null;   //DB접속
    Statement         stmt   = null;   //SQL Statement
    ResultSet         rs     = null;   //SQL 실행결과
    String            strSQL = null;   //SQL문

    //Tibero JDBC Driver
    String DB_DRV    = "com.tmax.tibero.jdbc.TbDriver";

    //Tibero 연결정보
    String DB_IP     = "localhost";     //Tibero IP
    String DB_PORT   = "8629";          //Tibero 접속 Port
    String DB_SID    = "tibero";        //Tibero SID
    String DB_ID     = "tibero";        //접속할 유저 ID
    String DB_PWD    = "tmax";          //접속할 유저 패스워드

    String DB_URL    = "jdbc:tibero:thin:@"+DB_IP+":"+DB_PORT+":"+DB_SID;


    //생성자
    public ConnectionTest()
    {
    }


    //Tibero 접속
    public void connect()
    {
        try
        {
            System.out.println("=====================================");
            System.out.println("DB_DRV : " + DB_DRV);
            System.out.println("DB_DRV : " + DB_URL);
            System.out.println("DB_ID  : " + DB_ID);
            System.out.println("DB_PWD : " + DB_PWD);
            System.out.println("-------------------------------------");

            Class.forName(DB_DRV);
            conn = DriverManager.getConnection(DB_URL, DB_ID, DB_PWD);

            System.out.println("Tibero Connect Success");
            System.out.println("=====================================");
            System.out.println("");
        }
        catch (Exception ex)
        {
            ex.printStackTrace();
        }
    }


    //SQL 수행
    public void excute()
    {
        try
        {
            strSQL = "SELECT SID, USERNAME, SQL_ID, TO_CHAR(LOGON_TIME, 'YYYY-MM-DD HH24:MI:SS') LOGON_TIME FROM V$SESSION";
            stmt = conn.createStatement();
            rs = stmt.executeQuery(strSQL);
            System.out.println("=====================================");
            System.out.println("SQL : " + strSQL);
            System.out.println("-------------------------------------");
            while ( rs.next() )
            {
                System.out.println("SID        : " + rs.getString(1));
                System.out.println("USERNAME   : " + rs.getString(2));
                System.out.println("SQL_ID     : " + rs.getString(3));
                System.out.println("LOGON_TIME : " + rs.getString(4));
                System.out.println("=====================================");
            }
        }
        catch (Exception ex)
        {
            ex.printStackTrace();
            disconnect();
        }
    }


    //Tibero 접속종료
    public void disconnect()
    {
        try
        {
            if (rs   != null)   rs.close();
            if (stmt != null)   stmt.close();
            if (conn != null)   conn.close();
        }
        catch (Exception ex)
        {
            ex.printStackTrace();
        }
        finally
        {
            if ( rs    != null ) try { rs   .close(); } catch(Exception e) {}
            if ( stmt  != null ) try { stmt .close(); } catch(Exception e) {}
            if ( conn  != null ) try { conn .close(); } catch(Exception e) {}
        }
    }


    //Main 함수
    public static void main (String [] args)
    {
        ConnectionTest test = new ConnectionTest();

        test.connect();
        test.excute();
        test.disconnect();
    }
}

티맥스데이타(Tibero3)님이 2009-11-18 10:42에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
587Tibero + QueryService(Anyframe) 조합에서 결과값을 리턴하는 프로시져 호출 에러
선영석
2010-08-18
10184
584TAC 사용 시 system hang 현상 [1]
grrrr
2010-03-24
9917
574티베로 트랜잭션 처리 [1]
해소수
2010-02-09
14186
524티베로 + 스프링 사용중 에러.. ㅠㅠ [4]
쵸리
2009-11-17
37740
522DBCP에서 CLOB 사용이 안됩니다. [2]
이상호
2009-10-16
8950
521tibero3.0 설치했는데 접속이 안됩니다 [1]
강동현
2009-10-13
19558
517JDBC 호출이 되지 않습니다..ㅠ.ㅠ [1]
이은성
2009-10-08
15947
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.047초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다