SF 2000 CS Application TRANSACTION XOPEN DTP TUXEDO

  • Slides: 18
Download presentation

목 차 ● SF 2000 C/S Application 개발 환경 ● TRANSACTION & X/OPEN DTP

목 차 ● SF 2000 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 참조 ) )

SF 2000 C/S Application 개발 환경 CLIENT SERVER Client Application Delphi 4. 0 Server

SF 2000 C/S Application 개발 환경 CLIENT SERVER Client Application Delphi 4. 0 Server Application C & ESQL System/WS Module Tuxedo v 6. 3 System/T Module Tuxedo v 6. 3 TCP/IP Windows 95 HP-UX 10. x

TUXEDO Program의 기본 유형 : Client Program(XA사용 안함 : 조회 업무) procedure TForm. Create(Sender:

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

TUXEDO Program의 기본 유형 : Server Program(XA사용 안함 : 조회 업무) tpsvrinit(int argc, char

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

TUXEDO Program의 기본 유형 : Client Program(XA 사용 : 저장 업무) procedure TForm. Create(Sender:

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

TUXEDO Program의 기본 유형 : Server Program(XA 사용 : 저장 업무) tpsvrinit(int argc, char

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

Service/Server/Group 정의 ▷ Service/Server/Group 이란 ? service 1( ) service 3( ) service 4(

Service/Server/Group 정의 ▷ Service/Server/Group 이란 ? service 1( ) service 3( ) service 4( ) . . . service 2( ). pc Compile & Link server 1 server 2 실행 모듈 group 1 실행 모듈

▷ UBB 구성화일에서 Service/Server/Group . . . . GROUP SECTIONS *GROUPS NONXAGRP GRPNO=1 LMID=SITE

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

Debugging 방안 ▷ 관련 함수 함 수 ▶ userlog (char _TM_FAR *, . .

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

함 수 기 능 에 제 ▶ char *tpstrerror (int) #include <atmi. h> System/T

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

자주 발생하는 Error 유형 및 해결 방안 함 수 Error Message 원인 및 해결방안

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

MANUAL 참조 방안 ▷ TUXEDO 기본 과정 교육 교재 ▷ TUXEDO MANUAL (총 7

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