001: /*
002: * Copyright (C) The MX4J Contributors.
003: * All rights reserved.
004: *
005: * This software is distributed under the terms of the MX4J License version 1.0.
006: * See the terms of the MX4J License in the documentation provided with this software.
007: */
008:
009: package mx4j.remote;
010:
011: /**
012: * @version $Revision: 1.15 $
013: */
014: public interface MX4JRemoteConstants {
015: /**
016: * A vertical bar '|' as mandated by the spec
017: */
018: public static final String PROVIDER_PACKAGES_SEPARATOR = "|";
019: /**
020: * MX4J provider packages list for JMXConnector and JMXConnectorServer factories
021: */
022: public static final String PROVIDER_PACKAGES = "mx4j.remote.provider"
023: + PROVIDER_PACKAGES_SEPARATOR
024: + "mx4j.tools.remote.provider";
025: /**
026: * The string 'ClientProvider' as mandated by the spec
027: */
028: public static final String CLIENT_PROVIDER_CLASS = "ClientProvider";
029: /**
030: * The string 'ServerProvider' as mandated by the spec
031: */
032: public static final String SERVER_PROVIDER_CLASS = "ServerProvider";
033:
034: /**
035: * The key that specifies resolver packages, very much like
036: * {@link javax.management.remote.JMXConnectorFactory#PROTOCOL_PROVIDER_PACKAGES}
037: */
038: public static final String PROTOCOL_RESOLVER_PACKAGES = "mx4j.remote.resolver.pkgs";
039: /**
040: * A vertical bar '|'
041: */
042: public static final String RESOLVER_PACKAGES_SEPARATOR = PROVIDER_PACKAGES_SEPARATOR;
043: /**
044: * MX4J provider packages list for {@link mx4j.remote.ConnectionResolver} subclasses
045: */
046: public static final String RESOLVER_PACKAGES = "mx4j.remote.resolver"
047: + RESOLVER_PACKAGES_SEPARATOR
048: + "mx4j.tools.remote.resolver";
049: /**
050: * The string 'Resolver'
051: */
052: public static final String RESOLVER_CLASS = "Resolver";
053:
054: /**
055: * The reference implementation uses this property to specify the notification fetch timeout (in ms).
056: * MX4J will use the same for compatibility. DO NOT CHANGE IT unless the reference implementation changes it.
057: */
058: public static final String FETCH_NOTIFICATIONS_TIMEOUT = "jmx.remote.x.client.fetch.timeout";
059: /**
060: * The reference implementation uses this property to specify the maximum number of notification to fetch.
061: * MX4J will use the same for compatibility. DO NOT CHANGE IT unless the reference implementation changes it.
062: */
063: public static final String FETCH_NOTIFICATIONS_MAX_NUMBER = "jmx.remote.x.client.max.notifications";
064: /**
065: * The reference implementation uses this property to specify the notification buffer size.
066: * MX4J will use the same for compatibility. DO NOT CHANGE IT unless the reference implementation changes it.
067: */
068: public static final String NOTIFICATION_BUFFER_CAPACITY = "jmx.remote.x.buffer.size";
069: /**
070: * MX4J's implementation uses this property to specify the distance between the lowest expected notification
071: * sequence number (sent by the client via fetchNotifications()) and the minimum sequence number of the
072: * notification buffer. When this difference is greater than the value of this property, old notifications
073: * are eliminated from the notification buffer
074: */
075: public static final String NOTIFICATION_PURGE_DISTANCE = "jmx.remote.x.notification.purge.distance";
076: /**
077: * MX4J's implementation uses this property to specify the amount of time (in ms) the client should sleep
078: * between notification fetches. A value of 0 means there will be no sleep (fetches will be done one
079: * after the other).
080: */
081: public static final String FETCH_NOTIFICATIONS_SLEEP = "jmx.remote.x.notification.fetch.sleep";
082:
083: /**
084: * MX4J's implementation uses this property to specify the period (in ms) of the heartbeat pulse for
085: * {@link javax.management.remote.JMXConnector JMXConnectors} that use heartbeat to check if the
086: * connection with {@link javax.management.remote.JMXConnectorServer JMXConnectorServers} is still alive.
087: *
088: * @see #CONNECTION_HEARTBEAT_RETRIES
089: */
090: public static final String CONNECTION_HEARTBEAT_PERIOD = "jmx.remote.x.connection.heartbeat.period";
091:
092: /**
093: * MX4J's implementation uses this property to specify the number of retries of heartbeat pulses before
094: * declaring the connection between a {@link javax.management.remote.JMXConnector JMXConnector} and a
095: * {@link javax.management.remote.JMXConnectorServer JMXConnectorServer} failed, at which a
096: * {@link javax.management.remote.JMXConnectionNotification notification failed} is emitted.
097: *
098: * @see #CONNECTION_HEARTBEAT_PERIOD
099: */
100: public static final String CONNECTION_HEARTBEAT_RETRIES = "jmx.remote.x.connection.heartbeat.retries";
101:
102: /**
103: * MX4J's implementation uses this property to specify the maximum notification queue size
104: * on client size. If set to 0, or not present, the queue will have no limit.
105: * Specify this property when the server side is generating notifications at a fast rate,
106: * but clients can process them only at a slower rate. In this case notifications will queue
107: * up on client side, and if no limit is given to the queue, there is a potential risk of
108: * an OutOfMemoryError.
109: */
110: public static final String NOTIFICATION_QUEUE_CAPACITY = "jmx.remote.x.queue.size";
111:
112: /**
113: * @deprecated Use {@link mx4j.tools.remote.http.HTTPConnectorServer#WEB_CONTAINER_CONFIGURATION} instead
114: */
115: public static final String HTTP_SERVER_CONFIGURATION = "jmx.remote.x.http.server.configuration";
116: }
|