ACS – ‘The operation has timed out’


scom-gsx-solutions

ACS – ‘The operation has timed out’

Daca se intampla sa avem o baza de date ACS mai mare uneori la executarea anumitor raporte se poate primi un mesaj de time out.

TheOperationTimedOut

parametrii implicate pentru modificarea intervalului nu se pot administra din SCOM ci din Reporting Services, mai exact din fisierele de configurare sau individual pe raport.

Mesajul de timeout poate fi generat de mai multi factori pe care am sa-i descriu pe scurt.

Un server de Reporting Services are doua valori pentru timeout, respective un ‘Query timeout’ si ‘Report Execution timeout’.

Query timeout

Reprezinta timpul (numarul de secunde) de asteptare al serverului de RS pana primeste un raspuns de la baza de date interogata.

Report Execution timeout

Reprezinta numarul maxim de secunde de procesare al raportului inainte ca acesta sa fie oprit.

In majoritatea cazurilor problema este legata de timpul de asteptare pentru a primi raspunsul la un query, deci primul caz. Daca se modifica intervalul de ‘query timeout’ atunci trebuie sa ne asiguram ca intervalul generarii raportului este mai mare.

Ca sa modificam setarile de mai sus trebuie sa navigam in folderul de RS. Calea default :

\Program Files\Microsoft SQL Server\MSRS1111.MSSQLSERVER\Reporting Services\ReportServer

Acolo vom avea un fisier rsreportserver.config pe care il deschidem cu un editor. Cheia care ne intereseaza este  <Add Key=”DatabaseQueryTimeout” Value=”120″ />. Aceasta este valoarea default, 120 de secunde. Daca punem valoarea 0 atunci niciodata nu va da time-out, ceea ce nu este recomandat.

O lista completa cu parametrii si valorile se gaseste pe http://technet.microsoft.com/en-us/library/ms157273.aspx .

Dupa ce se modifica parametrul de mai sus faceti restart la serviciul SQL Server Reporting Services (MSSQLSERVER) pentru a se aplica modificarile.

In acceasi locatie mai avem un fisier web.config. Cheia pe care o cautam se numeste <httpRuntime executionTimeout=”9000″ /> si reprezinta timpul de executare al raportului dupa care va da time out (2.5 ore).

executionTimeout=”9000″ este un parametru in cheia httpRuntime la care se pot adauga si alti parametrii cum ar fi:

<httpRuntime
   apartmentThreading = "[True|False]"
   appRequestQueueLimit = "number"
   delayNotificationTimeout = "number"
   enable = "[True|False]" 
   enableHeaderChecking = "[True|False]" 
   enableKernelOutputCache = "[True|False]" 
   enableVersionHeader = "[True|False]" 
   encoderType = "string"
   executionTimeout = "number" 
   maxQueryStringLength = "number"
   maxRequestLength = "number" 
   maxUrlLength = "number"
   maxWaitChangeNotification = "number" 
   minFreeThreads = "number" 
   minLocalRequestFreeThreads = "number" 
   relaxedUrlToFileSystemMapping = "[True|False]"
   requestLengthDiskThreshold = "number" 
   requestPathInvalidCharacters = "string"
   requestValidationMode = "[2.0|4.0]"
   requestValidationType = "string"
   requireRootedSaveAsPath = "[True|False]"
   sendCacheControlHeader = "[True|False]" 
   shutdownTimeout = "number"
   useFullyQualifiedRedirectUrl = "[True|False]" 
   waitChangeNotification = "number" />

Lista completa cu parametrii si descrierea lor aici: http://msdn.microsoft.com/en-us/library/vstudio/e1f13641(v=vs.100).aspx

Dupa ce se modifica parametrul de mai sus da-ti un restart la serviciul SQL Server Reporting Services (MSSQLSERVER) pentru a se aplica modificarile.

Se mai pot modifica intervalele individual (per raport) folosind Report Builder.

reportbuilder1

Deschidem raportul respective si vedem proprietatile de pe DataSet.Timeout

—Marius Ene

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s