내보내기(0) 인쇄
모두 확장

엔터티 그룹 트랜잭션 수행

업데이트 날짜: 2014년 8월

테이블 서비스는 동일 테이블에 있고 동일 분할 그룹에 속하는 엔터티에 대한 일괄 처리 트랜잭션을 지원합니다. 단일 트랜잭션 내에서 여러 엔터티 삽입, 엔터티 업데이트, 엔터티 병합, 엔터티 삭제, 엔터티 삽입 또는 교체엔터티 삽입 또는 병합 작업이 지원됩니다.

엔터티 그룹 트랜잭션은 다음 요구 사항을 충족해야 합니다.

  • 트랜잭션의 일부 작업에 해당하는 모든 엔터티는 동일한 PartitionKey 값을 가져야 합니다.

  • 엔터티는 트랜잭션에 한 번만 나타날 수 있으며, 이에 대해 하나의 작업만 수행할 수 있습니다.

  • 트랜잭션은 엔터티를 최대 100개까지만 포함할 수 있으며, 전체 페이로드 크기는 4MB를 초과할 수 없습니다.

  • 모든 엔터티에는 테이블 서비스 데이터 모델 이해에 설명된 제한 사항이 적용됩니다.

엔터티 그룹 트랜잭션의 의미 체계는 OData 프로토콜 사양에 정의되어 있습니다. OData 사양에는 일괄 처리 요청에 대해 다음과 같은 개념들이 정의되어 있습니다.

  • 변경 집합은 하나 이상의 삽입, 업데이트 또는 삭제 작업의 그룹입니다.

  • 일괄 처리는 하나 이상의 변경 집합 및 쿼리 작업을 포함하는 작업들의 컨테이너입니다.

테이블 서비스는 OData 사양에 정의된 기능들의 하위 집합을 지원합니다.

  • 테이블 서비스는 하나의 일괄 처리 안에 단일 변경 집합만 지원합니다. 변경 집합은 여러 개의 삽입, 업데이트 및 삭제 작업을 포함할 수 있습니다. 일괄 처리에 변경 집합이 2개 이상 포함된 경우 첫 번째 변경 집합이 서비스에서 처리되고 추가 변경 집합은 상태 코드 400(잘못된 요청)과 함께 거부됩니다.

Important중요
단일 엔터티에 대한 다중 작업은 변경 집합 내에서 허용되지 않습니다.

  • 삽입, 업데이트 또는 삭제 작업이 포함된 일괄 처리 내에서는 쿼리 작업이 허용되지 않으며, 일괄 처리에 단일 항목으로 제출되어야 합니다.

  • 변경 집합 내의 작업은 원자성으로 처리됩니다. 즉, 변경 집합 내의 모든 작업이 성공하거나 실패합니다. 작업은 변경 집합에 지정된 순서로 처리됩니다.

  • 테이블 서비스에서 변경 집합 내의 작업 연결은 지원되지 않습니다.

  • 테이블 서비스에서는 변경 집합에서 최대 100개의 작업이 지원됩니다.

다음 섹션에서는 일괄 처리 요청을 생성하고 일괄 처리 응답을 해석하는 방법 및 이러한 각 방법에 대한 예제를 보여줍니다.

REST를 통해 일괄 처리 요청을 수행하려면 요청 URI에 $batch 옵션을 지정합니다. 예를 들면 다음과 같습니다.

https://myaccount.table.core.windows.net/$batch

요청 URI는 테이블 이름을 포함하지 않습니다.

일괄 처리 요청은 단일 POST 지시문을 사용해서 서버에 전달됩니다. 이 요청에는 x-ms-version 헤더가 포함되어야 하며, 헤더 값은 2009-04-14 이상으로 설정되어야 합니다.

XML 페이로드는 일괄 처리 및 변경 집합을 포함하는 다중 파트 MIME 메시지입니다. 페이로드에는 2개의 MIME 경계가 포함됩니다.

  • 변경 집합은 일괄 처리 경계에 포함됩니다.

  • 일괄 처리 경계에 따라 일괄 처리의 개별 삽입, 업데이트 및 삭제 작업이 구분됩니다.

