091502CC8D7F487BA52A08145ED03720
  • Thomas Pollinger
  • 19.07.2017
  • DE/EN

Root Cause Analysis: "Could not update a recordset"

Es sind schon zum Teil interessante Meldungen dabei, welche nicht direkt auf den Verursacher deuten. Besonders bei dieser Meldung, innerhalb eines Clusters mit mehreren Publizierungsservern, kann man sich schon mal im Kreis drehen ;)


Regel 5

Nicht immer liegt die Ursache in einem Projekt oder liegt an einer Einstellung. Sondern es kann auch mal systemseitig gewollt sein und wurde einfach nur etwas unglücklich umgesetzt.


Meldungen

Severity: Error
Component: BackgroundProcessing
Category: Application
Source: OpenText.WS.MS.XMLServer.GenDispatcher.SearchForJobsToStart (:0)
Message: A database error occurred
-----------
Severity: Error
Component: Database
Category: SystemDatabase
Source: OpenText.WS.MS.Core.DataAccess.ErrorLogging.LogToFile (:0)
Message:
<DbError time="{Date / Time}">
  <Message><![CDATA[Could not update a recordset]]></Message>
  <SqlStatement id="IO_GEN.SELECT_0020">SELECT * FROM IO_GEN WHERE GEN0=@0 AND GEN8=0 AND GEN10&lt;=@1 AND GEN7=1;@0,IO_GEN.GEN0,{GUID};@1,IO_GEN.GEN10,{Timestamp}; </SqlStatement>
  <ConnectionString>provider=sqloledb;data source={Database Servername};initial catalog=ioAdministration;Trusted_Connection=yes</ConnectionString>
  <Exception type="System.Data.DBConcurrencyException">
    <Message><![CDATA[Concurrency violation: the UpdateCommand affected 0 of the expected 1 records.]]></Message>
    <StackTrace>
      <Call>System.Data.Common.DbDataAdapter.UpdatedRowStatusErrors(RowUpdatedEventArgs rowUpdatedEvent, BatchCommandInfo[] batchCommands, Int32 commandCount)</Call>
      <Call>System.Data.Common.DbDataAdapter.UpdatedRowStatus(RowUpdatedEventArgs rowUpdatedEvent, BatchCommandInfo[] batchCommands, Int32 commandCount)</Call>
      <Call>System.Data.Common.DbDataAdapter.Update(DataRow[] dataRows, DataTableMapping tableMapping)</Call>
      <Call>System.Data.Common.DbDataAdapter.UpdateFromDataTable(DataTable dataTable, DataTableMapping tableMapping)</Call>
      <Call>System.Data.Common.DbDataAdapter.Update(DataSet dataSet, String srcTable)</Call>
      <Call>OpenText.WS.MS.Core.DataAccess.DataBaseAccessDataTable.Update()</Call>
      <Call>OpenText.WS.MS.Core.DataAccess.RdAccess.Update()</Call>
    </StackTrace>
  </Exception>
  <StackTrace>
    <Call>OpenText.WS.MS.Core.DataAccess.RdAccess.AddException(Exception exception, String messageFormat, Object[] args)</Call>
    <Call>OpenText.WS.MS.Core.DataAccess.RdAccess.Update()</Call>
    <Call>OpenText.WS.MS.XMLServer.GenDispatcher.SearchForJobsToStart()</Call>
    <Call>OpenText.WS.MS.XMLServer.GenDispatcher.SearchForJobsToStart(Object state)</Call>
    <Call>System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)</Call>
    <Call>System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)</Call>
    <Call>System.Threading.TimerQueueTimer.CallCallback()</Call>
    <Call>System.Threading.TimerQueueTimer.Fire()</Call>
    <Call>System.Threading.TimerQueue.FireNextTimers()</Call>
  </StackTrace>
</DbError>

Ursache

Grund für diese Meldung ist, dass einer der Publizierungsserver versucht hat etwas mit einem Publizierungsauftrag zu machen. Und ein anderer Server im Cluster war schneller. Diese Meldung ist erstmal nicht schlimm, da nichts schlimmer passiert. Jedoch mit aktiven System-Monitoring oder einer nachgelagerten Logfile-Analyse, sind diese Meldungen etwas nervig und unnötig ;)


Lösung

Leider kann man da selbst nicht wirklich viel machen, da dies im System verankert ist. Jedoch, so mein aktueller Stand, soll es mit einem der kommenden Updates einen Fix seitens OpenText geben.


Über den Autor:
Thomas Pollinger

... ist Senior Site Reliability Engineer bei der Vodafone GmbH in Düsseldorf. Seit dem Jahr 2007 betreut er zusammen mit seinen Kollegen die OpenText- (vormals RedDot-) Plattform Web Site Management für die deutsche Konzernzentrale.

Er entwickelt Erweiterungen in Form von Plug-Ins und PowerShell Skripten. Seit den Anfängen in 2001 (RedDot CMS 4.0) kennt er sich speziell mit der Arbeitweise und den Funktionen des Management Server aus.