본 장에서는 ProFrame C 5.0 Fix#1에서 추가된 새로운 기능에 대해 간략히 설명한다.
프로젝트별 권한 및 Role 관리 기능
각각의 프로젝트별로 리소스 권한 및 Role을 부여 할 수 있는 기능을 제공한다.
어드민 내비게이터
Admin Role을 가지고 있는 관리자 계정으로 스튜디오에 접속하는 경우 전체 프로젝트의 리소스를 확인할 수 있는 어드민 내비게이터를 제공한다. 단, 읽기 전용 상태로만 리소스 열기가 가능하다.
DBIO IN/OUT 컬럼을 변경하는 경우 Alert 표시 기능
DBIO 편집 중 쿼리 변경에 의하여 IN/OUT 구조체의 변수 이름, 순서, 타입, 컬럼 길이가 변경되었을 경우 개발자에게 변경 정보를 알려주는 기능을 제공한다.
EMB 모듈의 현재 수정 위치 알려주는 기능
EMB 에디터 [소스] 탭에서 모듈을 수정하는 경우 아웃라인 뷰에 현재 수정되고 있는 모듈의 위치가 표시되는 기능을 제공한다. 단, 성능 저하를 최소화하기 위하여 코드 수정, 블록지정의 액션이 발생할 때만 위치가 갱신된다.
프로젝트별 리소스 통계자료를 조회할 수 있는 기능
스튜디오에서 프로젝트별로 전체 리소스의 개발 및 완료 개수를 확인할 수 있는 뷰를 제공한다. 단, Admin Role을 가지고 있는 관리자 계정으로 접속하는 경우에만 모든 프로젝트의 리소스 통계자료가 나타난다.
WebAdmin RI/WS 리소스 체크인 일괄 취소 기능
프로젝트 관리용 기능으로 WebAamin에서 현재 프로젝트의 체크아웃되어 있는 리소스를 전체의 체크아웃을 취소하는 기능을 제공한다.
DBIO 로깅 기능 고도화
기존 ProFrame C 4.0의 C 소스젠에 있던 DBIO 쿼리 입력 구조체 출력 기능을 제공한다.
DBIO 맵 리스트 기능
스튜디오에서 DBIO를 컴파일하는 경우 현재 컴파일할 때 SO에 묶이는 DBIO의 목록을 조회할 수 있는 기능을 제공한다. WebAdmin 옵션(DBIO - CHECK_DBIO_LINKING_LIST)으로 DBIO 맵 리스트 기능을 ON/OFF할 수 있다.
스튜디오 RI/WS 자동 ON/OFF 기능
통합 서버의 RI/WS ON/OFF 옵션(USE_RIWS)에 따라 스튜디오에서 RI/WS 기능이 자동으로 ON/OFF되는 기능을 제공한다.
메타 리소스 마이그레이션 기능 (5.0 to 5.0 Fix#1)
메타를 일원화하는 기능을 사용하기 위해 이전 버전(ProFrame C 5.0)의 메타 리소스를 마이그레이션하는 기능을 제공한다. 만약 ProFrame C 4.0 메타 리소스를 마이그레이션하기 위해서는 먼저 ProFrame C 4.0 DB 마이그레이션 기능을 사용해 ProFrame C 5.0 Fix#1으로 마이그레이션 후 본 기능을 이용해야 한다. (Oracle만 지원가능)
사용법
pfm5mig.properties에 마이그레이션 정보를 입력한다.
source.driver=oracle.jdbc.driver.OracleDriver source.url=jdbc:oracle:thin:@192.168.1.155:1521:orcl source.user=proframe5 source.password= proframe5 destination.driver=oracle.jdbc.driver.OracleDriver destination.url=jdbc:oracle:thin:@192.168.1.156:1521:orcl destination.user=proframe5 destination.password=proframe5 # default:5 migsize=5 # 새롭게 사용할 project_id를 입력 project_id=MDS
com.tmax.proframe.mig.meta4to5.Pfm5MetaMigMain을 실행하여 마이그레이션을 진행한다. (ojdbc driver는 제공하지 않으며, 직접 사이트를 통해 다운받으면 된다.)
java -classpath pfmdevsvr.jar:$JEUS_HOME/lib/datasource/ojdbc14.jar com.tmax.proframe.mig.meta4to5.Pfm5MetaMigMain
ProFrame DB 마이그레이션 기능 (4.0 to 5.0 Fix#1)
ProFrame C 4.0 DB 데이터를 5.0 포맷으로 변경하여 마이그레이션하는 기능을 제공한다. 마이그레이션은 테이블 단위로 수행되어 commit 또는 rollback되며, 문제가 발생하는 경우 에러가 난 테이블만 체크하여 개별적으로 이관할 수 있다. (Oracle만 지원 가능하며, 리소스 중복으로 인한 테이블은 관리자가 확인 후 수동으로 처리해야 한다.)
사용법
pfm5mig.properties에 마이그레이션 정보를 입력한다.
source.driver=oracle.jdbc.driver.OracleDriver source.url=jdbc:oracle:thin:@192.168.1.155:1521:orcl source.user=proframe4 source.password= proframe4 destination.driver=oracle.jdbc.driver.OracleDriver destination.url=jdbc:oracle:thin:@192.168.1.156:1521:orcl destination.user=proframe5 destination.password=proframe5 # default:5 migsize=5 # 새롭게 사용할 project_id를 입력 project_id=MDS
mds_legacy_tables.txt(project_id가 포함되지 않은 테이블 목록)와 mds_mp_tables.txt(project_id가 포함된 테이블 목록)을 작성한다.
com.tmax.proframe.mig.proframe4to5.Pfm5MigMain을 실행하여 마이그레이션을 진행한다. (ojdbc driver는 제공하지 않으며, 직접 사이트를 통해 다운받으면 된다.)
java -classpath pfmdevsvr.jar:$JEUS_HOME/lib/datasource/ojdbc14.jar com.tmax.proframe.mig.proframe4to5.Pfm5MigMain
빌드 서버(소스 생선 전용)
기존의 로그 서버(LogServer)의 성능 개선을 위해 파일 관련된 작업을 전담하는 빌드 서버(PfmBuildSvr)를 제공한다. 빌드 서버는 서버 관련 파일과 서버 포트 설정을 해주어야 사용이 가능하다. 해당 파일과 설정 정보가 없을 경우 기존의 로그 서버가 동작한다.
로그 서버는 멀티 프로젝트 기능을 위해 기본적으로 설치되어야 한다. 하지만 빌드 서버는 파일 핸들링 성능향상을 위한 확장 모듈로 선택적 설치가 가능하다.
로그 서버가 설치되어 있는 경로에 빌드 서버를 복사한다.
pfmbuildserver.sh에 TCP_PORT 추가
#!/bin/sh
export LOG_EXEC_FILE=$PFMROOT/../logserver/logserver.jar
export TCP_EXEC_FILE=$PFMROOT/../logserver/pfmbuildsvr.jar
export TCP_LOG_FILE=$PFMROOT/../logserver/pfmbuildsvr.log
export TCP_ERR_FILE=$PFMROOT/../logserver/pfmbuildsvr.err
export CLASSPATH=${CLASSPATH}:$LOG_EXEC_FILE
export CLASSPATH=${CLASSPATH}:$TCP_EXEC_FILE
export TCP_PORT_NO=9718
echo ""
echo " ---------------------------"
echo " PFM BUILD SERVER BOOT START"
echo " ---------------------------"
echo ""
PfmDevSvr.xml에 BLD_PORT 추가
<configField id="MDS" type="subConfigField" value="true" xmlns="" >
<subConfigField id="DATA_SOURCE" value="pfm" type="string" xmlns="" />
<subConfigField id="LOG_IP" type="string" value="local" xmlns="" />
<subConfigField id="LOG_PORT" type="string" value="9948" xmlns="" />
<subConfigField id="BLD_PORT" type="string" value="9718" xmlns="" />
빌드 서버 시작
pfmbuildsvr.sh
빌드 서버 중지
pfmbuilddown.sh
파일 버전 정보 열람 기능
통합 서버의 각 jar 파일들의 버전 정보를 열람할 수 있는 기능을 제공한다. 파일별 메인 패키지의 VersionConfig를 실행하면 해당 파일의 이름과 버전, 빌드 시간이 출력된다.
사용법
java -cp pfmdevsvr.jar com.tmax.proframe.VersionConfig
VersionConfig 패키지
pfmdevsvr.jar : com.tmax.proframe logserver.jar, logviewer.jar : com.tmax.proframe.logviewer pfmwebadmin.jar : com.tmax.proframe.devsvr pfm_jaxb_model.jar : com.tmax.proframe.core.model smd-c-codegen.jar : com.tmax.proframe.core.codegen meta-schemas.jar : kr.co.tmaxsoft.proframe pfmbuildsvr.jar : com.tmax.proframe.pfmbuildsvr
프로젝트별 메타관리 일원화 기능
프로젝트별로 중복 관리되던 메타 데이터 문제를 해결하기 위해 기존의 일반 리소스들과 함께 관리되던 메타 데이터를 별도의 테이블(DEV_META)로 관리하도록 변경되었다. 단, Fix#1 패치 이전의 메타 데이터는 메타 리소스 마이그레이션 기능을 이용하여 메타 데이터를 이관해야 한다.
RI/WS 기능을 이용하기 위해서는 WS 영역의 DB 스키마에 synonym을 생성해야 한다.
메타 전용 테이블(DEV_META) 생성 쿼리
CREATE TABLE DEV_META ( META_ID VARCHAR2(32 BYTE) NOT NULL, META_TYPE VARCHAR2(16 BYTE), FIELD_TYPE VARCHAR2(16 BYTE), PHYSICAL_NAME VARCHAR2(128 BYTE), LOGICAL_NAME VARCHAR2(128 BYTE), META_GROUP VARCHAR2(128 BYTE), LENGTH VARCHAR2(5 BYTE), DEFAULT_VALUE VARCHAR2(128 BYTE), COMMENTS VARCHAR2(512 BYTE), POINT VARCHAR2(3 BYTE), IS_KEY VARCHAR2(1 BYTE), IS_INDEX VARCHAR2(1 BYTE), ALLOW_NULL VARCHAR2(1 BYTE), DB_TYPE VARCHAR2(16 BYTE), PRT_ORDER VARCHAR2(5 BYTE) ) ALTER TABLE DEV_META ADD (PRIMARY KEY (META_ID));
통합 서버 로그 기능 강화
리소스를 CRUD하는 경우 통합 서버 로그에 물리명이 표현되도록 기능이 개선되었다.
리소스 풀에서 검색한 리소스 삭제 기능
스튜디오 리소스 풀에서 검색한 리소스를 삭제할 수 있는 기능을 제공한다. 단, 검색 옵션 중 '의존성 선택-독립 리소스'가 선택된 상태에서 검색된 리소스만 가능하다.
내비게이터 리소스 다중 오픈 기능
내비게이터에서 리소스를 다중으로 선택해서 한꺼번에 열 수 있도록 개선되었다.
SiteConfig.xml에 NAVIGATOR_MULTI_SELECT_MAX_COUNT 옵션을 추가해 한꺼번에 열 수 있는 리소스 개수를 설정한다.
<!-- Multi Open ON/OFF --> <siteElement id="NAVIGATOR_MULTI_SELECT_MAX_COUNT" type="integer" value="5" xmlns=""/>
형상관리 기능 성능 개선
멀티 프로젝트의 형상관리를 요청하는 경우 처리 속도가 개선되었다.
WebAdmin Explorer 지원
WebAdmin이 Explorer 9부터 11까지에서 사용할 수 있도록 개선되었다.
Multi Node, Multi Gateway 환경에서 TCacheInvalidate하는 경우 Handler를 이용한 콘솔에 로그가 출력 기능
멀티 노드, 멀티 게이트웨이 환경에서 TCacheInvalidate하는 경우 콘솔로 출력되던 로그를 Handler를 이용하여 ON/OFF할 수 있도록 개선되었다.
TCacheInvalidate 처리 속도 향상
pfmTCacheInvalidate 처리 속도가 향상되었다.
RIWS ON 상태에서 리소스를 복원하는 경우 WS의 리소스 중복 여부 체크 기능
RIWS ON 상태에서 리소스를 복원하는 경우 WS에 중복되는 리소스가 있는지 확인하고 있다면 복원 및 취소를 선택할 수 있는 알림창을 추가하여, 사용자가 확인할 수 있도록 개선되었다.
EMB 리소스의 소스 저장 및 컴파일 방식 개선
EMB 리소스의 소스 저장 및 컴파일 방식이 큐를 사용하여 순차적으로 처리될 수 있도록 개선되었다.
Persist 타입 DBIO의 컬럼 추가/삭제 기능 개선
Persist 타입 DBIO의 컬럼을 버튼 이외의 마우스 컬럼명 더블클릭으로 추가/삭제가 가능하도록 개선되었다.
컨텍스트, 로컬변수, 상수 정의 시 기능 개선
컨텍스트, 로컬변수, 상수 정의 시 tab 키를 이용해 에디트 영역을 이동할 수 있도록 개선되었다.
DUAL 테이블 DBIO 생성 지원
시스템 테이블인 DUAL 테이블을 DBIO로 생성 가능하도록 개선되었다. (단, persist 타입만 가능)
MULTI_PROJECT 옵션 삭제
ProFrame C 5.0은 기본적으로 멀티 프로젝트를 지원하므로 PfmDevSvr.xml에서 MULTI_PROJECT 옵션이 삭제되었다.
메타 싱크 기능에서 ResourceID 자동 설정하는 기능 삭제
메타 싱크 기능을 사용하는 경우 ResourceID를 설정하지 않으면 물리명으로 자동 설정되는 기능이 삭제되었다.
스튜디오 뷰 삭제
스튜디오 Project Pool, Project Resource Pool, Project Export Manager, Project Import Manager, TestCase Export Manager, QA 뷰가 삭제되었다.
Template 리소스 삭제
EMB 위자드 및 기본 리소스에서 Template 리소스가 삭제되었다.
Template 및 UcsOnlineServer 검색 조건 삭제
리소스 풀, 리소스 히스토리 뷰 등과 같은 리소스 검색 조건에서 지원하지 않는 Template과 UcsOnlineServer 리소스가 삭제되었다.
뷰 삭제
스튜디오 Project Pool, Project Resource Pool, Project Export Manager, Project Import Manager, TestCase Export Manager, QA 뷰가 삭제되었다.
EMB XML 에디팅 기능 삭제
데이터 정합성을 위해 EMB 리소스의 XML 에디팅 기능이 삭제되었다.
tdlupdate가 안된 함수를 tdlcall하면 함수명이 이상하게 출력되는 현상
tdlupdate가 되지 않은 함수를 사용하면 에러 로그에 함수명이 이상하게 출력되는 현상이 수정되었다.
구조체 관련 소스에 개행문자가 생성되는 현상
구조체 관련 소스 생성시 개행문자(^M)가 생성되지 않도록 수정되었다.
DBIO 쿼리의 주석에 특수 문자를 입력하는 경우 소스 생성이 되지 않는 현상
DBIO 쿼리의 주석에 콜론(:), 작은따옴표(' ')를 입력하는 경우 소스젠에 영향을 주지 않도록 수정되었다.
형상관리할 때 프로젝트별 중복되는 리소스가 있는 경우 여러 건이 출력되는 현상
형상관리를 통해 리소스를 검색하는 경우 프로젝트별 중복되는 리소스가 있는 경우 여러 개가 출력되지 않도록 수정되었다.
DBIO의 배열크기 변경 후 모듈 재구성하는 경우 배열 크기가 반영되지 않는 현상
DBIO의 배열크기를 변경한 후 모듈을 재구성하면 컨텍스트 정의 및 소스에서 해당 DBIO의 구조체 배열크기가 자동으로 변경되도록 수정되었다.
Dynamic DBIO에서 메타 값을 가져오지 못하는 현상
Dynamic DBIO에서 메타 값을 가져오지 못하는 현상이 수정되었다.
SQL_Logging Script 생성 오류
SQL_Logging 기능을 사용하는 경우 입력 DBIO의 첫 번째 값만 출력되는 현상이 수정되었다.
스튜디오 Batch Kind Disable 현상
스튜디오 Batch 특성 화면에서 Kind 값이 Disable되는 현상이 수정되었다.
Windows 7 호환성 패치
Windows 7에서 스튜디오의 화면이 깨지고 멈추는 등의 현상이 수정되었다.
한글 사용자의 경우 단위테스트 화면 로그인 실패 현상
한글 사용자가 로그인 후 단위테스트할 때 화면이 정상적으로 열리지 않던 현상이 수정되었다.
리소스를 복원할 때 History_id 중복 현상
리소스를 복원하는 경우 History_id가 중복되지 않도록 History_id 채번 방식이 변경되었다.
스튜디오 저장 후 서버에 생성된 소스 불일치 현상
간혈적으로 스튜디오에서 소스를 저장 후 스튜디오의 소스와 서버의 소스가 불일치한 현상이 발생하여 서로 싱크가 맞도록 수정되었다.
EMB 소스 에디터에서 커맨드를 입력하는 경우 지속적으로 공백이 들어가는 현상
EMB 소스 에디터에서 커맨드를 입력하는 경우 일정 크기 만큼 공백이 추가되어 소스가 생성될 때 반복적으로 공백이 들어 가는 현상이 수정되었다.
DBIO 쿼리에 큰따옴표가 들어가면 SQL_Logging이 되지 않는 현상
SQL Logging을 사용하는 경우 DBIO 쿼리에 큰따옴표(" ")가 들어가면 컴파일되지 않는 현상이 수정되었다.
DBIO 쿼리 입력 창에서 최초 <Ctrl>+Z(실행취소)를 누르는 경우 쿼리가 삭제되는 현상
쿼리를 직접 입력할 수 있는 타입의 DBIO(View, Execsql, Dynamicsql)를 오픈한 후 최초 <Ctrl>+Z(실행취소)를 누르는 경우 쿼리가 삭제되는 현상이 수정되었다.
TCacheInvalidate를 할 때 Invalidate를 2번하는 현상
TCacheInvalidate를 할 때 Invalidate를 이중으로 하지 않도록 수정되었다.
Tmax 4.0, Tmax 5.0 Fix#2 이상에서 pfmTCacheItem이 안되는 현상
Tmax 4.0, Tmax 5.0 Fix#2 이상에서 pfmTCacheItem이 안되는 현상+이 수정되었다.
멀티 노드 환경에서 tpinit을 하지 않으면 Invalidate가 되지 않는 현상
멀티 노드 환경에서 별도의 tpinit을 하지 않더라도 Invalidate가 가능하도록 수정되었다.
멀티 노드 환경에서 상대 노드가 에러일 때 TCacheInvalidate 성공으로 나타나는 현상
멀티 노드 환경에서 상대 노드 중 1개 이상이 에러일 때 에러 값이 리턴되도록 수정되었다.
쿼리문에 예약어가 존재하는 경우 소스가 생성 되지 않는 현상
키워드와 동일한 컬럼이 존재하는 테이블의 경우 소스가 생성되지 않는 현상이 수정되었다.
RIWS를 OFF하는 경우 리소스 복원이 정상적으로 되지 않는 현상
RIWS를 OFF하는 경우 리소스 복원을 수행하는 과정에서 데이터가 중복되어 들어가던 현상이 수정되었다.
내비게이터 루트 타입이 그룹일 경우 리소스 변화 상태에 따라 리프레쉬가 잘못되는 현상
루트 타입이 그룹일 경우 리소스 컴파일, 저장 후 다른 그룹의 리소스 리스트로 잘못 바뀌는 현상이 수정되었다.
암호화 기능을 사용하는 경우 스튜디오 로그인이 되지 않는 현상
스튜디오 암호화 사용 옵션 값이 잘못 설정되어 로그인이 되지 않던 현상이 수정되었다.
암호화 기능을 사용하는 경우 스튜디오에서 변경한 암호가 암호화 되지 않는 현상
스튜디오 환경설정에서 사용자 암호 변경 시 변경한 암호가 평문(plaintext) 그대로 저장되는 현상이 수정되었다.
모듈 IN/OUT을 맵핑하는 경우 오류가 발생하는 현상
맵핑 기능을 사용하는 경우 읽기 전용으로 수정이 되지 않거나 모듈이 disable되는 현상이 수정되었다.
Array count 특성 창에 변수를 사용할 때 에러가 발생하는 현상
DBIO 및 FileIO Array count 값에 사용자가 선언한 변수를 사용할 수 있도록 수정되었다.
DBIO 에디터에서 메타 등록을 할 때 정보가 누락되는 현상
DBIO 에디터에서 미등록된 메타 등록 시 type과 length가 누락되는 현상이 수정되었다.
리소스 삭제, 체크아웃, 체크인할 때 리소스 그룹 정보가 삭제되는 현상
RIWS ON 시 리소스 삭제, 체크아웃, 체크인할 때 리소스 그룹 정보가 리소스가 RIWS에 모두 없는 경우에만 삭제되도록 수정되었다.
기타 버그
기타 가벼운 버그들이 수정되었다.