목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

Save this PDF as:
 WORD  PNG  TXT  JPG

Size: px
Start display at page:

Download "목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4"

Transcription

1 ALTIBASE HDB Patch Notes

2 목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4 BUG [sm] V$LFG 에서삭제된 logfile 번호컬럼 (FIRST_DELETED_LOGFILE, LAST_DELETED_LOGFILE) 값이잘못출력됩니다... 7 BUG PSM 안에서 dequeue 호출시 into 절을누락하면서버가비정상종료할수있습니다 BUG receiver 에서 stop 중 V$REPRECEIVER_TRANSTBL 을조회하면잘못된메모리를참조할수있습니다 BUG 각서버에서이중화대상 table 의컬럼순서가다른경우, update 수행시이중화가정상적으로수행되지않습니다 BUG AltibaseDataSource 를사용하는경우 Clob factory 가초기화되지않아 NullPointerException 이발생할수있습니다 BUG OpenSSL 로딩시버전을출력해주어야합니다 / 16

3 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼 대기하지않는문제가있습니다. Module Category 재현빈도 Reproducing Conditions 증상변경사항 Workaround mm-queue Functional Error Always DROP QUEUE Q1; CREATE QUEUE Q1(16); 재현절차 SET TIMING ON; DEQUEUE /*+ NO_PLAN_CACHE */ MESSAGE FROM Q1 WAIT 900MSEC; isql> DEQUEUE /*+ NO_PLAN_CACHE */ MESSAGE FROM Q1 WAIT 900MSEC; MESSAGE 수행결과 No rows selected. elapsed time : 0.00 isql> DEQUEUE /*+ NO_PLAN_CACHE */ MESSAGE FROM Q1 WAIT 900MSEC; MESSAGE 예상결과 No rows selected. elapsed time : 0.90 DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제를수정하였습니다. Performance View N/A Property N/A Compile Option N/A Error Code N/A N/A 3 / 16

4 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합 연산이존재하지않으면결괏값오류가발생할수있습니다. Module Category 재현빈도 qp-select-pvo Functional Error Always drop table t1; create table t1 ( c1 varchar(15) ); Reproducing Conditions 재현절차 insert into t1 values ( 'eee' ); insert into t1 values ( 'aaa' ); insert into t1 values ( 'bbb' ); insert into t1 values ( 'ddd' ); insert into t1 values ( 'bbb' ); insert into t1 values ( 'ccc' ); insert into t1 values ( 'aaa' ); insert into t1 values ( 'ccc' ); insert into t1 values ( 'eee' ); insert into t1 values ( 'ddd' ); select /*+ no_plan_cache */ substr(c1, 1, 3),count(case when substr(c1, 1, 3) = 'SPBKO' then 1 else 0 end) gg1 from t1 group by substr(c1, 1, 3); 수행결과 select /*+ no_plan_cache */ substr(c1, 1, 3),min(c1),count(case when substr(c1, 1, 3) = 'SPBKO' then 1 else 0 end) gg1 from t1 group by substr(c1, 1, 3); isql> select /*+ no_plan_cache */ substr(c1, 1, 3) 2,count(case when substr(c1, 1, 3) = 'SPBKO' then 1 else 0 end) gg1 3 from t1 group by substr(c1, 1, 3); SUBSTR(C1,1,3) GG / 16

5 ddd 1 ddd 1 ddd 1 ddd 1 ddd 1 ddd 3 ddd 1 ddd 1 8 rows selected. 예상결과 isql> select /*+ no_plan_cache */ substr(c1, 1, 3) 2,min(c1) 3,count(case when substr(c1, 1, 3) = 'SPBKO' then 1 else 0 end) gg1 4 from t1 group by substr(c1, 1, 3); SUBSTR(C1,1,3) MIN(C1) GG aaa aaa 2 bbb bbb 2 ccc ccc 2 ddd ddd 2 eee eee 2 5 rows selected. isql> select /*+ no_plan_cache */ substr(c1, 1, 3) 2,count(case when substr(c1, 1, 3) = 'SPBKO' then 1 else 0 end) gg1 3 from t1 group by substr(c1, 1, 3); SUBSTR(C1,1,3) GG aaa 2 bbb 2 ccc 2 ddd 2 eee 2 5 rows selected. 5 / 16

