使用 Oracle 資料庫配接器的 WCF 服務模型概觀
當您取用 Microsoft BizTalk Adapter for Oracle Database 介面的作業時,您的程式碼會作為用戶端或服務提供給配接器。 針對 Oracle 資料庫配接器呈現的所有作業,您的程式碼是用戶端。 也就是說,您的應用程式會在配接器上叫用作業;例如,將記錄插入 Oracle 資料表。 您的程式碼作為 Oracle 資料庫配接器服務的唯一作業是 POLLINGSMT 作業。 在此情況下,配接器會將輪詢查詢作業的結果傳送至您的應用程式。
在 Windows Communication Foundation (WCF) 服務模型中,用戶端與服務之間的服務合約會以 .NET 介面表示,而作業則會以這個介面上的方法表示。 Oracle 資料庫配接器和 WCF 提供工具,可讓您從配接器公開的中繼資料產生此介面以進行目標作業。 這些工具也會建立 WCF 用戶端類別,可用來叫用服務介面中公開的作業。 用戶端應用程式可以呼叫 WCF 用戶端類別的方法,以叫用配接器上的作業。 若要實作服務以從 Oracle 資料庫配接器接收 POLLINGSTMT 作業,請實作針對 POLLINGSTMT 作業產生的介面。
下列各節說明如何使用 WCF 服務模型來建立 Oracle 資料庫配接器的用戶端和服務程式代碼。
使用 Oracle 資料庫配接器在 WCF 用戶端上建立和叫用作業
若要使用 WCF 服務模型在 Oracle 資料庫配接器上叫用作業,您必須先產生目標作業的 WCF 用戶端類別。 然後,您可以建立此類別的實例 WCF 用戶端,並呼叫其方法來對 Oracle 資料庫執行作業。
在 Oracle 資料庫配接器上叫用作業
產生 WCF 用戶端類別和協助程式程式碼。 使用 [新增配接器服務參考 Visual Studio 外掛程式] 或 ServiceModel 中繼資料公用程式工具 (svcutil.exe) ,產生以您想要運作之 Oracle 資料庫成品為目標的 WCF 用戶端類別。 如需如何產生 WCF 用戶端的詳細資訊,請參閱 產生 WCF 用戶端或 Oracle 資料庫成品的 WCF 服務合約。
藉由指定用戶端系結來建立 WCF 用戶端實例。 指定用戶端系結牽涉到指定 WCF 用戶端將使用的系結和端點位址。 您可以在程式碼中以命令方式執行此動作,或在組態中以宣告方式執行此動作。 如需如何指定用戶端系結的詳細資訊,請參閱 設定 Oracle 資料庫的用戶端系結。 下列程式碼會建立 WCF 用戶端,可用來在 Oracle 資料庫資料表上執行資料操作語言 (DML) 作業, (/SCOTT/ACCOUNTACTIVITY) 。 它也會設定 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 資料表上執行下列 SQL SELECT 查詢:
SELECT * FROM ACCOUNTACTIVITY
。// 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 作業,您必須先產生 .NET 介面 (也稱為 WCF 服務合約) ,代表 POLLINGSTMT 作業的 Oracle 資料庫配接器所公開的服務合約。 如需如何執行這項操作的詳細資訊,請參閱 產生 WCF 用戶端或 Oracle 資料庫成品的 WCF 服務合約。
然後,您可以實作產生的介面來實作 WCF 服務。 這個類別包含處理 POLLINGSTMT 訊息並傳回配接器回應的商務邏輯。 然後使用服務主機 (System.ServiceModel.ServiceHost) 來裝載此服務的實例。 如需詳細資訊,請參閱 使用 WCF 服務模型接收以輪詢為基礎的資料變更訊息。