cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Anka.Thanneeru
AppDynamics Team

Problem:

 

The user is unable to view queries and query wait states information in the Controller UI, even though the information has been captured and sent to the Controller by the Database Agent.

 

Database logs show the following error messages:


Example 1:

[Event-Uploader-Scheduler-1] 31 May 2017 16:56:09,956  WARN DBMeasurementUploader - Fail to upload Query Stats Measurements:
com.singularity.ee.rest.ResponseReadException: Error in controller in processing binary request Write Query Stats  - null 
at com.singularity.ee.rest.controller.request.ABinaryControllerRequest.<init>(ABinaryControllerRequest.java:65)
at com.singularity.ee.rest.controller.request.dbmon.WriteQueryStatsRequest.<init (WriteQueryStatsRequest.java:30)
at com.singularity.ee.agent.dbagent.task.reporter.DBMeasurementUploader.uploadrQueryStats(DBMeasurementUploader.java:119)


Example 2:

[Event-Uploader-Scheduler-2] 13 Jul 2017 15:18:09,356 WARN DBMeasurementUploader - Fail to upload Wait Time Measurements:
com.singularity.ee.rest.ResponseReadException: Error in controller in processing binary request Wait Time Measurement - null
at com.singularity.ee.rest.controller.request.ABinaryControllerRequest.<init>(ABinaryControllerRequest.java:65)
at com.singularity.ee.rest.controller.request.dbmon.WaitTimeMeasurementCollectorRequest.<init>(WaitTimeMeasurementCollectorRequest.java:34) 


The corresponding Controller server.log file may show the following messages:

[#|2017-07-13T14:46:01.397+0500|WARNING|glassfish4.1|com.appdynamics.dbmon.core.writer.MeasurementWriter|_ThreadID=368;_ThreadName=http-listener-1(5);_TimeMillis=1499939161397;_LevelValue=900;|Failed to persist 'dbmon-query-stat' measurements for account'customer1_39714636-eec0-4331-932d-1394d05fabd3'. Marking account for reregistration.|#]

[#|2017-07-13T14:46:01.397+0500|SEVERE|glassfish4.1|com.singularity.ee.controller.beans.ExceptionHandlingInterceptor|_ThreadID=368;_ThreadName=http-listener-1(5);_TimeMillis=1499939161397;_LevelValue=1000;Encountered runtime exception RestException(statusCode=406, code=Expired.EventType, errorMessage=Eventtype [dbmon-query-stat] for account [customer1_39714636-eec0-4331-932d-1394d05fabd3] expired on [2017-06-30T07:00:00.000Z], developerMessage=Event type[dbmon-query-stat] for account[customer1_39714636-eec0-4331-932d-1394d05fabd3] expired on[2017-06-30T07:00:00.000Z]) at com.appdynamics.analytics.shared.rest.exceptions.RestExceptionFactory.makeException(RestExceptionFactory.java:47)
[#|2017-07-13T14:46:01.365+0500|WARNING|glassfish 4.1|com.appdynamics.dbmon.core.writer.MeasurementWriter|_ThreadID=369;_ThreadName=http-listener-1(6);_TimeMillis=1499939161365;_LevelValue=900;|Failed to persist 'dbmon-wait-time' measurements for account
'customer1_39714636-eec0-4331-932d-1394d05fabd3'. Marking account forreregistration.|#]

[#|2017-07-13T14:46:01.366+0500|SEVERE|glassfish4.1|com.singularity.ee.controller.beans.ExceptionHandlingInterceptor|_ThreadID=369;_ThreadName=http-listener-1(6);_TimeMillis=1499939161366;_LevelValue=1000;|Encountered runtime exception
RestException(statusCode=406, code=Expired.EventType, errorMessage=Eventtype [dbmon-wait-time] for account
[customer1_39714636-eec0-4331-932d-1394d05fabd3] expired on[2017-06-30T07:00:00.000Z], developerMessage=Event type[dbmon-wait-time] for account[customer1_39714636-eec0-4331-932d-1394d05fabd3] expired on[2017-06-30T07:00:00.000Z]) at com.appdynamics.analytics.shared.rest .exceptions.RestExceptionFactory.makeException(RestExceptionFactory.java:47)

 

Solution:

 

On-Premise Controllers:

 

  1. Execute the attached file (expiryfix.sh) by providing the following details:
    • Controller Key: This value is located in the controller admin.jsp page under the Controller Settings tab, associated with the key: appdynamics.on.premise.event.service.key
    • Global Account Name: This value is located in the admin.jsp page under the Accounts tab. Search and select the account to find the Global Account Name value for that account.

    •  

      Expiration Date: To find this value, execute the following SQL query on the Controller database, located under lt;controller-install-dir>/bin$ ./controller.sh login-db.

       

      select expiration_date from account where name='<account name>'; 

       

      Note: Ideally the account name is "customer1" unless using a multi-tenant Controller.

       

       

    • The returned value will be a timestamp in milliseconds. Convert this value to Zulu Time Format. (For example, 2017-07-15T07:00:00.000Z) 

    • The URL http://localhost:9080 in the attached script should be replaced by the actual Events Service host name & port number.

       

SaaS Controllers:

 

Contact AppDynamics support.

Comments
Anka.Thanneeru
AppDynamics Team

To execute the script in Windows Environment:

 

1. Install CYGWIN (https://cygwin.com/install.html)
2. Run expiryfix.sh

 

The above will not required to modify the script if the controller installed in windows.

 

Regards,

Anka

Version history
Last update:
‎07-18-2017 01:48 PM
Updated by:
Contributors