Summary
In the more recent versions of XenApp (7.9+), Citrix recommends using 3 separate databases including Logging, Monitoring, and Site. This article discusses support for this configuration.
Symptoms
In the more recent versions of XenApp/XenDesktop (7.9+), Citrix recommends using 3 separate databases including Logging, Monitoring, and Site. Support for this varies depending on the configuration and your version of FlexNet Manager Suite.
FlexNet Manager Suite 2017 R1 and earlierThe import on the beacon from the XenDesktop database(s) fails with the error ?Invalid object name ?chb_Config.Site?. You can workaround this problem by following the steps in the Resolution field to update the adapter XML files.
FlexNet Manager Suite 2017 R2 and laterThis version has built-in support from importing from the XenDesktop database when all 3 databases are present on the same server. You should target the monitoring database when setting up the connection on the beacon.
All versionsIf the 3 databases are being hosted on separate SQL Servers or separate instances, the import will fail. This is because the beacon needs to connect to the 'Site' database to retrieve the Citrix farm name, then the monitoring database to retrieve the data which is not currently supported. An enhancement is logged to add support for this which is being tracked with reference FNMS-63835. If you would like to request this feature please raise a support case and mention this reference number. In the meantime, it may be possible to workaround the issue using the steps in the Resolution field
Cause
Due to the update with the XenApp data storage the ?chb_Config.Site? table that is used in SQL queries is no longer in the same database that is used for retrieval of data needed by FNMS.
Steps To Reproduce
- Install XenApp 7.12 with recommended 3 database configuration
- Open the Inventory Beacon and add a new inventory source with type 'Citrix XenApp (EdgeSight)'
- Specify connection information for XenApp database server and choose Citrix monitoring DB
- Try to run the import from this database
Expected Result: Data imports successfully without any errors.Actual Result: In FNMS 2017 R1 and earlier, a
n error is received that states: "Invalid object name 'chb_Config.Site'. Resolution
FlexNet Manager Suite 2017 R1 and earlierUpdates are made to the SQL used in the 5 XML files included in the zip file attached to this article that allow the ComplianceReader to work in either the original single database solution or the new 3 separate database setup:
- \mgs\Compliance\Importer\Procedures\Reader\Citrix XenApp (EdgeSight)\InstallerEvidence.xml
- \mgs\Compliance\Importer\Procedures\Reader\Citrix XenApp (EdgeSight)\Setup_Computer.xml
- \mgs\Compliance\Importer\Procedures\Reader\Citrix XenApp (EdgeSight)\Setup_Evidence.xml
- \mgs\Compliance\Importer\Procedures\Reader\Citrix XenApp (EdgeSight)\Setup_Usage.xml
- \mgs\Compliance\Importer\Procedures\Reader\Citrix XenApp (EdgeSight)\Usage.xml
Using separate SQL Servers or instances for each database
In the Setup_Computer.xml, Setup_Evidence.xml, and Setup_Usage.xml files used by the "Citrix XenApp (EdgeSight)" adapter/reader there is a step at the bottom of each the files called "GetFarmName". Each of these steps are the same in the 3 files. It uses a query of the "Monitoring" database by doing a string "REPLACE" of the database name "Site" (which is setup using the "Citrix XenApp (EdgeSight)" adapter/reader as the database connection used in the adapter/reader).
The first and simplest way around this is to hard code the value found in their "Monitoring" database and make sure to add it to the temporary table used elsewhere in the adapter/reader scripts (#FarmName is the temp table). The value could be retrieved by manually running the SQL found in the "GetFarmName" step against their "Monitoring" database to get the correct string value.
The second way to accomplish this would be to add the server where the "Monitoring" database exists as a linked server (with the same user credentials and permissions) to the database server where the "Site" database lives. Then the same 3 xml files mentioned above would need to be modified to use the linked server to get at the "Monitoring" database to retrieve the required value.
The Services team could also be engaged to implement the solution or to suggest and implement other solutions for this situation as well.
Please be aware that linked database servers in SQL Server can present security risks.
Additional Information
The updated logic in 2017 R2 and newer will attempt to guess the site name of the XenApp environment based on the name in the chb_Config.Site table and if that fails, the database name.
If the guessed site name does not match the actual site name in the XenApp environment, you can override the site name in the FnmpXenAppAgent.exe tool to force the site names to match.
For example, to force a site name of XenAppSite123, you can invoke the FnmpXenAppAgent.exe tool like
> FnmpXenAppAgent.exe -d "Server=172.168.38.83;Database=FNMP;Trusted_Connection=yes; " -t 600 -f XenAppSite123