TUXEDO 프로그래밍 가이드.

Slides:



Advertisements
Similar presentations
YES C 제 1 장 C 언어의 개요 1/34 제 1 장 C 언어의 개요 문봉근. YES C 제 1 장 C 언어의 개요 2/34 제 1 장 C 언어의 개요 1.1 프로그램과 C 언어의 특징 1.2 C 언어의 프로그램 구성 1.3 비주얼 C++ 통합 환경 들어가기.
Advertisements

任員 在·不在 案內 시스템.
MrDataBld 2.x 제품 소개 2007.
ABAP Programming 정보자동화그룹 ERP팀 김 아 람 SW.
제 3장 오라클 소개 오라클 소개 오라클 설치 방법 오라클 구조 제 3 장 오라클 개요.
Next SMS서비스 소개서 다음인터넷세상.
Basic of Buffer Over Flow
Linux/UNIX Programming APUE (The Environment of a UNIX Process)
소리가 작으면 이어폰 사용 권장!.
경영 정보 시스템 구축 제안서 가우정보기술주식회사 [신화 제약 주식회사] 1997년 10월 9일 새로운 기법 철저한 사후 관리
발주시스템 Process 1.  ‘발주시스템 Manual’ 검토 후 회원가입 ( 홈페이지 주소 : )
Understanding of Socket and File I/O
Database Laboratory, Hong Ik University
SAP QUERY SAP R/3 4.6C.
6 레이스 컨디션.
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 1-1 C 언어의 개론적 이야기 프로그래밍 언어란 무엇인가? 컴파일이란 무엇인가? 사람과 컴파일러가 이해할 수 있는 약속된 형태의 언어 C 언어도 프로그래밍 언어 중 하나이다. 컴파일이란 무엇인가? 프로그래밍.
Oracle Embedded SQL Pro*C : Chap 5 Copyright by SunYoung Kim
Proc*C 기초 Style System 김도형.
2014 ITA 8월 강의 C Programming -1주차- C언어 기초 정대진 ( )
SQL*Plus - Oracle ISQL -
제 8 장  파서 생성기 YACC 사용하기.
Department of Computer Engineering
디바이스 드라이버 기초 디바이스 드라이버의 개요 파일 연산 디바이스 드라이버 등록 디바이스 드라이버 구성
Department of Computer Engineering
Chapter 01 데이터베이스 시스템.
쉽게 풀어쓴 C언어 Express 제17장 동적 메모리와 연결 리스트 C Express.
Linux를 이용한 Embedded 장비 개발
TCP Client/Server Program
Network Lab. Seoung Hyeon, Lee
호스트이름과 네트워크이름 찾기 (Hostname and Network Name Lookups)
NTAS 소개 (Network Transaction Application Server)
쉽게 풀어쓴 C언어 Express 제16장 파일 입출력 C Express Slide 1 (of 23)
Manual : User Exit.
6장 비연결형 지향 프로토콜 Database Lab 강 우 석.
제 12장 I/O멀티플렉싱(Multiplexing)
Using Standard I/O on Sockets
쉽게 풀어쓴 C언어 Express 제17장 동적 메모리와 연결 리스트 C Express.
쉽게 풀어쓴 C언어 Express 제17장 동적메모리와 연결리스트 C Express.
Department of Computer Engineering
동적메모리와 연결리스트 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원 E304호,
(PROJECT명: Web Server관리)
ER-Win 사용 방법.
2장 운영 체제의 개요 운영체제의 개념 운영체제의 유형 운영체제의 발전 과정 운영체제의 구성 운영체제 서비스 시스템 구조
Department of Computer Engineering
(Network Transaction Application Server)
Department of Computer Engineering
UniSQL/X 실습과제 (1) ■ 실습 기간: ~
Department of Computer Engineering
10장 C 표준 파일 입출력 子曰 學而時習(실습?)之 不亦悅乎.
17강 파일처리함수(1) 강 의 내 용 파일 입출력의 개념 파일포인터를 이용한 입출력 파일 입출력 과정
[ 포털 사이트 연관검색어/자동완성 등록 서비스 ]
Linux/UNIX Programming
데이터베이스 (Database) SQL 추가 기능: 주장, 뷰, 프로그래밍 기법 문양세 강원대학교 IT대학 컴퓨터과학전공.
네트워크 프로그래밍의 이해 School of Electronics and Information.
NTAS 소개 (Network Transaction Application Server)
User Datagram Protocol (UDP)
Department of Computer Engineering
Operating System Multiple Access Chatting Program using Multithread
-Part2- 제1장 1차원 배열이란 무엇인가.
Department of Computer Engineering
C언어 개론.
정보 INFRA 구축 RF카드를 이용한 고객관리시스템 구축 에클라트소프트.
Execution with Unnecessary Privileges
뇌를 자극하는 Windows Server 장. 데이터베이스 서버.
1학기 정리 지난 학기에 배운 내용을 복습해 본다..
실습과제 1번 생성된 파일 basic.txt를 프로젝트 폴더에서 메모장으로 열고 내용을 확인
Stored program 장종원
실시간 음성 채팅 서비스 (Voice Chatting Programe)
C 13장. 입출력 라이브러리 #include <stdio.h> int main(void) { int num;
C.
Presentation transcript:

