메뉴 건너뛰기

Cloudera, BigData, Semantic IoT, Hadoop, NoSQL

Cloudera CDH/CDP 및 Hadoop EcoSystem, Semantic IoT등의 개발/운영 기술을 정리합니다. gooper@gooper.com로 문의 주세요.


* 참고1 ==> http://kshmc.tistory.com/entry/MyBatis-Datasource-%EC%B0%B8%EA%B3%A0
* 참고2 ==> http://fruitdev.tistory.com/59

mybatis을 이용한 java프로그램에서 주말(토,일)에 아래와 같은 오류가 발생하는 경우가 있는데 이는 커넥션이 끊어진 상태에서 query를 보내려할때 발생한다. 이때는 mybatis에서 아래와 같은 설정 하여준다. 특히 아래의 두개 값이 설정되어야 주기적으로 커넥션을 체크하여 커넥션을 유지 할 수 있다.

poolPingEnabled : 커넥션이 살아있는지 ping 테스트 여부
poolPingQuery : 커넥션 ping 테스트 쿼리 (DB 종류에 따라 적절하게 수정)

--------설정부분--------------------------------
<environments default="development">
    <environment id="development">
        <transactionManager type="JDBC" />
        <dataSource type="POOLED">
            <property name="driver" value="${driver}" />
            <property name="url" value="${url}" />
            <property name="username" value="${username}" />
            <property name="password" value="${password}" />
            <property name="poolMaximumActiveConnections" value="20"/>
            <property name="poolMaximumIdleConnections" value="20"/>
            <property name="poolMaximumCheckoutTime" value="20000"/>
            <property name="poolPingEnabled" value="true"/>
            <property name="poolPingQuery" value="select 1"/>
            <property name="poolPingConnectionsNotUsedFor" value="10000"/>
            <property name="poolTimeToWait" value="15000"/>
        </dataSource>
    </environment>
</environments>

