Hostname switches between two SQL Server hosts triggering false DBSS Cluster Failover alarms
Example alarm
Foglight has generated a Warning alarm for AGENTNAME : DBSS - Cluster Failover Rule: DBSS - Cluster FailoverSeverity: Warning
Message: Cluster Failover. The SQL Server cluster group active node has moved from node SERVER1 to node SERVER2 Created on: 2025-01-16T06:11:42-08:00
Messages like the following appear in the SQL Server agent log file
2025-01-16 05:11:05.411 INFO [AGENTNAME-lowPriorityPool-2-[DBSS_Host_Group][2025/01/16 05:11:05]] com.quest.qsi.fason.sqlserver.agent.SqlServerAgentData - Physical host name changed from SERVER1 to SERVER2. 2025-01-16 05:45:13.549 INFO [AGENTNAME-lowPriorityPool-2-[DBSS_Maintenance][2025/01/16 05:45:13]] com.quest.qsi.fason.sqlserver.agent.SqlServerAgentData - Physical host name changed from SERVER2 to SERVER1. 2025-01-16 06:01:54.386 INFO [AGENTNAME-lowPriorityPool-1-[DBSS_Maintenance][2025/01/16 06:01:54]] com.quest.qsi.fason.sqlserver.agent.SqlServerAgentData - Physical host name changed from SERVER1 to SERVER2.
When two different SQL Server agents are creating a JDBC connection at the same time (multiple threads) the second agent is getting the same connection object from the JDBC driver.
Imagine two people trying to use the same telephone at the same time.
Both agents now talk over each other, which leads to:
This happens because the JDBC driver or connection pool reuses connections when two threads request a connection at the same time. Instead of issuing two unique database sessions, it returns the same one.
Before the fix:
After the fix:
Note:
This issue has been logged as FOG-11777 and will be fixed in an upcoming release of the SQL Server cartridge.