엔터티 그룹 트랜잭션 수행
Table service는 동일한 테이블에 있고 동일한 파티션 그룹에 속한 엔터티에 대한 일괄 처리 트랜잭션을 지원합니다. 여러 엔터티 삽입, 엔터티 업데이트, 엔터티 병합, 엔터티 삭제, 엔터티 삽입 또는 바꾸기 및 엔터티 삽입 또는 병합 작업은 단일 트랜잭션 내에서 지원됩니다.
엔터티 그룹 트랜잭션에 대한 요구 사항
엔터티 그룹 트랜잭션은 다음 요구 사항을 충족해야 합니다.
트랜잭션의 일부 작업에 해당하는 모든 엔터티는 동일한
PartitionKey
값을 가져야 합니다.엔터티는 트랜잭션에 한 번만 나타날 수 있으며, 이에 대해 하나의 작업만 수행할 수 있습니다.
트랜잭션에는 최대 100개의 엔터티가 포함될 수 있으며 총 페이로드의 크기는 4MiB 이하일 수 있습니다.
모든 엔터티에는 Table Service 데이터 모델 이해에 설명된 제한 사항이 적용됩니다.
OData 일괄 처리 요청에 대한 테이블 서비스 지원
엔터티 그룹 트랜잭션에 대한 의미 체계는 OData 프로토콜 사양에 의해 정의됩니다. OData 사양에는 일괄 처리 요청에 대해 다음과 같은 개념들이 정의되어 있습니다.
변경 집합은 하나 이상의 삽입, 업데이트 또는 삭제 작업의 그룹입니다.
일괄 처리는 하나 이상의 변경 집합 및 쿼리 작업을 포함하는 작업들의 컨테이너입니다.
Table service는 OData 사양에 정의된 기능들의 하위 집합을 지원합니다.
- 테이블 서비스는 하나의 일괄 처리 안에 단일 변경 집합만 지원합니다. 변경 집합은 여러 개의 삽입, 업데이트 및 삭제 작업을 포함할 수 있습니다. 일괄 처리에 변경 집합이 2개 이상 포함된 경우 첫 번째 변경 집합이 서비스에서 처리되고 추가 변경 집합은 상태 코드 400(잘못된 요청)과 함께 거부됩니다.
중요
단일 엔터티에 대한 다중 작업은 변경 집합 내에서 허용되지 않습니다.
삽입, 업데이트 또는 삭제 작업이 포함된 일괄 처리 내에서는 쿼리 작업이 허용되지 않으며, 일괄 처리에 단일 항목으로 제출되어야 합니다.
변경 집합 내의 작업은 원자성으로 처리됩니다. 즉, 변경 집합 내의 모든 작업이 성공하거나 실패합니다. 작업은 변경 집합에 지정된 순서로 처리됩니다.
테이블 서비스에서 변경 집합 내의 작업 연결은 지원되지 않습니다.
테이블 서비스에서는 변경 집합에서 최대 100개의 작업이 지원됩니다.
REST를 통한 엔터티 그룹 트랜잭션
다음 섹션에서는 일괄 처리 요청을 생성하고 일괄 처리 응답을 해석하는 방법 및 이러한 각 방법에 대한 예제를 보여줍니다.
일괄 처리 요청 구문
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
Version
및DataServiceVersion
헤더를 포함합니다.엔터티 삽입에 대한 응답 콘텐츠 에코를 표시하지 않하려면 변경 집합의
Prefer
각 삽입 작업에 대한 값을 사용하여return-no-content
헤더를 지정합니다. 헤더에Prefer
대한 자세한 내용은 테이블 서비스 기능 요약을 참조하세요.
삽입, 업데이트 및 삭제 작업에 대한 예제 요청
다음 예제에서는 엔 터티 삽입 작업 2개와 엔터티 병합 작업을 포함하는 일괄 처리 요청을 보여 줍니다. 이러한 예제에서는 삽입 작업에 대한 응답에서 에코 페이로드에 관심이 없으므로 헤더를 Prefer:``return-no-content
포함합니다.
참고
JSON은 권장 페이로드 형식이며 버전 2015-12-11 이상에서 지원되는 유일한 형식입니다.
JSON(버전 2013-08-15 이상)
다음 예제에서는 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 피드(2015-12-11 이전 버전)
다음 예제에서는 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="https://www.w3.org/2005/Atom">
<title />
<author>
<name />
</author>
<id />
<content type="application/xml">
<m:properties>
<d:PartitionKey>Channel_19</d:PartitionKey>
<d:RowKey>1</d:RowKey>
<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="https://www.w3.org/2005/Atom">
<title />
<author>
<name />
</author>
<id />
<content type="application/xml">
<m:properties>
<d:PartitionKey>Channel_19</d:PartitionKey>
<d:RowKey>2</d:RowKey>
<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="https://www.w3.org/2005/Atom">
<title />
<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: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은 권장 페이로드 형식이며 버전 2015-12-11 이상에서 지원되는 유일한 형식입니다.
JSON(버전 2013-08-15 이상)
다음 예제에서는 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
Atom 피드(2015-12-11 이전 버전)
다음 예제에서는 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—
일괄 처리 응답 구문
응답은 일괄 처리 요청에 대한 전반적인 상태 코드, 변경 집합의 각 작업에 대한 개별 상태 코드 및 결과 조각을 반환합니다. 응답은 일괄 처리 경계 및 변경 집합 경계를 포함하는 다중 파트 MIME 메시지입니다.
테이블 서비스는 전체 일괄 처리 요청에 대한 상태 코드, 변경 집합의 각 작업에 대한 하나 이상의 상태 코드(성공 또는 실패 여부에 따라 다름)를 반환합니다.
일괄 처리 요청이 올바르게 승인되었고 Table Service에서 성공적으로 수신되었다고 가정하면 변경 집합의 작업 중 하나가 실패하더라도 일괄 처리 요청은 코드 202(수락됨)상태 반환합니다. 일괄 처리 요청 자체가 실패하면 변경 집합의 다른 작업이 실행되기 전에 실패합니다. 예를 들어 권한 부여 오류로 인해 일괄 처리 요청이 실패할 수 있습니다. 이 경우 상태 코드는 해당 오류를 나타냅니다.
변경 집합 내의 작업은 원자성으로 처리됩니다. 즉, 일괄 처리의 모든 작업이 성공하거나 전체 일괄 처리가 실패합니다. 테이블 서비스는 실패하는 작업이 있을 때까지 변경 집합의 작업 처리를 계속 수행합니다. 작업이 실패하면 일괄 처리에서 앞에서 수행된 모든 작업이 롤백됩니다. 또한 스냅숏 격리를 사용해서 엔터티 그룹 트랜잭션이 실행됩니다.
변경 집합 내의 개별 작업에 대한 상태 코드는 변경 집합 응답 내에 표시됩니다. 개별 작업이 실패하면 변경 집합에 대한 응답에 상태 코드 400(Bad Request
)이 나타납니다. 응답 내의 추가 오류 정보에는 해당 작업의 인덱스를 반환하여 실패한 작업이 표시됩니다. 인덱스는 페이로드에서 해당 명령의 시퀀스 번호입니다.
예를 들어 아래 예제 오류 응답을 참조하세요.
만들기, 업데이트 및 삭제 작업에 대한 예제 응답
다음 예에서는 위에 표시된 예제 요청으로 전송된 일괄 처리 작업에 대한 응답을 보여 줍니다.
JSON(버전 2013-08-15 이상)
다음 예제에서는 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 피드(2015-12-11 이전 버전)
다음 예제에서는 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(버전 2013-08-15 이상)
다음 예제에서는 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--
Atom 피드(2015-12-11 이전 버전)
다음 예제에서는 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/"0x5B168C7B6E589D2"" xmlns="https://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--
샘플 오류 응답
다음 예에서는 실패한 작업이 포함된 일괄 처리 요청의 응답을 보여 줍니다. 일괄 처리 응답이 상태 코드 202(수락)를 반환하지만 실패한 개별 작업은 상태 코드 400(잘못된 요청)을 반환합니다. 추가 오류 정보는 실패한 작업의 응답 본문에 포함됩니다.
code
요소는 저장소 서비스 오류 코드를 지정하지만 message
요소는 실패한 작업의 인덱스로 시작하여 오류 메시지 문자열이 표시됩니다. 실패한 작업을 확인하려면 메시지에서 인덱스 값을 구문 분석합니다. 작업은 0부터 시작해서 인덱싱됩니다.
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--
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--