---
title: "バッチ化xConnect操作"
slug: "batching-xconnect-operations"
abstract: "xConnect Client APIを使って、xConnectに一連の操作をバッチ送信する方法について。"
---
# バッチ化xConnect操作

xConnectには個別に、またはバッチで処理を提出できます。バッチ処理によりクライアントが行うHTTP接続数が減り、クライアントはxConnectサービスへの呼び出しを最適化できます。

-   バッチのサイズは client.SubmitAsync() / client.Submit() が呼び出されるポイントによって決まります。xConnect クライアントAPIはデフォルトを強制しません
-   xConnectはトランザクション形式ではなく、バッチ内の操作は独立して失敗または成功し、1つの操作に失敗してもバッチはロールバックされません
-   もしある操作が他の操作の成功に依存している場合、例えば面設定前に接触を追加することに成功した場合、全体の操作連鎖は失敗します
-   操作の順序は重要ではありません。client.AddContact()の前に client.SetFacet() を呼び出すことができます。

以下の例では、xConnectに1バッチで200 AddContactOperation操作と200 SetFacetOperation操作が送られます。

using Sitecore.XConnect;
using Sitecore.XConnect.Client;
using Sitecore.XConnect.Collection.Model;

namespace Documentation
{
 public class AddContactsInBatch
 {
 // Async Example
 public async void ExampleAsync()
 {
 using (Sitecore.XConnect.Client.XConnectClient client = Sitecore.XConnect.Client.Configuration.SitecoreXConnectClientConfiguration.GetClient())
 {
 try
 {
 for (int i = 1; i <= 200; i++)
 {
 // Adds an AddContactOperation operation to the batch
 var contact = new Sitecore.XConnect.Contact();

 client.SetFacet<PersonalInformation>(contact, new PersonalInformation() { FirstName = "Sample Contact" });
 client.AddContact(contact); // Extension found in Sitecore.XConnect
 }

 // Submits the batch, which contains 400 operations
 // 200 AddContactOperation
 // 200 SetFacetOperation
 await client.SubmitAsync();

 }
 catch (Sitecore.XConnect.XdbExecutionException ex)
 {
 // Manage exception
 }
 }
 }

 // Sync example
 public void ExampleSync()
 {
 using (Sitecore.XConnect.Client.XConnectClient client = Sitecore.XConnect.Client.Configuration.SitecoreXConnectClientConfiguration.GetClient())
 {
 try
 {
 for (int i = 1; i <= 200; i++)
 {
 // Adds an AddContactOperation operation to the batch
 var contact = new Sitecore.XConnect.Contact();

 client.SetFacet<PersonalInformation>(contact, new PersonalInformation() { FirstName = "Sample Contact" });
 client.AddContact(contact); // Extension found in Sitecore.XConnect
 }

 // Submits the batch, which contains 400 operations
 // 200 AddContactOperation
 // 200 SetFacetOperation
 client.Submit();

 }
 catch (Sitecore.XConnect.XdbExecutionException ex)
 {
 // Manage exception
 }
 }
 }
 }
}

> !注バッチ処理に依存するアプリケーションを構築する場合は、管理者がデフォルトのバッチサイズを設定・調整できる方法を提供することが推奨されます。