내부 패키지 바인더
DRDA 서비스는 DB2 패키지의 정적 SQL을 SQL Server 저장 프로시저로 변환하기 위해 DRDA Begin Bind (BGNBND) 및 Bind SQL Statement (BNDSQLSTT) 명령을 SQL Server의 DROP PROCEDURE 및 CREATE PROCEDURE 문으로 처리합니다. DRDA BGNBND 흐름에는 패키지 내에 저장된 SQL 문당 하나씩 하나 이상의 BNDSQLSTT 흐름이 포함됩니다. DRDA 서비스는 하나의 DRDA 정적 SQL 패키지 섹션(하나의 문 포함)을 하나의 SQL Server 저장 프로시저에 매핑합니다. DRDA 서비스는 저장 프로시저 내의 주석 및 선택적 확장 저장 프로시저 속성에 BGNBND 패키지 바인딩 옵션을 매핑하거나 유지합니다. DRDA 서비스는 내부 SQL 변환기를 사용하여 SQL 명령 구문, 매개 변수, 데이터 형식, 커서 및 결과 집합을 변환합니다. 필요에 따라 사용자 지정 패키지 바인딩 수신기를 개발하여 DRDA 서비스 또는 오프라인으로 패키지를 대화형으로 처리할 수 있습니다.
패키지 프로시저
createPackageProcedure 특성은 DRDA 서비스에 단일 BGNBND 흐름을 SQL Server 저장 프로시저로 처리하여 DRDA BNDSQLSTT 흐름에 정의된 원래 문을 해당 SQL Server 구문으로 변환하도록 지시합니다. 이 선택적 속성은 불리언 값을 허용합니다. 기본값은 true입니다.
패키지 XML
createPackageXml 특성은 DRDA 서비스에 단일 BGNBND 흐름을 DB2 패키지 XML 파일용 정적 SQL로 처리하고 DRDA BNDSQLSTT 흐름에 정의된 원래 바인딩 옵션 및 문을 유지하도록 지시합니다. 이 선택적 특성은 불리언 값을 허용합니다. 기본값은 false입니다.
비고
DRDA 서비스는 이 코드 포인트를 DROP PROCEDURE 문으로 변환하여 DRDA PKGRPLOPT(패키지 대체 옵션)를 처리합니다.
패키지 XML 형식
packageXmlFormat 특성은 DB2 XML 파일용 정적 SQL을 v90 또는 v85 형식으로 작성하도록 DRDA 서버에 지시합니다. 이 선택적 특성은 v85 또는 v90의 문자열 값을 허용합니다. 기본값은 v90입니다.
비고
Microsoft HIS 2010 2013(V9)은 XML 문서의 유효성을 검사하기 위한 관련 XML 스키마를 포함하는 이전 형식과 새 형식을 모두 지원합니다. Microsoft HIS 2009 및 HIS 2010(V8.5)은 이전 형식만 지원합니다.
패키지 XML 위치
packageXmlLocation 특성은 DB2 패키지 XML 파일에 대한 정적 SQL을 작성할 위치를 DRDA 서비스에 지시합니다. 이 선택적 특성은 문자열 값을 허용합니다. 기본값은 c:\temp입니다.
비고
DRDA 서비스는 DB2 XML 파일용 정적 SQL로 DRDA BGNBND를 처리할 때 SQL 명령 구문의 유효성을 검사하지 않습니다. DRDA 서비스는 원래 바인딩 옵션, SQL 문 구문, 데이터 형식 및 기타 값을 유지합니다.
저장 프로시저 이름
DRDA는 이러한 여러 부분으로 구성된 PKGNAMCT(패키지 이름 및 일관성 토큰)를 사용하여 정규화된 정적 SQL 패키지를 정의합니다.
RDBNAM(관계형 데이터베이스 이름)
DRDA RDBCOLID(RDB 컬렉션 식별자)
DRDA PKGID(RDB 패키지 식별자)
DRDA PKGCNSTKN(RDB 패키지 일관성 토큰)
DRDA PKGSN(패키지 섹션 번호)
DRDA 서비스는 DRDA 패키지 이름을 SQL Server 저장 프로시저 이름으로 변환하여 RDBNAM 파트를 제거하고 마침표로 RDBCOLID를 분리한 다음, 단일 밑줄 문자를 사용하여 나머지 세 부분을 구분합니다.
DRDA BGNBND 정적 SQL 패키지 명명 규칙:
RDBNAME.RDBCOLID.PKGID.PKGCNSTKN.PKGSN
DRDA 서비스에서 매핑한 SQL Server 저장 프로시저 명명 규칙:
CollectionIdentifer.PackageIdentifier_PackageConsistencyToken_PackageSectionNumber
원래 패키지 스키마 및 이름:
CONTOSO.DSN8HC91_PKGSAMP1_43484152544F4B31_1
매핑된 패키지 스키마 및 이름:
ContosoRetailDW.DSN8910_PKGSAMP1_43484152544F4B31_1
storedProcedureNameSeparator 특성은 DRDA 패키지 이름을 SQL Server 저장 프로시저 이름에 매핑할 때 사용할 구분 기호 문자를 DRDA 서비스에 지시합니다. 이 선택적 특성은 문자열 값을 허용합니다. 기본값은 단일 밑줄 문자(_)입니다.
패키지 바인딩 옵션
createPackageProcedureWithExtendedProperties 특성은 DRDA 서비스에 BGNBND 패키지 바인딩 옵션을 SQL Server 저장 프로시저의 확장 속성으로 유지하도록 지시합니다. 이 선택적 특성은 불리언 값을 허용합니다. 기본값은 false입니다.
패키지 프로시저 스키마
DRDA 서비스는 해당 SQL Server 저장 프로시저에 대해 SQL Server CALL 문을 실행하여 DRDA EXCSQLSTT(SQL 문 실행) 및 OPNQRY(Open Query) 명령을 처리합니다. DRDA 서비스는 DRDA PKGNAMCT(패키지 이름 및 일관성 토큰) 또는 DRDA EXCSQLSTT 및 OPNQRY 명령 흐름의 일부인 정규화된 패키지 이름 내에서 DRDA RDBCOLID(RDB 컬렉션 식별자) 값에서 파생된 스키마 이름에서 대상 SQL Server 저장 프로시저를 찾습니다.
packageProcedureSchemaList는 DRDA 서비스에 대체 스키마에서 대상 SQL Server 저장 프로시저를 찾도록 지시합니다. 이 선택적 특성은 문자열 값을 허용합니다. 기본값은 빈 문자열입니다. 문자열은 쉼표로 구분된 SQL Server 스키마 이름으로 구성됩니다.
packageProcedureSchemaList="DBO,DSN8910"
packageProcedureSchemaList 특성은 z/OS CURRENT PACKAGESET 특수 레지스터 및 SET CURRENT PACKAGESET 문에 대한 IBM DB2와 유사합니다. DRDA 서비스는 databaseAliases 요소와 packageProcedureSchemaList 특성 모두에 포함된 명명 매핑 규칙을 결합합니다.
원래 패키지 스키마 및 이름:
CONTOSO.DSN8HC91_MSDB2SDK_43484152544F4B31_1
매핑된 패키지 스키마 및 이름:
ContosoRetailDW.DSN8910_MSDB2SDK_43484152544F4B31_1
먼저 DRDA 서비스는 DRDA 서비스 패키지 프로시저 캐시 내에서 리터럴 패키지 프로시저 이름을 사용한 다음 패키지 프로시저 스키마 목록 값을 사용하여 매핑된 이름을 사용하여 대상 SQL Server 저장 프로시저에 대한 메타데이터를 찾으려고 시도합니다.
둘째, DRDA 서비스는 리터럴 패키지 프로시저 이름을 사용한 다음 패키지 프로시저 스키마 목록 값을 사용하여 매핑된 이름을 사용하여 SQL Server 데이터베이스 카탈로그 내에서 대상 SQL Server 저장 프로시저에 대한 메타데이터를 찾으려고 시도합니다.
패키지 프로시저 캐시
DRDA 서비스는 해당 SQL Server 저장 프로시저에 대해 SQL Server CALL 문을 실행하여 DRDA EXCSQLSTT(SQL 문 실행) 및 OPNQRY(Open Query) 명령을 처리합니다. CALL 문을 실행하기 전에 DRDA 서비스는 문 유형(SELECT, INSERT, UPDATE, DELETE), 커서 형식(WITH HOLD), 매개 변수 데이터 형식(예: CHAR FOR BIT) 및 기타 특성(예: 결과 포함)을 확인하는 SQL Server 저장 프로시저에 대한 메타데이터를 가져옵니다. 메타데이터를 페치한 후 DRDA 서비스는 패키지 프로시저 캐시에서 구성된 간격에 대해 매핑된 프로시저 이름을 포함하여 이 정보를 캐시합니다.
패키지 프로시저 캐시 플러시
packageProcedureCacheFlush 특성은 지정된 시간 간격 후에 패키지 프로시저 캐시를 플러시하도록 DRDA 서버에 지시합니다. 이 선택적 특성은 기간 값을 허용합니다. 기본값은 P1D 입니다(기간은 1일). 기간 값은 PnYnMnDTnHnMnS 형식으로 지정됩니다.
| 항목 | 설명 |
|---|---|
| P | 지속 기간(필수) |
| 뉴욕 | 연도 수입니다. |
| 나노미터 | 월 수입니다. |
| nD | 일 수 |
| T | 시간 섹션의 시작(시간, 분 또는 초로 구성된 시간 기간을 지정하는 데 필요). |
| nH | 시간 수 |
| 나노미터 | 분 수. |
| 에스 | 초의 수 |
XML 형식으로 표현된 기간입니다.
패키지 프로시저 마지막 호출
packageProcedureLastInvoke 특성은 지정된 시간 간격 후에 패키지 프로시저 캐시의 개체 이름을 텍스트 파일 %DRDAROOT%\LastInvokePackageProcedures.txt쓰도록 DRDA 서버에 지시합니다. 이 선택적 특성은 기간 값을 허용합니다. 기본값은 P7D 입니다(기간은 7일). 서비스 시작 시 DRDA 서비스는 이 텍스트 파일을 로드하여 파일에 나열된 프로시저에 대한 스키마를 미리 가져옵니다. 기간 값은 PnYnMnDTnHnMnS 형식으로 지정됩니다.
| 항목 | 설명 |
|---|---|
| P | 지속 기간(필수) |
| 뉴욕 | 연도 수입니다. |
| 나노미터 | 월 수입니다. |
| nD | 일수 |
| T | 시간 섹션의 시작(시간, 분 또는 초로 구성된 시간 기간을 지정하는 데 필요). |
| nH | 시간의 수 |
| nM | 분 수 |
| 에스 | 초 수 |
XML 형식으로 표현된 기간입니다.
비고
서비스 시작의 성능을 향상시키기 위해 이 파일을 편집하고 불필요한 저장 프로시저 이름을 제거할 수 있습니다. 런타임 실행의 성능을 향상시키기 위해 추가 저장 프로시저 이름을 포함하도록 이 파일을 편집할 수 있습니다. LastInvokePackageProcedures.txt 파일의 읽기 및 쓰기를 사용하지 않도록 설정하려면 시간 범위를 PT0S(0초 기간)로 설정합니다.
사용자 지정 패키지 바인더
DRDA 서비스는 .NET Framework 사용자 지정 수신기 형식의 사용자 지정 패키지 바인더를 지원합니다. 사용자 지정 패키지 바인딩 수신기 샘플에 대한 자세한 내용은 프로그래머 가이드 및 참조를 참조하세요. packageBindListeners 요소에는 선택적 사용자 지정 바인딩 수신기에 바인딩 SQL 문 출력이 있는 바인딩 패키지를 보내도록 DRDA 서버에 지시하는 하나 이상의 packageBindListener 요소가 포함되어 있습니다. packageBindListener 요소에는 사용자 지정 바인딩 수신기를 정의하는 특성 집합이 포함되어 있습니다. 형식은 DRDA 서버 사용자 지정 바인딩 수신기를 정의한 Microsoft.HostIntegration.Drda.Common.PackageBindListener입니다.
사용자 지정 바인딩 수신기
createPackageProcedureWithCustomSqlScripts 특성은 외부 사용자 지정 패키지 바인딩 수신기 구성 요소를 통해 DRDA BGNBND 및 BNDSQLSTT를 처리하도록 DRDA 서비스에 지시합니다. 이 선택적 특성은 불리언 값을 허용합니다. 기본값은 false입니다.
비고
사용자 지정 패키지의 바인드 리스너 구성 요소는 MsDrdaService.exe.config에서 다음과 같이 참조되어야 합니다.
<packageBindListeners>
<packageBindListener
type="Microsoft.HostIntegration.Drda.Common.PackageBindListener, Microsoft.HostIntegration.Drda.Common, Version=9.0.1000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"
errorWhenNoCallback="true"/>
</packageBindListeners>
DRDA 서비스 애플리케이션 구성 파일의 packageBindListener에 대한 기본값입니다.
콜백이 없는 경우 오류 발생
사용자 지정 바인드 수신기 구성 요소가 콜백 인터페이스에 대한 정보를 반환하지 않는 경우 errorWhenNoCallback 특성은 DRDA 서비스에 BGNBNDRM(회신 메시지 시작)을 DRDA AR 클라이언트에 반환하도록 지시합니다. 이 선택적 특성은 불리언 값을 허용합니다. 기본값은 true입니다.