다음 섹션에서는 DRDA(Microsoft Service for DRDA 서비스)를 사용하여 솔루션을 계획하고 설계하는 데 도움이 됩니다.
계획 수립
엔터프라이즈 IT 조직은 개발자 효율성을 높이고 비용을 줄이면서 새로운 솔루션을 제공해야 합니다. DRDA 서비스는 IT 전문가와 엔터프라이즈 개발자가 MICROSOFT SQL Server를 기반으로 새로운 솔루션을 배포하는 동시에 IBM DB2를 기반으로 하는 기존 워크로드를 연결할 수 있는 기술과 도구를 제공합니다. 다음 다이어그램은 IBM DB2 클라이언트를 Microsoft SQL Server 데이터베이스에 연결하는 DRDA 서비스 솔루션과 관련된 기술 및 구성 요소의 고급 아키텍처를 제공합니다.
이전 그림에서는 z/OS용 DB2 및 DRDA용 서비스를 통해 z/OS 클라이언트 프로그램의 IBM CICS를 원격 Microsoft SQL Server 데이터베이스에 연결하는 계획을 보여 줍니다.
DRDA용 Microsoft 서비스(분산 관계형 데이터베이스 아키텍처)는 Z/OS용 IBM DB2 및 IBM i용 DB2와 같은 AR(DRDA 애플리케이션 요청자) 클라이언트가 SQL Server 저장 프로시저에 매핑된 정적 SQL 문을 실행할 수 있도록 하는 AS(애플리케이션 서버)입니다. DRDA 서비스는 단계적 워크로드 마이그레이션 중 또는 원격 일괄 처리 또는 비즈니스 인텔리전스 솔루션을 지원하는 일상적인 작업에 필요한 호스트 시작 데이터 통합을 제공합니다.
DRDA 서비스는 다음과 같은 기능을 제공합니다.
TCP/IP 네트워크 연결을 통해 DRDA 클라이언트에서 SQL Server로 액세스합니다.
보안 인증 및 데이터 암호화.
분산된 2단계 커밋 트랜잭션.
SQL Server 저장 프로시저 호출에 매핑된 정적 SQL 문입니다.
T-SQL 명령에 매핑된 제한된 동적 데이터 조작 언어 명령입니다.
데이터 형식 매핑 및 변환, 문자열 인코딩 및 날짜/시간 서식 지정
DRDA 회신 메시지 및 형식이 지정된 오류 개체에 대한 오류 코드 및 텍스트 매핑입니다.
문제 해결을 가능하게 하는 흐름 및 명령을 기록하기 위한 추적 유틸리티입니다.
분산 관계형 데이터베이스 아키텍처
IBM DB2 클라이언트와 서버는 DRDA(분산 관계형 데이터베이스 아키텍처) 프로토콜 및 형식을 사용하여 통신합니다. DRDA 서비스는 DRDA 애플리케이션 서버(AS)로 작동하여 DRDA AR(애플리케이션 요청자) 클라이언트가 Microsoft SQL Server 데이터베이스와 상호 작용할 수 있도록 합니다. DRDA 서비스는 Open Group(http://www.opengroup.org)에서 게시한 아키텍처 참조에 정의된 제한된 DRDA 코드 포인트 집합을 지원합니다.
DRDA, 버전 5, 볼륨 1: DRDA(분산 관계형 데이터베이스 아키텍처)
DRDA, 버전 5, 볼륨 2: 형식이 지정된 데이터 개체 콘텐츠 아키텍처(FD:OCA)
DRDA, 버전 5, 볼륨 3: DDM(분산 데이터 관리) 아키텍처
오픈 그룹 서점에서 DRDA V5 Vol. 3: Distributed Data Management Architecture, Publication number C114를 다운로드할 수 있습니다(https://go.microsoft.com/fwlink/?LinkID=219127& clcid=0x409).
IBM DB2 서버 및 클라이언트
Microsoft, IBM 및 타사 공급업체는 다양한 DRDA AR(애플리케이션 요청자) 클라이언트 기술에서 DRDA 프로토콜 및 형식을 구현합니다. DRDA 서비스는 이러한 IBM 및 Microsoft 제품에 패키지된 DRDA AR을 포함하여 DRDA 버전 5 표준을 준수하는 DRDA AR 클라이언트의 인바운드 연결을 지원합니다.
z/OS 12 및 11용 IBM DB2
IBM i 7.4, 7.3 및 7.2용 IBM DB2
LUW 11.5, 11 및 10.5용 IBM DB2
Microsoft Host Integration Server에는 두 개의 DRDA 애플리케이션 요청자 클라이언트가 포함되어 있으며, 하나는 원격 IBM DB2 데이터베이스 서버에 연결하도록 설계되었으며 다른 하나는 원격 IBM Informix 데이터베이스 서버에 연결하도록 설계되었습니다. 이러한 DRDA AR은 DRDA 버전 5.0의 하위 집합을 지원합니다. DB2용 Microsoft 클라이언트는 DB2에 대해 다음과 같은 데이터 공급자를 지원합니다.
Microsoft ODBC Driver for DB2
Microsoft OLE DB Provider for DB2
Microsoft ADO.NET Framework 데이터 공급자(DB2용)
Microsoft BizTalk Adapter for DB2
DRDA용 서비스는 Microsoft DRDA 클라이언트 및 IBM DRDA 클라이언트에 대한 기본 DRDA 지원을 제공합니다.
Enterprise Single Sign-On
DRDA 서비스는 Microsoft Enterprise Single Sign-On 사용하여 인바운드 호스트 자격 증명(예: RACF 사용자 권한 부여 식별자)을 아웃바운드 AD(Windows Active Directory) 자격 증명에 매핑하므로 DRDA 서비스가 통합 보안을 사용하여 SQL Server에 연결할 수 있습니다.
이전 그림에서는 Enterprise Single Sign-One 사용하도록 설정된 상태에서 DRDA 서비스가 인바운드 DRDA 자격 증명을 아웃바운드 SQL Server 자격 증명에 매핑하는 방법을 보여 줍니다.
호스트 시작 ESSO에는 Active Directory(Kerberos 제한 위임 및 모든 인증 프로토콜 사용)에서 상승된 권한이 필요합니다. ESSO에는 DRDA 서비스가 연결되는 SQL Server 컴퓨터의 Kerberos 서비스 주체 이름이 필요합니다. .
Microsoft SQL Server
엔터프라이즈 관리자와 개발자는 Microsoft SQL Server를 사용하여 LOB(기간 업무) 애플리케이션을 위한 중요 업무용 데이터 플랫폼을 빌드합니다. SQL Server는 엔터프라이즈가 일관된 데이터와 대규모 분석 및 데이터 웨어하우징을 제공하면서 조직 전체에서 데이터 검색을 통해 새로운 인사이트를 얻을 수 있도록 지원합니다. DRDA 서비스는 기존 IBM 호스트 워크로드를 Microsoft SQL Server 기반의 새로운 솔루션에 연결하여 다른 유형의 엔터프라이즈 애플리케이션 및 비즈니스 인텔리전스를 가능하게 할 수 있습니다.
DRDA 서비스는 SQL Server 데이터베이스에 대한 연결 및 데이터 액세스를 위해 Microsoft SQL Server 네트워크 클라이언트 및 ADO.NET Framework Data Provider for SQL Server를 사용합니다. Microsoft SQL Server에 대한 자세한 내용은 다음을 참조하세요 http://www.microsoft.com/sql.
건축학
DRDA 서비스는 프로토콜 코드 포인트 및 형식 집합의 형태로 DB2 클라이언트-서버 통신을 정의하는 업계 표준 DRDA(분산 관계형 데이터베이스 아키텍처)를 기반으로 호환성 서비스를 제공하여 원격 IBM DB2 클라이언트 프로그램 및 로컬 Microsoft SQL Server 데이터베이스에서 연결할 수 있도록 합니다. DRDA 서비스는 DRDA 내에서 AS(애플리케이션 서버)로 작동합니다. IBM DB2 클라이언트 프로그램(예: Z/OS용 COBOL TOS 및 CICS)은 Z/OS용 DB2에 로컬로 연결되고 DRDA 내의 함수는 AS(애플리케이션 요청자) 클라이언트로 사용됩니다. DRDA 서비스는 Microsoft .NET Framework의 인스턴스를 호스트하고 Microsoft ADO.NET Framework Data Provider for SQL Server 및 기본 Microsoft SQL Server 네트워크 클라이언트를 사용하여 로컬 또는 원격 Microsoft SQL Server에 연결하는 Windows 서비스 프로그램입니다.
이전 그림에서는 z/OS용 IBM DB2를 Microsoft SQL Server에 연결하는 DRDA 서비스 솔루션을 보여 줍니다.
연결성
분산 관계형 데이터베이스 아키텍처
DRDA 서비스는 DRDA 코드 요소 및 데이터 형식을 해당 Microsoft ADO.NET 연결, 트랜잭션, 명령, 데이터 형식 및 오류 개체로 변환합니다. DRDA 서비스의 주요 기능은 DB2 패키지 및 문 실행에 대한 정적 SQL을 Microsoft SQL Server 저장 프로시저 및 CALL 문에 기능적으로 매핑하는 것입니다. DRDA 서비스는 다양한 DRDA 관리자를 기반으로 아키텍처 내에 정의된 대로 DRDA 프로토콜 흐름을 처리합니다.
네트워크 전송 및 트랜잭션
DRDA 서비스는 TCP/IP 네트워크를 통해 인바운드 인증된 DRDA 클라이언트 연결을 지원합니다. DRDA 서비스는 HPR/IP(인터넷 프로토콜을 통해 고성능 라우팅)를 사용하여 LU6.2를 통해 SNA APPC를 지원하지 않습니다. DRDA 서비스는 SQL Server에 연결하기 위해 기본 Microsoft ADO.NET Provider for SQL Server 및 SQL 네트워크 클라이언트를 사용하여 메모리 내, 명명된 파이프 및 TCP/IP 네트워크 연결을 지원합니다.
기본적으로 DRDA 서비스는 바인딩된 연결에 대해 기본 DRDA 포트 446에서 수신 대기하고 DRDA 클라이언트 연결 요청을 수락합니다. 필요에 따라 DRDA 서비스는 미리 구성된 다른 포트 번호를 수신 대기할 수 있습니다. 또한 보안을 강화하기 위해 미리 정의된 원격 네트워크 주소 목록에서 인바운드 연결 요청을 수락하도록 DRDA 서비스를 구성할 수 있습니다.
DRDA 서비스는 네트워크를 통해 신뢰할 수 있는 업데이트를 사용하도록 설정하기 위해 DRDA DUW(분산 작업 단위) 2단계 커밋 트랜잭션을 지원합니다. DRDA DUW 트랜잭션은 Microsoft ADO.NET Framework Data Provider for SQL Server 및 기본 SQL 네트워크 클라이언트를 통해 SQL Server 트랜잭션에 매핑됩니다.
풀링 및 장애 조치 (failover)
DRDA 서비스는 DRDA 서비스 앱 구성의 SQL Server 연결 문자열 인수에서 SQL 클라이언트 풀링 옵션을 구성하여 SQL 클라이언트 연결 풀링을 지원합니다. 또한 DRDA 서비스는 내부 연결 풀을 제공하여 인바운드 DRDA AR 클라이언트 연결 및 인증 자격 증명을 아웃바운드 SQL Server 데이터베이스 연결 및 자격 증명에 매핑합니다.
DRDA 서비스 주 서버와 파트너 서버는 내결함성 장애 조치를 위해 함께 작동합니다.
DRDA 서비스는 기본 내결함성을 제공하기 위해 컴퓨터당 하나씩 두(2) 서버 그룹으로 작동할 수 있습니다. DRDA AR 클라이언트가 SQL Server 데이터베이스에 연결되면 DRDA 서비스는 가중치가 적용된 데이터 서버 인스턴스 목록을 사용하여 DRDA SRVLST(서버 목록)를 반환합니다. 기본 DRDA 서비스에서 장애가 발생할 경우 DRDA AR은 이 정보를 사용하여 DRDA 서비스 컴퓨터 쌍의 대체 멤버에 연결할 수 있습니다. SQL Server 클러스터링 또는 미러링과 결합된 이 기술은 적절한 수준의 내결함성 장애 조치(failover) 보호를 제공할 수 있습니다.
인증 및 암호화
정보를 보호하기 위해 DRDA 서비스는 일반적인 DRDA 인증 및 데이터 암호화 기술을 지원합니다. 예를 들어 DRDA 서비스는 기본 인증(암호가 있는 일반 텍스트 EBCDIC로 인코딩된 사용자 이름) 또는 256비트 AES(Advanced Encryption Standard)를 사용하여 보안 인증을 지원할 수 있습니다. 또한 DRDA 서비스는 SSL(Secure Sockets Layer) V3.0 또는 TLS(전송 계층 보안) V1.0을 사용하여 결합된 인증 및 암호화를 지원할 수 있습니다.
통합 인증을 제공하기 위해 DRDA 서비스는 ESSO(Microsoft Enterprise Single Sign-On)를 사용하여 인바운드 자격 증명 유효성 검사 및 매핑을 Windows SSPI(보안 지원 공급자 인터페이스)를 사용하는 아웃바운드 SQL Server 인증과 결합할 수 있습니다. 예를 들어 DRDA 서비스는 ESSO와 협력하여 IBM RACF(리소스 액세스 제어 시설) 사용자 이름 및 암호를 Microsoft Windows Active Directory 도메인\사용자 이름에 매핑할 수 있으며, 이를 통해 통합 보안과 원격 SQL Server 데이터베이스에 연결할 수 있습니다.
호환성
정적 및 동적 SQL
주로 DRDA 서비스를 사용하면 DB2 클라이언트 프로그램에서 패키지 문을 SQL Server 저장 프로시저에 매핑하여 DB2 패키지에 대해 원격으로 정의된 정적 SQL을 실행할 수 있습니다. 예를 들어 DB2 관리자 또는 프로그래머 바인딩이 DB2 패키지를 SQL Server에 복사하는 경우 DRDA 서비스는 DRDA BNDSQLSTT(바인딩 SQL 문) 흐름을 SQL Server T-SQL CREATE PROCEDURE 문으로 변환합니다. DB2 프로그램이 원격 패키지 문을 실행하면 DRDA 서비스는 DRDA OPNQRY(Open Query) 또는 EXCSQLSTT(SQL 문 실행)를 CALL 문으로 변환합니다.
보조적으로 DRDA 서비스는 DB2 클라이언트 프로그램이 원격 SQL Server T-SQL 명령을 실행할 수 있도록 제한된 동적 SQL 작업을 지원합니다. 예를 들어 DB2 관리자는 z/OS용 QMF(쿼리 관리 기능)를 활용하여 원격 SQL Server 테이블을 쿼리할 수 있습니다.
SQL 구문
DRDA 서비스에는 DB2 ANSI를 SQL Server T-SQL 명령 구문으로 변환하는 제한된 기능의 변환기가 있어서 패키지 바인딩과 정적 및 동적 SQL 문의 실행에 사용됩니다. 필요에 따라 DRDA 서비스는 SQL Server CLR 기반 함수의 형태로 호환되는 추가 DB2 함수를 제공합니다.
DRDA 서비스는 SQL Server T-SQL CREATE PROCEDURE 문에 DRDA BNDSQLSTT(바인딩 SQL 문)를 처리하기 위한 대체 가능한 패키지 바인딩 구성 요소를 제공합니다. 예를 들어 ISV(독립 소프트웨어 공급업체) 또는 엔터프라이즈 개발자는 구문, 데이터 형식, 인코딩 또는 기타 필수 변환을 지원하기 위해 사용자 지정 정의 패키지 바인딩 구성 요소를 구현할 수 있습니다.
카탈로그 및 스키마 이름
DRDA 서비스는 카탈로그 및 스키마 이름을 비롯한 상위 수준 개체 식별자의 기본 매핑을 제공합니다. 예를 들어 DRDA 서비스는 인바운드 DRDA RDBNAM(관계형 데이터베이스 이름)을 아웃바운드 SQL Server 데이터베이스 이름에 매핑할 수 있습니다. 또한 DRDA 서비스는 인바운드 DRDA COLLID(컬렉션 식별자)를 아웃바운드 SQL Server 스키마 이름에 매핑할 수 있습니다.
데이터 형식 변환
Windows 운영 체제에서 실행되는 SQL Server 데이터베이스와 z/OS 및 IBM i에서 실행되는 DB2 서버 간의 플랫폼 간 상호 운용성을 지원하기 위해 DRDA 서비스는 XML 파일(DB2ToMSSql.xml 및 MSSQLToDB2.xml)에 정의된 데이터 형식 매핑 및 변환 집합을 제공합니다. 예를 들어 DRDA 서비스는 인바운드 DB2 DECIMAL을 아웃바운드 SQL Server 돈으로 매핑하고 변환할 수 있습니다.
문자열 인코딩
DRDA 서비스는 DB2 EBCDIC 문자열 인코딩에서 SQL Server ANSI 및 유니코드 인코딩으로의 변환을 지원합니다. 필요에 따라 DRDA 서비스는 수정된 대체 가능한 Windows EBCDIC-UNICODE NLS(국가별 언어 지원) 변환 파일을 지원합니다. 또한 DRDA 서비스는 CCSID(코딩된 문자 집합 식별자) 16진수 값 쌍을 사용하여 미리 정의된 맵을 기반으로 인라인 문자 대체를 제공합니다.
날짜/시간 서식 지정
DRDA 서비스는 실시간 DB2 DATE/TIME/TIMESTAMP를 SQL Server의 날짜/시간/datetime2 형식으로 변환하고 문자 그대로의 값 변환을 제공합니다. 예를 들어 DRDA 서비스는 YYYY-MM-DD-hh.mm.ss.tttttt 형식의 인바운드 DB2 형식 TIMESTAMP 문자열 리터럴 값을 YYYY-MM-DD hh:mm:ss.tttt 형식의 아웃바운드 SQL Server datetime2(6) 값으로 변환할 수 있습니다.
관리
관리자는 DRDA 서비스를 시작하기 전에 보조 XML 파일(데이터 형식 및 오류 매핑)과 함께 MsDrdaService.exe.config 파일을 수정하여 DRDA 서비스를 구성할 수 있습니다. 필요에 따라 DRDA 서비스는 동적 구성 업데이트를 가능하게 하기 위해 MsDrdaService.exe.config 즉시 읽기를 제공합니다.
구성 / 설정
설치 후 IT 전문가는 MsDrdaService.exe.config 파일을 편집하고 다른 XML 파일을 업데이트하여 DRDA 서비스 구성을 사용자 지정할 수 있습니다. 다음은 DRDA 서비스 구성 요소, 구성 가능한 항목 및 구성 저장소의 목록입니다.
| 구성 요소 | 아이템 | 구성 저장소 |
|---|---|---|
| DRDA 서비스 | 서비스 자격 증명 보안 정책 권한 연결 관리자 보안 관리자 SQL 접근 관리자 데이터베이스 관리자 |
Windows 레지스트리 MsDrdaService.exe.config MSDRDAErrorMappings.xml |
| 데이터 변환 | 데이터 형식 매핑 날짜, 시간, DateTime 형식 |
DB2ToMSSql.xml MSSQLToDB2.xml MsDrdaService.exe.config |
| 코드 페이지 변환 | 사용자 지정 코드 페이지 코드 포인트 매핑 |
Windows 레지스트리 MsDrdaService.exe.config |
| 수신기 바인딩 | 기본 수신기 사용자 지정 수신기 |
MsDrdaService.exe.config |
| 추적 수신기 | 텍스트 수신기 콘솔 수신기 ETW 수신기 사용자 지정 수신기 |
MsDrdaService.exe.config |
| 이벤트 로그 | 이벤트 | 애플리케이션 로그 |
| 성능 모니터링 | 카운터 | Windows 레지스트리 MsDrdaService.exe.config |
이전 표에는 구성 가능한 DRDA 서비스 구성 요소, 항목 및 구성 저장소가 나열되어 있습니다.
추적
DRDA 서비스는 여러 추적 옵션 콘솔 수신기 추적, 텍스트 수신기 추적, 이벤트 로그 수신기, ETW(Windows용 이벤트 추적) 수신기 및 사용자 지정 추적을 지원합니다. 관리자는 Windows 콘솔 모드에서 DRDA 서비스를 실행할 때 콘솔 추적을 사용하여 추적 데이터를 화면에 출력합니다. 관리자는 Windows 서비스 모드 또는 콘솔 모드에서 DRDA 서비스를 실행할 때 텍스트 추적을 사용하여 추적 데이터를 텍스트 읽기 가능한 파일로 출력합니다. DRDA 서비스는 자동으로 이벤트 로그 수신기 추적 항목을 Windows 이벤트 로그에 게시합니다. 관리자는 고속 데이터 수집을 위해 ETW 추적을 사용합니다. 필요에 따라 엔터프라이즈 개발자는 사용자 지정 추적 수신기를 구현하여 모든 추적 또는 선택한 추적 데이터를 다른 구성 요소에 출력할 수 있습니다.
회계 및 로깅
DRDA 서비스는 표준 DRDA 회계 코드 지점인 클라이언트 워크스테이션 이름을 지원합니다. 클라이언트 사용자 ID; 클라이언트 애플리케이션 이름; 및 클라이언트 회계. 엔터프라이즈 개발자는 DRDA 클라이언트 계정 속성을 채울 프로그램에서 동적 값을 지정할 수 있습니다. DRDA 서비스는 런타임에 값을 읽어 DRDA 서비스 추적을 채웁니다. 이를 통해 문제의 상관 관계를 특정 애플리케이션 및 사용자 컨텍스트와 연결할 수 있습니다. 필요에 따라 엔터프라이즈 개발자는 DRDA AR 클라이언트 요청을 기록하는 DRDA 서비스 고객 추적 수신기를 구현할 수 있습니다. 예를 들어 고객 추적 수신기는 클라이언트 계정 값에 따라 선택한 네트워크 및 데이터베이스 액세스를 원격 SQL Server 로깅 데이터베이스에 기록할 수 있습니다.
오류 매핑
DRDA 서비스는 DRDA 코드 포인트 회신 메시지(RM) 또는 DRDA SQLCARD(SQL 통신 영역 회신 데이터) 형식으로 SQL Server 오류를 반환합니다. 기본적으로 일반적인 문제의 경우 DRDA 서비스는 기본 제공 테이블을 사용하여 SQL 오류 코드 및 오류 문자열을 DRDA 회신 메시지 및 오류에 매핑합니다. 또한 DRDA 서비스는 외부 MsDrdaErrorMappings.xml 파일을 사용하여 SQL Server 오류 코드 및 오류 텍스트에서 SQLCODE, SQLSTATE, 이유 코드 및 오류 메시지에 매핑합니다.