TUXEDO 프로그래밍 가이드

목 차 ● SF2000 C/S Application 개발 환경 ● TRANSACTION & X/OPEN DTP 목 차 ● SF2000 C/S Application 개발 환경 ● TRANSACTION & X/OPEN DTP ● TUXEDO Program의 기본 유형 - Client Program(XA사용 안함 : 조회 업무 ) Server Program(XA사용 안함 : ““ ) - Client Program(XA사용 : 저장 업무 ) Server Program(XA사용 : ““ ) ● Service/Server/Group 정의 ● 프로그램 작성 시 유의 사항 ● Debuging 방안 ● 자주 발생하는 Error 유형 및 해결 방안 ● Manual 참조

SF2000 C/S Application 개발 환경 CLIENT SERVER Client Application Delphi 4.0 System/WS Module Tuxedo v6.3 TCP/IP Windows95 Server Application C & ESQL System/T Module Tuxedo v6.3 TCP/IP HP-UX 10.x

TRANSACTION & X/OPEN DTP ▶ 자원을 하나의 일관된 상태에서 다른 일관된 상태로 변화시키는 일의 단위 ▶ 한 Transaction은 두가지 상태만 존재 : 모두 수행 또는 모두 수행 안됨 (참조) 관련 TUXEDO ATMI 함수 : tpbegin(), tpcommit(), tpabort() 등 ▷ Distributed Transaction 처리란 ? ▶ 분산된 자원(Database 등)과 관련 있는 Transaction을 처리 ▶ X/OPEN DTP 구성도 응용 프로그램 Server Client ESQL ATMI XA 자원 관리자 (RM) 트랜잭션 관리자 (TM)

TUXEDO Program의 기본 유형 : Client Program(XA사용 안함 : 조회 업무) procedure TForm.FormCreate(Sender: TObject); begin tpinit(); end ① ① System/T에 접속 procedure TForm.ObjectNameEventName(Sender: TObject); begin ② tpalloc(); ③ Fchg(); ... ④ tpcall(“Service Name”, TPNOTRAN) ⑤ Fget(); ⑥ tpfree() end ② Buffer 할당 ③ 보낼 Message를 Buffer에 넣음 ④ Service 요구 (NOTRAN mode) ⑤ 받은 Message를 Buffer에서 가져 옴 ⑥ Buffer free procedure TForm.FormClose(Sender: TObject); begin ⑦ tpterm(); end ⑦ System/T와 접속 끊음

TUXEDO Program의 기본 유형 : Server Program(XA사용 안함 : 조회 업무) tpsvrinit(int argc, char **argv) { ① EXEC SQL CONNECT :userid IDENTIFIED BY :passwd; } ① Resource Open ② Buffer 재 할당 ③ 받은 Message를 Buffer에서 가져 옴 ④ Buffer 초기화 ⑤ 보낼 Message를 Buffer에 넣음 ⑥ Message Buffer를 Client로 보냄 ⑦ Resource Close ServiceName(msg) TPSVCINFO *msg; { ② tprealloc(); ③ Fget(); ... ④ Finit(); +------------------+ | Bussiness logic | ⑤ Fchg(); ⑥ tpreturn() } tpsvrdone() { ⑦ EXEC SQL ROLLBACK WORK RELEASE; }

