001: /*
002: * BEGIN_HEADER - DO NOT EDIT
003: *
004: * The contents of this file are subject to the terms
005: * of the Common Development and Distribution License
006: * (the "License"). You may not use this file except
007: * in compliance with the License.
008: *
009: * You can obtain a copy of the license at
010: * https://open-esb.dev.java.net/public/CDDLv1.0.html.
011: * See the License for the specific language governing
012: * permissions and limitations under the License.
013: *
014: * When distributing Covered Code, include this CDDL
015: * HEADER in each file and include the License file at
016: * https://open-esb.dev.java.net/public/CDDLv1.0.html.
017: * If applicable add the following below this CDDL HEADER,
018: * with the fields enclosed by brackets "[]" replaced with
019: * your own identifying information: Portions Copyright
020: * [year] [name of copyright owner]
021: */
022:
023: /*
024: * @(#)PerformanceMeasurementService.java
025: * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved.
026: *
027: * END_HEADER - DO NOT EDIT
028: */
029: package com.sun.esb.management.api.performance;
030:
031: import javax.management.openmbean.TabularData;
032:
033: import com.sun.esb.management.common.ManagementRemoteException;
034:
035: /**
036: * Defines operations to measure performance statistics. e.g., time taken to
037: * normalize/denormalize, encode/decode, wire-to-NMR on the endpoints, etc.
038: *
039: * @author graj
040: */
041: public interface PerformanceMeasurementService {
042: /**
043: * Resets the performance measurements on the endpoint.
044: * @param componentName
045: * @param endpoint
046: * @param targetName
047: * @param targetInstanceName
048: * @throws ManagementRemoteException
049: */
050: public void clearPeformaceInstrumentationMeasurement(
051: String componentName, String endpoint, String targetName,
052: String targetInstanceName) throws ManagementRemoteException;
053:
054: /**
055: * Retrieves the performance measurement enabling flag.
056: * @param componentName
057: * @param targetName
058: * @param targetInstanceName
059: * @return true if measurement enabled, false if not
060: * @throws ManagementRemoteException
061: */
062: public boolean getPerformanceInstrumentationEnabled(
063: String componentName, String targetName,
064: String targetInstanceName) throws ManagementRemoteException;
065:
066: /**
067: * Retrieves the performance measurement data for the specified endpoint.
068: * @param componentName
069: * @param endpoint
070: * @param targetName
071: * @param targetInstanceName
072: * @return XML String representing PerformanceData Map
073: * @throws ManagementRemoteException
074: */
075: public String getPerformanceInstrumentationMeasurement(
076: String componentName, String endpoint, String targetName,
077: String targetInstanceName) throws ManagementRemoteException;
078:
079: /**
080: * Retrieves the performance statistics categories. Each item in the array is the key to the composite performance data, which also indicates the type (e.g. normalization) of measurement.
081: * @param componentName
082: * @param targetName
083: * @param targetInstanceName
084: * @return array of performance measurement categories
085: * @throws ManagementRemoteException
086: */
087: public String[] getPerformanceMeasurementCategories(
088: String componentName, String targetName,
089: String targetInstanceName) throws ManagementRemoteException;
090:
091: /**
092: * Sets the performance measurement enabling flag.
093: * @param componentName
094: * @param flag
095: * @param targetName
096: * @param targetInstanceName
097: * @throws ManagementRemoteException
098: */
099: public void setPerformanceInstrumentationEnabled(
100: String componentName, boolean flag, String targetName,
101: String targetInstanceName) throws ManagementRemoteException;
102:
103: /**
104: * This method is used to provide JBIFramework statistics in the
105: * given target.
106: * @param target target name.
107: * @return TabularData table of framework statistics in the given target.
108: *
109: * If the target is a standalone instance the table will have one entry.
110: * If the target is a cluster the table will have an entry for each instance.
111: *
112: * For more information about the type of the entries in table please refer
113: * to <code>JBIStatisticsMBean</code>
114: */
115: public TabularData getFrameworkStatisticsAsTabularData(
116: String targetName) throws ManagementRemoteException;
117:
118: /**
119: * This method is used to provide JBIFramework statistics in the
120: * given target.
121: * @param target target name.
122: * @return String table of framework statistics in the given target.
123: *
124: * If the target is a standalone instance the table will have one entry.
125: * If the target is a cluster the table will have an entry for each instance.
126: *
127: * For more information about the type of the entries in table please refer
128: * to <code>JBIStatisticsMBean</code>
129: */
130: public String getFrameworkStatistics(String targetName)
131: throws ManagementRemoteException;
132:
133: /**
134: * This method is used to provide statistics for the given component
135: * in the given target
136: * @param targetName target name
137: * @param componentName component name
138: * @return String table of component statistics
139: *
140: * If the target is a standalone instance the table will have one entry.
141: * If the target is a cluster the table will have an entry for each instance.
142: *
143: * For more information about the type of the entries in table please refer
144: * to <code>JBIStatisticsMBean</code>
145: *
146: */
147: public String getComponentStatistics(String componentName,
148: String targetName) throws ManagementRemoteException;
149:
150: /**
151: * This method is used to provide statistics for the given component
152: * in the given target
153: * @param targetName target name
154: * @param componentName component name
155: * @return TabularData table of component statistics
156: *
157: * If the target is a standalone instance the table will have one entry.
158: * If the target is a cluster the table will have an entry for each instance.
159: *
160: * For more information about the type of the entries in table please refer
161: * to <code>JBIStatisticsMBean</code>
162: *
163: */
164: public TabularData getComponentStatisticsAsTabularData(
165: String componentName, String targetName)
166: throws ManagementRemoteException;
167:
168: /**
169: * This method is used to provide statistic information about the given
170: * endpoint in the given target
171: * @param targetName target name
172: * @param endpointName the endpoint Name
173: * @return TabularData table of endpoint statistics
174: *
175: * If the target is a standalone instance the table will have one entry.
176: * If the target is a cluster the table will have an entry for each instance.
177: *
178: * For more information about the type of the entries in table please refer
179: * to <code>JBIStatisticsMBean</code>
180: */
181: public TabularData getEndpointStatisticsAsTabularData(
182: String endpointName, String targetName)
183: throws ManagementRemoteException;
184:
185: /**
186: * This method is used to provide statistic information about the given
187: * endpoint in the given target
188: * @param targetName target name
189: * @param endpointName the endpoint Name
190: * @return String table of endpoint statistics
191: *
192: * If the target is a standalone instance the table will have one entry.
193: * If the target is a cluster the table will have an entry for each instance.
194: *
195: * For more information about the type of the entries in table please refer
196: * to <code>JBIStatisticsMBean</code>
197: */
198: public String getEndpointStatistics(String endpointName,
199: String targetName) throws ManagementRemoteException;
200:
201: /**
202: * This method is used to provide statistics about the message service in the
203: * given target.
204: * @param target target name.
205: * @return TabularData table of NMR statistics in the given target.
206: *
207: * If the target is a standalone instance the table will have one entry.
208: * If the target is a cluster the table will have an entry for each instance.
209: *
210: * For more information about the type of the entries in table please refer
211: * to <code>JBIStatisticsMBean</code>
212: */
213: public TabularData getNMRStatisticsAsTabularData(String targetName)
214: throws ManagementRemoteException;
215:
216: /**
217: * This method is used to provide statistics about the message service in the
218: * given target.
219: * @param target target name.
220: * @return String table of NMR statistics in the given target.
221: *
222: * If the target is a standalone instance the table will have one entry.
223: * If the target is a cluster the table will have an entry for each instance.
224: *
225: * For more information about the type of the entries in table please refer
226: * to <code>JBIStatisticsMBean</code>
227: */
228: public String getNMRStatistics(String targetName)
229: throws ManagementRemoteException;
230:
231: /**
232: * This method is used to provide statistics about a Service Assembly
233: * in the given target.
234: * @param target target name.
235: * @param assemblyName the service assembly name.
236: * @return TabularData table of NMR statistics in the given target.
237: *
238: * If the target is a standalone instance the table will have one entry.
239: * If the target is a cluster the table will have an entry for each instance.
240: *
241: * For more information about the type of the entries in table please refer
242: * to <code>JBIStatisticsMBean</code>
243: */
244: public TabularData getServiceAssemblyStatisticsAsTabularData(
245: String assemblyName, String targetName)
246: throws ManagementRemoteException;
247:
248: /**
249: * This method is used to provide statistics about a Service Assembly
250: * in the given target.
251: * @param target target name.
252: * @param assemblyName the service assembly name.
253: * @return String table of NMR statistics in the given target.
254: *
255: * If the target is a standalone instance the table will have one entry.
256: * If the target is a cluster the table will have an entry for each instance.
257: *
258: * For more information about the type of the entries in table please refer
259: * to <code>JBIStatisticsMBean</code>
260: */
261: public String getServiceAssemblyStatistics(String assemblyName,
262: String targetName) throws ManagementRemoteException;
263:
264: /**
265: * This method is used to provide a list of consuming endpoints for a component.
266: * @param componentName component name
267: * @param target target name.
268: * @return TabularData list of consuming endpoints
269: *
270: * If the target is a standalone instance the table will have one entry.
271: * If the target is a cluster the table will have an entry for each instance.
272: *
273: * Each entry in this tabular data is of the following composite type
274: *
275: * String - "InstanceName",
276: * String[] - "Endpoints",
277: */
278: public TabularData getConsumingEndpointsForComponentAsTabularData(
279: String componentName, String targetName)
280: throws ManagementRemoteException;
281:
282: /**
283: * This method is used to provide a list of provisioning endpoints for a component.
284: * @param componentName component name
285: * @param target target name.
286: * @return TabularData list of provisioning endpoints
287: *
288: * If the target is a standalone instance the table will have one entry.
289: * If the target is a cluster the table will have an entry for each instance.
290: *
291: * Each entry in this tabular data is of the following composite type
292: *
293: * String - "InstanceName",
294: * String[] - "Endpoints",
295: */
296: public TabularData getProvidingEndpointsForComponentAsTabularData(
297: String componentName, String targetName)
298: throws ManagementRemoteException;
299:
300: /**
301: * This method is used to enable monitoring of timing
302: * information about message exchanges
303: * @param targetName the target name
304: */
305: public void enableMessageExchangeMonitoring(String targetName)
306: throws ManagementRemoteException;
307:
308: /**
309: * This method is used to disable monitoring of timing
310: * information about message exchanges
311: * @param targetName the target name
312: */
313: public void disableMessageExchangeMonitoring(String targetName)
314: throws ManagementRemoteException;
315: }
|