J’ai fait face à un problème assez intéressant à la suite de la migration du composant Report Server de System Center Operations Manager. L’erreur n’est pas relative à SCOM mais à SQL Server et son composant Reporting Services. Dans mon cas, nous avions déplacé le rôle Reporting Services d’une instance à une autre en changeant le nom de la base de données de rapport associée. Ceci a eu un impact sur les rapports configurés pour être pré-générés avec un instantané. Lors de l’affichage de ces rapports, vous observez l’erreur :
An error occurred within the report server database. This may be due to a connection failure, timeout or low disk condition within the database. (rsReportServerDatabaseError)
Invalid object name '<Nom de l’ancienne base de données de rapport>.dbo.ExecutionCache'.
Ce comportement est aussi visible si vous essayez de modifier les options de traitement pour revenir à une exécution normale du rapport.
Pour résoudre le problème, suivez la procédure suivante :
- Ouvrez SQL Server Management Studio et connectez-vous à l’instance de base de données qui contient la base de données du composant de rapport.
- Ouvrez une nouvelle requête qui cible la table master et exécutez la requête suivante :
dbo.sp_helptext Schedule_UpdateExpiration
- Après ceci, ciblez la base de données temporaire de rapport et exécutez la commande suivante :
ALTER TRIGGER [dbo].[Schedule_UpdateExpiration] ON [dbo].[Schedule]
AFTER UPDATE
AS
UPDATE
EC
SET
AbsoluteExpiration = I.NextRunTime
FROM
[Nom de la base de données temporaire de rapport].dbo.ExecutionCache AS EC
INNER JOIN ReportSchedule AS RS ON EC.ReportID = RS.ReportID
INNER JOIN inserted AS I ON RS.ScheduleID = I.ScheduleID AND RS.ReportAction = 3