TUXEDO Program의 기본 유형 : Client Program(XA 사용 : 저장 업무) procedure TForm.FormCreate(Sender: TObject); begin tpinit(); end ① ① System/T에 접속 procedure TForm.ObjectNameEventName(Sender: TObject); begin ② tpalloc(); ③ Fchg(); ... ④ tpbegin(); ⑤ tpcall(“Service Name”) ⑥ tpcommit()/tpabort(); ⑦ Fget(); ⑧ tpfree() end ② Buffer 할당 ③ 보낼 Message를 Buffer에 넣음 ④ Transaction 시작 ⑤ Service 요구 ⑥ Transaction 종료 ⑦ 받은 Message를 Buffer에서 가져 옴 ⑧ Buffer free procedure TForm.FormClose(Sender: TObject); begin ⑨ tpterm(); end ⑨ System/T와 접속 끊음

TUXEDO Program의 기본 유형 : Server Program(XA 사용 : 저장 업무) tpsvrinit(int argc, char **argv) { ① tpopen(); } ① Resource Open ② Buffer 재 할당 ③ 받은 Message를 Buffer에서 가져 옴 ④ Buffer 초기화 ⑤ 보낼 Message를 Buffer에 넣음 ⑥ Message Buffer를 Client로 보냄 ⑦ Resource Close ServiceName(msg) TPSVCINFO *msg; { ② tprealloc(); ③ Fget(); ... ④ Finit(); +------------------+ | Bussiness logic | ⑤ Fchg(); ⑥ tpreturn() } tpsvrdone() { ⑦ tpclose(); }

..... Service/Server/Group 정의 ▷ Service/Server/Group 이란 ? service1( ) .pc .pc .pc Compile & Link Compile & Link server1 server2 실행 모듈 실행 모듈 group1

▷ UBB 구성화일에서 Service/Server/Group ....... *GROUPS NONXAGRP GRPNO=1 LMID=SITE1 XAGRP GRPNO=2 LMID=SITE1 TMSNAME=TMS_ORACLE7 TMSCOUNT=2 OPENINFO="Oracle_XA:Oracle_XA+ ..... *SERVERS server1 SRVGRP=NONXAGRP SRVID=101 server2 SRVGRP=XAGRP SRVID=201 *SERVICES GROUP SECTIONS SERVER SECTIONS SERVICE SECTIONS

▷ 화면 설계를 기준으로 Service 목록 작성 방안 #1 인사 정보 조회 Service() #2 저장/삭제 Service() #3 부서목록 조회 Service()

▷ Service를 Server로 building하는 방안 ▶ 1 ~ 50개 Services를 묶어 1개의 Server를 작성 (참조) 기준 항목에는 서비스 중요도, 서비스 수행시간 등이 있음. ▶ 효율적 관리를 위해 기본적으로 업무 단위 고려하여 Server 작성 ▶ DB 변경 서비스와 조회 서비스는 구분하여 Server 작성 (참조) XA를 사용할 경우, 미사용시 보다 10 ~ 25% Overhead 발생하므로 조회성 업무는 NON-XA 사용을 권유 함. ▶ 자주 call되는 서비스 는 분리 ▶ Batch 성격의 서비스, 즉 수행 시간이 오래 걸리는 서비스는 분리 ▷ Server를 Group으로 구분 방안 ▶ SUB-SYSTEM 단위로 Group 구분 ▶ 관련된 Resource Manager(RM), 또는 open 하는 user에 따라 구분

프로그램 작성 시 유의 사항 ▷ Buisiness Logic은 가급적 Client에 두지 말 것. 특히 변경 가능성이 있는 Logic은 반드시 Server Logic에 포함시킬 것. ▷ Field Header 화일에 define된 Field Name 및 Field Id 는 유일 해야 함. ▷ FML buffer 사용 시 Field Header 화일은 Client와 Server간에 반드시 일치 시켜야 함. ▷ malloc() 함수를 사용할 경우에는 반드시 free() 함수를 사용 할 것. <주의> TUXEDO Server Program은 항상 기동되어 있으므로 free를 않하였을 때 전체 System에 critical한 문제를 발생 시킴. <참조> Programming using TUXEDO 시에 가급적 malloc()을 사용하지 말것을 권유 함. ▷ tpalloc() 함수를 사용할 경우에는 반드시 tpfree() 함수를 사용 할 것. <참조> tpreturn() 함수에는 내부적으로 tpfree() 함수가 포함되어 있음. ▷ fopen() 함수를 사용할 경우에는 반드시 fclose() 함수를 사용 할 것. ▷ Server Buffer Size = 1Kbytes, if Client Message Size <= 1K Client Message Size, if Client Message Size > 1K 이므로, Buffer Size가 더 필요한 경우는 tprealloc()를 사용하여 Buffer를 재할 당 해야 함.

