z/OS CICS에서 여러 DB2 계획에 액세스
DB2® 테이블에 액세스하는 프로그램 시스템을 작성할 때는 각 프로그램의 모든 데이터베이스 요청 모듈(DBRM)을 하나의 DB2 계획에 바인드하지 않는 것이 좋습니다.
보안 및 유지보수를 위해, 하나의 프로그램 시스템에서 여러 DB2 계획에 액세스하려 할 수 있습니다. 이 절에는 z/OS®용 CICS®에서 여러 DB2 계획에 액세스하는 데 사용할 수 있는 세 가지 방법이 설명되어 있습니다. 처음 두 가지 방법에서는 트랜잭션 ID를 변경하는 방법을 설명합니다. 세 번째 방법은 DB2 동적 계획 선택 기능을 사용합니다.
RDO DB2ENTRY 또는 DB2TRAN 정의에서 DB2 계획 이름과 트랜잭션 ID를 연관시킨 경우에는 트랜잭션 ID를 변경하여 DB2 계획을 변경할 수 있습니다. RDO DB2ENTRY 및 DB2TRAN 정의에 대한 자세한 정보는 사용자의 DB2 버전에 해당하는 자원 정의 매뉴얼을 참조하십시오.
sysVar.transactionID를 사용하여 DB2 계획에 액세스
EGL 시스템 변수 sysVar.transactionID를 사용하면 세그먼트된 트랜잭션 ID를 동적으로 변경할 수 있습니다. 세그먼트된 프로그램을 실행할 때, sysVar.transactionID의 값은 각 converse 문 이후 즉시 프로그램을 다시 시작하는 데 트랜잭션 ID로 사용됩니다. sysVar.transactionID를 사용하여 트랜잭션 ID를 동적으로 변경하는 데 대한 간단한 예제는 다음 다이어그램에 표시되어 있으며, 여기서 트랜잭션 ID의 초기값은 "Menu"입니다.

| 애플리케이션: | APPA | APPB | APPC |
| 트랜잭션 ID(converse 후): | AAAA | BBBB | CCCC |
| DB2 계획: | PLANA | PLANB | PLANC |
...
sysVar.transactionID="AAAA"; // Set new transaction ID
converseInfoform(); // Converse information form to user
readDB2Record(); // Retrieve data from a DB2 table
...
메뉴 프로그램, 또는 태스크 지향 프로그램의 converse 문 이전에는 SQL문이 없습니다.
각 태스크 지향 프로그램의 DBRM은 고유 DB2 계획에 바인드되어 있으며 RDO DB2ENTRY 또는 DB2TRAN 정의의 고유 트랜잭션 ID와 연관되어 있습니다. 이 ID는 converse 문 이전에 sysVar.transactionID로 이동된 트랜잭션 ID입니다. converse 문 이후에는 새 트랜잭션 ID와 연관된 DB2 계획을 사용하여 새 트랜잭션이 시작됩니다.
트랜잭션 ID AAAA, BBBB 및 CCCC는 RDO DB2ENTRY 정의에서 각각 DB2 계획 PLANA, PLANB 및 PLANC와 연관되어 있습니다.
이 연관 방법은 세그먼트된 프로그램에서만 사용할 수 있습니다. 그러나 CICS 프로그램의 경우에는 transfer to transaction 문을 사용하거나 동적으로 DB2 계획을 선택함으로써 다른 DB2 계획에 액세스할 수 있습니다.
transfer to transaction 문을 사용하여 DB2 계획에 액세스
이 방법은 transfer to transaction 문을 사용하여 프로그램 간에 제어를 전송하는 경우 유용합니다. 트랜잭션 ID는 transfer to transaction 문을 사용하여 한 프로그램에서 다른 프로그램으로 전송할 때 변경됩니다. RDO DB2ENTRY 정의에서 새 트랜잭션 ID를 다른 DB2 계획과 연관시킨 경우에는 이를 통해 새 DB2 계획에 액세스할 수 있습니다.
동적으로 DB2 계획 선택
이 방법은 z/OS CICS 트랜잭션에 대해 DB2 계획 이름을 동적으로 선택하는 기능을 제공하는 DB2 동적 계획 선택을 사용합니다. DB2 동적 계획 선택은 RDO DB2ENTRY 정의에 DB2 계획 이름 대신 PLANEXITNAME을 정의할 수 있는 옵션을 제공합니다. exit program이 z/OS CICS 트랜잭션에 대한 DB2 계획을 선택합니다. 이 기능을 사용하면 하나의 트랜잭션 ID에 여러 계획을 연관시킬 수 있습니다. DB2 동적 계획 선택에 대한 자세한 정보는 사용자의 DB2 시스템 문서를 참조하십시오.
논리적 작업 단위(LUW)에 있는 첫 번째 SQL문이 exit program을 시작합니다.