Background Image

FORUM

lhb
조회 수 7580 추천 수 0 댓글 2
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
OS
Windows Server 2012 R2 Standard(DB), Windows 7 pro(client)
CUBRID Ver.
CUBRID 9.2 (9.2.24.0002) (64bit release build for Windows_NT) (Jan 81 2016 06:36:18)
CUBRID TOOL Ver.
CUBRID Manager 9.3.1.704  (64bit)
응용 환경(API)
java

* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
에러 내용 및 재현 방법 재현 가능한 Source와 SQL
관련 테이블(인덱스, 키정보 포함) 정보 CUBRID 홈 디렉토리 아래 log 디렉토리 압축


-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------

안녕하세요. 고생이 많으십니다.


현재 자사 솔루션으로 큐브리드를 이용해서 데이터 구축을 하고 있습니다.

단순 txt 파일을 읽어서 디비에 인서트하고 있는데 총 건수가 996,261건입니다.

현재 680,000건이 입력되었습니다.

작업 시작시간은 2016-02-15 11:54:56.933 부터입니다. 약 2시간이 경과되었는데 너무 오래 걸리고 있습니다.


오라클과 mysql로도 해보았습니다. 작업시간은 10분이내에 모두 정상종료되었습니다.


솔루션에서 사용하는 hikari DB 커넥션 풀의 min, max=240개입니다.


또 가끔 아래와 같은 오류가 발생하기도 합니다.

[2016-02-15 14:04:46.232] [ERROR] [xxx.APooledDataSource returnConnection:?] [Access : Pool - returnConnection]
cubrid.jdbc.driver.CUBRIDException: Cannot communicate with the broker or received invalid packet[CAS INFO - ip:33000,3,17740],[SESSION-2098],[URL-jdbc:cubrid:ip:33000:db:id:********:].
 at cubrid.jdbc.jci.UConnection.createJciException(UConnection.java:2055)
 at cubrid.jdbc.jci.UInputBuffer.<init>(UInputBuffer.java:74)
 at cubrid.jdbc.jci.UConnection.send_recv_msg(UConnection.java:1667)
 at cubrid.jdbc.jci.UConnection.send_recv_msg(UConnection.java:1676)
 at cubrid.jdbc.jci.UConnection.setIsolationLevel(UConnection.java:1107)
 at cubrid.jdbc.driver.CUBRIDConnection.setTransactionIsolation(CUBRIDConnection.java:355)
 at com.zaxxer.hikari.proxy.ConnectionProxy.resetConnectionState(ConnectionProxy.java:155)
 at com.zaxxer.hikari.proxy.ConnectionProxy.close(ConnectionProxy.java:192)
 at xxx.APooledDataSource.returnConnection(Unknown Source)


구성은 java 1.7, hikari db pool, spring 입니다.


cub_js.access.log에는

2016/02/15 14:07:11 - - - user_token_info is null.

이게 종종 기록되고 있습니다.


혹시 몰라서 소스 일부 및 설정 파일도 같이 보내드립니다.


public synchronized void returnConnection(Connection conn) throws aException
 {
  try
  {
   if (conn != null)
    conn.close();
   conn = null;
  }
  catch (Exception e2)
  {
   logger.error("Access : Pool - returnConnection", e2);
  }
 }


@Override
 public boolean beginTransaction(String datahouse, ISOLATION_LEVEL level) throws aException
 {
  if (_transactionConn != null)
   return true;

  try
  {
   _transactionConn = _pool.getConnection();
   logger.debug("Access.Cubrid : transaction begin - " + _transactionConn.toString());

   _transactionConn.setAutoCommit(false);
   if (level == ISOLATION_LEVEL.SERIALIZABLE)
    _transactionConn.setTransactionIsolation(level.toInt());
   else
    _transactionConn.setTransactionIsolation(ISOLATION_LEVEL.READCOMMITTED.toInt());
  }
  catch (Exception e)
  {
   if (_transactionConn != null)
   {
    try
    {
     _pool.returnConnection(_transactionConn);
    }
    catch (Exception e1)
    {
     logger.error("Access.Cubrid : transaction begin error", e1);
    }
    _transactionConn = null;
   }

   logger.error("Access.Cubrid : transaction begin error", e);

   return false;
  }

  _level = level;
  return true;
 }


public boolean commit(String datahouse) throws aException
 {
  if (_transactionConn == null)
   return false;

  try
  {
   logger.debug("Access : commit - " + _transactionConn.toString());

   _transactionConn.commit();
   _transactionConn.setAutoCommit(true);
   _pool.returnConnection(_transactionConn);
   _transactionConn = null;
  }
  catch (Exception e)
  {
   logger.error("Access : transaction commit error", e);

   _transactionConn = null;
   _level = ISOLATION_LEVEL.NONE;
   return false;
  }

  _level = ISOLATION_LEVEL.NONE;
  return true;
 }