변경 집합 내의 개별 요청은 그 자체로 호출 중인 작업에서 수행된 요청과 동일합니다. 예를 들면 다음과 같습니다.

  • 업데이트, 병합 또는 삭제 작업에서 If-Match 헤더를 지정하려면 변경 집합의 적합한 작업에 대한 요청 헤더 집합에 헤더를 포함합니다.

  • 변경 집합의 각 작업에 대한 페이로드 형식(JSON 또는 ATOM)을 지정하려면 테이블 서비스 작업의 페이로드 형식에 자세히 설명된 대로 적절한 Content-Type, Accept, VersionDataServiceVersion 헤더를 포함합니다.

  • 엔터티 삽입에 대한 응답 콘텐츠 에코를 생성하지 않으려면 변경 집합의 각 삽입 작업에 대해 return-no-content 값과 함께 Prefer 헤더를 지정합니다. Prefer 헤더에 대한 자세한 내용은 테이블 서비스 기능 요약을 참조하세요.

다음 예에서는 2개의 엔터티 삽입 작업과 엔터티 병합 작업이 포함된 일괄 처리 요청을 보여 줍니다. 이러한 예에서는 삽입 작업에 대한 응답의 에코 페이로드에 관심이 없으며 Prefer:return-no-content 헤더를 포함합니다.

Atom 페이로드를 사용한 일괄 처리 요청

POST /$batch HTTP/1.1
User-Agent: Microsoft ADO.NET Data Services
x-ms-version: 2013-08-15
x-ms-date: Thu, 30 Aug 2013 20:45:13 GMT
Authorization: SharedKeyLite myaccount:asOEzsCDS7YEe6oi+bx47KMwbXL0lYZCOlR/oc3FReQ=
Accept: application/atom+xml,application/xml
Accept-Charset: UTF-8
DataServiceVersion: 1.0;NetFx
MaxDataServiceVersion: 2.0;NetFx
Content-Type: multipart/mixed; boundary=batch_a1e9d677-b28b-435e-a89e-87e6a768a431
Host: MyHostName:10002
Prefer: return-no-content
Content-Length: ###

--batch_a1e9d677-b28b-435e-a89e-87e6a768a431
Content-Type: multipart/mixed; boundary=changeset_8a28b620-b4bb-458c-a177-0959fb14c977

--changeset_8a28b620-b4bb-458c-a177-0959fb14c977
Content-Type: application/http
Content-Transfer-Encoding: binary

POST https://myaccount.table.core.windows.net/Blogs HTTP/1.1
Content-ID: 1
Content-Type: application/atom+xml;type=entry
Content-Length: ###

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<entry xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom">
  <title />
  <updated>2013-08-30T20:45:13.7155321Z</updated>
  <author>
    <name />
  </author>
  <id />
  <content type="application/xml">
    <m:properties>
      <d:PartitionKey>Channel_19</d:PartitionKey>
      <d:RowKey>1</d:RowKey>
      <d:Timestamp m:type="Edm.DateTime">0001-01-01T00:00:00</d:Timestamp>
      <d:Rating m:type="Edm.Int32">9</d:Rating>
      <d:Text>.NET...</d:Title>
    </m:properties>
  </content>
</entry>
--changeset_8a28b620-b4bb-458c-a177-0959fb14c977
Content-Type: application/http
Content-Transfer-Encoding: binary

POST https://myaccount.table.core.windows.net/Blogs HTTP/1.1
Content-ID: 2
Content-Type: application/atom+xml;type=entry
Prefer: return-no-content
Content-Length: ###

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<entry xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom">
  <title />
  <updated>2013-08-30T20:45:13.7155321Z</updated>
  <author>
    <name />
  </author>
  <id />
  <content type="application/xml">
    <m:properties>
      <d:PartitionKey>Channel_19</d:PartitionKey>
      <d:RowKey>2</d:RowKey>
      <d:Timestamp m:type="Edm.DateTime">0001-01-01T00:00:00</d:Timestamp>
      <d:Rating m:type="Edm.Int32">9</d:Rating>
      <d:Text>Azure...</d:Title>
    </m:properties>
  </content>
