Submit a ticketCall us

Get a crash course on Network Monitoring delivered right to your inbox
This free 7-day email course provides a primer to the philosophy, theory, and fundamental concepts involved in IT monitoring. Lessons will explain not only how to perform various monitoring tasks, but why and when you should use them. Sign up now.

Home > Success Center > Network Performance Monitor (NPM) > Orion Syslog service causes database deadlocks

Orion Syslog service causes database deadlocks

Updated December 7, 2016

Overview

Database deadlocks are occurring due to the Orion Syslog service.

Environment

All Orion Platform versions

Cause 

The Syslog service is having issues with getting timeouts when connecting to SQL to update the host name. When a syslog message comes in, it looks at the IP address that the message is from and runs a query against the SolarWinds database to get the host name for that IP address. The error is thrown because SQL timed out or has a dead lock and it does not get a result. It is not related to a specific IP address but is just the process of matching the host name to IP.

Resolution

  1. On the Orion server, go to C:\ProgramData\Solarwinds\Logs\Orion\SyslogService
  2. Check the latest SyslogService log for the following errors:

ERROR SyslogService.SyslogService - Error updating hostname
System.Data.SqlClient.SqlException (0x80131904): Transaction (Process ID 303) was deadlocked on lock | communication buffer resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
   at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite)
   at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite)
   at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
   at SyslogService.SyslogService.UpdateCacheEntry(Object ipAddress)
ClientConnectionId:5ff5d2d4-9263-46e2-bd4b-0f69ab3707f3

  1.  For a complete list of devices (not managed in Orion) sending Syslog messages, request your DBA to run the following SQL query:

    Select IP from SysLog where NodeID = '0'
    

You should now have the option to either add the devices as nodes or discard them from the Syslog Viewer.

 

 

 

Last modified
19:20, 29 Mar 2017

Tags

Classifications

Public