Groups | Blog | Home
all groups > sql server reporting services > may 2005 >

sql server reporting services : SQL Reporting Services Web Service Custom Task DLL in DTS Package - timeout issue



Ryan
5/3/2005 10:53:10 AM
This one is a little verbose, but will prove to be a simple solution for
someone willing to read to the end. I just haven't found the answer, and
I'm pulling my hair out attempting to.

I am using the web services available through reporting services to create
an automated process for creating snapshots. This required the creation of
a dll that exposes a custom task to the DTS designer interface in SQL 2000.
What seems to be happening is a fast running report can have a snapshot
created successfully through the use of this custom task, while a lengthy
report is failing. The exact error message reported by the custom task dll
is:

The operation has timed-out.


The other portion of the error message is standard DTS logging, I think:

Step Error Source: Microsoft Data Transformation Services (DTS) Package
Step Error Description:The task reported failure on execution.
Step Error code: 8004043B
Step Error Help File:sqldts80.hlp
Step Error Help Context ID:1100


The timeout is happening at approx. 100 seconds.

I have checked some of the obvious places, such as:

#1. Report Manager --> Site Settings-->Report Execution Timeout-->Limit
report execution to the following number of seconds = 3600 (1 hr)

#2. The specific report -->Properties-->Execution-->Report Execution
Timeout-->Use default setting (which I changed to "Do not timeout report
execution", even though the default should come from #1 mentioned above.

#3. In the C# dll I have created, the snippet of code I believe it is
failing on is:

rs.UpdateReportExecutionSnapshot(item.Path); //where rs is my RSClient
object, and item.Path is the specific report. I did find an rs.timeout
property that is based in milliseconds which I tried to set to something
like 4 hours. This also had no effect on the error message.

If anyone has come across this same problem and has a fix to it, I would
appreciate your response.

Sincerely,
Ryan







Ryan
5/3/2005 1:43:52 PM
Ok, so a little more digging led to this working solution, for those who
want it. It generates no errors back to the DTS that calls it, and returns
execution quickly back to the DTS, regardless of how long the report/s take
to generate.



private void button1_Click(object sender, System.EventArgs e)

{

RSClient rs = new RSClient(); //The reporting services web service component


// cb is essentially a function pointer to ServiceCallback.

AsyncCallback cb = new AsyncCallback(ServiceCallback);

// Call the Begin method of the proxy class to initiate the

// asynchronous call to the XML Web service method.

rs.BeginUpdateReportExecutionSnapshot(item.Path,cb,rs);}



public void ServiceCallback(IAsyncResult ar)

{

// Retrieve the original state for the proxy.

RSClient rs = (RSClient)ar.AsyncState;

// Retrieve results by calling the End method of the proxy class

rs.EndUpdateReportExecutionSnapshot(ar);

}

Sincerely,

Ryan



[quoted text, click to view]

AddThis Social Bookmark Button