public interface CommonCompletedContext
MatsInitiateInterceptor.InitiateCompletedContext
and MatsStageInterceptor.StageCompletedContext
.Modifier and Type | Interface and Description |
---|---|
static interface |
CommonCompletedContext.MatsMeasurement |
static interface |
CommonCompletedContext.MatsTimingMeasurement |
Modifier and Type | Method and Description |
---|---|
long |
getDbCommitNanos() |
java.util.List<CommonCompletedContext.MatsMeasurement> |
getMeasurements() |
long |
getMessageSystemCommitNanos() |
java.util.List<MatsOutgoingMessage.MatsSentOutgoingMessage> |
getOutgoingMessages() |
long |
getSumEnvelopeSerializationAndCompressionNanos() |
long |
getSumMessageSystemProductionAndSendNanos() |
java.util.Optional<java.lang.Throwable> |
getThrowable() |
java.util.List<CommonCompletedContext.MatsTimingMeasurement> |
getTimingMeasurements() |
long |
getTotalExecutionNanos() |
long |
getUserLambdaNanos() |
long getTotalExecutionNanos()
getUserLambdaNanos()
+ getSumEnvelopeSerializationAndCompressionNanos()
+
getDbCommitNanos()
+ getSumMessageSystemProductionAndSendNanos()
+
getMessageSystemCommitNanos()
, PLUS, for Stages, the message reception timings
MatsStageInterceptor.StageCommonContext.getTotalPreprocessAndDeserializeNanos()
(which again are decomposed).long getUserLambdaNanos()
processContext.request()
, which in the current JMS implementation of Mats involves creating the envelope
including serializing the state and message DTO, will thus also count toward this time (these timings are
separately available in MatsOutgoingMessage.MatsSentOutgoingMessage.getEnvelopeProduceNanos()
). If the user lambda
includes database access (e.g. a SELECT and/or UPDATE), this timing should probably be dominated by this.
If there are MatsInitiateInterceptor.MatsInitiateInterceptUserLambda
s involved, the interceptor(s) might have added some
overhead both by the interception, and by potentially having wrapped the MatsInitiator.MatsInitiate
instance.java.util.List<CommonCompletedContext.MatsMeasurement> getMeasurements()
java.util.List<CommonCompletedContext.MatsTimingMeasurement> getTimingMeasurements()
long getSumEnvelopeSerializationAndCompressionNanos()
outgoing
messages'
MatsOutgoingMessage.MatsSentOutgoingMessage.getEnvelopeSerializationNanos()
plus
MatsOutgoingMessage.MatsSentOutgoingMessage.getEnvelopeCompressionNanos()
.long getDbCommitNanos()
0
if this MatsFactory
is
not configured with SQL transaction management, and will hopefully be very low if "SQL transaction
elision" is in effect (i.e. that the initiate didn't perform any SQL), but never 0
- that
is, you may use the 0 to check whether SQL transaction management was in effect or not.long getSumMessageSystemProductionAndSendNanos()
outgoing
messages'
MatsOutgoingMessage.MatsSentOutgoingMessage.getMessageSystemProduceAndSendNanos()
.MatsOutgoingMessage.MatsSentOutgoingMessage.getMessageSystemProduceAndSendNanos()
long getMessageSystemCommitNanos()
0
.java.util.Optional<java.lang.Throwable> getThrowable()
java.util.List<MatsOutgoingMessage.MatsSentOutgoingMessage> getOutgoingMessages()