org.eclipse.mat.ibmvm.acquire

## Class IBMDumpProvider

- java.lang.Object
- - org.eclipse.mat.ibmvm.acquire.BaseProvider
  - - org.eclipse.mat.ibmvm.acquire.IBMDumpProvider

All Implemented Interfaces:
  IHeapDumpProvider

Direct Known Subclasses:
  IBMJavaDumpProvider

    public class IBMDumpProvider
    extends BaseProvider

Base class for generating dumps on IBM VMs. This class uses reflection to call the com.ibm or com.sun classes. Be sure to update IBMExecDumpProvider.getExecJar() when any classes are added here.

### Field Summary

### Fields inherited from class org.eclipse.mat.ibmvm.acquire.BaseProvider

`defaultCompress, defaultLive, defaultType, heapDumpTemplate, heapDumpZipTemplate, hprofDumpTemplate, javaDumpTemplate, listAttach, systemDumpTemplate, systemDumpZipTemplate`

### Constructor Summary

Constructors
Constructor and Description
`IBMDumpProvider()`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`File` `acquireDump(VmInfo info, File preferredLocation, IProgressListener listener)` Acquire a heap dump from a locally running Java process.
`List<IBMVmInfo>` `getAvailableVMs(IProgressListener listener)` Returns a list of locally running Java processes from which the heap dump provider can attempt to acquire a heap dump
`static void` `main(String[] s)` Lists VMs or acquires a dump.

### Methods inherited from class java.lang.Object

`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### IBMDumpProvider

    public IBMDumpProvider()

### Method Detail

#### acquireDump

    public File acquireDump(VmInfo info,
                            File preferredLocation,
                            IProgressListener listener)
                     throws SnapshotException

Description copied from interface: `IHeapDumpProvider`
Acquire a heap dump from a locally running Java process. The

Parameters:
  `info` - a descriptor of the Java process which should be dumped
  `preferredLocation` - a preferred filename under which the heap dump should be saved. The `IHeapDumpProvider` is not obliged to provide the heap dump at this location
  `listener` - a progress listener
Returns:
  the File under which the successfully generated heap dump is saved
Throws:
  `SnapshotException`

#### getAvailableVMs

    public List<IBMVmInfo> getAvailableVMs(IProgressListener listener)

Description copied from interface: `IHeapDumpProvider`
Returns a list of locally running Java processes from which the heap dump provider can attempt to acquire a heap dump

Parameters:
  `listener` - a progress listener
Returns:
  A List of VMs, of a type which extends `VmInfo`.
See Also:
  `IHeapDumpProvider.getAvailableVMs(org.eclipse.mat.util.IProgressListener)`

#### main

    public static void main(String[] s)
                     throws Exception

Lists VMs or acquires a dump. Used when attach API not usable from the MAT process.

Parameters:
  `s` -
  - [0] dump type (HEAP=heap+java,SYSTEM=system,JAVA=java)
  - [1] VM id = PID
  - [2] true/false live objects only in dump
  - [3] true/false compress dump
  - [4] dump name
  - [5] dump directory (optional)
  List VMs
  - true - attach to VM to get more details
  Output
  - dump filename
  - or list of all processes (if argument list is empty)

        PID;proposed file name;directory;enable dump;description

Throws:
  `Exception`