</entry>
--changeset_8a28b620-b4bb-458c-a177-0959fb14c977
Content-Type: application/http
Content-Transfer-Encoding: binary

MERGE https://myaccount.table.core.windows.net/Blogs(PartitionKey='Channel_19', RowKey='3') HTTP/1.1
Content-ID: 3
Content-Type: application/atom+xml;type=entry
Content-Length: ###

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<entry xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom">
  <title />
  <updated>2013-08-30T20:44:09.8869156Z</updated>
  <author>
    <name />
  </author>
  <id>https://myaccount.table.core.windows.net/Blogs(PartitionKey='Channel_19',RowKey='3')</id>

  <content type="application/xml">
    <m:properties>
      <d:PartitionKey>Channel_19</d:PartitionKey>
      <d:RowKey>3</d:RowKey>
      <d:Timestamp m:type="Edm.DateTime">0001-01-01T00:00:00</d:Timestamp>
      <d:Rating m:type="Edm.Int32">9</d:Rating>
      <d:Text>PDC 2008...</d:Title>
    </m:properties>
  </content>
</entry>
--changeset_8a28b620-b4bb-458c-a177-0959fb14c977--
--batch_a1e9d677-b28b-435e-a89e-87e6a768a431—



JSON 페이로드를 사용한 일괄 처리 요청


POST https://myaccount.table.core.windows.net/$batch HTTP/1.1
x-ms-version: 2013-08-15
Accept-Charset: UTF-8
DataServiceVersion: 3.0;
MaxDataServiceVersion: 3.0;NetFx
Content-Type: multipart/mixed; boundary=batch_a1e9d677-b28b-435e-a89e-87e6a768a431
x-ms-date: Mon, 14 Oct 2013 18:25:49 GMT
Authorization: SharedKey myaccount:50daR38MtfezvbMdKrGJVN+8sjDSn+AaA=
Host: 127.0.0.1:10002
Content-Length: 1323
Connection: Keep-Alive

--batch_a1e9d677-b28b-435e-a89e-87e6a768a431
Content-Type: multipart/mixed; boundary=changeset_8a28b620-b4bb-458c-a177-0959fb14c977

--changeset_8a28b620-b4bb-458c-a177-0959fb14c977
Content-Type: application/http
Content-Transfer-Encoding: binary

POST https://myaccount.table.core.windows.net/Blogs HTTP/1.1
Content-Type: application/json
Accept: application/json;odata=minimalmetadata
Prefer: return-no-content
DataServiceVersion: 3.0;

{"PartitionKey":"Channel_19", "RowKey":"1", "Rating":9, "Text":".NET..."}
--changeset_8a28b620-b4bb-458c-a177-0959fb14c977
Content-Type: application/http
Content-Transfer-Encoding: binary

POST https://myaccount.table.core.windows.net/Blogs HTTP/1.1
Content-Type: application/json
Accept: application/json;odata=minimalmetadata
Prefer: return-no-content
DataServiceVersion: 3.0;

{"PartitionKey":"Channel_17", "RowKey":"2", "Rating":9, "Text":"Azure..."}
--changeset_8a28b620-b4bb-458c-a177-0959fb14c977
Content-Type: application/http
Content-Transfer-Encoding: binary

MERGE https://myaccount.table.core.windows.net/Blogs(PartitionKey='Channel_17', RowKey='3') HTTP/1.1
Content-Type: application/json
Accept: application/json;odata=minimalmetadata
DataServiceVersion: 3.0;

{"PartitionKey":"Channel_19", "RowKey":"3", "Rating":9, "Text":"PDC 2008..."}

--changeset_8a28b620-b4bb-458c-a177-0959fb14c977--
--batch_a1e9d677-b28b-435e-a89e-87e6a768a431

다음 예에서는 쿼리에 대한 일괄 처리 요청을 보여 줍니다. 변경 집합에는 단일 쿼리만 포함할 수 있습니다.

ATOM 형식을 사용한 일괄 처리 쿼리

