public class PauseDetails
extends java.lang.Object
A PauseDetails object represents a pause event impacting all the threads in a running Java virtual machine and includes a timestamp specifying the time since the launch of the Java virtual machine process, the duration of the pause, and the reason for the pause (plus additional, optional, very detailed information).
Instances of the PauseDetails class are constructed when a pause occurs. A timestamp representing the wall clock time when the pause occurred, the duration of the pause and the reason for the pause are collected. The timestamp is the number of seconds since the launch of the Java virtual machine. The duration of the pause is in units of seconds. The reason field is a text string describing the reason for the pause. The content of the String that represents the reason for the pause is specific to the implementation of the Java virtual machine.
PauseDetails also has additional, optional, details of the time required for individual steps executed during the pause. The times for the individual steps make it easy to identify potential areas for reducing the total pause duration. Generally, the sum of the additional detailed timing information’s times should add up to the total pause duration.
A PauseDetails object has twelve attributes, supplying the values for three is mandatory:
| elapsedTimeSinceJVMStartSec | Wall clock time when the pause occurred in units of elapsed seconds since the start of the JVM. | 
| durationSec | Total pause duration in seconds. | 
| reason | Reason for the pause. | 
| Time Required for Individual Steps | |
| initialThreadsLockAcquireTimeSec | Time required to obtain the threads lock at the beginning of this pause’s processing. | 
| collectorSuspendTimeSec | Time required to suspend any running collector as we prepare to suspend the process’s threads. | 
| threadsNotifyTimeSec | Time required to notify all of the running threads to suspend themselves. | 
| timeForThreadsToSuspendSec | Time spent waiting for all of the threads to suspend. The time returned
     from timeForThreadsToSuspendSecis also commonly known as Time To Safepoint. | 
| collectorSecondSuspendTimeSec | If the first suspend of any collection in progress done in collectorSuspendTimeSecdid not succeed then we need to try
     again to suspend the collection or collections in progress.collectorSecondSuspendTimeSecis the amount of time required 
     to do the suspension. | 
| operationTimeSec | Time required to perform the operation for which suspension of all the threads is required. The interval reported begins when all of the threads have been suspended and ends when the operation has been completed. | 
| postOperationCleanupTimeSec | Time required for cleanup activities just prior to resumption of thread execution. | 
| timeToWakeupThreadsSec | Time required for all of the threads to resume execution after the notification of each thread to wakeup and resume execution. | 
| pauseId | Unique numeric value that identifies this pause. | 
| Constructor and Description | 
|---|
| PauseDetails(double elapsedTimeSinceJVMStartSec,
            double durationSec,
            java.lang.String reason,
            double initialThreadsLockAcquireTimeSec,
            double collectorSuspendTimeSec,
            double threadsNotifyTimeSec,
            double timeForThreadsToSuspendSec,
            double collectorSecondSuspendTimeSec,
            double operationTimeSec,
            double postOperationCleanupTimeSec,
            double timeToWakeupThreadsSec,
            long pauseId)
 Constructs a PauseDetails object using a String reason. | 
| Modifier and Type | Method and Description | 
|---|---|
| static PauseDetails | from(javax.management.openmbean.CompositeData cd)
 Returns a PauseDetails object constructed with the
 values in the CompositeData parameter. | 
| double | getCollectorSecondSuspendTimeSec()Time required to redo the suspend of a collection in progress if the first
 suspend (see  getCollectorSuspendTimeSec) did not result in a suspension
 (seldom required to do this a second time). | 
| double | getCollectorSuspendTimeSec()Time required to suspend any collector running as we prepare for
 the pause. | 
| double | getDurationSec()Total duration of the pause. | 
| double | getElapsedTimeSinceJVMStartSec()Wall clock time when the pause started. | 
| double | getInitialThreadsLockAcquireTimeSec()Time required to obtain the threads lock at the beginning of this
 pause’s processing. | 
