Web Interface for Resource Manager 2.1

87

Got Citrix Resource Manager? Try out Web Interface for Resource Manager! Web Interface for Resource Manager is an ASP.NET 2.0 web application that contains several SQL queries to display useful information contained in the Citrix Resource Manager Summary Database.

version 2.1

Got Citrix Resource Manager?  Try out Web Interface for Resource Manager!

Web Interface for Resource Manager is an ASP.NET 2.0 web application that contains several SQL queries to display useful information contained in the Citrix Resource Manager Summary Database.  Web Interface for Resource Manager displays this information in a drill-down graphical and tabular manner.

What’s new in version 2.1?
Web Interface for Resource Manager version 2.1 includes everything in version 2.0, plus the following new features:

  • Graphical Configuration Tool
    In the past versions of Web Interface for Resource Manager, you had to manually edit the Web.Config file to set up your database connections and time zone overrides. This new graphical tool allows you to set up your options much like you set up an ODBC connection using Windows.
  • Oracle Support
    Many of you have asked for an Oracle version of Web Interface for Resource Manager. Version 2.1 has Oracle support integrated. Just open the configuration tool, select Oracle as your Database Server Type and supply your TNS Service Name. One thing to note though, you will need to have the Oracle client installed on your web server.
  • Multiple Language Support
    Web Interface for Citrix Resource Manager has been globalized to support more languages. Currently, Web Interface for Resource Manager supports the following languages:
    • US English
    • German (thanks goes to Josef Zeiler for the translation)
    • Dutch (thanks goes to Michel Roth for the translation)

  Download Web Interface for Resource Manager version 2.1 (for Presentation Server 3.0 and above) 

What’s on the radar for the future?

  • Using MFCOM and WMI to move reports beyond the Summary Database.
  • Of course, more reports.

Known issues

If all database tables are not owned by dbo, you will receive errors. For more explanation on this phenomenon, see this article.

If you do not properly set up your database authentication, you will not be able to view any reports. Please refer to this article for database authentication guidelines.

Note: Version 2.1 is only intended for Presentation Server 3.0 and above. This is due to the differences in the Resource Manager Summary Database schema.  The MetaFrame XP Summary Database schema does not include the tables necessary to generate these new reports. Please use Web Interface for Resource Manager Version 1.1 for MetaFrame XP.

Screen Shot of Web Interface for Resource Manager’s GUI Configuration Tool


Click to enlarge

