컴퓨터활용/프로프레임 18

프로프레임 4.0 스튜디오 heap 메모리 부족 오류

프로프레임 4.0 스튜디오를 사용하다가 메모리 오버 플로우 가 나면서 heap 메모리가 부족하다는 오류가 발생될 경우가 있습니다. 종전에 알기로 eclipse.ini 에다가 옵션을 잡아 주면 되는 것으로 알았는데 실험해 본 바에 의하면 먹히지 않습니다. 대신 proframe.exe 를 실행하는 단축아이콘의 속성에 아래와 같이 Xms, Xmx 메모리를 지정하면 먹히네요. C:\TmaxSoft\ProFrameTP4.0\Studio\proframe.exe -clean -vmargs -Xms256m -Xmx512m 여기서 Xms 는 initaial heap memory size 이고 Xmx 는 Maximum heap memory size 입니다. 보통 1G 이상 메모리를 가지고 있는 노트북이라면 256으로 시작..

[프로프레임] Conditions can't call the right function

프로프레임에서 dbio를 호출하였는데 오류가 발생하였다. 오류 번호로 리턴된 값은 -90001002 이고 오류메시지는 [DBIO] Conditions can't call the right function 이다. 어떤 경우에 이런 오류가 나오는 것일까? 처음 프로프레임 dbio 를 array fetch 로 작성하였을 때 관련한 배열처리 내부 함수들이 만들어 진다. 이런 array fetch dbio를 프로그램에 끌어다 사용하였을 것이다. 그 후에 개발자가 dbio 를 단건 fetch 로 변경하였다. 그리고 dbio를 컴파일 했다. 그러나 정작 이 dbio를 사용하고 있는 프로그램은 다시 컴파일을 하거나 재구성을 하지 않았다. 이런 경우에 프로그램이 실행될 때는 이전의 array fetch 함수를 계속 호출..

[프로프레임] 서비스로그 추출 쉘

개발자들이 거래를 하고 바로 로그를 보기 위해서 로그파일을 tail 걸곤 한다. 좀 더 쉽게 해당 거래 로그만 추출하여 볼 수 있다면 편할 수 있다. 아래 스크립트를 응용하여 자기에게 맞게 편집하여 사용하면 편하게 볼 수 있지 않을까 싶다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 # 서비스명을 입력하지 않으면 입력요청 if [ $# -lt 1 ];then echo "Which Service ?? \c" read SVC else SVC=$1 fi CHK=`echo $SVC | cut -..

[프로프레임] dlupdate 상태확인 쉘

프로프레임에서 사용하는 dlupdate 는 정말 유용하다. 유닉스C 에서 자바에서와 같이 실시간 모듈이 동적으로 반영될 수 있기 때문이다. 이렇게 dlupdate 된 모듈이 잘 메모리에 적재가 되었는 지 체크하는 쉘이 있어 소개한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 ..

[프로프레임] 거래전문 추출 Pro*C

오라클에서 제공하는 proc 샘플을 이용하여 작성하였다. 프로프레임 3.0 에서는 거래를 할 때 마다 이미지로그 테이블에 거래 전문을 보관한다. 이것을 조회하여 text 파일로 떨어트린다. 그런 후에 이 전문 정보를 이용하여 재거래를 해 볼 수 있다. 재거래를 하기 위해서는 pfmtcl 이라는 명령을 이용한다. 이미지로그파일은 일자별로 나누어져 있기 때문에 일자를 입력값으로 받아야 한다. 프로그램내에서 Dynamic SQL을 이용하기 위하여 Prepared Statement 방식을 이용하였다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43..

[프로프레임] tdlinit.sh

Tmax에서 기본 제공하는 tdlinit 명령은 $TDLDIR/mod/ 에 생성되어 있는 symbolic link 정보대로 .so 라이브러리를 복사하여 $TDLDIR/run/ 에 복사를 한 후에 메모리에 적재까지 하게 된다. tdlinit 명령을 실행하기 전에 반드시 Tmax를 내려야 한다. Tmax가 기동 중에 tdlinit 명령을 실행하게 되면 메모리에 올려져 사용되고 있을 라이브러리들은 삭제가 되지 않기 때문에 교체하는 과정에서 문제가 발생될 수 있다. tdlinit 은모듈 속 global function명과 run 하위의 실제 물리파일간의 hash 매핑정보를 Shared Memory에 적재하는 과정으로 제법 시간이 걸린다. 따라서 tdlinit -b 명령을 실행할 경우 $TMAXDIR/tdlcal..

