You try to add a new connection or to assign host sockets but the process is stuck and will never end. Read below to fix this.
In our Vmware and Oracle monitoring products we use the SCOM task mechanism to execute the Check Connection and to load and save the sockets license assigning. The SCOM task mechanism is internally implemented by using the SQL Service Broker. The SQL broker will handle the task results in combination with the SCOM SDK service. If the broker is miss configured you will get behaviours as descripted above.
Notice: in all examples below we use the SCOM setup defaults with the scom database name as 'OperationsManager' . Please change in the name if needed.
Please check the steps below to fix this:
1) Assure the SQL Broker is enabled on the OperationsManager DB.
To check if Service Broker is enabled on a SQL Server database open SQL enterprise manager as a SQL admin and execute the query below (replace 'name' if needed with the correct DB SCOM name):
USE [master]
GO
SELECT is_broker_enabled FROM sys.databases WHERE name = 'OperationsManager';
The results should be:
is_broker_enabled
-----------------
1
If this is not the case you have to enable the SQL Broker using the SQL command below (replace 'OperationsManager' if needed):
USE [master]
GO
ALTER DATABASE OperationsManager SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE;
Notice: After executing above ALTER DATABASE restart the 'System Center Data Access Service' on all SCOM management servers because the SCOM SDK has to recreate the task queue on the SQL broker. See PowerShell command below:
Restart-Service 'OMSDK'
2) Assure the Owner of the OperationsManager DB is set. By default this should be 'SA' or a domain account.
To check if the DB owner is set execute the SQL query below (replace 'name' if needed with the correct SCOM DB name):
USE [master]
GO
SELECT suser_sname( owner_sid ) as 'owner' , name as 'database'
FROM sys.databases
where name = 'OperationsManager'
To results should be :
owner database
--------------------- ------------------------
sa OperationsManager
or in case of a domain account like this
owner database
--------------------- ------------------------
CONTOSO\scom_DB_owner OperationsManager
If this is not the case set the owner using the SQL below:
USE [OperationsManager]
GO
EXEC dbo.sp_changedbowner @loginame = N'sa', @map = false
GO
or in case of a domain account like this (change loginname if needed)
USE [OperationsManager]
GO
EXEC dbo.sp_changedbowner @loginame = N'contoso\scom_DB_owner', @map = false
GO
Notice: After executing above dbo.sp_changedbowner restart the 'System Center Data Access Service' on all SCOM management servers. See PowerShell command below:
Restart-Service 'OMSDK'