Methoden der BatchverarbeitungBatching Methods

Durch die Verwendung von SOAP-Headern in Reporting ServicesReporting Services können Sie mehrere Webdienstmethoden in einen einzelnen Vorgang aufnehmen.The use of SOAP headers in Reporting ServicesReporting Services enables you to include multiple Web service methods in a single operation. Die Methoden werden im Rahmen einer Datenbanktransaktion in der Reihenfolge ihres Aufrufs ausgeführt.Methods run within the scope of a single database transaction, in the order in which they are called.

Rollback hat den Vorteil, dass aus mehreren Methoden bestehende Batchvorgänge verwendet werden können.Rollback is one advantage of using multiple-method batch operations. Wenn ein Fehler in einem der Methodenaufrufe auftritt, während ein Batch ausgeführt wird, stoppt der Berichtsserver die Verarbeitung und führt ein Rollback aller vorherigen Vorgänge aus.If an error occurs on any of the method calls while a batch is running, the report server stops running the batch and rolls back any previous operations. Dies ist dann sinnvoll, wenn ein Methodenaufruf von der erfolgreichen Durchführung anderer Methodenaufrufe im Batch abhängt.This is useful when a method call depends on the successful completion of other method calls in that batch.

Der Webdienst enthält keine Sperrsemantik für aus mehreren Methoden bestehende Batchvorgänge.The Web service does not provide locking semantics for multiple-method batch operations. Zeilen in einer Berichtsserver-Datenbank werden erst dann für das Update gesperrt, wenn die Meldung an den Server gesendet wird und der Execute-Befehl aufgerufen wird.Rows in the report server database are not locked for updating until the message is sent to the server and the Execute command is called.

Es ist keine Parallelitätssteuerung vorhanden, die sicherstellt, dass die Datenbank nicht geändert wurde, seit die Daten zum letzten Mal gelesen wurden.There are also no concurrency controls to guarantee that the database has not changed since the data was last read. Wenn zwei Clients dasselbe Element ändern, ist das letzte Update erfolgreich, wenn die Parameter noch gültig sind (z. B. wenn das Element nicht umbenannt wurde).If two clients modify the same item, the last update succeeds if the parameters are still valid (for example, the item has not been renamed).

Im folgenden Beispiel wird die CreateFolder-Methode dreimal aufgerufen, und diese Aufrufe werden in einem Batch ausgeführt.The following example calls the CreateFolder method three times and runs these calls as a single batch. Wenn einer der Aufrufe von CreateFolder fehlschlägt, wird der gesamte Batch abgebrochen.If any of the calls to CreateFolder fail, the entire batch is canceled.

Imports System  
Imports System.Web.Services.Protocols  
Imports myNamespace.MyReferenceName  

Class Sample  
    Sub Main(args() As String)  
        Dim rs As New ReportingService2005()  
        rs.Credentials = System.Net.CredentialCache.DefaultCredentials  
      ' Set the base Web service URL of the source server  
      rs.Url = "http://<Server Name>/reportserver/ReportService2005.asmx"  

        Dim bh As New BatchHeader()  

        bh.BatchId = service.CreateBatch()  
        rs.BatchHeaderValue = bh  
        rs.CreateFolder("New Folder1", "/", Nothing)  
        rs.CreateFolder("New Folder2", "/", Nothing)  
        rs.CreateFolder("New Folder3", "/", Nothing)  

        Console.WriteLine("Creating folders...")  
        rs.BatchHeaderValue = bh  
        rs.ExecuteBatch()  
        Console.WriteLine("Folders created successfully.")  

        rs.BatchHeaderValue = Nothing  
    End Sub  
End Class  
using System;  
using System.Web.Services.Protocols;   
using myNamespace.MyReferenceName;  

class Sample  
{  
    static void Main(string[] args)  
    {  
        ReportingService2005 rs = new ReportingService2005();  
        rs.Credentials = System.Net.CredentialCache.DefaultCredentials;  
      // Set the base Web service URL of the source server  
      rs.Url = "http://<Server Name>/reportserver/ReportService2005.asmx"  

        BatchHeader bh = new BatchHeader();  

        bh1.BatchID = service.CreateBatch();  
        rs.BatchHeaderValue = bh;  
        rs.CreateFolder("New Folder1", "/", null);  
        rs.CreateFolder("New Folder2", "/", null);  
        rs.CreateFolder("New Folder3", "/", null);  

        Console.WriteLine("Creating folders...");  
        rs.BatchHeaderValue = bh1;  
        rs.ExecuteBatch();  
        Console.WriteLine("Folders created successfully.");  

        rs.BatchHeaderValue = null;  
    }  
}  

Siehe auchSee Also

CancelBatchCancelBatch
CreateBatchCreateBatch
Technische Referenz ( SSRS ) Technical Reference (SSRS)
Verwenden von Reporting Services-SOAP-HeaderUsing Reporting Services SOAP Headers