[프로프레임3.0] tmconfig.m 을 통한 서버 일괄 빌드

프로프레임 3.0 에서 티맥스 서버를 일괄 컴파일하는 쉘을 작성하였다. 서버는 두가지 종류로 나눌 수 있는데 표준적인 서버가 있다. 이런 서버는 표준 템플릿서버소스로 동일한 모양의 소스로 생성이 되고 각 서비스는 dlcall 방식으로 호출하게 된다. 서버에 서비스는 하나씩만 구성할 수도 있고 하나의 서버에 여러 서비스를 묶을 수도 있는데 이것은 프로젝트 상황에 맞게 구성하면 된다. 작업하기 전에 쉘들이 존재하는 디렉토리 하위에 src, log, appbin 이 만들어져 있어야 한다. | 직접 컴파일 서버 목록 파일 작성 직접 컴파일 하는 목록을 먼저 작성한다. 전체 업무별 디렉토리를 뒤지면 직접 컴파일하는 서버 목록은 구할 수 있다. 이 작업은 약간의 수작업이 요구된다. [compile.svr.list]..

프로프레임 모듈 이관/컴파일 순서

프로프레임에서 프로그램을 컴파일 하는 순서가 있다. 이것은 C 코딩을 직접 해 본 사람이라면 별로 어려운 문제가 아닐 터이나 프로프레임 스튜디오와 같은 UI툴을 이용하여 처음 C언어를 접하고 개발을 시작한 사람이라면 이해하기 어려울 수가 있다. 운영환경으로 헤더, c프로그램 소스가 이관된 후 컴파일 한 후에 dlupdate 하는 환경이라면 프로그램을 컴파일하는 순서와 프로그램을 운영환경에 이관하는 순서는 동일하다. DBIO -> 모듈의 입출력구조체 -> 모듈 의 순서로 이관을 해야 하고 입출력 구조체가 또 다른 서브구조체를 include 하고 있다면 서브구조체 부터 이관해 줘야 한다. 이것은 c언어의 구조가 include 라는 방식의 구조를 하고 있기 때문인데 예를 들어 A프로그램이 B모듈을 EMB에서 ..

프로프레임 리소스권한 관리

모듈에는 내부모듈과 외부모듈로 구분할 수 있다. 내부모듈은 팀내부에서만 사용하는 모듈, 대부분의 경우 로직이 너무 길어서 분리한 경우일 수가 많다. 외부모듈은 타팀제공모듈이라고도 하며 다른 팀에서 모듈을 호출해서 사용할 수 있도록 허용한 모듈이다. 타팀의 원장을 직접 읽지 못 하도록 가이드하고 있으므로 타팀에게 원장의 데이타를 제공하거나 받아들이는 용도의 모듈이 대표적인 예이다. 그런데 간혹 내부모듈과 외부모듈을 혼동하여 타팀에서 나의 내부모듈을 EMB에 끌어다 사용해 버리는 경우가 있다. 물론 프로그램 사용에는 문제는 없겠으나 향후 유지보수시에 문제가 발생될 수 있다. 업무 변경으로 인하여 내부모듈 입출력 구조체를 변경할 필요가 있을 경우 내부팀원들끼리 모여서 의견 공유하고 함께 로직을 반영하고 컴파일..

프로프레임 스튜디오 단축키

프로프레임 스튜디오의 편집기에서 사용되는 단축키에 대하여서는 (창->환경설정->일반->키) 에서 직접 정의할 수 있다. 이클립스 기반의 툴이기 때문에 이클립스에서 제공되는 기본적인 단축키가 미리 설정되어 있으나 프로프레임스튜디오에서 문제를 일으킬 수 있는 몇 가지 단축키 (Ctrl-B 같은 것)는 직접 제거해 버릴 수 있다."창 - 환경설정 - 키"에서 프로프레임이 제공하는 모든 단축키를 참조할 수 있다특별히 유용하게 사용되는 단축키를 강조했다. C/C++ Source Add Block Comment Ctrl+Shift+/ C/C++ Editor C/C++ Source Add Include Ctrl+Shift+N C/C++ Editor C/C++ Source C..

반응형