public final class Smf90Record extends SmfRecord
Mapping for SMF type 90 record.

Typically you would obtain Smf90Records by reading SmfRecords and using

Smf90Record.from(SmfRecord)

to create the specialized record after determining the record type.

Notes

Subtype 24 VARY WLM

The subtype 24 record includes WLM policy information. The WLM policy will be split across multiple records if it is too big to fit in one record.

Call buildWlmServicePolicy(java.lang.Iterable<com.blackhillsoftware.smf.smf90.Smf90Record>) to build the service policy from one or more records before using servicePolicy() to get the policy itself.

Subtype 32 WLM POLICY CHANGE

The subtype 32 record includes WLM scheduling environment information. The WLM scheduling environment will be split across multiple records if it is too big to fit in one record.

Call buildWlmSchedulingEnvironment(java.lang.Iterable<com.blackhillsoftware.smf.smf90.Smf90Record>) to build the scheduling environment from one or more records before using schedulingEnvironment() to get the policy itself.

  • Constructor Details

    • Smf90Record

      public Smf90Record(byte[] data)
      Constructs an Smf90Record from the specified byte array.
      Parameters:
      data - a byte array containing the SMF record data
    • Smf90Record

      public Smf90Record(SmfRecord record)
      Constructs a new Smf90Record from an existing SMF record. The 2 records share the same data byte array.
      Parameters:
      record - an existing SMF record
  • Method Details

    • from

      public static Smf90Record from(SmfRecord record)
      Constructs a new Smf90Record from an existing SMF record. The 2 records share the same data byte array.
      Parameters:
      record - an existing SMF record
    • from

      public static Smf90Record from(byte[] data)
      Constructs an Smf90Record from the specified byte array.
      Parameters:
      data - a byte array containing the SMF record data
    • event

      public String event()
      The event represented by this type 90 record
      Returns:
      String The event description
    • smf90len

      public int smf90len()
      SMF90LEN value.
      Returns:
      int SMF90LEN value
    • smf90seg

      public int smf90seg()
      SMF90SEG value.
      Returns:
      int SMF90SEG value
    • smf90flg

      public int smf90flg()
      SMF90FLG value.
      Returns:
      int SMF90FLG value
    • smf90rty

      public int smf90rty()
      SMF90RTY value.
      Returns:
      int SMF90RTY value
    • smf90tme

      public LocalTime smf90tme()
      SMF90TME as a LocalTime.
      Returns:
      LocalTime SMF90TME Time
      See Also:
    • smf90tmeRawValue

      public long smf90tmeRawValue()
      SMF90TME raw value
      Returns:
      long SMF90TME value
    • smf90dte

      public LocalDate smf90dte()
      SMF90DTE as a LocalDate.
      Returns:
      LocalDate SMF90DTE Date
      See Also:
    • smf90dteRawValue

      public int smf90dteRawValue()
      SMF90DTE raw value.
      Returns:
      int SMF90DTE value
    • smf90sid

      public String smf90sid()
      SMF90SID value.
      Returns:
      String SMF90SID value
    • smf90pof

      public int smf90pof()
      SMF90POF value.
      Returns:
      int SMF90POF value
    • smf90pln

      public int smf90pln()
      SMF90PLN value.
      Returns:
      int SMF90PLN value
    • smf90pon

      public int smf90pon()
      SMF90PON value.
      Returns:
      int SMF90PON value
    • smf90dof

      public int smf90dof()
      SMF90DOF value.
      Returns:
      int SMF90DOF value
    • smf90dln

      public int smf90dln()
      SMF90DLN value.
      Returns:
      int SMF90DLN value
    • smf90don

      public int smf90don()
      SMF90DON value.
      Returns:
      int SMF90DON value
    • productHeader

      public ProductHeader productHeader()
      Get the first or only Product Header Section from the record
      Returns:
      a ProductHeader
    • productHeaders

      public List<ProductHeader> productHeaders()
      Get a List containing Product Header Sections from the record
      Returns:
      a list of ProductHeader
    • setDateTime

      public SetDateTimeSection setDateTime()
      Get the Set Date Time section for subtypes 1 and 2. Throws an exception if the record is not subtype 1 or 2.
      Returns:
      a SetDateTimeSection
    • smfInfoHeader

      public SmfInfoHeader smfInfoHeader()
      Get the SmfInfoHeader (self defining section for subtypes 5, 9, 13 and 15). Throws an exception if the record is not subtype 5, 9, 13 or 15.
      Returns:
      a SmfInfoHeader
    • setSmfSections

      public List<SetSmfSection> setSmfSections()
      Get a List of Set SMF sections for subtypes 5, 9, 13 and 15. Throws an exception if the record is not subtype 5, 9, 13 or 15.
      Returns:
      a List<SetSmfSection> (possibly empty)
    • smfDatasetSections

      public List<SmfDatasetSection> smfDatasetSections()
      Get a List of SMF Dataset sections for subtypes 5, 9, 13 and 15. Throws an exception if the record is not subtype 5, 9, 13 or 15.
      Returns:
      a List<SmfDatasetSection> (possibly empty)
    • smfSubsystemRecordSections

      public List<SmfSubsystemRecordSection> smfSubsystemRecordSections()
      Get a List of SMF Subsystem Record sections for subtypes 5, 9, 13 and 15. Throws an exception if the record is not subtype 5, 9, 13 or 15.
      Returns:
      a List<SmfSubsystemRecordSection> (possibly empty)
    • smfSubsystemParameterSections

      public List<SmfSubsystemParameterSection> smfSubsystemParameterSections()
      Get a List of SMF Subsystem Parameter sections for subtypes 5, 9, 13 and 15. Throws an exception if the record is not subtype 5, 9, 13 or 15.
      Returns:
      a List<SmfSubsystemParameterSection> (possibly empty)
    • smfSwitchSections

      public List<SmfSwitchSection> smfSwitchSections()
      Get the Smf Switch section for subtypes 6 and 7. Throws an exception if the record is not subtype 6 or 7.
      Returns:
      a list of SmfSwitchSection
    • iplPromptSection

      public List<IplPromptSection> iplPromptSection()
      Get the IPL Prompt section for subtype 8. Throws an exception if the record is not subtype 8.
      Returns:
      a List of IplPromptSection
    • iplSrmSection

      public List<IplSrmSection> iplSrmSection()
      Get the IPL SRM section for subtype 10. Throws an exception if the record is not subtype 10.
      Returns:
      a List of IplSrmSection
    • setOptSection

      public List<SetOptSection> setOptSection()
      Get the SET OPT section for subtype 11. Throws an exception if the record is not subtype 11.
      Returns:
      a List of SetOptSection
    • setMpfSection

      public List<SetMpfSection> setMpfSection()
      Get the SET MPF section for subtype 14. Throws an exception if the record is not subtype 14.
      Returns:
      a List of SetMpfSection
    • setDaeSection

      public List<SetDaeSection> setDaeSection()
      Get the SET DAE section for subtype 16. Throws an exception if the record is not subtype 16.
      Returns:
      a List of SetDaeSection
    • setPfkSection

      public List<SetPfkSection> setPfkSection()
      Get the SET PFK section for subtype 17. Throws an exception if the record is not subtype 17.
      Returns:
      a List of SetPfkSection
    • setGrsRnlSection

      public List<SetGrsRnlSection> setGrsRnlSection()
      Get the SET GRS RNL section for subtype 18. Throws an exception if the record is not subtype 18.
      Returns:
      a List of SetGrsRnlSection
    • setAppcSection

      public List<SetAppcSection> setAppcSection()
      Get the SET APPC section for subtype 19. Throws an exception if the record is not subtype 19.
      Returns:
      a List of SetAppcSection
    • setAschSection

      public List<SetAschSection> setAschSection()
      Get the SET ASCH section for subtype 20. Throws an exception if the record is not subtype 20.
      Returns:
      a List of SetAschSection
    • setSchSection

      public List<SetSchSection> setSchSection()
      Get the SET SCH section for subtype 21. Throws an exception if the record is not subtype 21.
      Returns:
      a List of SetSchSection
    • setCngrpSection

      public List<SetCngrpSection> setCngrpSection()
      Get the SET CNGRP section for subtype 22. Throws an exception if the record is not subtype 22.
      Returns:
      a List of SetCngrpSection
    • installServiceDefinitionSection

      public InstallServiceDefinitionSection installServiceDefinitionSection()
      Get the Install WLM Service Definition section for subtype 23. Throws an exception if the record is not subtype 23.
      Returns:
      the InstallServiceDefinitionSection
    • wlmServicePolicySection

      public WlmServicePolicySection wlmServicePolicySection()
      Get the WLM Service Policy section for subtype 24.

      Note: this may be only a part of the service policy, see buildWlmServicePolicy(java.lang.Iterable<com.blackhillsoftware.smf.smf90.Smf90Record>) and servicePolicy() to get the complete policy.

      Throws an exception if the record is not subtype 24.

      Returns:
      a WlmServicePolicySection
      See Also:
    • buildWlmServicePolicy

      public static List<Smf90Record> buildWlmServicePolicy(Iterable<Smf90Record> records)
      Build Service Policies from one or more SMF type 90 records.

      A service policy can be split across one or more SMF records. This method creates service policies, assembling from multiple sections if necessary.

      • Multiple input records can be from different vary policy commands. This method matches records by the SMF9024I key and returns multiple records if necessary.
      • The records do not need to be in order or grouped by policy.
      • If part of the policy is missing (i.e. a record is missing) only the sections before the missing section will be included in the policy. Data after the missing section will be missing and/or zeros. If the first section is missing, there will be no valid data in the service policy.
      • If a policy is split across multiple records, it is assembled into the first record. The record containing the assembled service policy is returned, and the others are discarded.
      • Records from other SMF 90 subtypes are copied to the output unmodified.

      After calling this method the service policy can be accessed using servicePolicy()

      Parameters:
      records - an Iterable with one or more SMF type 90 records
      Returns:
      a List of Smf90Records with the ServicePolicy created in the subtype 24 records
    • servicePolicy

      public ServicePolicy servicePolicy()
      Get the Service Policy for subtype 24.

      Note: Call buildWlmServicePolicy(java.lang.Iterable<com.blackhillsoftware.smf.smf90.Smf90Record>) first.

      buildWlmServicePolicy(java.lang.Iterable<com.blackhillsoftware.smf.smf90.Smf90Record>) takes one or more Smf90Records and builds the Service Policy. If the service policy is split across multiple records the first record will be returned containing the assembled service policy and the others discarded.

      Throws an exception if the record is not subtype 24.

      Returns:
      a ServicePolicy
      See Also:
    • modifyWlmSection

      public List<ModifyWlmSection> modifyWlmSection()
      Get the Modify WLM section for subtype 25. Throws an exception if the record is not subtype 25.
      Returns:
      a List of ModifyWlmSection
    • logrecDatasetSection

      public List<LogrecDatasetSection> logrecDatasetSection()
      Get the IPL LOGREC dataset section for subtype 26. Throws an exception if the record is not subtype 26.
      Returns:
      a List of LogrecDatasetSection
    • armPolicySection

      public List<ArmPolicySection> armPolicySection()
      Get the ARM policy section for subtype 27 and 28. Throws an exception if the record is not subtype 27 and 28.
      Returns:
      a List of LogrecDatasetSection
    • linklstActivationSection

      public List<LinklstActivationSection> linklstActivationSection()
      Get the Linklist Activation section for subtype 29. Throws an exception if the record is not subtype 29.
      Returns:
      a List of LinklstActivationSection
    • resetCommandSection

      public List<ResetCommandSection> resetCommandSection()
      Get the Reset Command section for subtype 30. Throws an exception if the record is not subtype 30.
      Returns:
      a List of ResetCommandSection
    • dynamicLpaSection

      public List<DynamicLpaSection> dynamicLpaSection()
      Get the Dynamic LPA section for subtype 31. Throws an exception if the record is not subtype 31.
      Returns:
      a List of DynamicLpaSection
    • dynamicLpaModuleEntries

      public List<Lpmea> dynamicLpaModuleEntries()
      Get the Dynamic LPA module entries for subtype 31. Throws an exception if the record is not subtype 31.
      Returns:
      a List of Lpmea
    • wlmSchedulingEnvironmentSection

      public WlmSchedulingEnvironmentSection wlmSchedulingEnvironmentSection()
      Get the WLM Scheduling Environment section for subtype 32.

      Note: this may be only a part of the scheduling environment, see buildWlmSchedulingEnvironment(java.lang.Iterable<com.blackhillsoftware.smf.smf90.Smf90Record>) and schedulingEnvironment() to get the complete scheduling environment.

      Throws an exception if the record is not subtype 32.

      Returns:
      a WlmSchedulingEnvironmentSection
      See Also:
    • buildWlmSchedulingEnvironment

      public static List<Smf90Record> buildWlmSchedulingEnvironment(Iterable<Smf90Record> records)
      Build Scheduling Environments from one or more SMF type 90 records.

      A scheduling environment can be split across one or more SMF records. This method creates scheduling environment, assembling from multiple sections if necessary.

      • Multiple input records can be from different policy changes. This method matches records by the SMF9032I key and returns multiple records if necessary.
      • The records do not need to be in order or grouped by policy change.
      • If part of the scheduling environment is missing (i.e. a record is missing) only the sections before the missing section will be included in the scheduling environment. Data after the missing section will be missing and/or zeros. If the first section is missing, there will be no valid data in the scheduling environment.
      • If a scheduling environment is split across multiple records, it is assembled into the first record. The record containing the assembled scheduling environment is returned, and the others are discarded.
      • Records from other SMF 90 subtypes are copied to the output unmodified.

      After calling this method the scheduling environment can be accessed using schedulingEnvironment()

      Parameters:
      records - an Iterable with one or more SMF type 90 records
      Returns:
      a List of Smf90Records with the SchedulingEnvironment created in the subtype 32 records
    • schedulingEnvironment

      public SchedulingEnvironment schedulingEnvironment()
      Get the Scheduling Environment for subtype 32.

      Note: Call buildWlmSchedulingEnvironment(java.lang.Iterable<com.blackhillsoftware.smf.smf90.Smf90Record>) first.

      buildWlmSchedulingEnvironment(java.lang.Iterable<com.blackhillsoftware.smf.smf90.Smf90Record>) takes one or more Smf90Records and builds the scheduling environment. If the scheduling environment is split across multiple records the first record will be returned containing the assembled scheduling environment and the others discarded.

      Throws an exception if the record is not subtype 32.

      Returns:
      a SchedulingEnvironment
      See Also:
    • setAutoReplySection

      public List<SetAutoReplySection> setAutoReplySection()
      Get the Set Auto Reply section for subtype 33. Throws an exception if the record is not subtype 33.
      Returns:
      a List of SetAutoReplySection
    • capacityChangeSection

      public List<CapacityChangeSection> capacityChangeSection()
      Get the Capacity Change Section for subtype 34. Throws an exception if the record is not subtype 34.
      Returns:
      a List of CapacityChangeSection
    • setLoadIeasymSection

      public List<SetLoadIeasymSection> setLoadIeasymSection()
      Get the SETLOAD IEASYM Section for subtype 35. Throws an exception if the record is not subtype 35.
      Returns:
      a List of SetLoadIeasymSection
    • setConSection

      public List<SetConSection> setConSection()
      Get the SET CON Section for subtype 36. Throws an exception if the record is not subtype 36.
      Returns:
      a List of SetConSection
    • dynamicApfSection

      public List<DynamicApfSection> dynamicApfSection()
      Get the Dynamic APF Section for subtype 37. Throws an exception if the record is not subtype 37.
      Returns:
      a List of DynamicApfSection
    • iefopzConfigurationSection

      public List<IefopzConfigurationSection> iefopzConfigurationSection()
      Get the IEFOPZ Configuration Section for subtype 38. Throws an exception if the record is not subtype 38.
      Returns:
      a List of IefopzConfigurationSection
    • iefopzOldNewSection

      public List<IefopzOldNewSection> iefopzOldNewSection()
      Get the IEFOPZ Old-New Section for subtype 38. Throws an exception if the record is not subtype 38.
      Returns:
      a List of IefopzOldNewSection
    • iefopzDDJobnameSection

      public List<IefopzDDJobnameSection> iefopzDDJobnameSection()
      Get the IEFOPZ Old-New Section for subtype 38. Throws an exception if the record is not subtype 38.
      Returns:
      a List of IefopzDDJobnameSection
    • setSmfLimSection

      public List<SetSmfLimSection> setSmfLimSection()
      Get the Set SMFLIM Section for subtype 39. Throws an exception if the record is not subtype 39.
      Returns:
      a List of SetSmfLimSection
    • systemRecoveryBoostSection

      public List<SystemRecoveryBoostSection> systemRecoveryBoostSection()
      Get the Set System Recovery Boost Section for subtype 40. Throws an exception if the record is not subtype 40.
      Returns:
      a List of SystemRecoveryBoostSection
    • cvtlsoChangeSection

      public CvtlsoChange cvtlsoChangeSection()
      Get the CVTLSO Change Section for subtype 41. Throws an exception if the record is not subtype 41.
      Returns:
      the CvtlsoChange section
    • validatedBootHeader

      public ValidatedBootHeader validatedBootHeader()
      Get the ValidatedBootHeader (self defining section) for subtype 42. Throws an exception if the record is not subtype 42.
      Returns:
      a ValidatedBootHeader
    • validatedBootAuditEntries

      public List<ValidatedBootAuditEntry> validatedBootAuditEntries()
      Get the Audit Entry Sections for subtype 42. Throws an exception if the record is not subtype 42.
      Returns:
      a List of ValidatedBootAuditEntry
    • validatedBootCX

      public List<ValidatedBootCX> validatedBootCX()
      Get the Certificate Extract Sections for subtype 42. Throws an exception if the record is not subtype 42.
      Returns:
      a List of ValidatedBootCX
    • validatedBootBadCX

      public List<ValidatedBootBadCX> validatedBootBadCX()
      Get the Bad Certificate Extract Sections for subtype 42. Throws an exception if the record is not subtype 42.
      Returns:
      a List of ValidatedBootBadCX