POST /$batch HTTP/1.1
User-Agent: Microsoft ADO.NET Data Services
x-ms-version: 2013-08-15
x-ms-date: Thu, 30 Aug 2013 20:45:13 GMT
Authorization: SharedKeyLite myaccount:asOEzsCDS7YEe6oi+bx47KMwbXL0lYZCOlR/oc3FReQ=
Accept: application/atom+xml,application/xml
Accept-Charset: UTF-8
DataServiceVersion: 3.0;NetFx
MaxDataServiceVersion: 3.0;NetFx
Content-Type: multipart/mixed; boundary=batch_f351702c-c8c8-48c6-af2c-91b809c651ce
Content-Length: ###

--batch_f351702c-c8c8-48c6-af2c-91b809c651ce
Content-Type: application/http
Content-Transfer-Encoding: binary

GET https://myaccount.table.core.windows.net/Blogs(PartitionKey='Channel_19',RowKey='2') HTTP/1.1

--batch_f351702c-c8c8-48c6-af2c-91b809c651ce—

JSON 형식을 사용한 일괄 처리 쿼리

POST https://myaccount.table.core.windows.net/$batch HTTP/1.1
x-ms-version: 2013-08-15
Accept-Charset: UTF-8
DataServiceVersion: 3.0;
MaxDataServiceVersion: 3.0;NetFx
Content-Type: multipart/mixed; boundary=batch_f351702c-c8c8-48c6-af2c-91b809c651ce
x-ms-date: Mon, 14 Oct 2013 19:03:55 GMT
Authorization: SharedKey testaccount1:y6TxCsXeRiR4l1KqihwRJ05Qb5zBk=
Host: 127.0.0.1:10002
Content-Length: 255
Connection: Keep-Alive

--batch_f351702c-c8c8-48c6-af2c-91b809c651ce
Content-Type: application/http
Content-Transfer-Encoding: binary

GET https://myaccount.table.core.windows.net/Blogs(PartitionKey='Channel_19',RowKey='2') HTTP/1.1
Accept: application/json;odata=minimalmetadata

--batch_f351702c-c8c8-48c6-af2c-91b809c651ce

응답은 일괄 처리 요청에 대한 전반적인 상태 코드, 변경 집합의 각 작업에 대한 개별 상태 코드 및 결과 조각을 반환합니다. 응답은 일괄 처리 경계 및 변경 집합 경계를 포함하는 다중 파트 MIME 메시지입니다.

테이블 서비스는 전체 일괄 처리 요청에 대한 상태 코드, 변경 집합의 각 작업에 대한 하나 이상의 상태 코드(성공 또는 실패 여부에 따라 다름)를 반환합니다.

일괄 처리 요청이 올바르게 인증되었고 테이블 서비스에서 성공적으로 수신되었다고 가정할 경우, 일괄 처리 요청은 변경 집합의 작업 중 하나가 실패하더라도 상태 코드 202(수락)를 반환합니다. 일괄 처리 요청 자체가 실패하면 변경 집합의 다른 작업이 실행되기 전에 실패합니다. 예를 들어 인증 오류로 인해 일괄 처리 요청이 실패할 수 있으며, 이 경우 상태 코드로 해당 오류가 표시됩니다.

변경 집합 내의 작업은 원자성으로 처리됩니다. 즉, 일괄 처리의 모든 작업이 성공하거나 전체 일괄 처리가 실패합니다. 테이블 서비스는 실패하는 작업이 있을 때까지 변경 집합의 작업 처리를 계속 수행합니다. 작업이 실패하면 일괄 처리에서 앞에서 수행된 모든 작업이 롤백됩니다. 또한 스냅숏 격리를 사용해서 엔터티 그룹 트랜잭션이 실행됩니다.

변경 집합 내의 개별 작업에 대한 상태 코드는 변경 집합 응답 내에 표시됩니다. 개별 작업이 실패하면 변경 집합에 대한 응답에 상태 코드 400(Bad Request)이 나타납니다. 응답 내의 추가 오류 정보에는 해당 작업의 인덱스를 반환하여 실패한 작업이 표시됩니다. 인덱스는 페이로드에서 해당 명령의 시퀀스 번호입니다.

예를 들어 아래 예제 오류 응답을 참조하세요.

다음 예에서는 위에 표시된 예제 요청으로 전송된 일괄 처리 작업에 대한 응답을 보여 줍니다.