6 증상 변경사항 Workaround isql> select /*+ no_plan_cache */ substr(c1, 1, 3) 2,min(c1) 3,count(case when substr(c1, 1, 3) = 'SPBKO' then 1 else 0 end) gg1 4 from t1 group by substr(c1, 1, 3); SUBSTR(C1,1,3) MIN(C1) GG aaa aaa 2 bbb bbb 2 ccc ccc 2 ddd ddd 2 eee eee 2 5 rows selected. group by 표현식에있는컬럼 (t1.c1) 을참조하는집합 연산 (min(c1)) 이존재하지않으면, case 구문에포함된 substring 연산이오동작해서결괏값오류가발생할수있습니다. 수정방법은 case 구문에포함된 substring 연산이 group by 표현식을참조하도록변경합니다. Performance View N/A Property N/A Compile Option N/A Error Code N/A N/A 6 / 16

7 BUG [sm] V$LFG 에서삭제된 logfile 번호 컬럼 (FIRST_DELETED_LOGFILE, LAST_DELETED_LOGFILE) 값이 잘못출력됩니다. Module Category 재현빈도 Reproducing Conditions 증상변경사항 Workaround sm Functional Error Always 재현절차 N/A 수행결과 N/A 예상결과 N/A V$LFG 에서삭제된 logfile 번호컬럼 FIRST_DELETED_LOGFILE, LAST_DELETED_LOGFILE 값이잘못출력되던문제를수정하였습니다. Performance View N/A Property N/A Compile Option N/A Error Code N/A N/A 7 / 16

8 BUG PSM 안에서 dequeue 호출시 into 절을누락하면서버가비정상 종료할수있습니다. Module Category 재현빈도 qp-psm-trigger-execute Fatal Always DROP QUEUE Q1; DROP PROCEDURE PROC1_DEQUEUE; Reproducing Conditions 재현절차 CREATE QUEUE Q1 ( c1 integer, c2 varchar(10), c3 varchar(10) ); CREATE OR REPLACE PROCEDURE PROC1_DEQUEUE AS V1 INTEGER; BEGIN DEQUEUE c1, c2, c3 from q1; END; / 수행결과 execute PROC1_DEQUEUE; isql> CREATE OR REPLACE PROCEDURE PROC1_DEQUEUE 2 AS 3 V1 INTEGER; 4 BEGIN 5 DEQUEUE c1, c2, c3 from q1; 6 END; 7 / Create success. isql> execute PROC1_DEQUEUE; 8 / 16

9 [ERR : Communication failure.] isql> CREATE OR REPLACE PROCEDURE PROC1_DEQUEUE 2 AS 3 V1 INTEGER; 4 BEGIN 5 DEQUEUE c1, c2, c3 from q1; 6 END; 7 / [ERR-3114D : A SELECT statement in a procedure or function must have an INTO clause. 예상결과 In PROC1_DEQUEUE 0005 : DEQUEUE C1, C2, C3 from Q1; ^ ^ In PROC1_DEQUEUE 0005 : DEQUEUE C1, C2, C3 from Q1; ^ ^ ] 증상 변경사항 Workaround isql> execute PROC1_DEQUEUE; [ERR : Procedure or function not found : 0001 : execute PROC1_DEQUEUE ^ ^.] PSM 에서 dequeue 수행시 into 절이없는경우에서버가비정상종료하는현상을수정합니다. Performance View N/A Property N/A Compile Option N/A Error Code N/A CREATE OR REPLACE PROCEDURE PROC1_DEQUEUE AS V1 INTEGER; 9 / 16

10 V2 VARCHAR(100); V3 VARCHAR(100); BEGIN DEQUEUE c1, c2, c3 into v1, v2,v3 from q1; END; / 10 / 16

11 BUG receiver 에서 stop 중 V$REPRECEIVER_TRANSTBL 을조회 하면잘못된메모리를참조할수있습니다. Module Category 재현빈도 Reproducing Conditions 증상변경사항 Workaround rp Fatal Rare 재현절차 N/A 수행결과 N/A 예상결과 N/A receiver 에서 stop 하면서할당되었던메모리를정리할때 V$REPRECEIVER_TRANSTBL 조회하면잘못된메모리를참조하여문제가발생하였습니다. 메모리를정리하는위치를 Lock 구간으로변경하여잘못된메모리를참조하지않도록수정하였습니다. Performance View N/A Property N/A Compile Option N/A Error Code N/A N/A 11 / 16

