바인드 제어 파트

z/OS®의 경우 SQL 테이블에 액세스하는 프로그램, 라이브러리 또는 서비스를 생성할 때 EGL은 빌드 계획에 다음 단계를 포함합니다.
  • 데이터베이스 요청 모듈(DBRM)을 작성하기 위한 DB2® 사전 컴파일 단계
  • DBRM을 동일한 트랜잭션 또는 일괄처리 작업 단계에 사용되는 다른 프로그램의 DBRM과 결합하여 DB2 계획을 바인드하기 위한 DB2 바인드 단계

바인드 제어 파트는 z/OS 시스템용으로 생성된 DB2 프로그램에만 사용됩니다. 바인드 제어의 목적은 프로그램과 DB2를 동일한 레벨로 유지하기 위한 것입니다. 바인드 제어 파트의 정보는 DB2 프로세서에 전달되는 바인드 제어 파일을 작성하는 데 사용됩니다. 바인드 제어 파일은 준비 시 작성되는 DB2 계획에 포함된 데이터베이스 요청 모듈(DBRM)을 지정합니다.

여러 개의 바인드 제어 파트를 정의할 수 있습니다. 바인드 빌드 디스크립터 옵션은 생성 출력에 포함되는 바인드 제어 파트를 표시합니다.

기본 바인드 제어 파트 사용

EGL은 DB2 바인드 단계에서 사용할 바인드 제어 파일을 생성합니다. 기본적으로 EGL은 생성되는 프로그램, 라이브러리 또는 서비스의 DBRM과 런타임 환경에 기반하여 필요한 EGL 제공 DBRM만 포함하는 계획을 바인드합니다. EGL은 다음의 기본 제공 템플리트를 사용하여 바인드 명령을 작성합니다.
TSOLIB ACTIVATE DA('%DSNLOAD%')
ALLOC FI(DBRMLIB) SHR DA('%EZEPID%.%SYSTEM%.DBRMLIB')
CONCATD FI(DBRMLIB) SHR DA('%ELA%.SELADBRM')
DSN SYSTEM($DSYS%)
BIND PLAN(%EZEALIAS%) -
    MEMBER(%EZEALIAS%) -
    ACT(REP) -
    RETAIN -
    VALIDATE(BIND) -
    ISOLATION(CS)
*   OWNER(OWNERGRP)
기본 제공 템플리트는 기호 매개변수(예: %SYSTEM%)를 사용하여 실제 바인드 명령을 생성하는 데 도움을 줍니다. 예를 들어, MAILORDR 프로그램을 생성하고 다음 설정을 지정하는 경우가 있습니다.
  • system 빌드 디스크립터 옵션이 ZOSBATCH로 설정됩니다.
  • projectID 빌드 디스크립터 옵션이 ORDERSYS로 설정됩니다.
  • DSNLOAD 사전정의 기호 매개변수가 DSN8HLQ.DSNLOAD로 설정됩니다.
  • ELA 사전정의 기호 매개변수가 ELAHLQ.V5R0M0으로 설정됩니다.
  • DSYS 사전정의 기호 매개변수가 DSN8로 설정됩니다.
이 경우 결과 바인드 명령 EGL은 다음을 작성합니다.
TSOLIB ACTIVATE DA('DSN8HLQ.DSNLOAD')
ALLOC FI(DBRMLIB) SHR DA('ORDERSYS.ZOSBATCH.DBRMLIB')
CONCATD FI(DBRMLIB) SHR DA('ELAHLQ.V5R0M0.SELADBRM')
DSN SYSTEM(DSN8)
BIND PLAN(MAILORDR)
    MEMBER(MAILORDR, ELADBRM4) -
    ACT(REP) -
    RETAIN -
    VALIDATE(BIND) -
    ISOLATION(CS)
*   OWNER(OWNERGRP)
ELADBRM4는 z/OS 일괄처리 환경에서 사용되는 EGL 제공 DBRM입니다.

템플리트로 사용할 바인드 제어 파트 설정

기존 계획에 패키지를 바인드하려고 합니다. 이 경우 특정 환경에서 사용되는 모든 바인드에 사용할 템플리트가 포함된 EGL 바인드 제어 파트를 작성하고 이 파트를 작업공간에 저장해야 합니다.

예를 들어, 다음과 같이 BIND_TEMPLATE라는 바인드 제어 파트를 작성할 수 있습니다.