Atom 형식의 요청에 대한 응답

HTTP/1.1 202 Accepted
Cache-Control: no-cache
Transfer-Encoding: chunked
Content-Type: multipart/mixed; boundary=batchresponse_dc0fea8c-ed83-4aa8-ac9b-bf56a2d46dfb
Server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: b4b49b3e-19a9-4091-a280-da76a09da8d4
Date: Thu, 30 Aug 2013 20:44:09 GMT

334
batchresponse_dc0fea8c-ed83-4aa8-ac9b-bf56a2d46dfb 
Content-Type: multipart/mixed; boundary=--changesetresponse_8a28b620-b4bb-458c-a177-0959fb14c977

--changesetresponse_8a28b620-b4bb-458c-a177-0959fb14c977
Content-Type: application/http
Content-Transfer-Encoding: binary

HTTP/1.1 204 No Content
Content-ID: 1
Cache-Control: no-cache
Preference-Applied: return-no-content
ETag: W/"0x8D101F7E4B662C4"
Location: https://myaccount.table.core.windows.net/Blogs(PartitionKey='Channel_19',RowKey='1')
DataServiceVersion: 3.0;

--changesetresponse_8a28b620-b4bb-458c-a177-0959fb14c977
Content-Type: application/http
Content-Transfer-Encoding: binary

HTTP/1.1 204 No Content
Content-ID: 2
Cache-Control: no-cache
Preference-Applied: return-no-content
ETag: W/"0x8C134F7A4B692D8"
Location: https://myaccount.table.core.windows.net/Blogs(PartitionKey='Channel_19',RowKey='2')
DataServiceVersion: 3.0;

--changesetresponse_8a28b620-b4bb-458c-a177-0959fb14c977
Content-Type: application/http
Content-Transfer-Encoding: binary

HTTP/1.1 204 No Content
Content-ID: 3
Cache-Control: no-cache
ETag: W/"0x8A541B7C4D699D7"
DataServiceVersion: 3.0;

--changesetresponse_8a28b620-b4bb-458c-a177-0959fb14c977--
--batchresponse_4c637ba4-b2f8-40f8-8856-c2d10d163a83--

JSON 형식의 요청에 대한 응답

HTTP/1.1 202 Accepted
Cache-Control: no-cache
Content-Type: multipart/mixed; boundary=batchresponse_e69b1c6c-62ff-471e-ab88-9a4aeef0a880
Server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: ed9c96eb-9473-4fd9-abf6-fa4dcf0d6295
x-ms-version: 2013-08-15
X-Content-Type-Options: nosniff
Date: Mon, 14 Oct 2013 18:25:49 GMT
Content-Length: 1647

--batchresponse_e69b1c6c-62ff-471e-ab88-9a4aeef0a880
Content-Type: multipart/mixed; boundary=changesetresponse_a6253244-7e21-42a8-a149-479ee9e94a25

--changesetresponse_a6253244-7e21-42a8-a149-479ee9e94a25
Content-Type: application/http
Content-Transfer-Encoding: binary

HTTP/1.1 204 No Content
Content-ID: 1
X-Content-Type-Options: nosniff
Cache-Control: no-cache
Preference-Applied: return-no-content
DataServiceVersion: 3.0;
Location: https://myaccount.table.core.windows.net/Blogs(PartitionKey='Channel_19',RowKey='1')
DataServiceId: https://myaccount.table.core.windows.net/Blogs (PartitionKey='Channel_19',RowKey='1')
ETag: W/"0x8D101F7E4B662C4"


--changesetresponse_a6253244-7e21-42a8-a149-479ee9e94a25
Content-Type: application/http
Content-Transfer-Encoding: binary

HTTP/1.1 204 No Content
Content-ID: 2
X-Content-Type-Options: nosniff
Cache-Control: no-cache
Preference-Applied: return-no-content
DataServiceVersion: 3.0;
Location: https://myaccount.table.core.windows.net/Blogs (PartitionKey='Channel_19',RowKey='2')
DataServiceId: https://myaccount.table.core.windows.net/Blogs (PartitionKey='Channel_19',RowKey='2')
ETag: W/"0x8C134F7A4B692D8"