감사합니다.

  • ?
    엄기호 2016.02.17 02:39

    큐브리드를 사용해주셔서 감사합니다.


    위 내용으로는 정확하게 판단하기가 어렵습니다.


    1) 위 내용을 보면 txt 파일을 읽어서 DB에 Insert하신다고 하였는데 한건당 읽어서 DB에 Insert하시나요.

         아니면, txt파일을 모두 읽어서 한번에 Insert를 하시나요.

    2) 위 소스를 보면 ISOLATION_LEVEL를 변경하면서 작업이 수행되는 것 같습니다.

        트랜잭션 격리 수준(isolation_level)에 대한 내용은 아래 URL 정보를 참조 하셔서 개발 해주시면 감사하겠습니다.

        http://www.cubrid.org/manual/93/ko/sql/transaction.html#transaction-isolation-level

    3) CUBRID버전 과 cubrid jdbc 드라이버 버전이 동일하지 다시 한번 확인 부탁드립니다.

        그리고, 에러코드가 어떻게 되는지요.


  • ?
    lhb 2016.02.17 19:38

    1) txt 파일을 line 별로 읽어서 인서트 하며 5000건 단위로 commit을 수행합니다.

    2) ISOLATION_LEVEL 변경은 최초 DB Pool에서 설정한 ISOLATION_LEVEL에서 transaction 사용을 위해 ISOLATION_LEVEL 레벨을 변경하고 autocomit을 false로 변경한 내용이 전부 입니다.

    타사 디비 (oracle, mysql, mssql, db2, altibase, tibero, postgresql, 등등등) 모두 이상없는 코드입니다.

    3) CUBRID-JDBC-9.2.24.0002버전입니다. 정확한 버전 확인을 위해 cubrid_jdbc.jar 압축 해제 해서 확인 결과 메타파일에는 버전 정보가 없고 CUBRID-JDBC-9.2.24.0002 빈 파일이 있습니다.



List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 CUBRID 사용자를 위한 DBeaver 도구 출시 안내 admin 2024.04.23 49
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4458
2314 Operation would have caused one or more unique constraint violations. 1 곰팅팅이 2016.03.30 9742
2313 백업DB 정렬별 다른결과 출력. 1 secret 유산균- 2016.03.26 11
2312 테이블 내 데이터타입 값 변경문제 문의 2 아네모네 2016.03.25 10149
2311 cubrid 이중화 문의좀드립니다 3 곰팅팅이 2016.03.25 10679
2310 윤년의 날짜 계산부분의 오류? 3 라면 2016.03.24 9856
2309 Table Drop 후 데이터 볼륨 Size 에 변동이 없네요. 3 브이찾기 2016.03.24 9333
2308 큐브리드 브로커가 BUSY 상태로 지속되는 현상 문의 2 종이 2016.03.23 9347
2307 auto_increament 추가와 브로커관련 문의드립니다. 1 카이군 2016.03.23 8189
2306 큐브리드 List 데이터 타입에 대한, mybatis 연동 방법 문의 2 차오이 2016.03.22 11213
2305 Table 및 Index 가 사용하고 크기를 알수 있는 방법을 알려 주세요 6 브이찾기 2016.03.19 9624
2304 큐브리드 최신 릴리스노트 관련 문의 2 종이 2016.03.18 8257
2303 databases 파일로 복구가 가능한지요 1 서영아빠 2016.03.18 7806
2302 큐브릭 펜타호와 연계하는 방법 궁금합니다. 야밤비 2016.03.16 7614
2301 큐브리드 매니저 서비스 잦은 종료 1 라면 2016.03.15 8623
2300 인서트 시 IX_LOCK 문의 1 joke7 2016.03.14 7710
2299 UTF8 로 DB 를 만들고 한글 입력시 한글이 초과하여 들어 갑니다. 3 브이찾기 2016.03.14 9140
2298 테이블에 있는 컬럼들중 특정값 있는 컬럼찾기 또수니 2016.03.12 7611
2297 백업 및 복원시 테이블 복원 안되는 현상.. 1 말큼 2016.03.11 7159
2296 asp oledb로 연결해서 사용시 1 슈퍼뚱땡이 2016.03.08 8948
2295 Oracle->Cubrid 시 인덱스가 중복되었습니다. 라는 오류가 납니다. 2 secret 바퀴벌레 2016.03.07 6
Board Pagination Prev 1 ... 80 81 82 83 84 85 86 87 88 89 ... 200 Next
/ 200

Contact Cubrid

대표전화 070-4077-2110 / 기술문의 070-4077-2113 / 영업문의 070-4077-2112 / Email. contact_at_cubrid.com
Contact Sales