반응형

컴퓨터활용/티맥스 32

PFM_CATCH 절의 return 값은 오류 리턴 보장되어야 합니다

예외처리를 구현함에 있어서 지난 번(3월)에 가이드 할 때 예외처리 IM 을 FUNCTION 타입으로 구현할 경우 프로그램의 return 값이 정상으로 변경될 수 있으므로 주의해야 하는 번거로움이 있으므로 block 타입으로 지정하는 것을 권장했었는데 이것을 충실히 따른 좋은 예이다. EMB 그림과 더불어 소스도 충분히 검증되어야 한다. 소스를 열어서 보면 코드상에 문제가 있음을 알 수 있다. 아래의 소스대로 동작된다면 PFM_TRYNJ(pfmBatchDBRollback()); 함수를 호출한 뒤에 rc 값이 RC_NRM 으로 리턴될 경우 그 아래 쪽으로 흘러내려 가면서 return rc; 를 만나서 정상 리턴되고 프레임웍에서 commit 처리 된다는 것이다. PFM_CATCH: { /***********..

리소스 의존성 검색 SQL

BM의 CALL DEPTH 가 1 인 것만 검색하는 SQL 은 다음과 같다. 사실 의존성 검색은 1레벨 의존성만 검색해도 충분하다. SELECT RES.RESOURCE_ID, RES.PHYSICAL_NAME, RES.LOGICAL_NAME, RES.RESOURCE_TYPE, RES.RESOURCE_GROUP, RES.OWNER, RES.UPDATE_TIME, RES.STATUS FROM DEV_RESOURCE RES, (SELECT DISTINCT RESOURCE_ID FROM DEV_PROPERTY WHERE REFERENCE_ID = (select resource_id from dev_resource where physical_name = 'mnlgs8030_0') ) PRO WHERE RES.RES..

Full GC 발생시 아래사항을 숙지하여 Heap dump를 떠야할

ProFrame Container FULL GC 발생시 Heap Dump & thread dump 뜨는 방법 입니다. Full GC 발생시 아래사항을 숙지하여 Heap dump를 떠야할 상황에 잘 수행토록 합시다. [ ProFrame Container PID 알아내는 명령어] >ps -fu proframe | grep container1 proframe 4819 4623 0 5월 16 ? 03:53:32 /opt/java1.4/jre/bin/IA64W/java -server -Dcontainer1 -Xbootclasspath/p:/nbsdev/package/jeus/lib/system/extension.jar -classpath [GC 로그 위치] /nbsdev/package/jeus/logs/gc_lo..

DBIO EXECSQL 실행시 "ORA-00932: 일관성 없는 데이터 유형" 발생하는 경우

INSERT INTO TB_NB_NL_HH_VIP ( NSGRN_LMT_AM ) SELECT (CASE WHEN :chk_yn = '0' THEN NSGRN_LMT_AM ELSE :nsgrn_lmt_am END) FROM TB_NB_NL_HH_VIP 위와 같은 경우 컴파일을 정상적으로 수행되나 실행할 때 다음과 같은 오류가 발생합니다. ORA-00932: 일관성 없는 데이터 유형 이것은 프로프레임 내부적으로 PfmNumber 타입의 변수를 SQL 속에 대입할 때 char 문자열로 값을 전달하기 때문에 발생되는 문제 입니다. 따라서 위와 같은 execSQL 속의 입력변수의 타입을 맞추기 위하여 다음과 같이 고쳐서 사용해야 합니다. INSERT INTO TB_NB_NL_HH_VIP ( NSGRN_LMT_AM..

error #2029: expected an expression

개발자가 요청해 오기를 컴파일 과정에서 다음과 같은 오류를 만났는데 원인을 모르겠으니 찾아달라고 한다. 원인을 찾다가 다음과 같은 결론을 얻었다. "SVBE0011I2_bak.c", line 1686: error #2029: expected an expression msvbe_fnc_wrs_c(msvbe_g0010_in.srlev_data.fnc_wrs_c, SVBE_SVFNDBSCI_INFO->be_fnd_tpc); ^ "SVBE0011I2_bak.c", line 1686: error #2032: expression must have arithmetic type msvbe_fnc_wrs_c(msvbe_g0010_in.srlev_data.fnc_wrs_c, SVBE_SVFNDBSCI_INFO->be_fn..

[디지털데일리] 코어뱅킹 솔루션 시장, 4사 경쟁구도 치열

지나고 보면 정말 격동의 시기였다. 티맥스는 불가능에 대한 끊임없는 도전으로 주위의 우려 속에서 불가능하다는 것을 가능하다는 것으로 입증해 보여주었다. 간혹 무모할 정도로 불가능한 것에 도전하다가 진짜 불가능해 질 뻔 했던 적이 여러 번 있었지만 그 때 마다 희한하게도 구원자가 나타났다. 프레임워크라는 것을 만들어 가는 과정에서 첫 적용사례인 한미은행 코어뱅킹 프로젝트가 바로 그것이었다. 처음 프로젝트를 시작할 때 "프레임워크라는 것이 뭐 별것이냐? 그동안 티맥스라는 미들웨어로 여러 프로젝트를 해 봤고 그 노하우를 이것저것 모아 놓으면 그게 바로 프레임워크이지"라고 생각했었다. 그 때가 2003년 이었다. 그러나 막상 한미은행 프로젝트는 프레임워크를 적용하는 것 보다는 업무개발이라는 난제에 부딛쳤었다. ..

view 의 출력변수 생성시 오류

DBIO는 VIEW 의 출력변수 생성을 위하여 sql 이 정상적으로 수행되는지 한번 돌려 봅니다. 이렇게 돌려 보는 것은 작성된 SQL이 제대로 작성되었는지 확인하는 순기능도 있지만 실제적으로는 출력변수들이 메타에 등록되어 있는 용어들인지 체크하는 것이 더 중요한 목적이라고 볼 수 있다. 사례1:java.sql.SQLException : ORA-01013 : 사용자가 현재 작업의 취소를 요청했습니다. 그런데 이 SQL을 돌려보았더니 쿼리 수행시간이 너무 오래 걸려서 ( 튜닝이 필요하겠죠 ) 제우스나 스튜디오가 일정시간 동안 응답이 없을 경우 time out 으로 끊어 버리기 때문에 발생되는 오류 메시지입니다. 즉, 프로프레임의 버그라고는 볼 수 없습니다. 해결방법으로는 1. sql 수행속도를 3초 이내에..

구조체 패딩(padding)문제

1. 구조체와 패딩비트 아래와 같은 구조체를 선언했다고 하자. struct test_s { char a; int b; } test; char가 1바이트이고 int가 4바이트인 시스템에서 위의 구조체를 선언하고 sizeof()로 구조체의 사이즈를 찍어보면 얼마가 나올까? 생각대로라면 5바이트가 나와야 한다. 1 + 4 = 5 이니까.. 그런데 대부분의 컴파일러에서 실제로는 8바이트가 나온다. 이유는 패딩비트가 추가되어서 그렇다. 몇몇 컴파일러는 구조체의 필드를 메모리에 위치시킬때 중간에 빈 공간없이 쭉 이어서 할당하는 경우도 있지만, 대부분의 컴파일러는 성능향상을 위해 CPU가 접근하기 쉬운 위치에 필드를 배치한다. 그러다보니 중간에 빈 공간이 들어가게 되는것이다. 이 빈 공간이 바로 패딩비트이다. 이에 ..

반응형