--changesetresponse_a6253244-7e21-42a8-a149-479ee9e94a25
Content-Type: application/http
Content-Transfer-Encoding: binary

HTTP/1.1 204 No Content
Content-ID: 3
X-Content-Type-Options: nosniff
Cache-Control: no-cache
DataServiceVersion: 1.0;
ETag: W/"0x8A541B7C4D699D7"


--changesetresponse_a6253244-7e21-42a8-a149-479ee9e94a25--
--batchresponse_e69b1c6c-62ff-471e-ab88-9a4aeef0a880--

다음 예에서는 위에 표시된 예제 요청으로 전송된 쿼리에 대한 응답을 보여 줍니다.

ATOM 형식을 사용한 일괄 처리 쿼리에 대한 응답

HTTP/1.1 202 Accepted
Cache-Control: no-cache
Transfer-Encoding: chunked
Content-Type: multipart/mixed; boundary=batchresponse_4c637ba4-b2f8-40f8-8856-c2d10d163a83
Server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: 9202c4a1-43af-4dc0-baca-aa71f7a7407b
Date: Thu, 30 Aug 2013 20:44:10 GMT

--batchresponse_4c637ba4-b2f8-40f8-8856-c2d10d163a83
Content-Type: application/http
Content-Transfer-Encoding: binary

HTTP/1.1 200 OK
Content-Type: application/atom+xml;charset=utf-8
Cache-Control: no-cache
ETag: W/"0x5B168C7B6E589D2"
DataServiceVersion: 3.0;

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<entry xml:base="http://127.0.0.1:10002/testaccount1/" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" m:etag="W/&quot;0x5B168C7B6E589D2&quot;" xmlns="http://www.w3.org/2005/Atom">
    <id> https://myaccount.table.core.windows.net/Blogs(PartitionKey='Channel_19',RowKey='1')</id>
  <title type="text"></title>
  <updated>2013-08-30T20:44:10Z</updated>
  <author>
    <name />
  </author>
  <link rel="edit" title="Blogs" href=" Blogs(PartitionKey='Channel_19',RowKey='2')" />
  <category term="myaccount.Blogs" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
  <content type="application/xml">
    <m:properties>
      <d:PartitionKey>Channel_19</d:PartitionKey>
       <d:RowKey>2</d:RowKey>
       <d:Timestamp m:type="Edm.DateTime">2013-08-30T20:44:09.5789464Z</d:Timestamp>
       <d:Text>.Net...</d:RowKey>
      <d:Rating m:type="Edm.Int32">9</d:Rating>
    </m:properties>
  </content>
</entry>
--batchresponse_4c637ba4-b2f8-40f8-8856-c2d10d163a83--

JSON 형식을 사용한 일괄 처리 쿼리에 대한 응답

HTTP/1.1 202 Accepted
Cache-Control: no-cache
Content-Type: multipart/mixed; boundary=batchresponse_0a568496-fb38-4a83-9984-5908d7f4c63d
Server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: 6f2aafa3-19e9-434c-85f2-d178941c2d4b
x-ms-version: 2013-08-15
X-Content-Type-Options: nosniff
Date: Mon, 14 Oct 2013 19:13:30 GMT
Content-Length: 615

--batchresponse_0a568496-fb38-4a83-9984-5908d7f4c63d
Content-Type: application/http
Content-Transfer-Encoding: binary

HTTP/1.1 200 OK
DataServiceVersion: 3.0;
Content-Type: application/json;odata=minimalmetadata;streaming=true;charset=utf-8
X-Content-Type-Options: nosniff
Cache-Control: no-cache
ETag: W/"0x5B168C7B6E589D2"

{"odata.metadata":" https://myaccount.table.core.windows.net/Blogs/$metadata#Blogs/@Element","PartitionKey":"Channel_19","RowKey":"2","Timestamp":"2013-10-14T18:25:49.8922467Z","Rating":9,"Text":"Azure..."}
--batchresponse_0a568496-fb38-4a83-9984-5908d7f4c63d--

