[PATCH] JMC-4467 : Excessive debug logging of VM options when using Flight recorder
Miro Wengner
miro.wengner at gmail.com
Fri Nov 16 09:06:54 UTC 2018
Hi Guru,
here is the patch.
patch: JMC-4467
diff -r 997060a24c42 application/org.openjdk.jmc.rjmx.services.jfr/src/main/java/org/openjdk/jmc/rjmx/services/jfr/internal/FlightRecorderServiceV1.java
--- a/application/org.openjdk.jmc.rjmx.services.jfr/src/main/java/org/openjdk/jmc/rjmx/services/jfr/internal/FlightRecorderServiceV1.java Thu Nov 15 16:50:36 2018 +0100
+++ b/application/org.openjdk.jmc.rjmx.services.jfr/src/main/java/org/openjdk/jmc/rjmx/services/jfr/internal/FlightRecorderServiceV1.java Thu Nov 15 22:04:39 2018 +0100
@@ -104,6 +104,9 @@
private List<EventTypeMetadataV1> eventTypeMetas;
private Map<Integer, EventTypeMetadataV1> eventTypeMetaByInt;
private Map<EventTypeIDV1, EventTypeMetadataV1> eventTypeInfoById;
+ // Optimization to do less JMX invocations. If, against all odds, it gets disabled,
+ //after having been enabled, we get an exception, and will handle things there.
+ private boolean wasEnabled;
private final ICommercialFeaturesService cfs;
private final IMBeanHelperService mbhs;
private final String serverId;
@@ -444,7 +447,14 @@
@Override
public boolean isEnabled() {
- return cfs.isCommercialFeaturesEnabled();
+ if(!wasEnabled) {
+ final boolean isEnabled = cfs.isCommercialFeaturesEnabled();
+ if(isEnabled) {
+ wasEnabled = isEnabled;
+ }
+ return isEnabled;
+ }
+ return wasEnabled;
}
@Override
diff -r 997060a24c42 application/org.openjdk.jmc.rjmx.services.jfr/src/main/java/org/openjdk/jmc/rjmx/services/jfr/internal/FlightRecorderServiceV2.java
--- a/application/org.openjdk.jmc.rjmx.services.jfr/src/main/java/org/openjdk/jmc/rjmx/services/jfr/internal/FlightRecorderServiceV2.java Thu Nov 15 16:50:36 2018 +0100
+++ b/application/org.openjdk.jmc.rjmx.services.jfr/src/main/java/org/openjdk/jmc/rjmx/services/jfr/internal/FlightRecorderServiceV2.java Thu Nov 15 22:04:39 2018 +0100
@@ -90,6 +90,9 @@
private List<EventTypeMetadataV2> eventTypeMetas;
private Map<EventTypeIDV2, EventTypeMetadataV2> eventTypeInfoById;
private Map<org.openjdk.jmc.flightrecorder.configuration.events.EventOptionID, OptionInfo<?>> optionInfoById;
+ // Optimization to do less JMX invocations. If, against all odds, it gets disabled,
+ // after having been enabled, we get an exception, and will handle things there.
+ private boolean wasEnabled;
private final ICommercialFeaturesService cfs;
private final IMBeanHelperService mbhs;
private final String serverId;
@@ -477,9 +480,14 @@
@Override
public boolean isEnabled() {
- return isFlightRecorderCommercial()
- ? cfs.isCommercialFeaturesEnabled()
- : isAvailable(connection);
+ if(!wasEnabled) {
+ final boolean isEnabled = isFlightRecorderCommercial() ? cfs.isCommercialFeaturesEnabled() : isAvailable(connection);
+ if(isEnabled) {
+ wasEnabled = isEnabled;
+ }
+ return isEnabled;
+ }
+ return wasEnabled;
}
@Override
> On Nov 16, 2018, at 4:32 AM, Guru <guru.hb at oracle.com> wrote:
>
> Hi Miro,
>
> <Excluded jmc-de mailing list>
>
> I didn’t see the patch in the email, Please paste the same in .diff or paste the .diff content over email (if the diff is small enough).
>
> Thanks,
> Guru
>> On 16-Nov-2018, at 4:14 AM, Miro Wengner <miro.wengner at gmail.com> wrote:
>>
>> Hi There,
>> here is a patch to the bug JMC-4467.
>> As Marcus has helped me, I think there should be another reviewer.
>>
>> Thank you Marcus,
>> Kind Regards,
>> Miro
>>
>>
>
More information about the jmc-dev
mailing list