/** * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.camel.api.management.mbean; import javax.management.openmbean.TabularData; import org.apache.camel.api.management.ManagedAttribute; import org.apache.camel.api.management.ManagedOperation; public interface ManagedAsyncProcessorAwaitManagerMBean extends ManagedServiceMBean { @ManagedAttribute(description = "Whether to interrupt any blocking threads during stopping.") boolean isInterruptThreadsWhileStopping(); @ManagedAttribute(description = "Whether to interrupt any blocking threads during stopping.") void setInterruptThreadsWhileStopping(boolean interruptThreadsWhileStopping); @ManagedAttribute(description = "Number of threads that are blocked waiting for other threads to trigger the callback when they are done processing the exchange") int getSize(); @ManagedOperation(description = "Lists all the exchanges which are currently inflight, having a blocked thread awaiting for other threads to trigger the callback when they are done") TabularData browse(); @ManagedOperation(description = "To interrupt an exchange which may seem as stuck, to force the exchange to continue, allowing any blocking thread to be released.") void interrupt(String exchangeId); @ManagedAttribute(description = "Number of threads that has been blocked") long getThreadsBlocked(); @ManagedAttribute(description = "Number of threads that has been interrupted") long getThreadsInterrupted(); @ManagedAttribute(description = "Total wait time in msec.") long getTotalDuration(); @ManagedAttribute(description = "The minimum wait time in msec.") long getMinDuration(); @ManagedAttribute(description = "The maximum wait time in msec.") long getMaxDuration(); @ManagedAttribute(description = "The average wait time in msec.") long getMeanDuration(); @ManagedOperation(description = "Resets the statistics") void resetStatistics(); @ManagedAttribute(description = "Utilization statistics enabled") boolean isStatisticsEnabled(); @ManagedAttribute(description = "Utilization statistics enabled") void setStatisticsEnabled(boolean statisticsEnabled); }