다음 예에서는 실패한 작업이 포함된 일괄 처리 요청의 응답을 보여 줍니다. 일괄 처리 응답이 상태 코드 202(수락)를 반환하지만 실패한 개별 작업은 상태 코드 400(잘못된 요청)을 반환합니다. 추가 오류 정보는 실패한 작업의 응답 본문에 포함됩니다. code 요소는 저장소 서비스 오류 코드를 지정하지만 message 요소는 실패한 작업의 인덱스로 시작하여 오류 메시지 문자열이 표시됩니다. 실패한 작업을 확인하려면 메시지에서 인덱스 값을 구문 분석합니다. 작업은 0부터 시작해서 인덱싱됩니다.

Atom 형식의 요청에 대한 오류 응답

Atom 예에서 실패한 작업은 변경 집합에서 네 번째 작업입니다. message 요소 내에서 메시지는 숫자 3으로 시작하고 자세한 오류 정보가 표시됩니다.

<message xml:lang="en-US">3:One of the request inputs is not valid.</message>

전체 응답은 다음과 같습니다.

HTTP/1.1 202 Accepted
Cache-Control: no-cache
Transfer-Encoding: chunked
Content-Type: multipart/mixed; boundary=batchresponse_7ab1553a-7dd6-44e7-8107-bf1ea1ab1876
Server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: 45ac953e-a4a5-42ba-9b4d-97bf74a8a32e
Date: Thu, 30 Apr 2009 20:45:13 GMT

6E7
--batchresponse_7ab1553a-7dd6-44e7-8107-bf1ea1ab1876
Content-Type: multipart/mixed; boundary=changesetresponse_6cc856b4-8cb9-41eb-b8d2-bb73475c6cec

--changesetresponse_6cc856b4-8cb9-41eb-b8d2-bb73475c6cec
Content-Type: application/http
Content-Transfer-Encoding: binary

HTTP/1.1 400 Bad Request
Content-ID: 4
Content-Type: application/xml
Cache-Control: no-cache
DataServiceVersion: 1.0;

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
  <code>InvalidInput</code>
  <message xml:lang="en-US">3:One of the request inputs is not valid.</message>
</error>
--changesetresponse_6cc856b4-8cb9-41eb-b8d2-bb73475c6cec--
--batchresponse_7ab1553a-7dd6-44e7-8107-bf1ea1ab1876--

JSON 형식의 요청에 대한 오류 응답

JSON 예에서 실패한 작업은 변경 집합에서 첫 번째 작업입니다. message 이름/값 쌍 내에서 메시지는 숫자 0으로 시작하고 자세한 오류 정보가 표시됩니다.

HTTP/1.1 202 Accepted
Cache-Control: no-cache
Content-Type: multipart/mixed; boundary=batchresponse_4e1c04af-af2b-4cfc-9e35-7677a5efcfca
Server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: 8abd3c55-a72e-47ba-ae0b-ba43abeb76ae
x-ms-version: 2013-08-15
X-Content-Type-Options: nosniff
Date: Mon, 14 Oct 2013 19:21:58 GMT
Content-Length: 1051

--batchresponse_4e1c04af-af2b-4cfc-9e35-7677a5efcfca
Content-Type: multipart/mixed; boundary=changesetresponse_e2a26601-bba8-4c1a-8a8c-bb66badcbca1

--changesetresponse_e2a26601-bba8-4c1a-8a8c-bb66badcbca1
Content-Type: application/http
Content-Transfer-Encoding: binary

HTTP/1.1 400 Bad Request
Content-ID: 1
X-Content-Type-Options: nosniff
DataServiceVersion: 3.0;
Content-Type: application/json;odata=minimalmetadata;streaming=true;charset=utf-8

{"odata.error":{"code":"OutOfRangeInput","message":{"lang":"en-US","value":"0:One of the request inputs is out of range.\nRequestId:8abd3c55-a72e-47ba-ae0b-ba43abeb76ae\nTime:2013-10-14T19:21:58.0890048Z}}}
--changesetresponse_e2a26601-bba8-4c1a-8a8c-bb66badcbca1--
--batchresponse_4e1c04af-af2b-4cfc-9e35-7677a5efcfca--

참고 항목

표시:
© 2014 Microsoft