An attach provider is a concrete subclass of this class that has a zero-argument constructor and implements the abstract methods specified below.
An attach provider implementation is typically tied to a Java virtual machine implementation, version, or even mode of operation. That is, a specific provider implementation will typically only be capable of attaching to a specific Java virtual machine implementation or version. For example, Oracle's JDK implementation ships with provider implementations that can only attach to Oracle's HotSpot virtual machine. In general, if an environment consists of Java virtual machines of different versions and from different vendors then there will be an attach provider implementation for each family of implementations or versions.
An attach provider is identified by its name and
type. The name is typically, but not required to
be, a name that corresponds to the VM vendor. The Oracle JDK implementation,
for example, ships with attach providers that use the package name "sun"
(for historical reasons). The
type typically corresponds to the attach mechanism. For example, an
implementation that uses the Doors inter-process communication mechanism
might use the type "doors". The purpose of the name and type is to
identify providers in environments where there are multiple providers
installed.
AttachProvider implementations are loaded and instantiated at the first
invocation of the providers method. This method
attempts to load all provider implementations that are installed on the
platform.
All of the methods in this class are safe for use by multiple concurrent threads.
| Modifier and Type | Field and Description |
|---|---|
| private static final Object | |
| private static List |
| Access | Constructor and Description |
|---|---|
| protected |
| Modifier and Type | Method and Description |
|---|---|
| public abstract VirtualMachine | Returns: VirtualMachine representing the target virtual machine.The abstract identifier that identifies the Java virtual machine. id)Attaches to a Java virtual machine. |
| public VirtualMachine | Returns: VirtualMachine representing the target virtual machine.The virtual machine descriptor vmd)Attaches to a Java virtual machine. |
| public abstract List | Returns: The list of virtual machine descriptors which describe the Java virtual machines known to this provider (may be empty).Lists the Java virtual machines known to this provider. |
| public abstract String | |
| public static List | Returns: A list of the installed attach providers.Returns a list of the installed attach providers. |
| public abstract String |
| lock | back to summary |
|---|---|
| private static final Object lock | |
| providers | back to summary |
|---|---|
| private static List<AttachProvider> providers | |
| AttachProvider | back to summary |
|---|---|
| protected AttachProvider() Initializes a new instance of this class. | |
| attachVirtualMachine | back to summary |
|---|---|
| public abstract VirtualMachine attachVirtualMachine(String id) throws AttachNotSupportedException, IOException Attaches to a Java virtual machine. A Java virtual machine is identified by an abstract identifier. The nature of this identifier is platform dependent but in many cases it will be the string representation of the process identifier (or pid). This method parses the identifier and maps the identifier to a Java
virtual machine (in an implementation dependent manner). If the identifier
cannot be parsed by the provider then an
| |
| attachVirtualMachine | back to summary |
|---|---|
| public VirtualMachine attachVirtualMachine(VirtualMachineDescriptor vmd) throws AttachNotSupportedException, IOException Attaches to a Java virtual machine. A Java virtual machine can be described using a
| |
| listVirtualMachines | back to summary |
|---|---|
| public abstract List Lists the Java virtual machines known to this provider. This method returns a list of
| |
| name | back to summary |
|---|---|
| public abstract String name() Return this provider's name.
| |
| providers | back to summary |
|---|---|
| public static List Returns a list of the installed attach providers. An AttachProvider is installed on the platform if:
The format of the provider configuration file is one fully-qualified
class name per line. Space and tab characters surrounding each class name,
as well as blank lines are ignored. The comment character is
AttachProvider implementations are loaded and instantiated (using the zero-arg constructor) at the first invocation of this method. The list returned by the first invocation of this method is the list of providers. Subsequent invocations of this method return a list of the same providers. The list is unmodifiable.
| |
| type | back to summary |
|---|---|
| public abstract String type() Return this provider's type.
| |