12 BUG 각서버에서이중화대상 table 의컬럼순서가다른경우, update 수행시이중화가정상적으로수행되지않습니다. Module Category 재현빈도 Reproducing Conditions 증상변경사항 Workaround dm Functional Error Always 재현절차 N/A 수행결과 N/A 예상결과 N/A 각서버에서이중화대상 table 의컬럼순서가다르더라도, update 수행시이중화가정상적으로수행되도록수정하였습니다. Performance View N/A Property N/A Compile Option N/A Error Code N/A N/A 12 / 16

13 BUG AltibaseDataSource 를사용하는경우 Clob factory 가초기화 되지않아 NullPointerException 이발생할수있습니다. Module Category 재현빈도 Reproducing Conditions 재현절차 mm-jdbc Functional Error Always public class ClobTest { public static void main(string[] aargs) throws Exception { new ClobTest().doTest(); } private void dotest() throws Exception { Connection scon = getconnection(); scon.setautocommit(false); PreparedStatement sstmt = scon.preparestatement("insert INTO t1 VALUES (?,?)"); File sfile = new File("/home/yjpark/work/altidev4_651/altibase_home/sample/JDBC/CLOB/M emorydbms.txt"); FileReader sfilereader = new FileReader(sFile); sstmt.setint(1, 1); sstmt.setcharacterstream(2, sfilereader, (int)sfile.length()); sstmt.execute(); scon.commit(); } private Connection getconnection() { Properties sprops = new Properties(); sprops.put( "user", "sys"); sprops.put( "password", "manager"); Connection scon = null; String surl = "jdbc:altibase://localhost/mydb"; 13 / 16

14 수행결과 예상결과 try { AltibaseDataSource sdatasource = new AltibaseDataSource(); sdatasource.setservername(" "); sdatasource.setportnumber(20300); scon = sdatasource.getconnection("sys", "manager"); } catch ( Exception e ) { System.out.println("Can't register Altibase Driver"); System.out.println( "ERROR MESSAGE : " + e.getmessage() ); System.exit(-1); } return scon; } } Exception in thread "main" java.lang.nullpointerexception at Altibase.jdbc.driver.datatype.LobObjectFactory.createClob(LobObjectFactory.java:39) at Altibase.jdbc.driver.datatype.ClobLocatorColumn.getClobSub(ClobLocatorC olumn.java:88) at Altibase.jdbc.driver.datatype.AbstractColumn.getClob(AbstractColumn.java:4 68) at Altibase.jdbc.driver.datatype.LobLocatorColumn.getClob(LobLocatorColumn.java:13) at Altibase.jdbc.driver.LobUpdator.updateLobColumns(LobUpdator.java:173) at Altibase.jdbc.driver.AltibasePreparedStatement.execute(AltibasePreparedSta tement.java:740) at ClobTest.doTest(ClobTest.java:43) at ClobTest.main(ClobTest.java:31) no error 14 / 16

15 AltibaseConnectionPoolDataSource 를사용할때 Clob 컬럼조회시증상 NullPointerException 이발생할수있는문제를수정합니다. Performance N/A View Property N/A 변경사항 Compile N/A Option Error Code N/A Workaround use AltibaseDataSource.setURL 15 / 16

16 BUG OpenSSL 로딩시버전을출력해주어야합니다. Module Category 재현빈도 Reproducing Conditions 증상변경사항 Workaround cm Maintainability Always 재현절차 N/A 수행결과 N/A 예상결과 N/A OpenSSL 로딩시버전을 altibase_boot.log 에출력하도록수정하였습니다. ex> SSL_version_str : OpenSSL 1.0.1e-fips 11 Feb 2013 SSLeay_version() : OpenSSL 1.0.1e-fips 11 Feb 2013 Performance View N/A Property N/A Compile Option N/A Error Code N/A N/A 16 / 16