------------------------------오류내용-----------------------------------
[2016-10-31 10:47:30,879] [util.Utils] [runShell(#581)] [DEBUG] Thread errMsgT Status : TERMINATED 
[2016-10-31 10:47:30,879] [util.Utils] [runShell(#586)] [DEBUG] notTimeOver ==========================>true 
[2016-10-31 10:47:30,879] [util.Utils] [runShell(#601)] [DEBUG] process destoryed ==========================> 
[2016-10-31 10:47:30,879] [sf.TripleService] [sendTripleFile(#247)] [DEBUG] resultStr in TripleService.sendTripleFile() == > [, ] 
[2016-10-31 10:47:30,879] [sf.TripleService] [sendTripleFile(#258)] [INFO] sendTripleFile end==========================> 
[2016-10-31 10:47:30,879] [onem2m.AvroOneM2MDataSubscribe] [sendTriples(#224)] [INFO] Sending triples in com.gooper.icbms.sda.kafka.onem2m.AvroOneM2MDataSubscribe end....................... 
[2016-10-31 10:47:30,879] [comm.SchComm] [updateFinishTime(#69)] [DEBUG] updateFinishTime in SchComm start..... 
[2016-10-31 10:47:30,879] [service.Sch2ServiceImpl] [updateFinishTime(#143)] [DEBUG] updateFinishTime() ......................... start  
org.apache.ibatis.exceptions.PersistenceException: 
### Error updating database.  Cause: org.apache.ibatis.transaction.TransactionException: Error configuring AutoCommit.  Your driver may not support getAutoCommit() or setAutoCommit(). Requested setting: false.  Cause: java.sql.SQLNonTransientConnectionException: Could not read resultset: unexpected end of stream, read 0 bytes from 4
### Cause: org.apache.ibatis.transaction.TransactionException: Error configuring AutoCommit.  Your driver may not support getAutoCommit() or setAutoCommit(). Requested setting: false.  Cause: java.sql.SQLNonTransientConnectionException: Could not read resultset: unexpected end of stream, read 0 bytes from 4
        at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:23)
        at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:150)
        at com.gooper.icbms.sda.comm.sch.dao.Sch2DAO.updateFinishTime(Sch2DAO.java:33)
        at com.gooper.icbms.sda.comm.service.Sch2ServiceImpl.updateFinishTime(Sch2ServiceImpl.java:144)
        at com.gooper.icbms.sda.comm.SchComm.updateFinishTime(SchComm.java:93)
        at com.gooper.icbms.sda.kafka.onem2m.AvroOneM2MDataSubscribe$1.run(AvroOneM2MDataSubscribe.java:162)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.ibatis.transaction.TransactionException: Error configuring AutoCommit.  Your driver may not support getAutoCommit() or setAutoCommit(). Requested setting: false.  Cause: java.sql.SQLNonTransientConnectionException: Could not read resultset: unexpected end of stream, read 0 bytes from 4
        at org.apache.ibatis.transaction.jdbc.JdbcTransaction.setDesiredAutoCommit(JdbcTransaction.java:102)
        at org.apache.ibatis.transaction.jdbc.JdbcTransaction.openConnection(JdbcTransaction.java:135)
        at org.apache.ibatis.transaction.jdbc.JdbcTransaction.getConnection(JdbcTransaction.java:58)
        at org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:271)
        at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:69)
        at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:44)
        at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:100)
        at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:75)
        at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:148)
        ... 7 more
Caused by: java.sql.SQLNonTransientConnectionException: Could not read resultset: unexpected end of stream, read 0 bytes from 4
        at org.mariadb.jdbc.internal.util.ExceptionMapper.get(ExceptionMapper.java:123)
        at org.mariadb.jdbc.internal.util.ExceptionMapper.throwException(ExceptionMapper.java:69)
        at org.mariadb.jdbc.MariaDbStatement.executeQueryEpilog(MariaDbStatement.java:261)
        at org.mariadb.jdbc.MariaDbStatement.execute(MariaDbStatement.java:290)
        at org.mariadb.jdbc.MariaDbStatement.executeUpdate(MariaDbStatement.java:474)
        at org.mariadb.jdbc.MariaDbStatement.executeUpdate(MariaDbStatement.java:490)
        at org.mariadb.jdbc.MariaDbConnection.setAutoCommit(MariaDbConnection.java:492)
        at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at org.apache.ibatis.datasource.pooled.PooledConnection.invoke(PooledConnection.java:245)
        at com.sun.proxy.$Proxy5.setAutoCommit(Unknown Source)
        at org.apache.ibatis.transaction.jdbc.JdbcTransaction.setDesiredAutoCommit(JdbcTransaction.java:97)
        ... 15 more
Caused by: org.mariadb.jdbc.internal.util.dao.QueryException: Could not read resultset: unexpected end of stream, read 0 bytes from 4
        at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.getResult(AbstractQueryProtocol.java:472)
        at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.result(AbstractQueryProtocol.java:401)
        at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.executeQuery(AbstractQueryProtocol.java:383)
        at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.executeQuery(AbstractQueryProtocol.java:339)
        at org.mariadb.jdbc.MariaDbStatement.execute(MariaDbStatement.java:280)
        ... 24 more
Caused by: java.io.EOFException: unexpected end of stream, read 0 bytes from 4
        at org.mariadb.jdbc.internal.util.buffer.ReadUtil.readFully(ReadUtil.java:78)
        at org.mariadb.jdbc.internal.packet.read.RawPacket.nextPacket(RawPacket.java:112)
        at org.mariadb.jdbc.internal.packet.read.ReadPacketFetcher.getReusableRawPacket(ReadPacketFetcher.java:143)
        at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.getResult(AbstractQueryProtocol.java:417)
        ... 28 more
[2016-10-31 10:47:30,880] [service.Sch2ServiceImpl] [updateFinishTime(#154)] [DEBUG] Exception in updateFinishTime()=====> 
### Error updating database.  Cause: org.apache.ibatis.transaction.TransactionException: Error configuring AutoCommit.  Your driver may not support getAutoCommit() or setAutoCommit(). Requested setting: false.  Cause: java.sql.SQLNonTransientConnectionException: Could not read resultset: unexpected end of stream, read 0 bytes from 4
### Cause: org.apache.ibatis.transaction.TransactionException: Error configuring AutoCommit.  Your driver may not support getAutoCommit() or setAutoCommit(). Requested setting: false.  Cause: java.sql.SQLNonTransientConnectionException: Could not read resultset: unexpected end of stream, read 0 bytes from 4 
[2016-10-31 10:47:30,881] [onem2m.AvroOneM2MDataSubscribe$1] [run(#171)] [DEBUG] consumer(com.gooper.icbms.sda.kafka.onem2m.AvroOneM2MDataSubscribe$1) exception : org.apache.ibatis.exceptions.PersistenceException: 
### Error updating database.  Cause: org.apache.ibatis.transaction.TransactionException: Error configuring AutoCommit.  Your driver may not support getAutoCommit() or setAutoCommit(). Requested setting: false.  Cause: java.sql.SQLNonTransientConnectionException: Could not read resultset: unexpected end of stream, read 0 bytes from 4
### Cause: org.apache.ibatis.transaction.TransactionException: Error configuring AutoCommit.  Your driver may not support getAutoCommit() or setAutoCommit(). Requested setting: false.  Cause: java.sql.SQLNonTransientConnectionException: Could not read resultset: unexpected end of stream, read 0 bytes from 4 

번호 제목 날짜 조회 수
721 [Oracle 11g]Kudu table의 meta정보를 담고 있는 table_params의 백업본을 이용하여 특정 컬럼값을 update하는 Oracle SQL문 2023.09.04 142
720 [Impala jdbc]CDP7.1.7환경에서 java프로그램을 이용하여 kerberized impala cluster에 접근하여 SQL을 수행하는 방법 2023.08.22 164
719 [Hue metadata]Oracle에 있는 Hue 메타정보 테이블을 이용하여 coordinator와 workflow관계 목록을 추출하는 방법 2023.08.22 99
718 [Hue admin]Add/Sync LDAP user, Sync LDAP users/groups 버튼 기능 설명 2023.08.09 157
717 oozie의 sqoop action수행시 ooize:launcher의 applicationId를 이용하여 oozie:action의 applicationId및 관련 로그를 찾는 방법 2023.07.26 104
716 [CDP7.1.6,HDFS]HDFS파일을 삭제하고 Trash비움이 완료된후에도 HDFS 공간을 차지하고 있는 경우 확인/조치 방법 2023.07.17 108
715 [Encryption Zone]Encryption Zone에 생성된 table을 select할때 HDFS /tmp/zone1에 대한 권한이 없는 경우 2023.06.29 83
714 [EncryptionZone]User:testuser not allowed to do "DECRYPT_EEK" on 'testkey' 2023.06.29 89
713 [HDFS]Encryption Zone에 생성된 테이블 조회시 Failed to open HDFS file hdfs://nameservice1/tmp/zone1/sec_test_file.txt Error(255): Unknown error 255 Root cause: AuthorizationException: User:impala not allowd to do 'DECRYPT_EEK' on 'testkey' 2023.06.29 663
712 [Hadoop Encryption] Encryption Zone 생성/설정시 User:hadoop not allowed to do 'DECRYPT_EEK' ON 'testkey' 오류 발생 조치 사항 2023.06.28 176
711 [KTS Cluster의 Key Trustee Server]self-signed 인증서 발급및 설정 방법 2023.06.27 150
710 [Ranger]RangerAdminRESTClient Error gertting pplicies; Received NULL response!!, secureMode=true, user=rangerkms/node01.gooper.com@ GOOPER.COM (auth:KERBEROS), serviceName=cm_kms 2023.06.27 73
709 [CDP7.1.3]Ranger WebUI에서 Error! Connection refused: Please check the KMS provider URL and whether the Ranager KMS is running발생시 조치 방법 2023.06.07 133
708 [impala]insert into db명.table명 select a, b from db명.table명 쿼리 수행시 "Memory limit exceeded: Failed to allocate memory for Parquet page index"오류 조치 방법 2023.05.31 195
707 Impala Admission Control 설정시 쿼리가 사용하는 메모리 사용량 판단 방법 2023.05.19 673
706 [Atlas Server]org.apache.hadoop.hbase.security.AccessDeniedException: Insufficient permissions (user=atlas/node01.gooper.com@GOOPER.COM, scope=default:atlas_janus, params=[table=default:atlas_janus,], action-CREATE)] 2023.05.15 660
705 [Solr in Cloudera]Solr Data Directory변경 방법/절차 2023.04.21 169
704 [Ranger]계정에 admin권한(grant, create등)의 권한 부여 방법 2023.04.18 235
703 [DataNode]org.apache.hadoop.security.KerberosAuthException: failure to login: for principal: hdfs/datanode03@GOOPER.COM from keytab hdfs.keytab오류 2023.04.18 6135
702 [KUDU] kudu tablet server여러가지 원인에 의해서 corrupted상태가 된 경우 복구방법 2023.03.28 160
위로