Unable to connect to the Data Repository
joffwilliams
Posts: 16
I am performing a fresh installation of SQL Monitor 3. I receive this error message when attempting to load the SQL Monitor interface in my web browser:
"Unable to connect to the Data Repository
Value cannot be null. Parameter name: value"
Searching support, forums and Google resulted in no solution.
The base monitor and IIS are installed on one side of a two-node cluster running Windows Server 2008 R2. The data repository is in a clustered failover SQL Server 2012 instance, currently on the other side of the same cluster.
I'm positive connection credentials for the base monitor to the repository are correct - I created the database using the account the base monitor runs as. No clues in Event Viewer. I'm at a loose end with no ideas right now. If there is any log information for the base monitor I can post to help, or any further information, I will share it. I'd like to get SQL Monitor up and running again ASAP - I'm missing a crucial piece of my monitoring solution!
Thanks in advance for any assistance!
"Unable to connect to the Data Repository
Value cannot be null. Parameter name: value"
Searching support, forums and Google resulted in no solution.
The base monitor and IIS are installed on one side of a two-node cluster running Windows Server 2008 R2. The data repository is in a clustered failover SQL Server 2012 instance, currently on the other side of the same cluster.
I'm positive connection credentials for the base monitor to the repository are correct - I created the database using the account the base monitor runs as. No clues in Event Viewer. I'm at a loose end with no ideas right now. If there is any log information for the base monitor I can post to help, or any further information, I will share it. I'd like to get SQL Monitor up and running again ASAP - I'm missing a crucial piece of my monitoring solution!
Thanks in advance for any assistance!
Jonathan Williams
Database Administrator
City of Spokane, WA
Database Administrator
City of Spokane, WA
Comments
2012-06-05 15:28:03,510 [ 7] WARN NHibernate.Type.CustomType - custom type is not Serializable: RedGate.Response.Common.Persistence.NHibernate.UserTypes.CredentialsUserType
2012-06-05 15:28:03,510 [ 7] WARN NHibernate.Type.CustomType - custom type is not Serializable: RedGate.Response.Common.Persistence.NHibernate.UserTypes.CredentialsUserType
2012-06-05 15:28:03,510 [ 7] WARN NHibernate.Type.CustomType - custom type is not Serializable: RedGate.Response.Common.Persistence.NHibernate.UserTypes.CredentialsUserType
2012-06-05 15:28:03,542 [ 7] ERROR RedGate.Response.Engine.Alerting.Base.Service.MonitoringAndStorageService - Unhandled exception in delayed start.
System.ArgumentNullException: Value cannot be null.
Parameter name: value
at System.BitConverter.ToString(Byte[] value)
at #RVG.#esG.#tQb()
at #Wze.#euG.#gOb(Int32 , String , Int32 , Int32 , String )
at #RVG.#mNH.#0IH()
at #RVG.#kNH.#3IH(Boolean )
at #eLv.#qNV..ctor(#nNV , RepositorySettingsSection , CollectionSettingsSection , AlertSettingsSection , FeatureUsageSettingsSection , #ffZ )
at #eLv.#dLv.#ANV()
Database Administrator
City of Spokane, WA
It looks like the "value cannot be null" exception is being thrown out of the SQL Monitor licensing components - it's trying to get a MAC address or a volume serial number from a computer and coming up empty.
I'd assume that the attributes are failing to come in from one of the SQL Server computers.
Can you try this:
Open a command prompt
Type WBEMTEST<enter>
Connect to \\<name of a SQL Server>\root\cimv2
In the query, use SELECT * FROM Win32_LogicalDisk where DriveType="3"
For each result, double-click and see if there is a "VolumeSerialNumber" property. This is one of the things that the licensing code will try to convert to a string.
Every result contained a VolumeSerialNumber property.
Perhaps I should note that there are no SQL Servers being monitored yet. I am unable to access the web UI to even begin using the software. Finishing installation is as far as I have got. I did have SQL Monitor running on a workstation, as a preliminary environment, but it died so I'm now performing a fresh installation on a proper server.
Database Administrator
City of Spokane, WA
Database Administrator
City of Spokane, WA
The base monitor computer is the second node of the cluster.
Node 1: SQL Server Instance (capable of failover to other node if necessary) with data repository, installed as Base Monitor user during installation.
Node 2: SQL Monitor Base Monitor and IIS
Hope that makes sense.
Database Administrator
City of Spokane, WA
I can run that query against node 1 from node 1 and against node 2 from node 2, but not from node 1 against node 2 and vice-versa. The results I did receive indicated each returned result had an ID property with a numeric value.
Database Administrator
City of Spokane, WA
HKEY_LOCAL_MACHINE\Cluster\Quorum
Use the quorum ID in this query:
HKEY_LOCAL_MACHINE\Cluster\Resources\<quorum ID>\Parameters\DiskUniqueIds
Next, look at
HKEY_LOCAL_MACHINE\Cluster\ClusterInstanceId
HKLM\Cluster\Quorum has an ID in the "Resource" entry.
HKLM\Cluster\Resources\<quorum resource ID>\Parameters has no DiskUniqueIds entries. There is a DiskIdGuid but it is blank.
HKLM\Cluster\ClusterInstanceID has an entry.
Database Administrator
City of Spokane, WA
That explains the cause of the problem, but I can't say how to fix it. This is critical information that MSCluster needs to function and use the shared disk, so if this ID is missing I'd assume the whole shared resource would break. So the disk ID is not available from the passive node perhaps?
I didn't see anything mentioned in the Microsoft KB about the registry entry being unavailable from the passive node, though...