TSOLIB ACTIVATE DA('%DSNLOAD%')
ALLOC FI(DBRMLIB) SHR DA('%EZEPID%.%SYSTEM%.DBRMLIB')
CONCATD FI(DBRMLIB) SHR DA('%ELA%.SELADBRM')
DSN SYSTEM(%DSYS%)
BIND PACKAGE(%MYCOLLECTIONNAME%) -
     MEMBER(%EZEALIAS%) -
     ACT(REP) -
     RETAIN -
     VALIDATE(BIND) -
     ISOLATION(CS)
*    OWNER(OWNERGRP)

앞의 예에서 MYCOLLECTIONNAME은 사용자 정의 기호 매개변수이며 빌드 디스크립터 파트에서 이를 작성하고 값을 설정할 수 있습니다. 기타 기호 매개변수는 EGL 기본 제공 템플리트에서 사용되는 것과 동일합니다.

템플리트로 사용될 EGL 바인드 제어 파트를 작성하는 것 외에 다음 조치도 수행해야 합니다.
  • 빌드 디스크립터 파트를 수정하십시오. 바인드 제어 파트(BIND_TEMPLATE)를 지정하도록 bind 빌드 디스크립터 옵션을 설정해야 합니다.
  • 다음과 같은 경우 EGL 제공 DBRM의 패키지를 각 DB2 계획에 바인드하십시오.
    • 런타임 환경이 DB2만 사용하는 z/OS 일괄처리인 경우 EGL 제공 DBRM은 ELADBRM4입니다.
    • 런타임 환경이 DB2 작업 데이터베이스를 사용하는 IMS/VS인 경우 EGL 제공 DBRM은 ELADBRM3입니다.

프로그램 특정 바인드 제어 파트 설정

계획을 바인드하는 경우 각 프로그램에는 다른 바인드 명령이 자주 필요합니다. 단일 실행 단위(예: CICS®또는 IMS™ 트랜잭션이나 단일 일괄처리 작업 단계)의 모든 프로그램을 함께 단일 바인드 명령에 바인드해야 하기 때문입니다. 모든 다른 프로그램이 동일한 실행 단위에 있는 프로그램의 계획을 바인드하기 위해 프로그램 특정 바인드 제어 파트를 작성하면 됩니다. 이를 수행하기 위한 두 가지 기법이 있습니다.
  1. 프로그램, 라이브러리 또는 서비스와 동일한 이름을 사용하여 프로그램 특정 바인드 제어 파트를 작성하십시오. 기본적으로 EGL은 생성되는 파트와 이름이 동일한 바인드 제어 파트를 찾습니다.
  2. 프로그램, 라이브러리 또는 서비스와 다른 이름을 사용하여 프로그램 특정 바인드 제어 파트를 작성하십시오. 이 경우 프로그램, 라이브러리 또는 서비스를 생성할 때마다 bind 빌드 디스크립터 옵션을 바인드 제어 파트의 이름으로 설정해야 합니다.
예를 들어, ProgramA가 ProgramB를 호출하고 두 프로그램이 모두 SQL을 사용하는 경우 두 프로그램의 DBRM이 포함되고 z/OS 일괄처리에 사용할 수 있는 DB2 계획을 바인드하려면 다음과 같은 프로그램 특정 바인드 제어가 필요합니다.
TSOLIB ACTIVATE DA('DSN8HLQ.DSNLOAD')
ALLOC FI(DBRMLIB) SHR DA('ORDERSYS.ZOSBATCH.DBRMLIB')
CONCATD FI(DBRMLIB) SHR DA('ELAHLQ.V5R0M0.SELADBRM')
DSN SYSTEM(DSN8)
BIND PLAN(MYABPLAN) -
     MEMBER(PROGRAMA,PROGRAMB,ELADBRM4) -
     ACT(REP) -
     RETAIN -
     VALIDATE(BIND) -
     ISOLATION(CS) -
*    OWNER(OWNERGRP)
ELADBRM4는 DB2가 사용될 때마다 z/OS 일괄처리 환경에 필요한 EGL 제공 DBRM입니다.

EGL이 프로그램 특정 바인드 제어 파트를 자동으로 찾도록 ProgramA라는 바인드 제어 파트와 ProgramB라는 동일한 바인드 제어 파트를 작성할 수 있습니다. 또는 ProgramA 또는 ProgramB를 생성할 때마다 MYABPLAN이라는 단일 바인드 제어 파트를 작성하고 MYABPLAN을 지정하도록 bind 빌드 디스크립터 옵션을 설정할 수 있습니다.

EGL을 사용하여 SQL 데이터베이스의 데이터에 액세스하는 방법에 대한 정보는 EGL 언어 참조서에서 "SQL 데이터 액세스" 주제 및 관련 항목을 참조하십시오.