87 thoughts on “Web Interface for Resource Manager 2.1

  1. Excellent work Jason. I have one feature request. It would be great to be able to have a report that would display for a given application, how many concurrent users it had for a period of time (for example a bar graph display data points for each hour of a 24 hour period, etc.)

  2. It seems as when you drill down to a given user’s session. 9 times out of 10 for the processes listed, it is incorrect or not the process I would expect. For example cmd.exe is listed for a lot of the user’s when they were launching other applications (Internet Explorer, Word, etc.). Does this have anything to do with a logon script running and it is capturing that executable at that point in time?

  3. all the rights appear correct but i continue to get this error when trying to save my config

    In order to modify configuration settings, the ASP.NET process account (either the local ASPNET or Network Service account, by default) must have write permission granted for the Web.config file in the web site directory.

  4. I’m getting the following error when trying to save my config:

    Error getting dates: UTC Offset is not set

    What is the format for the UTC offset overide?

  5. When I leave that option blank, I get that error:

    Error getting dates: UTC Offset is not set
    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

    Exception Details: System.Exception: Error getting dates: UTC Offset is not set

    Source Error:

    Line 41: else
    Line 42: {
    Line 43: throw new Exception(Resources.WIRM.ErrorGettingDatesUTCOffset);
    Line 44: }
    Line 45: }

    Source File: m:\Inetpub\wwwroot\WIRM\Layout.master.cs Line: 43

    Stack Trace:

    [Exception: Error getting dates: UTC Offset is not set]
    _Default.Page_Load(Object sender, EventArgs e) in m:\Inetpub\wwwroot\WIRM\Layout.master.cs:43
    System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +15
    System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +34
    System.Web.UI.Control.OnLoad(EventArgs e) +99
    System.Web.UI.Control.LoadRecursive() +47
    System.Web.UI.Control.LoadRecursive() +131
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1061

  6. I have installed this on a Windows 2003 server running IIS currently configured with Web Interface. After copying the files and setting up the Virtual Site, I had to give write access to the Network Service account over the WIRM folder.

    I have configured it and am able to browse through the tool but no images (i.e. graphs, pie charts, etc) are being displayed. Any ides on what the problem might be.

    Also i have noticed that the Web Interface has stopped working and i receive the “Server is unavailable page”. If i do an IISRESET, WI starts working but the WIRM tool doesnt.

    Running MPS 3.0 and RM is located on Oracle.

    Would love to get this great tool working.

  7. Hi Jason
    First of all … simply but great program

    I installed Web Interface resource Manager 2.1, Good ! But ……

    1 – I had some problem with Configuration option. To resolve the problem I modified permision on DIRECTORY where
    is installed the program ( write rights for temp files).Not only the web.config file. Now is ok

    2 – When I try to generate Server metric report, and I chose Count metric, I riceive this error

    Server Error in ‘/WIRM21’ Application.
    Object reference not set to an instance of an object.
    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

    Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

    Source Error:

    Line 23: height=”420″
    Line 24: align=”middle”>
    Line 25: *strServerID=*strObjectID=*strMetricCounterID=*strInstanceID=*strStat=*strCounter=”>
    Line 26: *strServerID=*strObjectID=*strMetricCounterID=*strInstanceID=*strStat=strCounter=” quality=high bgcolor=#FFFFFF width=”565″ height=”420″ name=”FC2Column” align=”middle” type=”application/x-shockwave-flash” pluginspage=”http://www.macromedia.com/go/getflashplayer”>
    Line 27:

    Source File: c:\Inetpub\wwwroot\wirm21\serversMetrics.aspx Line: 25

    Stack Trace:

    [NullReferenceException: Object reference not set to an instance of an object.]
    ASP.serversmetrics_aspx.__RenderContent1(HtmlTextWriter __w, Control parameterContainer) in c:\Inetpub\wwwroot\wirm21\serversMetrics.aspx:25
    System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +2068235
    System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +24
    System.Web.UI.Control.Render(HtmlTextWriter writer) +7
    System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +25
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +121
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +22
    System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +130
    System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +24
    System.Web.UI.HtmlControls.HtmlForm.RenderChildren(HtmlTextWriter writer) +59
    System.Web.UI.HtmlControls.HtmlForm.Render(HtmlTextWriter output) +68
    System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +25
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +121
    System.Web.UI.HtmlControls.HtmlForm.RenderControl(HtmlTextWriter writer) +37
    System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +130
    System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +24
    System.Web.UI.Control.Render(HtmlTextWriter writer) +7
    System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +25
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +121
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +22
    System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +130
    System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +24
    System.Web.UI.Page.Render(HtmlTextWriter writer) +26
    System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +25
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +121
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +22
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1896

    Version Information: Microsoft .NET Framework Version:2.0.50727.42; ASP.NET Version:2.0.50727.210

    what I have mistaken ?

  8. I can access the Configuration page locally and remotly… and I can input the database information along with credentials, test the connection and it comes back sucessful but when I click on any of the left naviigation links I get the below error?:

    ***********************************************
    Server Error in ‘/Analytics’ Application.
    ——————————————————————————–

    Runtime Error
    Description: An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed remotely (for security reasons). It could, however, be viewed by browsers running on the local server machine.

    Details: To enable the details of this specific error message to be viewable on remote machines, please create a tag within a “web.config” configuration file located in the root directory of the current web application. This tag should then have its “mode” attribute set to “Off”.

    Notes: The current error page you are seeing can be replaced by a custom error page by modifying the “defaultRedirect” attribute of the application’s configuration tag to point to a custom error page URL.

    ***********************************************

  9. From the console of the WI server running your code I get this error:

    ***********************************************
    Server Error in ‘/Analytics’ Application.
    ——————————————————————————–

    An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: Named Pipes Provider, error: 40 – Could not open a connection to SQL Server)
    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

    Exception Details: System.Data.SqlClient.SqlException: An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: Named Pipes Provider, error: 40 – Could not open a connection to SQL Server)

    Source Error:

    Line 79: SqlConnection sqlConn = new SqlConnection(strConnectionString);
    Line 80:
    Line 81: sqlConn.Open();
    Line 82:
    Line 83: try

    Source File: h:\Inetpub\wwwroot\Website\App_Code\DataAccess.cs Line: 81

    Stack Trace:

    [SqlException (0x80131904): An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: Named Pipes Provider, error: 40 – Could not open a connection to SQL Server)]
    System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +735091
    System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +188
    System.Data.SqlClient.TdsParser.Connect(Boolean& useFailoverPartner, Boolean& failoverDemandDone, String host, String failoverPartner, String protocol, SqlInternalConnectionTds connHandler, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, SqlConnection owningObject, Boolean aliasLookup) +820
    System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance) +628
    System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance) +170
    System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection) +359
    System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options) +28
    System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject) +424
    System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject) +66
    System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) +496
    System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +82
    System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +105
    System.Data.SqlClient.SqlConnection.Open() +111
    DataAccess.getCalendarDataSQL(Single utcOffset, DateTime startDate, Int32 appID) in h:\Inetpub\wwwroot\Website\App_Code\DataAccess.cs:81
    DataAccess.getCalendarData(Single utcOffset, DateTime startDate, Int32 appID) in h:\Inetpub\wwwroot\Website\App_Code\DataAccess.cs:50
    _Default.loadDays() in h:\Inetpub\wwwroot\Website\calendar.aspx.cs:87
    _Default.Page_Load(Object sender, EventArgs e) in h:\Inetpub\wwwroot\Website\calendar.aspx.cs:45
    System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +15
    System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +34
    System.Web.UI.Control.OnLoad(EventArgs e) +99
    System.Web.UI.Control.LoadRecursive() +47
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1061

    ——————————————————————————–
    Version Information: Microsoft .NET Framework Version:2.0.50727.42; ASP.NET Version:2.0.50727.42
    ***********************************************

  10. Hi,
    Loved WIRM since 1.2. great work! would really like to be able to export more to Excel, eg all user IDs using particular browser versions, all IDs using a particular app. Also, am a little concerned about exposing the credentials of the account used to connect to SQL to all users of WIRM. Is there a way to hide this once config is done?

  11. Not yet. Same error

    Server Error in ‘/WIRM21’ Application.
    Object reference not set to an instance of an object.
    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

    Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

    Source Error:

    Line 23: height=”420″
    Line 24: align=”middle”>
    Line 25: *strServerID=*strObjectID=*strMetricCounterID=*strInstanceID=*strStat=*strCounter=”>
    Line 26: *strServerID=*strObjectID=*strMetricCounterID=*strInstanceID=*strStat=*strCounter=” quality=high bgcolor=#FFFFFF width=”565″ height=”420″ name=”FC2Column” align=”middle” type=”application/x-shockwave-flash” pluginspage=”http://www.macromedia.com/go/getflashplayer”>
    Line 27:

    Source File: c:\Inetpub\wwwroot\wirm21\serversMetrics.aspx Line: 25

    Stack Trace:

    [NullReferenceException: Object reference not set to an instance of an object.]
    ASP.serversmetrics_aspx.__RenderContent1(HtmlTextWriter __w, Control parameterContainer) in c:\Inetpub\wwwroot\wirm21\serversMetrics.aspx:25
    System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +2068235
    System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +24
    System.Web.UI.Control.Render(HtmlTextWriter writer) +7
    System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +25
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +121
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +22
    System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +130
    System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +24
    System.Web.UI.HtmlControls.HtmlForm.RenderChildren(HtmlTextWriter writer) +59
    System.Web.UI.HtmlControls.HtmlForm.Render(HtmlTextWriter output) +68
    System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +25
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +121
    System.Web.UI.HtmlControls.HtmlForm.RenderControl(HtmlTextWriter writer) +37
    System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +130
    System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +24
    System.Web.UI.Control.Render(HtmlTextWriter writer) +7
    System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +25
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +121
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +22
    System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +130
    System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +24
    System.Web.UI.Page.Render(HtmlTextWriter writer) +26
    System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +25
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +121
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +22
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1896

    Version Information: Microsoft .NET Framework Version:2.0.50727.42; ASP.NET Version:2.0.50727.210

  12. first, great tool…I have been using 1.2 and 2.0 and was keen to use the new version.

    Problem:same as reported by previous user:

    I can access the Configuration page locally and remotly… and I can input the database information along with credentials, test the connection and it comes back sucessful…BUT it never keeps the settings gives me errors every time I try to connect to it.

    HOW I GOT AROUND IT: I chose the manual method of editing the WEB.CONFIG file with my connection details, and it works a treat now!

    Michael – BRISBANE

  13. Yes, once I click “Save Configuration” I get back “Test Completed sucessfully!”. I do not see the modifications being saved to the web.config file. Can you please show me how to input the information below into the file manually?

    Language: English (US)
    UTC Offset Override: -8
    Database Server Type: microsoft SQL Server
    Database Server: T3BLACKEYE
    Database Name: CitrixRM
    *Use SQL Server Authentication
    User Name: RMMAN
    Password: RMMAN!!!

  14. I haven’t implemented encryption on the Web.Config file yet. What you can do is use Windows Integrated authentication. Just create an AD Group and put the users you want to grant access to in the group (or, just use Domain Users if you want to grant access to everyone). Then, in your SQL Server administration console, grant read access to the group. This way no credentials are stored in Web.Config.

  15. Thanks for your time Jason, I got it working with the help of one of our DBAs… (and yours). Named Pipes and TCP/IP were not enabled in the SQL Server Client Network Utility (Start -> Run -> cliconfg). Additionally I had a spelling error in the DB server name. Thank you again!

  16. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

    Exception Details: System.Data.OracleClient.OracleException: ORA-00933: SQL command not properly ended

    Source Error:

    An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

    Stack Trace:

    [OracleException (0x80131938): ORA-00933: SQL command not properly ended
    ]
    System.Data.OracleClient.OracleConnection.CheckError(OciErrorHandle errorHandle, Int32 rc) +204
    System.Data.OracleClient.OracleCommand.Execute(OciStatementHandle statementHandle, CommandBehavior behavior, Boolean needRowid, OciRowidDescriptor& rowidDescriptor, ArrayList& resultParameterOrdinals) +1024
    System.Data.OracleClient.OracleCommand.Execute(OciStatementHandle statementHandle, CommandBehavior behavior, ArrayList& resultParameterOrdinals) +25
    System.Data.OracleClient.OracleCommand.ExecuteReader(CommandBehavior behavior) +138
    System.Data.OracleClient.OracleCommand.ExecuteDbDataReader(CommandBehavior behavior) +4
    System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior) +7
    System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +141
    System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +137
    System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable) +83
    System.Web.UI.WebControls.SqlDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments) +1770
    System.Web.UI.WebControls.ListControl.OnDataBinding(EventArgs e) +92
    System.Web.UI.WebControls.ListControl.PerformSelect() +31
    System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +70
    System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound() +82
    System.Web.UI.WebControls.ListControl.OnPreRender(EventArgs e) +26
    System.Web.UI.Control.PreRenderRecursiveInternal() +77
    System.Web.UI.Control.PreRenderRecursiveInternal() +161
    System.Web.UI.Control.PreRenderRecursiveInternal() +161
    System.Web.UI.Control.PreRenderRecursiveInternal() +161
    System.Web.UI.Control.PreRenderRecursiveInternal() +161
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1360

    Thanks
    Luca

  17. While displaying Concurrent Usage under Applications (Pie chart) the 5th Application name is Blank even if you select 5/6/7… applications. Most Usage works fine…

  18. Other than replacing the code/page for the configuration, is there a simple way to make the configure option only available to admins?

  19. Jason,

    First of all, I want to thank you for the apparent commitment you have to your work and the quality. I continually rely upon your tools and use them daily. I’d like to request something from your next version if you think it’s worthy. I’d like to see concurrency for all servers collectively. This would show me how many users are logged in to the farm at any given time throughout the day. I guess I’m looking for a more global view rather than looking at one server at a time. I have hundreds of servers in my farms and management wants a report showing total concurrent usage on the hour.

    Many thanks for your consideration,
    Matt C.

  20. Thought I’d also mention/clarify that I know the unique sessions started exists, but I also need the concurrent active sessions.

  21. A blank application name means it was a RDP session (this is the way it is recorded in the LU_APPNAME table in the Summary Database). I will make it say RDP for the application name in the next release instead of displaying a blank application name.

  22. You’re not doing anything wrong. The extra characters you see is your session information (encrypted). The reason you see it in the URL is because the Web.Config file specifies that the session be “cookieless”. You can change this by changing the Web.Config file.

  23. Hello Jason,
    I want to thank you for this application.. It´s real cool..
    I don´t know if it´s a bug, but when I try under Server Metrics Report to change to the “count” object I get an error message:

    Stack Trace:

    [NullReferenceException: Object reference not set to an instance of an object.]
    ASP.serversmetrics_aspx.__RenderContent1(HtmlTextWriter __w, Control parameterContainer) +665
    System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +2065899
    System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +24
    System.Web.UI.Control.Render(HtmlTextWriter writer) +7
    System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +25
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +121
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +22
    System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +130
    System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +24
    System.Web.UI.HtmlControls.HtmlForm.RenderChildren(HtmlTextWriter writer) +59
    System.Web.UI.HtmlControls.HtmlForm.Render(HtmlTextWriter output) +68
    System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +25
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +121
    System.Web.UI.HtmlControls.HtmlForm.RenderControl(HtmlTextWriter writer) +37
    System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +130
    System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +24
    System.Web.UI.Control.Render(HtmlTextWriter writer) +7
    System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +25
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +121
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +22
    System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +130
    System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +24
    System.Web.UI.Page.Render(HtmlTextWriter writer) +26
    System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +25
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +121
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +22
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1896

    Can I change something to make this work??

    Greetings from Germany and go on like this,
    Carsten

  24. Hi,

    Thanks for the great work!

    I have version 2.1, Oracle DB.
    Everything works perfect except I encounter an error when choosing Applications -Concurent Usage:

    Stack Trace:

    [NullReferenceException: Object reference not set to an instance of an object.]
    applicationReport.getChartData() +83
    ASP.appsconcurrentusage_aspx.__RenderContent1(HtmlTextWriter __w, Control parameterContainer) +128
    System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +2068235
    System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +24
    System.Web.UI.Control.Render(HtmlTextWriter writer) +7
    System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +25
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +121
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +22
    System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +130
    System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +24
    System.Web.UI.HtmlControls.HtmlForm.RenderChildren(HtmlTextWriter writer) +59
    System.Web.UI.HtmlControls.HtmlForm.Render(HtmlTextWriter output) +68
    System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +25
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +121
    System.Web.UI.HtmlControls.HtmlForm.RenderControl(HtmlTextWriter writer) +37
    System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +130
    System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +24
    System.Web.UI.Control.Render(HtmlTextWriter writer) +7
    System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +25
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +121
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +22
    System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +130
    System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +24
    System.Web.UI.Page.Render(HtmlTextWriter writer) +26
    System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +25
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +121
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +22
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1896

    ——————————————————————————–
    Version Information: Microsoft .NET Framework Version:2.0.50727.42; ASP.NET Version:2.0.50727.210

    Any clue much appreciated,
    Mihai

  25. Hi,

    Details on previous error:

    Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

    Source Error:

    Line 62: Chart appChart = new Chart();
    Line 63:
    Line 64: DataView dv = ((DataTable)Session[“dtConcurrentApps”]).DefaultView;
    Line 65: dv.Sort = “mx DESC”;
    Line 66:

    Source File: d:\Citrix Usage Reports\appsConcurrentUsage.aspx.cs Line: 64

    Stack Trace:

    [NullReferenceException: Object reference not set to an instance of an object.]
    applicationReport.getChartData() in d:\Citrix Usage Reports\appsConcurrentUsage.aspx.cs:64
    ASP.appsconcurrentusage_aspx.__RenderContent1(HtmlTextWriter __w, Control parameterContainer) in d:\Citrix Usage Reports\appsConcurrentUsage.aspx:22
    System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +2068235
    System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +24
    System.Web.UI.Control.Render(HtmlTextWriter writer) +7
    System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +25
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +121
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +22
    System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +130
    System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +24
    System.Web.UI.HtmlControls.HtmlForm.RenderChildren(HtmlTextWriter writer) +59
    System.Web.UI.HtmlControls.HtmlForm.Render(HtmlTextWriter output) +68
    System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +25
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +121
    System.Web.UI.HtmlControls.HtmlForm.RenderControl(HtmlTextWriter writer) +37
    System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +130
    System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +24
    System.Web.UI.Control.Render(HtmlTextWriter writer) +7
    System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +25
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +121
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +22
    System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +130
    System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +24
    System.Web.UI.Page.Render(HtmlTextWriter writer) +26
    System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +25
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +121
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +22
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1896

    ——————————————————————————–
    Version Information: Microsoft .NET Framework Version:2.0.50727.42; ASP.NET Version:2.0.50727.210

    Thank you,
    Mihai

  26. Hello, we love this template.
    I have a question about the active time vs duration time. how are these related. sometimes the active times are longer than the duration times, or vice versa

  27. I Get the same result when there is a error in the sql from the conuse.dll,

    i have different Datetime setups on my webserver and database, so i had to change all your MSSQL code to convert data…

    example..

    convert(datetime, ‘{1}’, 101)

    but since i have no sourcecode for the conuse.dll i can’t correct the error there !!

  28. Excellent code, I love it. Where do I make my PayPal donation?

    I would love to be able to search for a certain process and see who has run it. I some users who are running things they should not be.

    Currently you would have to suspect who ran what and drill down on their Session Details.

  29. We have been using the query below to get app usage stats, but the numbers returned are different than what is generated by your report. Your sql query is in the dll so I can’t compare it to ours. Our numbers appear to be a bit higher than yours.

    Any chance you can post your sql query or check my query and see where I am going wrong.

    SELECT LU_APPNAME.APPNAME, count(LU_APPNAME.APPNAME) as CountApps
    FROM SDB_SESSION INNER JOIN LU_APPNAME ON SDB_SESSION.FK_APPNAMEID = LU_APPNAME.PK_APPNAMEID
    where (SDB_SESSION.SESSIONSTART >= ‘2/2/2007 12:00:00 AM’) AND (SDB_SESSION.SESSIONSTART 120000) AND APPNAME ”
    group by LU_APPNAME.APPNAME
    ORDER BY Count(lu_appname.APPNAME) DESC

    Thanks Richard

  30. What I did was to modify NTFS security on the Configure.aspx file itself, limiting access to our administrators only. This way user cannot open the configuration link to see the ID and PW used to access our SQL RM summary Database.
    I have also secured the URL to SSL, so that when anyone selects the Configuration link they are prompted for credentials.
    Great tool.. Unfortunately I am not able to get the Export to Excel working. When selecting save or open the following error pops up
    Internet Explorer cannot download …ionConcurrentReportExcel.aspx from .
    Internet explorer was not able to open this internet site. The requested site is either unavailable or cannot be found.
    Bruce.

  31. Hallo,
    First I want to say that it is a great tool, works almost perfect with oracle 9.2.0.8 database.
    But problem: Some of the server metrics show no data, for example context switches. Y-Axis say NaN as values. Other metrics show alway same value, Logical Disk Time for example alway exactly 39%.
    Problem of some statements ? Or what can I do ?
    Many thanks again for that tool 🙂

    Greetings
    Christian

  32. Citrix defines Duration (per the Resoure Manager Administrator’s Guide) as “End time – Start time in milliseconds”. Citrix also defines Active Time as “Sum of the active time for all completed processes”.

  33. Hi Jason,
    did you find out anything about that problem ? Would be nice if you can tell me, if perhaps only I have that problem.
    Regards
    Christian

  34. Using Windows authentication, I get the error when trying to save config:

    In order to modify configuration settings, the ASP.NET process account (either the local ASPNET or Network Service account, by default) must have write permission granted for the Web.config file in the web site directory.

    I have granted asp.net local account full permissions yet it still won’t save. anyone have an answer or can walk me through setting up web.config file manually?

    Much thanks! been a user since 1.1 and vagualy remember how to do a connection string.

  35. Truly like the look and feel. My question is about the concurrent usage. It appears the number reported is based on logon time. Is there a way to view Active sessions versus just the Start Time for each hour?
    Thanks, Jeff

  36. The concurrent usage report is based on the start and end time. For instance, if User1 started a session at 8:00 AM and User 2 started a session at 9:15 AM, their sessions would be concurrent as long as User1 did not log off before 9:15 AM. Also, you can view Active Sessions via the server metric report.

  37. Jason. From what I’ve seen this is awesome and I can’t wait to use it.

    Unfortunately when I try to configure a connection when connecting from my web server and using Windows NT Authentication, I get the following error:
    Test failed!
    Login failed for user ‘DOMAIN\SERVERNAME$’.

    It looks like its not passing my credentials properly. The Windows account I am logged in with has DBO access to the rmsummarydb. When I attempt to use a sql account that has datareader access to the database, I get the following:

    Cannot open database requested in login ‘rmsummarydb’. Login fails. Login failed for user ‘username’.

    any ideas?

  38. I’m in the same situation and got the same error with Excel Exports.
    Do you find a solution ?

    Thanks,

    Didier.

  39. Hello Jason,

    When is the new version due out… I would really love to install this in my environment, but I cant get it to work, due to our RM_database exists on SQL_servername\instance..

    so named pipes are not working ;(

    Names Pipes support is available in the next version ?? when is it due out??

  40. Hello,

    We have a 3 server farm and for some time now only 2 of 3 serves concurrent usage are being reported. What could be the cause of this?

  41. Jason,
    Thanks for providing such a great tool. My question here is can i see usage based on users accessing Citrix from our Internal and External Networks.I want to separately see the count for users coming internally and externally. Also i am new to this tool so can you suggest me how can i look into the version of the tool which is set up in our environment so that i can check and update this to the latest version.
    Thanks in advance.

Leave a Reply

Your email address will not be published. Required fields are marked *