java.lang.Object
javax.imageio.stream.ImageInputStreamImpl
com.ibm.dtfj.corereaders.zos.dumpreader.Dump
All Implemented Interfaces:
Closeable, DataInput, AutoCloseable, ImageInputStream

public final class Dump extends ImageInputStreamImpl
This class represents an svcdump. It is the main class in the dumpreader package and provides low-level access to the contents of an svcdump (eg the ability to read the contents of an address in a given address space).

Implementation note: currently implemented by linking to the old svcdump.jar code (so you need to include svcdump.jar when using) but this dependency will eventually be removed. Note: zebedee dependency on svcdump.jar has been removed

  • Constructor Details

    • Dump

      public Dump(String filename) throws FileNotFoundException
      Creates a new instance of Dump from the given filename. The filename must represent either an absolute or relative pathname of the dump file, or if running on z/os it can be an MVS dataset name (eg DGRIFF.MYDUMP).
      Parameters:
      filename - the name of the dump to open
      Throws:
      FileNotFoundException
    • Dump

      public Dump(String filename, ImageInputStream stream, boolean createCacheFile) throws FileNotFoundException
      Creates a new instance of Dump from the given filename. The filename must represent either an absolute or relative pathname of the dump file, or if running on z/os it can be an MVS dataset name (eg DGRIFF.MYDUMP). Alternatively an ImageInputStream can be provided if the file is already open.
      Parameters:
      filename - the name of the dump to open, also used to open the cache file
      stream - an ImageInputStream for the dump or null - used in preference to opening the file
      createCacheFile - Create a cache file based on the filename
      Throws:
      FileNotFoundException
    • Dump

      public Dump(String filename, SearchListener[] listeners) throws FileNotFoundException
      Creates a new instance of Dump from the given filename. The filename must represent either an absolute or relative pathname of the dump file, or if running on z/os it can be an MVS dataset name.

      This constructor also supplies an array of SearchListeners to inform the caller of matches found whilst scanning the dump. Note that this will force a scan of the dump which is otherwise normally only done the first time this dump is opened. (XXX can probably avoid this by cacheing earlier search results).

      Parameters:
      filename - the name of the dump to open
      listeners - the array of SearchListeners to be notified of interesting matches
      Throws:
      FileNotFoundException
  • Method Details

    • isValid

      public static boolean isValid(String filename)
      Returns true if the given filename is a valid svcdump.
    • seek

      public void seek(long offset) throws IOException
      Seek to the given offset in the dump file. This also handles MVS datasets in an efficient way (simply using fseek is too slow because the seek appears to read the file from the beginning every time!).
      Specified by:
      seek in interface ImageInputStream
      Overrides:
      seek in class ImageInputStreamImpl
      Parameters:
      offset - the offset to seek to
      Throws:
      IOException - if any other I/O error occurs.
    • read

      public int read() throws IOException
      Reads an unsigned byte from the file
      Specified by:
      read in interface ImageInputStream
      Specified by:
      read in class ImageInputStreamImpl
      Returns:
      Throws:
      IOException
    • read

      public int read(byte[] buf, int off, int len) throws IOException
      Read from the dump file into the given buffer.
      Specified by:
      read in interface ImageInputStream
      Specified by:
      read in class ImageInputStreamImpl
      Parameters:
      buf - the buffer to read into
      off - the offset into the buffer to start at
      len - the maximum number of bytes to read
      Returns:
      the number of bytes actually read, or -1 to indicate EOF.
      Throws:
      IOException - if an I/O error occurs.
    • read

      public int read(byte[] buf) throws IOException
      Read from the dump file into the given buffer.
      Specified by:
      read in interface ImageInputStream
      Overrides:
      read in class ImageInputStreamImpl
      Parameters:
      buf - the buffer to read into
      Returns:
      the number of bytes actually read, or -1 to indicate EOF.
      Throws:
      IOException - if an I/O error occurs.
    • length

      public long length()
      Get the length of the dump file
      Specified by:
      length in interface ImageInputStream
      Overrides:
      length in class ImageInputStreamImpl
      Returns:
      -1L to indicate unknown length.
    • getAddressSpaces

      public AddressSpace[] getAddressSpaces()
      Returns an array of all the address spaces in the dump.
    • is64bit

      public boolean is64bit()
      Returns true if this is a 64-bit dump. Always returns false at the moment 'cos I haven't yet got my paws on a 64-bit dump.
    • getTitle

      public String getTitle()
      Returns the title of the dump.
    • getProductName

      public String getProductName()
      Returns the z/OS product name.
    • getProductVersion

      public String getProductVersion()
      Returns the z/OS product version.
    • getProductRelease

      public String getProductRelease()
      Returns the z/OS product release.
    • getProductModification

      public String getProductModification()
      Returns the z/OS product modification.
    • mvsClockToDate

      public static Date mvsClockToDate(long clock)
      Convert an MVS style clock value to a Date object.
    • getCreationDate

      public Date getCreationDate()
      Returns the time when the dump was created.