2011-09-23 3 views
0

둘 다 db2-cobol 프로그램 인 경우 주 프로그램에서 두 개의 서브 프로그램을 실행하는 방법은 무엇입니까?둘 다 db2-coobol 프로그램 인 경우 db2-cobol 실행 프로세스에 대한 단계를 설명하십시오.

'Mainpgm1'이라는 메인 프로그램은 호출 된 프로그램이 'subpgm1'과 'subpgm2'인 내 서브 프로그램을 호출하며 정적 호출 만 선호합니다.

사실, 이제는 db2bind (바인드 프로그램)와 dsn 이름을 가진 하나의 dbrmlib에서 계획 및 구성원 대신 패키지라는 명령문을 사용하고 있습니다.

주 문제점은 두 db2-cobol 프로그램을 바인딩하는 동안 'db2bind'에서 변경된 사항은 무엇입니까?

마찬가지로 'DB2RUN'(실행 프로그램)에서도 마찬가지입니다.

답변

1

SQL이 들어있는 각 프로그램 (또는 서브 프로그램)은 사전 처리되어 DBRM을 작성해야합니다. 그런 다음 DBRM은 런타임에 LOAD 모듈에 의해 액세스되는 PLAN에 바인드되어 올바른 DB/2 액세스 경로에 포함 된 SQL 문을 가져옵니다.

하나의 프로그램에있는 모든 SQL을 여러 개의 서브 프로그램으로 옮겼습니다. 기본 프로세스 은 그대로 유지됩니다. 프로그램을 실행하려면 PLAN이 필요합니다.

SQL을 포함하는 여러 하위 프로그램이있는 경우 DBA는이를 위해 패키지를 만든 다음 패키지를 PLAN에 바인딩 할 것을 제안합니다. 한 번 무엇 하나 단계 프로세스는 이제 두 개의입니다 :

  • 바인딩 DBRM 패키지로
  • 바인딩 패키지 계획

패키지와 큰 문제는 무엇으로?

SQL이 포함 된 50 개의 서브 프로그램이 있다고 가정 해보십시오. 각각에 대해 DBRM을 작성한 후 모든 50을 PLAN으로 단일 조작으로 바인드하면 은 모든 프로그램의 모든 SQL 문에 분석 할 이 필요하므로 PLAN을 빌드하는 데 많은 자원을 사용하게됩니다 액세스 경로를 생성합니다. 50 개의 하위 프로그램이 모두 새롭거나 이거나 변경된 경우 그렇게 나쁘지 않습니다. 그러나 상대적으로 안정적인 시스템을 보유하고 있고 1 서브 프로그램을 변경하려는 경우 50 개 중 49 개가 변경되지 않고 이 완전히 동일한 액세스 경로를 사용하여 종료 되더라도 50 개 DBRMS를 모두 다시 계획하여 PLAN을 작성하십시오. . 이것은 아주 좋은 apporach되지 않습니다. 어느 하나를 변경할 때마다 모든 하위 프로그램을 컴파일하는 것은 유사합니다.

그러나 각 하위 프로그램에 대해 PACKAGE를 만들면 PACKAGE가 실제 작업을 수행하는 데 필요합니다. 연관된 DBRM에 대한 모든 액세스 경로를 포함합니다. 이제 1 서브 프로그램 만 변경하면 은 단일 DBRM을 PACKAGE 콜렉션으로 리 바인드 한 다음 PLAN을 다시 바인드하여 패키지를 재 구축하면됩니다. 그러나 패키지 집합 (컬렉션)을 PLAN 에 바인딩하는 것은 시스템의 모든 DBRM을 바인딩하는 것보다 훨씬 리소스 집약적입니다.

일단 프로그램에 사용 된 모든 액세스 경로를 포함하는 PLAN이 있으면이를 사용하십시오.실행중인 SQL이 subprogram1 또는 subprogram2 인 경우에는 과 상관이 없습니다. 실행중인 LOAD에 PLAN 을 연결했다면 모든 것이 제대로 작동해야합니다.

모든 설치에는 패키지, 컬렉션 및 계획을 설정하는 자체 명명 규칙 및 표준이 있습니다. 훨씬 더 진행하기 전에 데이터베이스 관리자와 함께이를 검토해야합니다. Developing your Application

: 여기

는 DB/2 환경에서 배경 정보와 관련된 프로그램 Preperation를하다
관련 문제