DRDA용 Microsoft 서비스를 사용하여 솔루션 계획 및 설계
다음 섹션에서는 DRDA용 Microsoft 서비스(DRDA 서비스)를 사용하여 솔루션을 계획하고 설계하는 데 도움이 되는 정보를 제공합니다.
계획
엔터프라이즈 IT 조직은 새로운 솔루션을 제공하면서 개발자의 효율성을 높이고 비용을 절감해야 합니다. DRDA 서비스는 IT 전문가 및 엔터프라이즈 개발자가 기존의 IBM DB2 기반 워크로드를 연결하는 동시에 Microsoft SQL Server를 기반으로 새 솔루션을 배포할 수 있는 기술 및 도구를 제공합니다. 다음 다이어그램은 IBM DB2 클라이언트를 Microsoft SQL Server 데이터베이스에 연결하는 DRDA 서비스 솔루션과 관련된 기술 및 구성 요소의 개략적인 아키텍처입니다.
위의 그림은 IBM CICS for z/OS 클라이언트 프로그램을 DB2 for z/OS 및 DRDA용 서비스를 통해 원격 Microsoft SQL Server 데이터베이스에 연결하기 위한 계획을 보여 줍니다.
DRDA용 Microsoft 서비스(분산 관계형 데이터베이스 아키텍처)는 Z/OS용 IBM DB2 및 IBM i용 DB2와 같은 DRDA AR(애플리케이션 요청자) 클라이언트가 SQL Server 저장 프로시저에 매핑된 정적 SQL 문을 실행할 수 있도록 하는 AS(애플리케이션 서버)입니다. DRDA 서비스는 단계별 워크로드 마이그레이션 중에 또는 일상 작업에서 원격 일괄 처리 또는 비즈니스 인텔리전스 솔루션을 지원하기 위해 엔터프라이즈에 매우 중요한 호스트 시작 데이터 통합을 지원합니다.
DRDA 서비스는 다음과 같은 기능을 제공합니다.
TCP/IP 네트워크 연결을 통해 DRDA 클라이언트에서 SQL Server에 액세스
보안 인증 및 데이터 암호화
분산 2단계 커밋 트랜잭션
SQL Server 저장 프로시저 호출에 매핑되는 정적 SQL 문
T-SQL 명령에 매핑되는 제한된 동적 데이터 조작 언어 명령
데이터 형식 매핑 및 변환, 문자열 인코딩 및 날짜/시간 형식 지정
DRDA 회신 메시지 및 서식 있는 오류 개체에 대한 오류 코드 및 텍스트 매핑
문제 해결을 위해 흐름과 명령을 기록하는 추적 유틸리티
DRDA(분산 관계형 데이터베이스 아키텍처)
IBM DB2 클라이언트와 서버는 DRDA(분산 관계형 데이터베이스 아키텍처) 프로토콜 및 형식을 사용하여 통신합니다. DRDA 서비스는 DRDA AR(애플리케이션 요청자) 클라이언트가 Microsoft SQL Server 데이터베이스와 상호 작용할 수 있도록 DRDA AS(애플리케이션 서버)로 작동합니다. 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 데이터 관리 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용 IBM DB2 11.5, 11 및 10.5
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 Data Provider for DB2
Microsoft BizTalk Adapter for DB2
DRDA용 서비스는 Microsoft DRDA 클라이언트 및 IBM DRDA 클라이언트에 대한 기본 DRDA 지원을 제공합니다.
Enterprise Single Sign-On
DRDA 서비스는 Microsoft Enterprise Single Sign-On을 사용하여 인바운드 호스트 자격 증명(예: RACF 사용자 권한 부여 식별자)을 아웃바운드 Windows AD(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를 사용하여 기간 업무 애플리케이션을 위한 중요 업무용 데이터 플랫폼을 빌드할 수 있습니다. 엔터프라이즈는 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을 참조하세요.
Architecture
DRDA 서비스를 사용하면 일단의 프로토콜 코드 포인트 및 형식의 형태로 DB2 클라이언트-서버 통신을 정의하는 업계 표준 DRDA(분산 관계형 데이터베이스 아키텍처)를 기반으로 하는 호환성 서비스를 제공하여, 원격 IBM DB2 클라이언트 프로그램 및 로컬 Microsoft SQL Server 데이터베이스에서 연결할 수 있습니다. DRDA 서비스는 DRDA 내에서 AS(애플리케이션 서버)로 작동합니다. IBM DB2 클라이언트 프로그램(예: COBOL TOS 및 CICS for z/OS)은 DB2 for z/OS에 로컬로 연결되고 DRDA 내에서 AR(애플리케이션 요청자) 클라이언트로 작동합니다. DRDA 서비스는 Microsoft .NET Framework의 인스턴스를 호스트하고 Microsoft ADO.NET Framework Data Provider for SQL Server 및 기본 Microsoft SQL Server 네트워크 클라이언트를 사용하여 로컬 또는 원격 Microsoft SQL Server에 연결하는 Windows 서비스 프로그램입니다.
위의 그림에서는 IBM DB2 for z/OS를 Microsoft SQL Server에 연결하는 DRDA 서비스 솔루션을 보여 줍니다.
연결
DRDA(분산 관계형 데이터베이스 아키텍처)
DRDA 서비스는 DRDA 코드 포인트 및 데이터 형식을 해당 Microsoft ADO.NET 연결, 트랜잭션, 명령, 데이터 형식, 오류 개체로 변환합니다. DRDA 서비스의 기본 기능은 정적 SQL for DB2 패키지 및 문 실행을 Microsoft SQL Server 저장 프로시저 및 CALL 문에 기능적으로 매핑하는 것입니다. DRDA 서비스는 다양한 DRDA 관리자에 따라 아키텍처 내에 정의된 대로 DRDA 프로토콜 흐름을 처리합니다.
네트워크 전송 및 트랜잭션
DRDA 서비스는 TCP/IP 네트워크를 통해 인바운드 인증된 DRDA 클라이언트 연결을 지원합니다. DRDA 서비스는 HPR/IP(인터넷 프로토콜을 통한 고성능 라우팅)를 사용하는 LU 6.2를 통한 SNA APPC를 지원하지 않습니다. SQL Server에 연결하기 위해 DRDA 서비스는 기본 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 서비스 기본 및 파트너 서버는 함께 작동하여 내결함성 장애 조치(failover)를 제공합니다.
DRDA 서비스는 컴퓨터마다 하나씩 두 개의 서버 그룹으로 작동하여 기본 내결함성을 제공할 수 있습니다. DRDA AR 클라이언트가 SQL Server 데이터베이스에 연결하는 경우 DRDA 서비스는 가중치가 적용된 데이터 서버 인스턴스 목록을 사용하여 DRDA SRVLST(서버 목록)를 반환합니다. 기본 DRDA 서비스의 장애 조치(failover) 시 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 서비스는 Microsoft ESSO(Enterprise Single Sign-On)를 사용하는 인바운드 자격 증명 유효성 검사 및 매핑을 Windows SSPI(Security Support Provider Interface)를 사용하는 아웃바운드 SQL Server 인증과 결합할 수 있습니다. 예를 들어, DRDA 서비스는 ESSO와 함께 작동하여 IBM RACF(Resource Access Control Facility) 사용자 이름과 비밀번호를 Microsoft Windows Active Directory 도메인\사용자 이름에 맵핑하고, 이를 통해 통합 보안으로 원격 SQL Server 데이터베이스에 연결할 수 있습니다.
호환성
정적 및 동적 SQL
첫째, DRDA 서비스를 사용하면 DB2 클라이언트 프로그램은 패키지 문을 SQL Server 저장 프로시저에 매핑하여 원격으로 정의된 정적 SQL for DB2 패키지를 실행할 수 있습니다. 예를 들어 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 서비스에는 패키지를 바인딩하여 정적 및 동적 SQL 문을 실행하는 데 사용할 수 있는 제한된 DB2 ANSI-SQL Server T-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 money로 매핑하고 변환할 수 있습니다.
문자열 인코딩
DRDA 서비스는 DB2 EBCDIC 문자열 인코딩에서 SQL Server ANSI 및 UNICODE 인코딩으로 변환을 지원합니다. 필요에 따라 DRDA 서비스는 수정된 대체 가능 Windows EBCDIC-UNICODE NLS(국가 언어 지원) 변환 파일을 지원합니다. 또한 DRDA 서비스는 CCSID(코딩된 문자 집합 식별자) 16진수 값 쌍을 사용하여 미리 정의된 맵을 기반으로 인라인 문자 대체를 제공합니다.
날짜/시간 형식
DRDA 서비스는 인라인 DB2 DATE/TIME/TIMESTAMP-SQL Server date/time/datetime2 형식 및 문자열 리터럴 값 변환을 제공합니다. 예를 들어 DRDA 서비스는 YYYY-MM-DD-hh.mm.ss.tttttt 형식의 인바운드 DB2 형식 TIMESTAMP 문자열 리터럴 값을 YYYY-MM-DD hh:mm:ss.tttttt 형식의 아웃바운드 SQL Server datetime2(6) 값으로 변환할 수 있습니다.
관리
관리자는 DRDA 서비스를 시작하기 전에 보조 XML 파일(데이터 형식 및 오류 매핑)과 함께 MsDrdaService.exe.config 파일을 수정하여 DRDA 서비스를 구성할 수 있습니다. 필요에 따라 DRDA 서비스는 동적 구성 업데이트를 사용할 수 있도록 MsDrdaService.exe.config를 즉시 읽습니다.
구성
설치 후 IT 전문가가 MsDrdaService.exe.config 파일을 편집하고 다른 XML 파일을 업데이트하여 DRDA 서비스 구성을 사용자 지정할 수 있습니다. 다음은 DRDA 서비스 구성 요소, 구성 가능한 항목 및 구성 저장소의 목록입니다.
구성 요소 | 항목 | 구성 저장소 |
---|---|---|
DRDA 서비스 | 서비스 자격 증명 보안 정책 권한 연결 관리자 보안 관리자 SQL Access Manager 데이터베이스 관리자 |
Windows 레지스트리 MsDrdaService.exe.config MSDRDAErrorMappings.xml |
데이터 변환 | 데이터 형식 매핑 Date, Time, DateTime 형식 |
DB2ToMSSql.xml MSSQLToDB2.xml MsDrdaService.exe.config |
코드 페이지 변환 | 사용자 지정 코드 페이지 코드 포인트 매핑 |
Windows 레지스트리 MsDrdaService.exe.config |
수신기 바인딩 | 기본 수신기 사용자 지정 수신기 |
MsDrdaService.exe.config |
추적 수신기 | 텍스트 수신기 콘솔 수신기 ETW 수신기 사용자 지정 수신기 |
MsDrdaService.exe.config |
이벤트 로그 | 이벤트 | 애플리케이션 로그 |
성능 모니터링 | Counters | 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, 이유 코드 및 오류 메시지로 매핑합니다.