Version 3.1.0 includes a major rewrite of the code to select systems for reports and consequential changes to the linking between reports. Previously, EasySMF assumed that the SYSNAME was the same as the SMFID which is frequently the case but not always. In addition, the SYSNAME may not be unique – there are customers with multiple systems with same SYSNAME.
This required extensive changes particularly to report linking because there are e.g. some reports where the SYSNAME is known but not the SMFID, others where the SMFID is known but not the SYSNAME. Please report any bugs where this doesn’t seem to be behaving properly.
Systems must have a unique SMFID within an EasySMF repository. Multiple systems with the same SMFID can be handled by creating separate EasySMF data repositories.
- Handle cases where the SYSNAME is different from the SMFID, and where multiple systems have the same SYSNAME.
- Fix a crash in the Unix File Activity record when the record did not include a reader start date.
- Improved reporting of CPU times: Report “Derived CPU” where possible, which is CPU time calculated from service units. This allows better resolution than the 1/100 second times recorded in many SMF CPU time fields.
- Change the Non-VSAM Statistics report so it no longer uses context sensitive columns, because these cause data to appear and disappear and are confusing.
- Support z/OS 2.3 changes to the SMF header for record types greater than 255
- Fix a problem where the program EasySMFLoad (for batch loading SMF data into the repository) would fail if the .NET Framework 3.5 was not present i.e. more recent Windows systems where higher levels were delivered and 3.5 was not installed.
- Add CPI and L1MP per Processor report to CPU Measurement Facility reports.
- Add reports for SMF type 113 CPU Measurement Facility.
The major change for version 3 is that EasySMF is now a 64 bit application on 64 bit Windows systems.
This should reduce or eliminate Out of Memory errors, however beware of severe performance issues if memory usage increases to a large percentage of installed RAM. This is due to the interaction between .NET garbage collection and system paging. Garbage collection needs to examine all the allocated memory to track links between live objects. If there is more virtual memory allocated than can be brought into real memory, the system will spend all its time paging memory in and out instead of doing productive work.
Previously, the limits of a 32 bit address space meant that an Out of Memory error would be encountered before this happened on a typical (i.e. 4GB+) PC. Now the program may appear to hang and become unresponsive. We are working to improve the behavior in this situation.
- Fix crashes or bad reports in reports that need a system to be specified if a wildcard is entered that does not match any systems.
- Add “Gets” to VSAM Statistics
- Add new rolling 4 hour average reports.
4 hour averages can be viewed by System and physical processor, as well as broken down by Service Class, Report Class and Importance from type 72 records, and Job from type 30 records.
This allows a much more detailed view of what actually contributed to your 4 hour average.
- Replace In and Ready Address Space report with a CPU Queuing report. This report shows median, 10th and 90th percentiles for CPU queue from type 70 record data.
- Add a System Configuration report. This report shows number of LPARs, machine type, weights, online CPUs etc. to give an overall picture of the configuration.
- Fix CPU busy by service/report class reports, where zIIP etc. CPU time was calculated incorrectly if zIIPs were a different speed to the CP.
zIIP service units needed to be scaled before comparison to CP service units.
- Add the ability to filter Job Reports by Job Class.
- Add reports for Job Class Statistics and Service by Job Class
- Add blank entry to parameter drop down lists so that a value can be cleared using the mouse.
- Trigger report update when a parameter drop down closes.
- Allow multiple values to be specified in a filter using a vertical bar, e.g. A*|B* means A* or B*.
- Change parameter fields to use a fixed font so that complex parameters are easier to read.
- Security fix: When using TLS for the file transfer, the host name was not validated against the certificate.
- Reduce the memory usage for loading data.
- Fix a crash if an invalid regular expression was entered in a parameter field.
- Fix a crash in certain circumstances when a report had no data points.
- When trying to connect using Unconditional Mode TLS the connect fails with the message:
A Xceed.Ftp.FtpInternalException occurred while recieving a reply.
Add a comment to the documentation that
needs to be set on the z/OS system for unconditional mode TLS.
- Fix a bug where a report parameter change can’t be cancelled with ESC if there was no previous value.
- Fix a System.IO.FileLoadexception for DataRepository.dll when loading data from the command line using EasySMFLoad on a system with .NET Framework 4 but without .NET framework 3.5.
- The default time range for the Job Profile report was confusing because it would change to the job start to end time. This is confusing if you are trying to compare job CPU usage with system CPU usage etc.
The Job Profile report will now use the current time range.
When clicking through to Job Profile from job list reports, the time range will still be changed to job start to end time, however the time range may be slightly greater as it will only be set with 1 minute granularity.
The user can still zoom in to the Job Profile report to set a smaller time range.
- Rename the Job Status During Interval report to Running Jobs to make it clearer what this report shows.
Also the Running Jobs and Job Profile reports are moved higher in the menu so they are easier to find.
- Job Profile report: If no job is selected the first STC found will be shown to avoid a blank report.
- Fix incorrect CPU usage reports from broken RMF records.
- Change CPU busy calculations to support SMT on z13 processors.
- Modify file transfer processing to fix severe slowdown with very fast transfer speed from host.
- Fix crashes or bad reports in reports that need a system to be specified if a wildcard is entered that does not match any systems.
- Add feature to automatically delete data older than a specified time. Data can be kept for a minimum time after loading so that old data is not immediately eligible for deletion.The age can be specified based on record type and subtype.
- When installing/running under Windows 8, use the Windows 8 .NET framework version instead of downloading an older version.
- Allow filters/wildcards to be used to exclude data e.g. -SYS1* means anything but SYS1*
- Add CPU usage information to the Jobs by Jobname report.
- Fix a hang due to a race condition with FTP replies during disconnection (only likely with very fast response from the FTP server)
- Fix a bug in the code to scan repository block times where a block wth correct times would be rechecked each time.
- Add TCP keepalive option to FTP command channel so it is not disconnected during long file transfers.
- Add the ability to read Gzip compressed data via FTP, and to read data from HFS files.
- Add samples to compress data into Gzip format using Gzip and Java.
- Add sample to load from z/OS batch job using Dovetailed Technologies Co:Z Hybrid Batch (Co:Z Launcher + Dataset Pipes)
- Performance improvement: Fix a bug where unnecessary data was being read for reports.Note: After installing this update, the repository will be scanned in the background to update information about the SMF record times in the catalog. The scan can be interrupted i.e. by closing EasySMF and will resume at the point it stopped the next time the repository is opened.Any installation which loads data into the repository also needs to be updated (e.g. an automated load on another PC). Otherwise EasySMF on any clients that connect will repeat the scan for new data.
- Modify time range selector to allow additional time ranges to be selected: Yesterday, Last Week, Last Month etc.
- Add button to zoom out to time range selector.
- Fix various bugs in time range selection.
- Show zIIP/zAAP information in Job Detail report
- Show zIIP/zAAP information in Job CPU Information report
- Show zIIP/zAAP information in Step Information reports
- Add 64 bit storage information to Job Detail report.
- Add 64 bit storage information to Job Memory Information report.
- Add 64 bit storage information to Step Completions report.
- Show quantity of work without a report class in the Service by Report Class reports, by comparing service and report class totals.
- Fix chart problems that could occur if the RMF interval length was changed during the selected time interval (depending on when the change occurred in the interval).
- Handle RMF intervals of different lengths, e.g. different systems in a Sysplex.
- Add reports to show MVS CPU busy % by service class and by report class.
- Remove the requirement for write access to the repository – the repository can now be used from a read-only location.
- Detect and remove duplicate data from reports using RMF Service/Report Class Period Data.
- Allow charts to be scrolled using the mouse wheel.
- Fix various errors if information about installed printers is not available – encountered when the Windows Print Spooler service did not start after upgrading to Windows 8.1.
- Fix a bug in the Job Detail report where durations were rounded to tenths of a second, even if more precision was possible.The fractional seconds will now reflect the precision in the SMF record.
- Modify the formatting of durations to make it clearer what units are used. Previously 1.23 seconds would be displayed as 1.23, which could be misread as 1 minute 23 seconds. Now, durations less than 60 seconds will be formatted as e.g. “1.23 s”, times greater than 60 seconds will be formatted as “00:01:23”, with the number of days if greater than 24 hours.
- Fix a hang in some reports if a service class with no service is selected e.g. SYSSTC1.
- Correct formatting problems in some reports when a service class with no data is selected e.g. SYSSTC1.
- Fix problem where EasySMF could be difficult to close or remain active in the background if an error occured during file transfer.
- Fix a crash in Job History report if there is no job data, or all jobs are excluded by the filter.
- Modify the way crash reporting works through proxies requiring authentication, hopefully to find the credentials automatically and if not, allowing a userid and password to be entered.
- Extend wildcard and regular expression processing to all the string based parameter fields. Some reports still only accept a single value e.g. reports for a single system or sysplex. These reports will use the first matching value if a wildcard or regular expression is entered.
- Fix ArgumentNullException in CPU Consumprion by LPAR or Normalized CPU by Type reports related to empty values for CPU name in the CPU Identification Section.
- Fix crash in Job Status During Interval report when using data from older releases where some fields were not present.
- Change Job Status During Interval report to show empty values rather than 0 for values that are not available.
- Fix KeyNotFoundException in Non VSAM Cumulative Space report when the selected time range didn’t end on an hour or day boundary.
- Modify internal architecture, and rewrite many reports to reduce the memory required. Many of the largest reports had their memory requirements reduced by 80% or more.
- Major rewrite of chart layout code to better handle different window sizes and larger quantities of data.
- EasySMF Version 2.0 requires version 3.5SP1 of the Microsoft .NET Framework. The EasySMF installer will download and install it if required.Version 3.5SP1 was released in 2008, was included with Windows 7, and has been a high priority update for earlier Windows versions for a long time, so hopefully this will not inconvenience too many people.
- The license key can be automatically retrieved via HTTP to allow centralized license management. The URL can be set in the program, or via a parameter when running the install.
- Add direct links from reports to help topics, so that pressing F1 in a report will show help on the specific report.
- Add additional information to IPL report.
- Add additional information to SMF Data Lost report.
- Allow optional filtering using regular expressions to allow more complex filtering e.g. A or B, not A, etc.
- The Dataset Activity report now excludes temporary datasets by default. Temporary datasets can be included in the report if desired by selecting the “Include Temporary” checkbox.
- Add System Paging report
- Add Page Dataset Usage report
- Add paging and storage information to Job Status During Interval report.
- Step Completions and Service by Program Name reports now report z/OS Unix program name.
- Fix a problem where a new installation would not allow an existing repository to be selected as the SMF data location.
- The default time range was set incorrectly if there were entries in the repository where loading data had failed.
- Fix problem in Normalized CPU by type report where drill through parameter was set to CPU type, instead of System.
- Fix problem where end time was set incorrectly and excluded the job end time when clicking through from Job List reports. This meant that if you selected the job list report again, the job you just selected would not be shown.
- Fix KeyNotFoundException if Escape was pressed in an empty parameter field.
- Fix KeyNotFoundException if Sysplex name etc. is manually entered in lowercase.
- Fixed a problem where sorting was very slow if all records in a large tabular report were selected.
- The Jobs by Job Name report calculated averages incorrectly if some jobs had connect time or (improbably) elapsed time values of zero. Jobs with zero values were not included in the average.
- Modify various reports to use information from the SMF records rather than the report parameters in report headings. This means that the correct SMF values will be used if e.g. the report parameters are in lowercase.
- Fix KeyNotFoundException in some reports if the report parameters were changed while the report was running.
- Change CPU type selection in reports to be case insensitive.
- Fix a problem where the Job Detail report didn’t show a message if no job selection criteria were entered.
- Fix KeyNotFoundException adding LPAR capping information to CPU busy report.
- Change setup file name to include version number, so different versions can be easily distinguished.
- Fix problem where deleting data is very slow. Elapsed time reduced by 99% in testing.
- Fix problem where Load Data via FTP did not recognise IP addresses with leading or trailing spaces that caused the string to be greater than 15 characters e.g. “220.127.116.11 “. They were treated as hostnames not IP addresses.
- Create new reports from type 14, 15 and 64 records:VSAM StatisticsNon-VSAM StatisticsNon-VSAM SMS InformationNon-VSAM Cumulative SpaceNon-VSAM Space
- Create command line program to allow loading data to be automated with batch files.
- Show blocksizes greater than 32K from SMF30XBS in Job Detail report.
- Fix a security problem installing the license if the user does not have access to write to the shared Common Application Data directory.
- Allow filtering by userid in Dataset Activity report.
- Create 2 new reports:z/OS Unix Filesystem Activityz/OS Unix File Activityto report on type 92 records.
- Add filesystem level actions (mount/unmount/quiesce etc.) to the Dataset Activity report.
- Fix a problem where the trial period did not work under Windows 8.
- Fix formatting of Service by Service/Report Class charts with a large number of classes.
- Create a new report: Service Class Overview, showing a summary of Workload Manager goals, activity and delays for all service classes or active service classes during the selected time period.
- Allow charts and information from reports to be copied to the Windows clipboard so that they can be pasted into other applications.
- Modify WLM reports to allow reporting by sysplex or system.
- Modify the Service Class Detail report so that it no longer splits charts when a new policy is activated. Instead it will show details of multiple activations together where possible, and only split the chart if changes in the new policy require it.
- Add filtering by Sysplex to the Job Completion reports.
- Add Service Class and Report Class filtering to all the Job Completion reports.Consequently, the Job Service/Report Class Information report was removed. This report did not contain any additional information that was not contained in other reports, but allowed filtering of jobs by service or report class.
- Modify chart printing functions to reduce memory usage and avoid out of memory problems when printing to very high resolution printers.
- Correct an error printing reports containing multiple charts if you used Print Preview before printing.
- Correct an error setting the time range when clicking through from Job Status During Interval to Job Profile reports.If you clicked through from an “Ended” job in the Job Status During Interval Report to the Job Profile Report, then select the Job Completions report, the selected job was not shown because the time interval set did not include the job end record.As the job was “Ended” in the Job Status During Interval report, it should appear in the Job Completions report.
- Userid missing from Dataset Activity report
- If the original 30 day evaluation has expired, a new release will start a new 7 day evaluation to allow new features and fixes to be evaluated.
- Fix a crash displaying the MSU limit information on the system CPU Busy Report when there is no PRISM data e.g. when running under VM.
- New report: 4 Hour Rolling Average MSU
- Add 4 hour rolling average, capping and MSU limit information to System CPU Busy report
- New report: Normalized CPU by CPU Type. This report shows CPU time, plus the equivalent time if the zAAP and zIIP work ran on a normal CPU.
- Add 4 hour rolling average MSU to the RMF Service by Service and Report Class reports.
- Allow the selection of a particular service or report class in the RMF Service by Service and Report Class reports.
- Implement improved help system and begin rewrite of help pages.
- Fix a problem where file load functions etc. could hang after an earlier error without restarting the program.
- Fix a crash when an error occurs deleting an entry from the repository, and provide information about the error.
- Send to Excel button was not enabled correctly for reports with multiple tabs.
- Fix a crash sending data to Excel if the number of rows was a multiple of 500.
- Fix a problem where the file transfer would become very slow and effectively stop, if the transfer was using TLS and initial download speed was faster than the PC could process and compress the data. The problem could also result in out of memory errors, or sluggish performance in general on the PC.
- Fix a crash when sorting reports when the some rows do not have a value for that column.
- Avoid a crash in various functions if there is no active repository e.g. if the user cancels when initially prompted to create a repository.
- If there is an error reading some of the SMF data for a report, EasySMF will continue and report the error before showing the report with the available data, instead of failing the entire report.
- Fix a crash if you clicked the Back button after changing to a different data repository.
- Fix a crash when Send to Excel -> Send to New Workbook is selected without previously sending data to Excel.
- Fix error introduced in 1.1.0 where sections for type 70 records were not retrieved if PR/SM sections were not present – typically systems running under VM.
- Ignore times with negative values for CPU usage by LPAR report.
- Add function to send data from all tabular reports directly to Excel.
- Add reports for all sections of SMF type 30 and type 70 records.
- Fix a problem trying to change the data system for the CPU Consumption by LPAR report after selecting a system in another report.
- When switching to the CPU usage by LPAR report, include all LPARS in the chart by default, not just the system you have been working with.
- Fix a problem where the values in the CPU usage by LPAR report were incorrect if duplicate records were included.
- Fix a problem where the settings for the current report were not saved when the application was closed.
- Add “Check for Updates” function to Help menu.
- Reset evaluation period so that previous users get a new evaluation period.
- Fix a bug where zIIPs and zAAPs are reported with CPs in the MVS CPU busy reports.
- Fix a problem where the window warning that the license had expired could be hidden behind the main window if you switched away from the application while a report loaded.
- Allow Catalog and Select Data dialogs to be closed with Escape key.
- Improve the Load Data dialogs to reduce the number of steps required.
- Confirm before closing EasySMF if loading data is in progress.
- Modify Job Details report to incorporate information from all type 30 subtypes so that the report can show system tasks and incomplete jobs, rather than only completed jobs.
- Correct a KeyNotFound error in the System CPU Busy report if a CPU type is selected and there are no PR/SM Logical Processor Data sections for that CPU type e.g. under VM.
- Fix a crash when type 30 subtype 4 record(s) exist for a step, but no Completion section is found.
- Fix a crash if the displayed report was scrolled while another report was loading.
- Fix the error: 417: Expectation Failed when trying to submit a crash report through some proxies.
- Fix a crash if no data is found for the job specified in the Job Details report.
- Fix a bug where displayed report parameters could get out of sync with the report when using the Back and Forward buttons.
- Fixed a crash if EasySMF was closed while a report was loading.
- Fix missing system ID in SMF Data Lost report.
- Fix incorrect start time in SMF Data Lost report.
- Correct a bug where the day of the month was calculated incorrectly when moving backwards and forwards by month.
- Change the end of the time range to be an even minute instead of 23:59:59.99… etc. so that an accurate end time can be entered manually.
- Fix a crash if loading of the Service by Program Name report is interrupted.
- Perform DD consolidation for EXCP sections in the Job Detail report. Report how many DD sections were consolidated for each entry.
- Report how many type 30 records were found for each job during the interval in the Job Status During Interval report.
- Change the export to CSV function to use a culture-specific separator character, so that it works correctly for cultures that use the comma as the decimal point.
- Printing Support
- Add READTAPEFORMAT=S to FTP SITE commands to so that VBS format tapes are loaded correctly.
- Allow SITE commands used for the file transfer to be modified.
- Add diagnostics and more informative error messages for various problems with the input data (missing RDW etc.)
- Allow data to be exported uncompressed, for faster processing where disk space doesn’t need to be conserved.
- Fix error exporting Dataset Activity report to CSV format.
- Fix out of memory error after loading many records from a single file (seen after approximately 8 million records)
- Fix problems with exporting and importing large amounts of data (compression ratio is also improved).
- Allow the timeout value to be changed for FTP transfers, to allow for time for tape positioning etc.
- Change the CPU usage by LPAR report to display a percentage, if the SMF records contain the number of physical CPUs.
- Combined “RMF Service by Service Class” and “RMF Service by Service Class Summary” reports into a single report with multiple tabs and added a tab page with the data in tabular form. Also for RMF Service by Report Class reports.
- Added tab pages with the data in tabular format to the other Service by… reports.
- Add ability to export data in CSV format to all tabular reports, for importing into Excel etc.
- Fixed a bug extracting job accounting information from type 30 records.
- Add job accounting fields to Job Completions report.
- Add support for files downloaded using RECFM=U e.g. for use with SAS. These files include the BDW as well as the RDW.
- Correct problem with EXCP count values. Field SMF30TEX seems to sometimes be present but invalid, so only use it when SMF30TEP is flagged as invalid.
- Improve time range selection logic:
- Set initial start/end times to a time period with data if possible.
- Set the “All” time period to the earliest and latest SMF record times. (If there is a long time between earliest and latest SMF records, you probably don’t want to use the “All” time range.)
- Update the “All” time period when data is loaded.
- Fix index out of range crash when loading records.
- Fix crash creating type 72 reports.
- Initial Release