▷ Finit() 함수를 사용하여 불필요한 데이타가 Network Traffic을 유발하지 않도록 주의. <주의> Client에서 send한 message를 clear하지 않으면 tpreturn시 받은 message를 다시 Client로 보내어 짐에 유의. ▷ Tuxedo 함수 사용, 또는 ESQL statement 다음에는 반드시 error 처리를 할 것. <예제> tpalloc() 혹은 tprealloc() 사용시 “NULL”로 Check하여 에러 처리. SQL 사용시 “sqlca.sqlcode != 0”로 Check하여 에러 처리. tpcommit(), tpcall()등 TUXEDO ATMI 사용시 “-1”로 Check하여 에러 처리.

Debugging 방안 ▷ 관련 함수 함 수 기 능 에 제 ▶ userlog (char _TM_FAR *, ...) 함 수 기 능 에 제 ▶ userlog (char _TM_FAR *, ...) #include <userlog.h> ▶ printf (const char *,...) #include <stdio.h> ▶ Fprint(FBFR *) #include <fml.h> ▶ Fprint32(FBFR32 *) #include <fml32.h> “ULOGPFX” Parameter가 설정된 ULOG 화일에 write 함. (참조) default로 newline이 뒤에 삽입 됨. Standard out 화일에 write 함. “svropt”에 -o option이 정의되어 있다면, 정의된 해당 화일에 write되고, 정의되어 있지않으면 $APPDIR/stdout에 write 됨. FML buffer 내용을 standard out으로 write (16 bit field id) write (32 bit field id) userlog(“%s”, “test”); printf(“%s\n”, “test”); FBFR *transf; Fprint(transf); FBFR32 *transf; Fprint32(transf);

▷ 관련 전역 변수 함 수 기 능 에 제 ▶ char *tpstrerror (int) 함 수 기 능 에 제 ▶ char *tpstrerror (int) #include <atmi.h> ▶ char *Fstrerror #include <fml.h> ▶ char *Fstrerror32 #include <fml32.h> System/T error의 message를 return 함. FML error의 message를 return 함. tpstrerror(tperrno); Fstrerror(Ferror); ▷ 관련 전역 변수 변 수 기 능 에 제 ▶ int tperrno #include <atmi.h> ▶ int Ferror #include <fml.h> ▶ int Ferror32 #include <fml32.h> System/T error number를 return 함. FML error의 number를 return 함. tpstrerror(tperrno); Fstrerror(Ferror);

(참고) Error 유형 및 해결 방안은 추후 계속 공지 하겠음. 함 수 Error Message 원 인 및 해 결 방 안 ▶ tpinit() ▶ tpcall() tpacall() TPESYSTEM - internal system error TPENOENT - no entry found TPESVCFAIL - application level service failure 원인) Tuxedo/T와 접속할 수없음. 해결책) 1. Network 장애 check 2. Tuxedo 장애 check 3. WSL process 장애 check 4. 환경변수(WSNADDR) 확인(Client) 원인) Tuxedo B.B 정보에 해당 항목 (service) 정보가 없음. 1. 해당 service가 booting 되었는 지 check 원인) Service(Application) routine에서 tpreturn(TPFAIL)로 return 함. 1. Service routine에서 DB오류, 또는 Tuxedo함수 오류등 Appli- cation Level의 오류 check (참고) Error 유형 및 해결 방안은 추후 계속 공지 하겠음.

MANUAL 참조 방안 ▷ TUXEDO 기본 과정 교육 교재 ▷ TUXEDO MANUAL (총 7 권) ▷ TUXEDO On-Line MANUAL (WebBrowser)