Oracle 데이터베이스 어댑터를 사용하여 WCF 서비스 모델 개요
Microsoft BizTalk Adapter for Oracle Database가 표시하는 작업을 사용하는 경우 코드는 어댑터에 대한 클라이언트 또는 서비스 역할을 합니다. Oracle 데이터베이스 어댑터가 표시하는 거의 모든 작업의 경우 코드는 클라이언트입니다. 즉, 애플리케이션은 어댑터에서 작업을 호출합니다. 예를 들어 Oracle 테이블에 레코드를 삽입합니다. 코드가 Oracle 데이터베이스 어댑터에 대한 서비스 역할을 하는 유일한 작업은 POLLINGSMT 작업뿐입니다. 이 경우 어댑터는 폴링 쿼리 작업의 결과를 애플리케이션에 보냅니다.
WCF(Windows Communication Foundation) 서비스 모델에서 클라이언트와 서비스 사이에 존재하는 서비스 계약은 .NET 인터페이스로 표시되고 작업은 이 인터페이스에서 메서드로 표시됩니다. Oracle Database 어댑터 및 WCF는 어댑터가 노출하는 메타데이터에서 대상 작업에 대해 이 인터페이스를 생성할 수 있는 도구를 제공합니다. 또한 이러한 도구는 서비스 인터페이스에 노출된 작업을 호출하는 데 사용할 수 있는 WCF 클라이언트 클래스를 만듭니다. 클라이언트 애플리케이션은 WCF 클라이언트 클래스의 메서드를 호출하여 어댑터에서 작업을 호출할 수 있습니다. Oracle 데이터베이스 어댑터에서 POLLINGSTMT 작업을 수신하는 서비스를 구현하려면 POLLINGSTMT 작업에 대해 생성된 인터페이스를 구현합니다.
다음 섹션에서는 WCF 서비스 모델을 사용하여 Oracle 데이터베이스 어댑터에 대한 클라이언트 및 서비스 코드를 만드는 방법을 설명합니다.
Oracle 데이터베이스 어댑터를 사용하여 WCF 클라이언트에서 작업 만들기 및 호출
WCF 서비스 모델을 사용하여 Oracle 데이터베이스 어댑터에서 작업을 호출하려면 먼저 대상 작업에 대한 WCF 클라이언트 클래스를 생성해야 합니다. 그런 다음 이 클래스의 instance WCF 클라이언트를 만들고 해당 메서드를 호출하여 Oracle 데이터베이스에서 작업을 수행할 수 있습니다.
Oracle 데이터베이스 어댑터에서 작업을 호출하려면
WCF 클라이언트 클래스 및 도우미 코드를 생성합니다. 어댑터 서비스 참조 Visual Studio 플러그 인 추가 또는 serviceModel 메타데이터 유틸리티 도구(svcutil.exe)를 사용하여 작업하려는 Oracle 데이터베이스 아티팩트 대상으로 하는 WCF 클라이언트 클래스를 생성합니다. WCF 클라이언트를 생성하는 방법에 대한 자세한 내용은 Oracle 데이터베이스 아티팩트용 WCF 클라이언트 또는 WCF 서비스 계약 생성을 참조하세요.
클라이언트 바인딩을 지정하여 WCF 클라이언트 instance 만듭니다. 클라이언트 바인딩을 지정하려면 WCF 클라이언트에서 사용할 바인딩 및 엔드포인트 주소를 지정해야 합니다. 코드에서 명령적으로 또는 구성에서 선언적으로 이 작업을 수행할 수 있습니다. 클라이언트 바인딩을 지정하는 방법에 대한 자세한 내용은 Oracle 데이터베이스에 대한 클라이언트 바인딩 구성을 참조하세요. 다음 코드는 Oracle 데이터베이스 테이블(/SCOTT/ACCOUNTACTIVITY)에서 DML(데이터 조작 언어) 작업을 수행하는 데 사용할 수 있는 WCF 클라이언트를 만듭니다. 또한 Oracle 데이터베이스에 대한 자격 증명을 설정합니다. WCF 클라이언트는 구성에서 초기화됩니다.
SCOTTTableACCOUNTACTIVITYClient aaTableClient = new SCOTTTableACCOUNTACTIVITYClient("OracleDBBinding_SCOTT.Table.ACCOUNTACTIVITY"); aaTableClient.ClientCredentials.UserName.UserName = "SCOTT"; aaTableClient.ClientCredentials.UserName.Password = "TIGER";
WCF 클라이언트를 엽니다.
aaTableClient.Open();
2단계에서 만든 WCF 클라이언트에서 메서드를 호출하여 Oracle 데이터베이스에 대한 작업을 수행합니다. 다음 코드는 WCF 클라이언트의 Select 메서드를 호출하여 ACCOUNTACTIVITY 테이블에서
SELECT * FROM ACCOUNTACTIVITY
다음 SQL SELECT 쿼리를 수행합니다.// create a record set parameter to hold the SELECT query result set and invoke the Select operation; microsoft.lobservices.oracledb._2007._03.SCOTT.Table.ACCOUNTACTIVITY.ACCOUNTACTIVITYRECORDSELECT[] selectRecords; selectRecords = aaTableClient.Select("*", null);
WCF 클라이언트를 닫습니다.
aaTableClient.Close();
위에서 사용한 선택 작업을 포함하여 테이블 및 뷰에서 DML 작업을 수행하는 방법에 대한 자세한 내용은 WCF 서비스 모델을 사용하여 기본 삽입, 업데이트, 삭제 및 작업 선택을 참조하세요.
Oracle 데이터베이스 어댑터를 사용하여 WCF 서비스 만들기 및 구현
Oracle 데이터베이스 어댑터는 Oracle 데이터베이스 테이블 또는 뷰에서 폴링을 수행할 수 있습니다. 이 기능을 사용하면 어댑터가 Oracle 데이터베이스에 대해 주기적으로 실행되어야 하는 SQL SELECT 쿼리를 지정할 수 있습니다. 이 쿼리의 결과는 특수 작업인 POLLINGSTMT 작업을 통해 애플리케이션에 반환됩니다. 폴링 쿼리의 결과를 받으려면 애플리케이션이 ORACLE 데이터베이스 어댑터가 POLLINGSTMT 작업에 대해 노출하는 서비스 계약을 구현해야 합니다.
POLLINGSTMT 작업을 수신하는 서비스를 구현하려면 먼저 POLLINGSTMT 작업을 위해 Oracle 데이터베이스 어댑터에서 노출하는 서비스 계약을 나타내는 .NET 인터페이스(WCF 서비스 계약이라고도 함)를 생성해야 합니다. 이 작업을 수행하는 방법에 대한 자세한 내용은 Oracle 데이터베이스 아티팩트용 WCF 클라이언트 또는 WCF 서비스 계약 생성을 참조하세요.
그런 다음 생성된 인터페이스를 구현하여 WCF 서비스를 구현합니다. 이 클래스에는 POLLINGSTMT 메시지를 처리하고 어댑터에 대한 응답을 반환하는 비즈니스 논리가 포함되어 있습니다. 그런 다음 서비스 호스트(System.ServiceModel.ServiceHost)를 사용하여 이 서비스의 instance 호스트합니다. 자세한 내용은 WCF 서비스 모델을 사용하여 폴링 기반 데이터 변경 메시지 수신을 참조하세요.