database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Columns 9314 게시물 읽기
 News | Q&A | Columns | Tutorials | Devel | Files | Links
No. 9314
Middleware를 이용한 Transaction Samples
작성자
정재익(advance)
작성일
2002-01-06 14:16
조회수
10,770

Middleware를 이용한 Transaction Samples

 

1] Oracle managed transactions(Local Transaction)

 

1. CLIENT:

tx_call (“debit_credit”);

2. Application Server:

debit_credit(request_block)

TPSVCINFO *request_block;

{ /* unpack request_block -> data into amt, from_acct,to_acct */

EXEC SQL UPDATE; /* credit */

EXEC SQL UPDATE; /* debit */

EXEC SQL COMMIT;

tx_return();

}

 

tx_begin() 이나 tx_commit()/tx_rollback() 이 없다는 이야기는 TPM이 생성하는 GTID 에 의해 transaction 이 시작/종료 되지 않음을 의미 EXEC SQL statement에 의해서 transaction이 시작되고 EXEC COMMIT에 의해서 transaction 이 종료가 된다.

 

2] TPM managed Transactions

 

1. CLIENT:

tx_begin();

tx_call (“debit”);

tx_call (“credit”);

tx_commit();

 

2. Application Server 1 :

debit (request_block)

TPSVCINFO *request_block;

{ /* unpack request_block -> data into amt, from_acct,to_acct */

EXEC SQL UPDATE; /* debit */

tx_return();

}

 

3. Application Server 2 :

credit(request_block)

TPSVCINFO *request_block;

{ /* unpack request_block -> data into amt, from_acct,to_acct */

EXEC SQL UPDATE; /* credit */

tx_return();

}

 

하나의 Transaction에 2개의 Service 를 call 할 수 있고 이기종 DB의 call 도 가능 하다.Client에 의하여 Transaction 이 시작(tx_begin())되었고, 종료(tx_commit()) 된다.

 

3] OPS 와의 Integration

 

V7 에서는 특정 Platform(NCR) 에서는 XA library 를 OPS와 함께 사용 못함. 그 이유는 Platform에 implementation ehls 이ㅡdl Process-based locking뿐만 아니라 transaction-based locking을 지원해야만 가능 하기 때문.

 

V8 에서는 DLM은 Oracle이 제공..... 따라서

1. OPS option 을 사용 가능 하다면 Oracle XA library 기동 가능

2. OPS 의 어느 node로 부터 fail된 transaction들도 복구 가능

3. 어떤 instance(node) 로 부터의 in-doubt transaction 도 스스로 발견 commit

4. XA 의 recover call 은 모든 instance들의 모든 prepared transaction list를 제공 한다.

 

4] Global + Local transaction 의 지원

 

Local Transaction 은 Oracle server 에 의해서 완벽하게 조정되는 Transaction.

Global Transaction은 TPM 과 같은 외부 Transaction manager에 의해 관장 되는 Transaction

 

V8 에서는 Global + Local Transaction 의 지원 이 이루어짐.

Xa_open(oracle_xa+acc=p/scott/tiger + .......); TM 이 oracle connection

open 후

update emp set sal=sal + 100; ------ Local

commit; ----- Transaction (V7 에서는 ORA-2041 error)

tx_begin();

.......... ------- Global

........... ------- Transaction

tx_commit();

[Top]
No.
제목
작성자
작성일
조회
9317무선인터넷을 위한 Solution인 Oracle9iAS Wireless Edition
정재익
2002-01-06
9645
9316통합 internet application platform인 Oracle9i AS
정재익
2002-01-06
9207
9315강력한 internet Database oracle9i [1]
정재익
2002-01-06
9632
9314Middleware를 이용한 Transaction Samples
정재익
2002-01-06
10770
9313Middleware를 이용한 효과적인 Resource의 관리(2)
정재익
2002-01-06
11082
9312Middleware를 이용한 효과적인 Resource 관리(1)
정재익
2002-01-06
9388
9311VLDB구성시 Application 특성에 맞는 RAID (2)
정재익
2002-01-06
9481
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.050초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다