| double | getOperationTimeSec()Time required to perform the operation for which the pause was required. | 
| long | getPauseId()Numeric identifier of this pause. | 
| double | getPostOperationCleanupTimeSec()Time required for cleanup activities just prior to resumption of
 thread execution. | 
| java.lang.String | getReason()Reason for the pause. | 
| double | getThreadsNotifyTimeSec()Time required to notify all of the running threads to suspend themselves. | 
| double | getTimeForThreadsToSuspendSec()Time spent waiting for all of the threads to suspend (time to safepoint). | 
| double | getTimeToWakeupThreadsSec()Time for all of the threads to resume execution after the notification to wakeup. | 
| java.lang.String | toString()Returns a String object with the information describing this pause time. | 
public PauseDetails(double elapsedTimeSinceJVMStartSec,
            double durationSec,
            java.lang.String reason,
            double initialThreadsLockAcquireTimeSec,
            double collectorSuspendTimeSec,
            double threadsNotifyTimeSec,
            double timeForThreadsToSuspendSec,
            double collectorSecondSuspendTimeSec,
            double operationTimeSec,
            double postOperationCleanupTimeSec,
            double timeToWakeupThreadsSec,
            long pauseId)
Constructs a PauseDetails object using a String reason.
elapsedTimeSinceJVMStartSec - the time when the pause started (elapsed seconds
          since Java virtual machine process launch)durationSec - the total pause duration (seconds)reason - the reason for the pauseinitialThreadsLockAcquireTimeSec - time required to obtain the threads lock at the beginning of this pause’s processingcollectorSuspendTimeSec - time required to suspend any collector running as we prepare for the pausethreadsNotifyTimeSec - time required to notify all of the running threads to suspend themselvestimeForThreadsToSuspendSec - time spent waiting for all of the threads to suspend (time to safepoint)collectorSecondSuspendTimeSec - time required to redo the suspend of a collection in progress if the previous suspend did not work (seldom required)operationTimeSec - time required to perform the operation for which the pause is requiredpostOperationCleanupTimeSec - time required for cleanup activities just prior to resumption of thread executiontimeToWakeupThreadsSec - time that represents the longest interval required for a thread to wakeup after notificationpauseId - numeric identifier of this pausejava.lang.IllegalArgumentException - if
 public static PauseDetails from(javax.management.openmbean.CompositeData cd)
Returns a PauseDetails object constructed with the values in the CompositeData parameter.
The CompositeData input parameter must contain the following values:
Attribute Name Type elapsedTimeSinceJVMStartSec java.lang.Double durationSec java.lang.Double reason java.lang.String initialThreadsLockAcquireTimeSec java.lang.Double collectorSuspendTimeSec java.lang.Double threadsNotifyTimeSec java.lang.Double timeForThreadsToSuspendSec java.lang.Double collectorSecondSuspendTimeSec java.lang.Double operationTimeSec java.lang.Double postOperationCleanupTimeSec java.lang.Double timeToWakeupThreadsSec java.lang.Double pauseId java.lang.Long 
cd - The CompositeData object from which to retrieve the required PauseDetails values.java.lang.IllegalArgumentException - if cd does not contain
   PauseDetails values with the attributes described
   above.public double getCollectorSecondSuspendTimeSec()
getCollectorSuspendTimeSec) did not result in a suspension
 (seldom required to do this a second time).public double getCollectorSuspendTimeSec()
public double getDurationSec()
public double getElapsedTimeSinceJVMStartSec()
public double getInitialThreadsLockAcquireTimeSec()
public double getOperationTimeSec()
public long getPauseId()
public double getPostOperationCleanupTimeSec()
public java.lang.String getReason()
String describing the reason for the pause.public double getThreadsNotifyTimeSec()
public double getTimeForThreadsToSuspendSec()
public double getTimeToWakeupThreadsSec()
public java.lang.String toString()
toString in class java.lang.ObjectPauseDetails object. Submit a bug or feature request
 Copyright © 2015-2017, Azul Systems, Inc. All rights reserved. 
Azul Systems and Zing are registered trademarks of Azul Systems, Inc.