This section contains the release notes of AWS Blu Age Runtime and Modernization Tools from version 3.5.0 onward, most recent first, organized by version number.
Note
For release notes predating this document, contact AWS Blu Age delivery services. For information
about the latest Blu Insights features, see Blu
Insights releases
Topics
Release notes 4.6.0
Release date: January 24, 2025
We've tested this version of the AWS Blu Age Runtime with the following stack. Other versions might also be compatible.
Component | Version tested |
Java | Java 17 |
Presentation layer | Node JS 22.11.0 |
Npm 10.9.0 | |
Angular 18 | |
Service layer | Spring Boot 3.3.5 |
Spring Core 6.1.14 | |
Spring statemachine 4.0.0 | |
Persistence layer | PostgreSQL engine 14 |
Oracle 21c | |
Application server | Apache Tomcat 10.1.17 |
Runtime release 4.6.0
zOS
Improvements
-
COBOL
-
Enhanced
WRITE ADVANCING
capabilities with improved accuracy for sequential file line writing, supporting multiple contexts (BEFORE
>,AFTER
, and Implicit uses) and fullPAGE
statement implementation -
Enhanced support for
FILLER
for cases when a nested table FILLER is used as a group with a table as child -
Improved access to child of ambiguous parents inside one segment
-
Added support for Numeric Edited type with picture='-----'
-
Improved display handling of BINARY type data
-
-
PL/I
-
Improved conversion of binary literal values in assignment statements
-
-
JCL — SORT
-
Improved support for consecutive
OVERLAY
parameters in the sameOUTFIL
statement
-
-
JCL — DSNUTILB
-
Optimized loading mechanisms, resulting in 25% faster data retrieval times
-
Enhanced support for XA transactions for external business data-sources
-
-
JCL — INFUTILB
-
UNLOAD - Added support of FLOAT8 data type
-
-
JCL — IDCAMS
-
Optimized handling of return codes for
IDCAMS
commands -
Added support to delete all GDG generations based on GDG base name
-
Added support for files deletion without
NONVSAM
parameter
-
-
JCL — Misc
-
Enhanced Batch Restart Metadata handling to improve workflow status management during restart mode
-
-
Blusam
-
Added support of TTL for Blusam cache in both Ehcache and Redis implementations
-
Improved support for
DEPENDING ON
field on COBOL File DescriptionFD
for Blusam KSDS file -
Enhanced thread safety in Redis Blusam read operations for simultaneous multi-job execution
-
Improved Blusam schema creation for better robustness regarding database user privileges
-
Improved padding to the right on variable block concatenated input dataset
READ
-
-
BAC
-
Added support for dataset creation in Multi-schema mode, including a new "Schema" column to indicate schema association for each dataset
-
-
MFS
-
Improved propagation of user info from Front-end to shared context, ensuring proper propagation to JHDB context
-
Added support for IBM MQ IMS information header on XA transactions
-
-
SQL
-
Enhanced
SQLCODE
handling to set 305 during cursor fetch when all column values are NULL -
Added support for
IN
clause involvingOCCURS
parameter forWHERE
conditions -
Added support for
DECLARE GLOBAL
temporary table statements -
Extended DB2 SQL support for midnight 24H DB2 specific timestamp format thru dedicated conversions at execution according targeted database engine
-
-
Misc
-
Enhanced IBM930 charset to allow both Unicode characters U+2014 and U+2015 to correspond to x'44x4A' in EBCDIC
-
TDQUEUE - Refactored SQS implementation to support multi-threading
-
Improved GDG dataset name resolution to allow customer to archive files with the same GDG prefix (e.g.
A.B.C.G0002V00
is current file andA.B.C.G0001V00.1236
is an archive file) -
Enhanced
SQLConverter::toPgmDate/Time/Timestamp
to align the date computation according to the legacy format
-
AS400
New features
-
Added support for dynamically created AS400 tables for flat files and duplicated entities, enabling access to tables created via CL commands like CRTPF, CRTDUPOBJ, and CPYF
-
Added a service to support library list through a registry that handles the default library for every tables
Improvements
-
CL
-
CLRPFM - Improved handling of member when the command is called for QTEMP library
-
SMBJOB - Improved support of parameter
PARM
to handle dynamically built argument -
CPYFRMIMPF - Added support for parameter
TIMFMT
,ERRRCDFILE
, andERRRCDOPT
-
CPYFRMIMPF - Improved support of database alphanumeric values that contain single quotes
-
CPYF - Refined the command query construction for multi-member
FROM
files withTOMBR(*ALL)
-
CPYF - Enhanced support to handle
FMTOPT
parameter forMAP DROP
-
CPYTOIMPF - Improved support of parameter
FROMFILE
to handleMEMBER
of the table -
RTVUSRPRF - Added support for parameter
RTNUSRPRF
-
DSPDBR - Overhaul the command to match expected legacy behavior of printing out information about views the exist on a table, as well as the library and member they're a part of
-
DSPFD - Improved support of parameter
FILE
-
DSPFD - Improved support of parameter
TYPE MBR
output to include additional values: mbfile, mblib, mbfcdt, mfccn
-
-
Screen
-
Improved cursor position priority for
DSPATR(PC)
-
Improved the validation of subfile record fields by ignoring the front-end validation of “protected” fields
-
Improved support for initializing records in workstation with multiple array fields sharing component names
-
Enhanced support for response indicators in
DSPF
keywords (SFLMSG
,SFLMSGID
,CHANGE
and command keys)
-
-
RPG
-
Enhanced program cycle support for a better handling of the fields read from primary/secondary files
-
Added support for Split Control Field for primary/secondary files reading
-
Enhanced
%SUBST
built-in method to handle double-byte fields in compare statements -
Improved support of ZERO indicator for MVR operation
-
-
DDS
-
Added support of multi-format logical files with record format that refer to the same physical record
-
-
DataQueue
-
Improved job interruption handling for jobs waiting on data queue messages by cleaning up the consumer during interrupts
-
Migrated from RabbitMQ to Spring-AMQP for better channel management and thread scaling
-
-
Misc
-
Improved SQLExecutorBuilder to support queries with multiple white spaces and open braces without leading spaces
-
Improved DAO support to handle correctly the cursor positioning while changing the reading direction
-
Refined key initialization after retrieve and delete operations to ensure proper removal of related records before inserting updated records
-
Optimized DAO mapper generated code to improve time execution performances
-
AWS Blu Age Transformation Engine 4.6.0
zOS
Improvements
-
COBOL
-
Improved parsing of
RESERVE
clause with optionalAREA/AREAS
literal -
Enhanced COBOL support with optional
DATA DIVISION
declaration, supporting streamlined test cases -
Improved special names paragraph by adding support for
ALPHABET
,SYMBOLIC
, andCLASS
clauses, switches, andFORMFEED
variable -
Added support for
SYSIN
as a Mnemonic Name inACCEPT
statements -
Enhanced
PICTURE
clause support for "$", "0", "CR", "DB" symbols inPIC
logical size calculations -
Improved
USE
statement transformation for multiple file scenarios -
Enhanced
ALTER
statement transformation for multiple alterations -
Added support for figurative constants
ZERO
HIGH-VALUE
LOW-VALUES
indelimited by
clause
-
-
SQL
-
Improved transformation of default value for postgreSQL target to handle quotes around the
CURRENT_TIMESTAMP
default value -
Handle
WITH CHECK OPTION
clause of SQL views
-
AS400
Improvements
-
DDS
-
Improved support of multi-format logical files that refer to the same physical record multiple times
-
-
RPG
-
Enhanced
MOVE
andMOVEL
operations to better handle padding zeros -
Enhanced handling of nested function calls in evaluations and conditions
-
-
COBOL400
-
Added support for transforming the
IN
keyword inSELECT
statements -
Improved support for missing dots in data description entries, aligning with the latest COBOL version where dots are assumed when missing
-
Enhanced cursor positioning on
REWRITE
operations -
Enhanced support for
START
statement to lock the record at current file position -
Improved support for compiler directive
COPY DDS
to generate all input/output data structure
-
-
Misc
-
StateMachines - Improved transformation to enhance composite states declaration in alignment with stateless4j paradigm
-
Improved sanitization for LF files containing special characters
-
Improved support of figurative
*ALL
with hexadecimal values -
Improved
MOVE
operation support for implicit conversion from numeric to character types -
Optimized report bean generation to sort by associated printer name, preventing duplicate or conflicting names
-
Improved support of keyword
EXTFILE
combined withUSROPN
to handle literal value and formatlibname/filename
-
Release notes 4.5.0
Release date: December 20, 2024
This release of AWS Blu Age Runtime and AWS Blu Age Transformation Engines includes the following key features.
-
JCL support — It is now possible to generate and execute JCL scripts on the fly within the runtime context. This feature adds flexibility and automation in batch job processing. We've updated the support for JCL utilities in the runtime, with a set of improvements to SORT, ICETOOL, INFUTILB, and IDCAMS (see details in the following sections). These enhancements offer more robust and efficient data processing capabilities.
-
Binding Directories and Activation Groups Support for AS/400 Modernized Applications — Binding Directories enhance system organization by managing exported procedure references, while Activation Groups streamline execution context management. These features improve precision and reliability, robust resource management, and optimized system interactions. The result is a more resilient, organized, and efficient system for modernized AS400 applications.
-
Dependencies updates: — Update of all frontend frameworks (BAC/JAC & modernized applications) to the long-term support (LTS) versions. The update of Angular from v17 to v18 introduces a new reactivity model and streamlined state management, reducing complexity and improving application maintenance for developers. Node.JS has also been updated from v20 to v22.
We've tested this version of the AWS Blu Age Runtime with the following stack. Other versions might also be compatible.
Component | Version tested |
Java | Java 17 |
Presentation layer | Node JS 22.11.0 |
Npm 10.9.0 | |
Angular 18 | |
Service layer | Spring Boot 3.3.5 |
Spring Core 6.1.14 | |
Spring statemachine 4.0.0 | |
Persistence layer | PostgreSQL engine 14 |
Oracle 21c | |
Application server | Apache Tomcat 10.1.17 |
Runtime release 4.5.0
zOS
New features
-
JCL — Added ability to invoke a batch job from online programs. We added a service to handle JCL script stored in a dedicated TDQueue when a modernized program generates it on the fly. This service makes it possible to reconstruct the JCL message, refactors this message into a groovy script, and runs this groovy script.
-
ADABAS — Added support for ADABAS program. With this support, the runtime emulates the ADABAS commands for database access (available for Oracle only).
Improvements
-
COBOL
-
Enhanced support of DISPLAY statement leveraging the NO ADVANCING option
-
Increased accuracy in management of currency signs allowing the user to benefit from a more accurate transformed COBOL structure
-
Improved support for value assignment when moving an unsigned field to a signed field and vice versa
-
Improved support for block size for GDG files and concatenated files
-
-
CICS
-
Added support for OpenStatus and EnableStatus of Blusam datasets
-
Added support for the
SET DATASET
command
-
-
JCL — SORT
-
Improved handling of data set record size
-
Improved support for the
OUTFIL
statement to produce output files containing only the records from the input files according values specified in STARTREC andENDREC
options -
Enhanced support of
OVERLAY
statements -
Improved support for the
OUTREC
statement to handle a variant of theEDIT
option. We now supportEDIT(...)
in addition toEDIT=(...)
-
Added support for the pattern(p,m,f,OPERATOR,p2,m2,f2) in arithmetical operations
-
You can use the
DUMMY
file clause of theSORT
program from a JCL to handle empty input files and benefit from empty file generation
-
-
JCL — ICETOOL
-
Enhanced support for the
SORT FIELDS=COPY
statement through theSORT
program
-
-
JCL — INFUTILB
-
Improved support for record size computing if it is not specified in the JCL and the property DFSIGDCB is disabled
-
Improved UNLOAD with INTO clause for DECIMAL by updating the precision and scale according to the into clause fields
-
Improved format method in VarcharFormatter
-
Enhanced support with a new configurable option that allows users to control how VARCHAR fields are handled during data unloading as regards as padding behavior ensuring flexibility and accuracy in data extraction processes.
-
-
JCL — IDCAMS
-
Improved deletion for file with wildcard suffix and name defined either directly either enclosed by parenthesis or by simple quotes
-
Improved accuracy to leverage MAXCC return code
-
-
JCL — IKJEFT01 - Added feature flag
systin.encoding
(default =ASCII
) to support specific encoding for SYSTSIN file dataset -
JCL — Improved support for BDW property for a generated output file in a JCL step and subsequent steps use the same file system as input and
DISP=PASS
-
MF
-
Improved support for 2-byte header for Record Sequential file
-
Improved handling of return codes for the DELETE command
-
Improved Write Advancing Line for Record Sequential file
-
-
Redis
-
Improved Redis template initialization for JCL checkpoints and Jics TSQueues
-
Improved Redis dataset record lock information accessibility and readability
-
-
SQL
-
Improved parsing of FOREIGN KEY with REFERENCES clause
-
Provided an extendable caching feature to store original legacy graphic types in the database, enhancing data traceability and facilitate graphic compute
-
Enhanced parsing support of CASE WHEN pattern of SQL queries across runtime utilities
-
Improved SQL Postgres Blu Age built-in function gwdecimal the runtime relies on to fit with DECIMAL DB2 built-in function.
-
-
Misc
-
Enhanced support of NumericEditedType using SIGN operand
-
Improved primary datasource configuration generation in SpringBootLauncher in the modernized application
-
Enhanced flexibility to segregate application logs from path related to the called job.
-
Improved support for Blank value in comparing fields from NumberUtils
-
-
FILE — Improved support of variable blocks data sets in the underlying files
-
MQ — Improved MQ connection management for high availability environment ready
-
Improved MQ Queue compatibility by adding support for non-JMS clients to enhance encoding and character set handling
-
Improved support for ANSI Control characters for Ebcdic file
AS400
New features
-
Added support for Exported Data within Bound Programs
-
Added ILE specific support for the division by zero
Improvements
-
COBOL400
-
Improved support of EOF in File Status
-
Increase the precision support of Cobol START statement to support EQUAL keyword into KEY IS clause
-
-
CL
-
Added support for command UPDENVPARM
-
CRTPF - Added support for table accessed with a partition
-
RCVF - Improved support of logical files with override
-
FTP - Improved support of logical I/O files with OVRDBF and enhanced OUTPUT log and added support for I/O files in the working directory
-
CPYFRMIMPF - Added support for parameters
ERRRCDFILE
,TIMFMT
,ERRRCDOPT
-
CPYF - Improved QTEMP partition creation
-
CPYF - Added monitoring message when the *FROM file is empty
-
OVRPRTF - Added support for new parameters:
PAGESIZE
,OUTQ
,DEV
,LIP
,CPI
,OVRFLOW
,LVLCHK
,FORMTYPE
,HOLD
-
Increased accuracy when using the
FMTOPT
parameter withMAP
andDROP
options in theCPYF
command to allow copying data from a source file with extra columns to a target file -
Increased accuracy in managing the mapping of file system path wildcard patterns in the
RMVLNK
command -
The
RMVM
(Remove Virtual Machine) command has been enhanced to handleDROP
partition tables ensuring complete cleanup of related resources. -
OPNQRYF - Improved support of parameter *FILE for command
-
Implemented CPF0000 handling to encompass all CPFx messages
-
CHGDTAARA - Added support for *ALL keyword to change the entire data area
-
-
Screen
-
Improved tables/subfile displaying by increasing accuracy for scrolling and position/priority of cursor
-
Improved
CHECK(RZ)
andCHECK(RB)
functionality for non-numeric and non-signed fields -
Improved support of help screen feature for keyword
HLPARA
-
-
RPG
-
Improved support of built-in
%SubDt
-
Improved support for procedure using a local data structure which is externally-described
-
Added support for optional error code parameter
QMHSNDPM
,QMHRMVPM
, andQMHRCVPM
-
Enhanced support of
%SUBST
built-in method to better handle double bytes fields. -
Added support for built-in %TLOOKUP and its variants (%TLOOKUPGE, %TLOOKUPGT, %TLOOKUPLE, %TLOOKUPLT)
-
-
Dataarea
-
Improved support for OUT operation when factor1 is blank
-
Improved concurrent reads on the same data area
-
Added configuration variable
blu4iv.dtaara.library.disable
to disable libraries for data area -
Extended support to leverage named libraries thru data area operations enabling user to structure data area location as he wish.
-
-
DataQueue
-
Improved RabbitMQ channel usage
-
Improved RabbitMQ Consumer to only attempt to cancel the consumer once
-
Improved data queue retrieve from RabbitMQ by only attempting basicGet when wait time is 0
-
-
Misc
-
User Space - Improved behavior when multiple jobs attempt to retrieve the same userspace simultaneously
-
Improved support of uncommitted record deletion under commitment control
-
Entity - Improved support for consecutive omits as OMIT carries implicit
AND
meaning -
Added support for camel case in entities mappers setters to handle customs named defined through additional refactoring
-
Improved propagation of user information from AS400 environment transactions thru whole application.
-
Improved accuracy when ending a job scheduled by Quartz in case of interruption case.
-
Improved Commitment Control support to make it program-scope
-
AWS Blu Age Transformation Engine 4.5.0
zOS
Improvements
-
JCL - Improved groovy generation for KSDS dataset based on LISTCAT parsing
-
COBOL
-
Improved parsing of
COPY-REPLACING
statement to handle replacement of qualified subfield when ambiguity for this subfield name is present -
Improved support for
SYSOUT
defined inSPECIAL-NAMES
statement -
Improved support of figurative ZEROES in
ADD n TO ZERO
statement -
Improved support for
REPLACE
statement to handle multi-line issue by flattening multi-line keys and text blocks -
Improved support for arithmetic operations ADD/SUBTRACT/MULTIPLY/DIVIDE with
GIVING
clause -
Initiated parsing support of REPORT SECTION and its related actions (INITIATE, TERMINATE, GENERATE report)
-
-
Misc - Improve weather report generation and robustness
AS400
Improvements
-
DDS
-
Improved support of implicit length of type DATE
-
Improved support of stop-zero-suppression character on keyword EDITWORD
-
Improved support of column name DESC as it is a reserved word in DB
-
-
RPG
-
Improved support of built-in %TIME
-
Improved generation of EVALR statements to handle assignment from a string value to a variable of shorter length with a better right-adjustement
-
Enhanced SQL parsing around options setting
-
Improved support for PSDS initialization in NOMAIN RPGLE programs
-
Improved support of keyword LIKE to define a DDS numeric field as Packed, no matter its external description
-
Improved file name sanitizing by replacing “$” by “DL”
-
Improved support of built-in %SUBST to handle double byte values
-
-
COBOL400
-
Screen - Improved support of DSPF record around I/O operations
-
-
CL
-
Improved renaming of reserved variable names
-
Improved support of Select/Omits conditions to handle multiple formats file
-
-
Misc
-
Reduced duplicated entities around file operations (EOF, FOUND, EQUAL)
-
Improved generation of JRXML files for QPRINT, a standard printer on AS/400. When it is used, the created JSON file will not contain any reference to the program or the file. Only one JRXML file is generated (QPRINT-QPRINT.jrxml)
-
Improved the display of additional message information for components displaying messages from program queue
-
Release notes 4.4.0
Release date: November 13, 2024
This release of AWS Blu Age Runtime and Transformation Engines focuses on upgrading critical dependencies and supported technologies while boosting performance in multiple functionalities. Some key features and changes in this release include:
-
Dependencies updates: Console applications (BAC and JAC), and modernized applications are now running on Bootstrap 5. The AWS Blu Age Runtime is now powered by Spring Boot 3.3.5 framework.
-
Performance: Improved the performance of the state machines execution (up to 10x faster), thanks to a new implementation that overcomes a performance degradation after upgrading the Spring State Machine library from version 2.5.1 to 4.0.0. This upgrade was not optional as 2.5.1 version was no more maintained and contains Critical and High CVEs. It includes a runtime state machine implementation on the platform to a new library, with a lightweight and efficient state machine implementation, free of CVE, and with better overall performance.
-
Simplification of database access: Completed a significant overhaul of the components used to access the database, including DAOs, JPA entities, DDS DataSimplifier entities, and Mappers. This redesign was driven by the need to provide better support for the OVRDBF (Override Database File) feature common in AS400 projects. It allows to handle more cases with a simplified architecture for the generated code.
We tested this version of the AWS Blu Age Runtime with the following stack. Other component versions might also be compatible.
Component | Version tested |
Java | Java 17 |
Presentation layer | Node JS 18.18 |
Npm 9.8 | |
Angular 17 | |
Service layer | Spring Boot 3.3.5 |
Spring Core 6.1.14 | |
Spring statemachine 4.0.0 | |
Persistence layer | PostgreSQL engine 14 |
Oracle 21c | |
Application server | Apache Tomcat 10.1.17 |
For more information about the changes included in this release, see the following sections.
Runtime release 4.4.0
zOS
New features
-
COBOL - Added support for JSON GENERATE statement
-
COBOL - Added support for control blocks
-
MF - Added support for FCDREG compiler directive
-
Blusam - Added feature VSAM file-sets with an implementation based on database schema - Only PostgresSQL supported
-
Blusam - Added support for handling TTL (Time to live) for Blusam cached data items (Redis cache engine)
-
JCL - IDCAMS - Added new property
idcams.encoding.forced
to force charset used to decode SYSIN card -
JICS - Extended the
jics.db.dataScriptLocation
property fromapplication-main.yml
to accept a list of file and folder paths. The order of the list matters. The first SQL file is executed first and so on. When a folder is executed, the SQL scripts it contains are executed in no definite order. -
Added support of CEE3ABD utility
Improvements
-
Blusam - Improved loading time and memory footprint from legacy large data sets to Blusam for customers using PostgreSQL engine (we observed up to an 8-fold increase in loading speed for large data sets)
-
Blusam - Improved exportDataSetToS3 API with Credentials Support
-
Blusam - Improved LISTCAT uploading files for data sets creation
-
Blusam - Improved support for Dynamic READ using explicit KEY
-
Blusam - Improved the write-behind mechanism logic
-
JCL - Enhanced JES support to improve file locking in parallel execution
-
JCL - Added support for statement
INCLUDE MEMBER
-
JCL - DNSUTILB - Improved support for duplicate key to handle special case when primary key contains spaces
-
JCL - DSNUTILB - Improved LoadTask to optimize performance when loading GRAPHIC data
-
JCL - INFUTILB - Added support for
fetchsize
whenchunksize
is not defined -
JCL - INFUTILB - Improved support to query returning empty resultset
-
JCL - INFUTILB - Improved robustness when processing data in CHUNK
-
JCL - INFUTILB - Improved support for unload with nullable field
-
JCL - INFUTILB - Improved support for numeric type
-
JCL - INFUTILB - Improved unload for Nullable Field
-
JCL - SORT - Improved support for OUTREC syntax
-
JCL - SORT - Improved parsing of statement DATE1
-
JCL - SORT - Improved support of clause INREC PARSE with RDW
-
JCL - SORT - Improved fields formatting using editing masks
-
JCL - SORT - Improved support of 'SubString' in OUTREC
-
JCL - SORT - Improved support for MF compatible CARD
-
JCL - UNLOAD - Improved support of field size with Postgresql
-
JCL - IDCAMS - Improved performance for File Loading VSAM data set by introducing bulk mode
-
PL/1 - Enhances support for NumericEditedType formatting to prevent scale discrepancies
-
IMS - Improved support for IMS Database _right column in NodeSorter
-
CICS - Improved command
RECEIVE MAP
withSET
and noINTO
-
BMS - Improved support of field initial value
-
SQL - Improved DateTimeFormat parsing for
ddMMMyy
pattern -
COBOL - Improved support for NumericEditedType value when decimal point not considered while getting value
-
Improved support for reading variable-length field in line-sequential file
-
Improved support for record size inheritance from dataset catalog for GDG files
-
Improved support for printing report by allowing customizable advancing lines
-
Improved initialization of record data for Variable Block (VB) Files
GS21
New features
-
Screen - Added support for PSAM files
-
Screen - Added support for ATTR2
-
Added support for AIM (Advanced Information Manager) ecosystem.
-
Added PED support in AIM
Improvements
-
Improved BitUtils signatures to handle RangeReference
-
Improved support for DummyFileConfiguration to add recordSize / rdw / bdw / blksize / blkszlim attributes
-
Improved support for VPOINT statement to handle the case of a record not found
-
Added robustness when accessing record byte array
-
Improved JEF charset character mapping
-
Improved support for handling arrays and conditions in JDBC mapping
-
Improved support for SQL requests in the different NDB statements, better handling the variations of SQL syntaxes using constants for each part of an SQL query.
-
Improved support for GS21 PackedType last nibble to be C, D or F for numeric validation
-
Screen - Improved support for ACSAPI and DefaultPsamController for SPA and ENTER
-
Screen - Enhanced support of ACSAPI and NDB verbs
AS400
New features
-
Added support for Multi-record format Database files
-
Redesigned the AS400 Database access framework
-
Enhanced capabilities around file overriding
-
Removed obsolete components and reduce complexity
-
Streamlined the code generated from legacy programs
-
Integrated DAOCycleManager component into the Blu4iv plugin, enabling us to leverage the AS400-specific features of our custom runtime.
-
-
JOB - Improved support for job management (Quartz) to add the ability to interrupt a job/group of jobs. Added a REST API endpoint to interrupt a job with the specified execution id (unique to each job since it is a primary key). Upon successful interruption, the runtime update the status of the job to “INTERRUPTED”.
-
Added support for utility program CEERAN0
-
Added support for passive mode. Added the YAML
configuration gapwalk-application.cl:ftpservice:passive
to enable passive mode -
Added feature to create QTEMP sessions and delay QTEMP cleaning
-
Added support for compilation feature BNDDIR to define explicit dependencies between programs
-
Added support for Activation Groups mechanism
Improvements
-
CL - Improved RMVMSG command on program message queue to handle *PREV keyword
-
CL - Improved support for overrides in OPNQRYF
-
CL - Added support for the MSGLEN and SECLVLLEN parameters for the RTVMSG command
-
CL - Improved support for CRTDUPOBJ to manage case when NEWOBJ is not passed and added support for generic table names
-
CL - Improved support of FTP to handle parameters GET, RMTSYS and BINARY
-
CL - Improved CLRPFM query performance and added an option to use TRUNCATE instead of DELETE
-
CL - Improved SBMJOB to properly handle USER parameter to use it as the USER when a job is submitted
-
CL - Improved DLTOVR command support to handle the case of *ALL
-
Data Area - Improved support for Blu4DataArea by adding logging for Exception handling
-
Data Area - Improved support for Blu4DataArea to fetch a new DataAreaDao instance for every thread
-
Data Area - Improved data area locks, avoiding locks at record level and instead using the newly implemented locking mechanism
-
Data Area - Data Area write operation now continues with execution when a lock isn't acquired and an error indicator is provided
-
Report - Improved support for report output path/naming convention for the printed reports. Allowed customers to customize the report output path and the name as well. The customer can specify their own path and naming convention without impacting any other project.
-
JOB - Improved support for job management (Quartz) to update job status in the event of abnormal job termination. e.g.: ‘Shutdown’ or ‘abnormal shutdown’ of Tomcat
-
Screen - Improved handling of numerical value on field with edit word with minus
-
Screen - Improved rendering popup with only titleColorTop
-
Screen - Improved support for help information retrieving to handle case when general help item is not found
-
Screen - Improved displaying the 'additional information' screen when pressing F1 on subfile message line
-
Screen - Improved display of message line footers for SFLMSG
-
Screen - Improved Front End to remove a Record in its entirety when a new record overlaps it
-
Queuing - Improved RabbitMQ message retrieval to consume fewer resources
-
Queuing - Improved RabbitMQ Data Queue implementation to only retrieve one message at a time.
-
SQL - Improved SQLExecutorBuilder handling of SQLCODE for dynamic CREATE and DROP table queries
-
SQL - Improved support of OVRDBF on query
-
SQL - Improved SQLExecutorBuilder so that OVRDBF overrides are applied to prepared statements
-
RPG - Improved support for Input and Output specifications of Program described Disk files
-
RPG - Improved support for Primary and Secondary File Read with MR (Matching Records) indicator. The retrieve order of a DAO Cycle with match fields has been improved.
-
RPG - Improved support for Primary and Secondary files. Improvement on the update Primary files and output Secondary files update/write code generation.
-
RPG - Added support for RETURN statement in free-form format
-
RPG - Improved transformation and runtime handling of numeric decimal assignments,
-
RPG - Improved generation of binary variables
-
RPG - Improved support for EDITC
-
RPG - Improved handling of local data area
-
Improved support of DDS fields shared by multiple device type (DISK, WORKSATION, PRINTER)
-
Improved override handling so that overrides on PFs will no longer affect LFs
-
Improved Blu4ivWebController not to re-set the username and userid to default values
-
Improved index adjusting during record reads when the read direction changes
-
Improved cursor placement on record reads after update/delete operations
-
Improved support of reading on a multi-entities DAO when the reading direction changes
-
Improved support for User Spaces to avoid instance to be reused by all threads instead of each thread having its own instance
-
Improved support of multi-threading concurrent access on record read
-
Improved the storing of the username/userid in SharedContext through YML configuration
-
Improved Locked Records Release with Updated Values
-
Added support for OPM compiler specific behavior for NEXT SENTENCE statement
Transversal capabilities
New features
-
Added new metadata.ini property
legacy.compilerto
specify the legacy compiler of the artifacts to transform. The support of some COBOL statements, like NEXT SENTENCE, is different depending on the value you set.-
"ZOS" for a z/OS legacy system.
-
"ILE" or "OPM" for AS400 system. Default = "ILE" when
legacy.system
= "as400"
-
Improvements
-
Front-End - Redesigned the screen field components to expand the range of supported field types. This enhancement enables the runtime to accommodate a wider variety of user input and data requirements involved in AS400.
-
Improved method
isValid()
for separate sign byte on ZonedType -
Improved support for
StringConcatenationBuilder::withPointer
for concatenation involving CRLF -
Improved support for specific double bytes encoding to make them thread-safe
-
Improved state machine performances by integrating a new framework
-
Improved algorithm for assignment optimization to prevent unexpected rewriting
AWS Blu Age Transformation Engine 4.4.0
zOS
Improvements
-
LISTCAT - Improved parser to prevent duplicate entries
-
LISTCAT - Improved support of ESDS to file system in JCL / Groovy
-
CICS - Improved support for LENGTH OF for CICS statements
AS400
Improvements
-
DDS Record generation enhancement
-
Improved the support of DDS record to generate entities that correspond to the DDS record structure
-
Provided support for shared fields and mapping functions that match better with the legacy
-
Improved the handling of both externally-described and program-described files
-
-
RPG - Improved RPG detection for module with only free form
-
RPG - Improved support for COPY statement to ignore keyword
*LIBL/
as prefix to locate an application copybook -
RPG - PF - Improved support for input specification with physical records from pfile
-
RPG - Added support of On-Exit statement
-
RPG - Improved support of LikeRec keyword
-
RPG - Improved mapping of renamed DSPF fields
-
CL - Improved field name resolving
-
COBOL - Improved support of conversion from hexadecimal to character
-
Improved support for Decimal type generation
-
Improved support of FIXME message for unsupported legacy code (display whole legacy line)
-
Improved performance on AWS Transformation Engine (AS400 parsing step)
-
Improved support of Keyword LikeRec to align it with File Specifications
-
Improved support of built-in function %Diff
-
Added support for special character Currency sign on DSPF label
Release notes 4.3.0
Release date: September 16, 2024
This release of AWS Blu Age Runtime and Modernization Tools focuses on extending the capabilities and coverage to modernize mainframe functionalities. Some key features and changes in this release include:
-
CICS: Additional support to exchange data from the terminals, and run transactions with incoming data by supporting the SEND MAP command with Map Reference.
-
JCL: New capability that allows to restart the most recent execution of a batch job from a previously failed JCL/PROC step, or trigger a delayed restart by bypassing previously executed steps. This provides greater control over batch processing using persisted step-level checkpoints.
-
AS400: Additional library support, enhanced performance and robustness of commonly used commands such as CPYF, OVRDBF, SBMJOB, and OPNQRYF and many more.
We tested this version of the AWS Blu Age Runtime with the following stack. Other component versions might also be compatible.
Component | Version tested |
Java | Java 17 |
Presentation layer | Node JS 18.18 |
Npm 9.8 | |
Angular 17 | |
Service layer | Spring Boot 3.2.5 |
Spring Core 6.1.5 | |
Spring statemachine 4.0.0 | |
Persistence layer | PostgreSQL engine 14 |
Oracle 21c | |
Application server | Apache Tomcat 10.1.17 |
For more information about the changes included in this release, see the following sections.
Runtime release 4.3.0
zOS
New features
-
CICS - Added Support for Map Reference in SEND MAP command
-
CICS - Added support for RECEIVE command and support for running transaction with data from the
JicsTransactionRunner
screen -
Added support for IIH header for the JMS messages
-
COBOL - Added support for multiple embedded spaces in Pseudo-text for REPLACING statement
-
COBOL - Added support for JSON PARSE statement
-
Blusam - Added support for KMS to feature “Export dataset”
-
BAC - Added the configuration of
application-main.yaml
to define record size to filter loaded masks matching with this record size -
JCL - INFUTILB - Added support for the keyword INTO as part of BMC control statement
-
GS21 - Added SOSI handling for JEF encoding
-
GS21 - JCL - Added KDJBR14 as an alias of IEFBR14
-
GS21 - JCL - Added KQCAMS as an alias of IDCAMS
-
MF - Added support for COBOL MF Compatible File dependingOn field support
-
MF - Added support for SORT mechanism for COBOL MF Compatible file
-
MF - Added support for COBOL MF Compatible open non-optional missing file
Improvements
-
JCL - DSNUTILB - Improved LOAD operation with ZONED DECIMAL Type
-
JCL - DSNUTILB - Added support of duplicate key
-
JCL - DSNUTILB - Added support for rollback mechanism on LOAD command
-
JCL - INFUTILB - Improved UNLOAD with new properties FETCHSIZE and CHUNKSIZE
-
JCL - IKJEFT1A - Enhanced SYSTSIN file reading by adding current charset
-
JCL - DFSORT - Added support for option DATE4 & DATE5
-
JCL - DFSORT - Added support for case of Variable Block type as input and Fixed Block type as output
-
JCL - DFSORT - Added support for ALTSEQ
-
JCL - Enhanced checkpoint metadata with job web identifier
-
JCL - Improved Batch restart checkpoint purge for REDIS
-
IMS - Implemented EXPRESS function for PURGE command
-
IMS - Added support for options PCBNAME and LIST for PCB statement
-
COBOL - Added support for GO TO statement without target
-
CICS - Improved support for INTO statement with RecordAdaptable in READQ TS
-
CICS - Improved support for INQUIRE TRANSACTION command
-
CICS - Improved support for setBytes in READNEXT command
-
CICS - Improved support for START command without CHANNEL option
-
CICS - Added Support for Reference type for Inquire TSQueue
-
CICS - Improved support for RECEIVE MAP command when map and mapset are Reference
-
CICS - Improved support for options FROM and LENGTH for RECEIVE MAP command
-
CICS - Added support of RecordAdaptable attribute
-
CICS - Improved support for RECEIVE command to handle overflow
-
CICS - Added support for slice rule in CICS statements
-
CICS - Improved support for linkage structures DFHCOMMAREA and DFHEIBLK. The transformation engine supports more implicit definitions
-
CICS - Added support for options START, NEXT and END for INQUIRE CONNECTION command
-
CICS - Added support for both type ‘int’ and ‘reference’ for option LENGTH of RECEIVE command
-
CICS - Enhanced support for parsing INQUIRE NETNAME command
-
CICS - Added support for group name for JicsQueueBuilder
-
Blusam - Added support for indexed file starting with generic key
-
Blusam - Improved Blusam loaders
-
BAC - Improved support for data synchronization in multi-instance environment when Redis is used to centralize cached values, including both actual data and locks
-
BAC - Improved UI (style, logo, checkbox)
-
BAC and JAC - Added the configuration of `application-main.yaml` to retrieve the username and the password of the default super admin user in the secret from AWS Secrets Manager by specifying the ARN
-
BAC and JAC - Upgrading dependency to Bootstrap 5
-
Improved JCL checkpoints and JICS TSQueues Redis template configuration
-
Improved support for Size of Pointer depending on AMode
-
Added support for zero comparison on NumericEditedType
-
Enforced Slf4j MDC properties before logging
-
Improved support to file reading to handled multiple empty line
-
MF - Improved support for initializing pointer variables for COBOL MF compiler directive initPtr
-
Redis - Improved feature GwFileLock on concurrence aspect through an implementation based on Redisson
AS400
New features
-
CL - Added support for CHGPF command
-
RPG - Added support for functions %HOURS, %MINUTES and %SECONDS
-
COBOL - Added support of SORT file with Blu4IV DAO architecture
Improvements
-
CL - Improved PgmClose to be registered as a program and accept a variety of objects for OPNID param
-
CL - Refactored RTVMBRD to handle multiple libraries and members
-
CL - Added support for TOLIB param on MOVOBJ command
-
CL - Improved support of partition on CPYFRMSTMF command
-
CL - Added support for SNDMSG parameter TOUSR
-
CL - Improved support of OVRDBF command
-
CL - Improved performance for OVRDBF command - Update Default Values for srcfile and member
-
CL - Improved file copy with CPYF command
-
CL - Re-engineered CPYF command to be more robust and better handle QTEMP, CRTFILE, FROMRCD & TORCD, MBROPT, and FMTOPT(MAP & DROP)
-
CL - Improved support for CPYF command for cases where FROMFILE & TOFILE have mismatched columns
-
CL - Improved CPYF NOCHK's handling of columns with different names when REPLACE is specified
-
CL - Added empty implementation for CRTDUPOBJ command on logical files
-
CL - Handled substring indexing issue with CHGDTAARA command
-
CL - Improved support of SBMJOB command
-
CL - Made OverrideManager and OpnqryfHelper mappings case insensitive
-
Screen - Improved the initial focus of the first editable field when a cursor is not specified
-
Screen - Improved focus position after closing and when using help menu
-
Screen - Improved cursor focus after pressing page up/down in table component
-
Screen - Improved support for multiple field error messages and focus
-
Screen - Improved line number computation for subfile fields
-
Screen - Improved support of sub files initialized using SFLINZ
-
Screen - Improved support for numeric only entry
-
Screen - Improved handling of WINDOW keyword in DSPF with 3 parameters
-
Screen - Improved position of footer for table with records containing more than 1 line
-
Screen - Improved page navigation for rotation message sticking on Page Up/Down
-
Improved EDITC functionality for edit code 3
-
Improved Blu4iv data area lock mechanism to do nothing when there is no lock to unlock instead of throwing exception
-
Added support to return the number of rows affected in StraightQueryBuilder
-
Improved QTEMP log mechanism
-
Improved DAOManager reads/writes/deletes for use cases on file overrided by a different file + library
Transversal capabilities
New features
-
Added a centralized way to manage the SSL/TLS-related system properties by configuration, allowing the use of AWS Secrets Manager
-
Enhanced configuration of IBMMQ resources with AWS Secrets Manager
-
JCL - Added the temporary location configuration for Runtime resolved groovy files through the YML property tempFilesDirectory and added the capability to specify whether to purge contents of the temporary files folder at application startup through the YML property cleanTempFilesDirectoryAtStartup
-
Add AWS secrets for all Redis credentials
Improvements
-
Improved conversion from type alphanumeric to type numeric edited
-
Improved DataUtils::isNumeric check for PackedType
-
Enhanced log file timestamping
-
Handled separate sign in ZonedType.decodeAsString
-
COBOL - Improved support of statement INITIALIZE
-
Improved support of DataUtils.compareAlphInt to handle leading and trailing spaces for AS400 and ZOS
-
SQL - Improved implicit read-only cursor runtime validation
-
SQL - Improved Metadata caching mechanism
-
Remove Jics/Blusam database connection from Gapwalk Application
application-main.yml
Modernization tools release 4.3.0
zOS
New features
-
GS21 - Add support for COBOL GS21 CONSTANT SECTION
-
GS21 - Added JEF encoding to available charsets
Improvements
-
CICS - Added support for parsing DOCUMENT CREATE command
-
CICS - Added support to parse CICS WEB EXTRACT command
-
CICS - Added support for parsing WEB WRITE command
-
CICS - Added transformation support for DB2CONN SIGNIN and PLAN
-
CICS - Enhanced support for parsing SEND MAP command by ignoring option TERMINAL
-
CICS - Enhanced support for parsing RETURN command by ignoring option ENDACTIVITY
-
MFS - Improved support to Generate MFS files with specific extension
-
COBOL - Improved support for REPLACE statement
-
COBOL - Handled dynamic path and MF compiler directive
-
COBOL - Improve support for OMITTED value in CALL Statement
-
COBOL - Improved multi-dimensional fields access to support signed value
-
COBOL - Added support for clause OF for FILE STATUS statement
-
COBOL - Improved parsing of statement RESULT-SET-LOCATOR
-
JCL - IDCAMS - Added support for RECORDS abbreviation
AS400
New features
-
CL - Added support for pointer based and defined variables in CL transformation
-
CL - Added support for special characters in DCLF
-
Added support for retrieve call stack (QWVRCSTK) API
Improvements
-
RPG - Improved transformation of procedure parameters using
likeds
keyword -
RPG - Review support of keyword EXTNAME
-
RPG - Improved support literal value *ALL
-
RPG - Improved support for output specification and program-described files
-
DDS - Improved resolution of DDS fields in a LF that references a PF that references a Dictionary PF
-
Screen - Cleared indicators when CLEAR statement is used to clear a record from DSPF
-
CL - Improved transformation/generation of CL params with element lists
Transversal capabilities
Improvements
-
SQL - Improved generation of SQL queries containing N with tilde character
-
COBOL - Improved support of the statement LENGTH OF for group fields
-
COBOL - Improved support of REDEFINED fields using copybooks
Release notes 4.2.0
Release date: July 10, 2024
This release of AWS Blu Age Runtime and Modernization Tools is focused on performance and security. Some key features and changes in this release are:
-
We improved transformation performance, especially for large projects with over 30 million lines of code. We implemented a set of improvements and the results we obtained showed a time reduction of over 150%, and runs that completed in minutes instead of hours. The key improvement we implemented is the configuration of a timeout mechanism to limit the maximum time allocated for analysis so as to skip files with detected issues. We mark skipped files so that you can investigate them later if necessary.
-
We added support for a distributed lock management system for AS400 projects. In a High Availability environment (multi-node) where multiple instances of the application target the same database, maintaining data consistency throughout the life cycle of these instances is a significant challenge. To effectively address this challenge, we added Redis as a shared and external caching server to coordinate among all instances when running in batch mode.
-
We added a new dynamic pagination feature for the table component. The goal of this feature is to improve the response time and reduce memory usage for tables with a large number of rows. This feature allows the table component to only load part of the data, and to fetch more records on demand as you navigate through the pages. To further improve the experience, the platform also supports the prefetching of data. This new dynamic pagination feature provides a more efficient and responsive user experience for applications with large data sets.
-
To address a key challenge that comes up frequently, we added support for nested COBOL programs. Previously, the workaround for modernizing nested COBOL programs involved manually separating programs into different files, linking them through the linkage section, and making them call each other with the necessary arguments. This process was not only time-consuming but also error-prone. You can now modernize nested COBOL programs without the need for manual separation.
We tested this version of the AWS Blu Age Runtime with the following stack. Other component versions might also be compatible.
Component | Version tested |
Java | Java 17 |
Presentation layer | Node JS 18.18 |
Npm 9.8 | |
Angular 17 | |
Service layer | Spring Boot 3.2.4 |
Spring Core 6.1.5 | |
Spring statemachine 4.0.0 | |
Persistence layer | PostgreSQL engine 14 |
Oracle 21c | |
Application server | Apache Tomcat 10.1.17 |
For more information about the changes included in this release, see the following sections.
Runtime release 4.2.0
zOS
New features
-
DB2 - Added support for stored procedure invocation without schema qualifier in the SQL query
-
COBOL - Added support for HEX-OF function
-
COBOL - Added support for nested programs
-
COBOL - Added support for FUNCTION TEST-DATE-YYYYMMDD and TEST-DAY-YYYYDDD
-
CICS - Added support for option UCTRANST in the SET TERMINAL command
-
CICS - Added support for the INQUIRE DB2CONN command
-
BluSam - Added support for key deletion on dynamically accessed VSAM
-
IMS - Added support for the TERM command
-
BAC - Added authorization checks on all BAC REST endpoints
-
BAC - Added configuration through
application-main.yaml
to define a record size to filter loaded masks that match that record size -
BAC and JAC : Added configuration through
application-main.yaml
to retrieve the username and the password of the default super admin user in the secret fromcommand
by specifying the ARN
Improvements
-
JCL - SORT - Enhanced support for OMIT clause to handle conditions with Shiftin and ShiftOut characters
-
JCL - SORT - Improved support for the BDW field
-
JCL - SORT - Improved support for multiple GDG concatenations with the BDW field
-
JCL - DFSORT - Added support for INREC PARSE STARTAFT / STARTAT clauses
-
JCL - IEBGENER - Enhanced recordSize handling for output files
-
JCL - INFUTILB - Disabled NULL INDICATOR based on YML- FIX GRAPHIC CASE
-
JCL - Improved support for FormatterParser to handle constants in the OUTREC field
-
JCL - Enhanced load data for graphic type in DSNUTILB program utility
-
JCL - SORT - Enhanced support for Zoned Decimal format
-
JCL - SORT - Enhanced support for the OMIT clause to handle conditions with Shiftin and ShiftOut characters
-
MQ - Improved the handling of MQ connection to fit several business workflows
-
CICS - Enhanced support of pointer reference for EXEC CICS READ SET (ptr-ref) statements
-
COBOL - Improved support for ADDRESS OF linkage section record
-
COBOL - Added support for EXP and EXP10 functions
-
COBOL - Improved support for the REPLACE statement using copybook
-
COBOL - Improved multidimensional field access to support signed values
-
MF COBOL - Added support for variable-format sequential files
-
IMS - Improved reading of the configuration of IMS YML files to make it possible to use environment variables
-
IMS - Handled additional ways of specifying the segment number
-
IMS - Added robustness when an IMS program is called from a programatically-started transaction
-
IMS - Improved the search criteria SSA build to take the current length of the WHERE clause into account if the implied segment length is not provided
-
IMS - Improved reading of the configuration of IMS YML files to allow the use of environment variables
-
Improved support for the VALUE clause in NumericEditedType
-
Improved support for string concatenation to handle the case when the first string to be concatenated is empty, blank, or spaces
AS400
New features
-
Added support for pagination inside the Table component; projects can use this feature to decrease the response time and size when a Table component with a large number of rows is loaded
-
Added library support for SQL queries on the AS400 application; because libraries are converted to partitions in modern applications, we adapted the runtime to rewrite the queries accordingly
-
RPG - Added support for the QTEMP library for SQL queries
-
RPG - Added encoding in the CONVERT function to handle empty input values
-
RPG - Added support for the %HOURS, %MINUTES, and %SECONDS functions
-
CL - Added the CHGPFM command
-
CL - Added support for the *FROMLIB keyword in the CRTDUPOBJ command
-
CL - Added support for table and partition creation for table names exceeding 9 characters
-
CL - Added support for deletion of flat files in subfolders for the DLTF command
Improvements
-
Screen - Improved ErrorMessage to bind with specific field and add to ArrayMessageLine
-
Screen - Improved errormsg cursor
-
Screen - Improved ArrayMessageLine to not be included in Tab Order
-
Screen - Improved display of error message arrays for AS400 screen
-
SQL - Improved cursor support to commit Transaction upon closing to avoid deadlocks on partition creation
-
CL - Added support for the PgmCall command and improved the QCMDEXC unsupported pattern
-
CL - Improved support for the CHKOBJ command to handle OBJTYPE PGM
-
CL - Improved multi-library support for CPYF and other CL commands that deal with libraries and partitions
-
CL - Added support for passing a program name variable in the CALL PGM command
-
CL - Handled the case for default type of Object type
-
CL - Added multi-library support for the CRTDUPOBJ command
-
CL - Enhanced database connection handling on multiple commands
-
CL - Improved support for RMVLNK to handle the case when a file or directory isn't found and the CPF0000 monitor message
-
CL - Improved CLRPFM to take the library into account when removing records
-
CL - CPYF - Improved command to support the QTEMP library, FmtOpt(*NoChk) parameter, and control character
-
CL - Fixed handling of quotation marks and missing parameters in the RMVLNK and CPY commands
-
RPG - Enhanced variable scoping; DataArea is now in working scope instead of linkage scope
-
RPG - Improved DAO read queries to run without a transaction to avoid deadlocks
-
Enhanced MQ messaging lookup by adding a trim to MSGQ on DB lookup
-
Removed unnecessary transaction declarations on database connection support
-
Improved the update of Quartz job status in case of exception
-
Added support to handle the case when an indicator array isn't initialized
Transversal capabilities
New features
-
Redis - Added global Redis configuration for all Redis caches
-
Added session-tracking functionality to make it possible to store session-tracking information (session ID, associated username, creation timestamp, and node ID) by persisting the data to Redis
-
Added temporary location configuration for runtime resolved groovy files through the YML property
tempFilesDirectory
; also added the capability to specify whether to purge contents of the temporary files folder at application startup through the YML propertycleanTempFilesDirectoryAtStartup
Improvements
-
Enhanced support for connection pool implementation configuration properties for utility data sources
-
Improved support for printer mode and ANSI carriage control based on the usage of ADVANCING clauses and WRITE BEFORE clauses
-
Updated Angular version on front-end application for modernized projects
-
Enhanced secret manager URL syntax construction for DB2
-
Enhanced the DataUtils.compareAlphInt method to add support for trailing spaces
-
Improved SQL support for blob type output
-
Added robustness for job triggers through post/script endpoint
Modernization tools release 4.2.0
zOS
New features
-
CICS - Added support for parsing WEB CICS commands
-
CICS - Added support for the transformation of the MONITOR command
-
CICS - Added support for parsing the CICS command SEND MRO
-
COBOL - Added support for parsing the NO REWIND statement
-
COBOL - Added support for number type of option UCTRANST in the CICS command SET TERMINAL
-
COBOL - Add supported for the MULTIPLE FILE clause in I-O-SECTION
-
CSD - Added support for the transformation of multiple CSD files
-
CSD - Added support for the generation of jicsFileAix.json from multiple CSD files
-
IDCAMS - Added support for the creation of a relative record data set (RRDS)
Improvements
-
Improved performance when computing SQL masks
-
COBOL - Improved parsing of useless RESERVE clause in FILE-CONTROL
-
COBOL - Improved parsing of SECTION and CLASS
-
COBOL - Improved DFHRESP handling
-
COBOL - Enhanced support for EXIT PARAGRAPH through perform
-
IMS - Improved support for segment names specified by using double parentheses
-
IMS - Enriched the generation of status codes when SCHD and TERM are invoked
-
COBOL - Improved generation of DEPENDING ON fields
-
COBOL - Improved transformation of TO_TIMESTAMP DB2 builtin function
AS400
New features
-
Added support for converting alphanumeric fields as CHAR in SQL scripts
-
COBOL400 - Added support for program-described DATABASE files
Improvements
-
DDS - Improved support for ALIAS name
-
Enhanced support for type float without initial value
-
COBOL 400 - Improved size compute for signed zoned type
Transversal capabilities
Improvements
-
Improved error ID reporting around DDS and SQL parsing
-
Improved code generation on condition branches
-
Improved performance on weather report generation
Release notes 4.1.0
Release date: May 31, 2024
This release of AWS Blu Age Runtime and Modernization Tools is focused on performance and security. Some key features and changes in this release are:
-
Transformation and performance: To allow projects with a large codebase (+50M lines of code) to transform successfully, we have optimized the performance and memory footprint of the whole transformation mechanism.
-
BAC/JAC: Security at AWS is the highest priority. Applications modernized with AWS Blu Age must comply with security standards. We have made some major upgrades to the BluSam Administration Console (BAC) and the JICS Administration Console (JAC) to make them more secure:
-
Updated the application to Angular v17.
-
In addition to the native support for AWS Cognito, we added generic support for OAuth that will enable more flexibility to let customers use the identity provider of their choice.
-
Configured and extended the security features using appropriate headers.
-
-
AS400 - Multi-node support for database lock mechanism. Provided the possibility to plug a shared and external caching server (Redis) to run a batch application on multiple instances, like managed AWS Mainframe Modernization.
This version of the Blu Age runtime has been tested with the following stack. Other versions might also be compatible.
Component | Version tested |
Java | Java 17 |
Presentation layer | Node JS 18.18 |
Npm 9.8 | |
Angular 16.1 | |
Service layer | Spring Boot 3.2.5 |
Spring Core 6.1.5 | |
Spring statemachine 4.0.0 | |
Persistence layer | PostgreSQL engine 14 |
Oracle 21c | |
Application server | Apache Tomcat 10.1.17 |
For more information about the changes included in this release, see the following sections.
Runtime release 4.1.0
zOS
New features
-
Added configuration for dynamic OAuth2 provider handling. Introduced SECRET_OAUTH2_PROVIDER_NAME_KEY to specify provider. Updated secret retrieval method to handle multiple providers. Ensured secrets are securely retrieved from AWS Secrets Manager.
-
Added support for DB2 SSL properties on AWS Secrets Manager to make it possible for you to define an SSL certificate (sslTrustStoreLocation) and a password (sslTrustStorePassword) to unlock the keystore file.
-
Added support for external business data sources.
-
JCL - Added support for checkpoint mechanism for batch restart.
-
JCL - Added support for DCB parameters record size and RDW.
-
JCL - Added dynamic folder-name configuration for generated temporary files.
-
REDIS - Added pool configuration in Redis configuration for JICS.
-
REDIS - Added database index in Redis configuration for Catalog and JICS.
-
BatchScript - Added propagation of step name for running program executions.
-
CICS - Added support for the ADDRESS SET command.
-
CICS - Added support for PURGE MESSAGE and JUSTIFY.
Improvements
-
JCL - INFUTILB - Enhanced support for disabling the null indicator based on YML property.
-
JCL - INFUTILB - Improved support for the CHAR/BPCHAR datatype.
-
JCL - ICEGENER - Added support for copying multiline input streams into files.
-
JCL - IEBGENER - Improved support for handling conversion from Variable Block to Fixed Block files.
-
JCL - DFSORT - Improved support for multi-digit parameters on operation DATE.
-
JCL - DFSORT - Added support for the INCLUDE=ALL clause.
-
JCL - Improved support for the SORT utility to handle the BDW field in output.
-
JCL - Improved support for DD concatenation.
-
JCL - Improved support for Input Stream.
-
JCL - DSNUTILB - Improved support for the NULLIF() statement.
-
JCL - INFUTILB - Added support for unloading data with the NOPAD option.
-
JCL - INFUTILB - Enhanced support for current date in INFUTILB.
-
JCL - Added file existence and size checks before using a file.
-
JCL - GDG - Improved the handling of sub-directories for GDG.
-
MQ - Improved connection opening in the JMS implementation.
-
MQ - Improved data length setting of GET message for XA datasoure.
-
MQ - Decomposed CMQV standard copybook to prevent compilation errors and refactoring uses.
-
BluSam - Improved support for delete requests for non-existent data sets.
-
Improved support for the ALLOCATE statement.
-
Improved robustness of TS-QUEUE Naming.
-
BatchScript - Enhanced preservation of previous step return code in job re-execution.
-
Dataset - Improved the file existence check when a file exists and is temporary.
-
Dataset - Improved the concurrency when locating GDG files to delete.
-
Dataset - Added support for getting GDG Dataset record size.
-
CICS - Improved support for the SUSPENDED option in the INQUIRE TASK LIST command.
-
CICS - Improved support for LOAD SET using the ADDRESS OF statement.
-
CICS - Improved unhandled CICS arguments REMOTESYSTEM when CICS INQUIRE.
-
CICS - Enhanced support for the GETMAIN command to handle the SET option with a pointer defined with the OF keyword.
-
JICS - Improved robustness for the jicsXAPrepare() method by adding the transaction state check.
-
JICS XA - Added a check for transaction state and enhanced transaction thread termination.
-
BAC - Enhanced role-based authentication on client side and refactored/centralized all API calls.
-
BAC - Implemented a feature to block public access to BAC and JAC based on configuration
-
BAC - Upgrade of the dependencies: Angular 17.
-
BAC - Improved security integration with OAuth2 - StateFarm/FIDIS.
-
BAC - Enhanced hibernate generated DDL.
-
BAC - Improved export data set mechanism.
-
JAC - Updated to Angular 17 and reporting all specifics work from BAC (ROLE, sadmin conf, XSRF, logout).
-
COBOL - Added support for the CHAR and ORD-MIN functions.
-
Enhanced FileFactory to keep catalog record size in MOD disposition.
-
Enabled logging using MDC for JICS transactions.
-
Improved SQLCA > SQLSTATE produced for stored procedures generating ad-hoc result sets.
-
Improved support for task scheduling related to last Spring upgrade.
AS400
New features
-
Added multi-node support for database record locks using Redis.
-
Added support for BINARY CHARACTER for the DDS type.
-
CL - Added support for custom report file generation.
-
RPG - Added support for the RENAME keyword on primary/secondary files.
Improvements
-
Improved database support for handling the CTID column with a JOIN clause.
-
Improved cursor position for multiple DSPATR(PC).
-
Improved logging on read exception.
-
Improved Quartz job logging to include job properties to MDC.
-
Improved support for the AS400 help screen.
-
CL - Improved support for the RMVJOBSCDE command to accept entry numbers with trailing spaces.
-
CL - Improved support for the RMVJOBSCDE command to remove a job schedule using a generic job name.
-
CL - Improved support for the SAVOBJ command to order records by table key.
-
CL - Improved support for the CPYF command to establish a new connection for DB queries.
-
CL - Improved insertion of inquiry messages in queue message with SNDPGMMSG.
-
CL - Improved job queue configuration to specify default job queue.
-
CL - Improved the CRTPF command to support the QTEMP library and the RCDLEN parameter.
-
CL - Improved support for the CHKOBJ command - Check for partition with library.
-
CL - Improved RTVMGS to send CPF2407 and CPF2419 when file/ID not found.
-
CL - Improved CPYTOIMPF and CPYFRMIMPF interpretation of legacy formatting parameters.
-
CL - Added support for OVRPRTF parameter USRDTA.
-
CL - Improved the CPYTOIMPF CL command to establish a new connection to avoid closing existing result sets.
-
CL - Improved CHGDTAARA so that it no longer modifies the data area length when it updates the content.
-
CL - Improved ClCommand database connection handling.
-
Optimized interaction between the front end and the back end.
-
COBOL - Updated transformation to handle FILLER in copybooks.
-
Improved additional message information display for custom messages sent to the front end.
-
Updated the default value for the selector in app.component.ts.
-
Improved text splitting in split-dynamic-field display.
-
Improved the display of error message with multiple writes followed by a read.
Transversal capabilities
New features
Added support for the dynamic configuration of OAuth2 provider secret.
Improvements
-
Printing - Improved QCMDEXC parameter support for handling quotation marks and improved report name formation
-
Improved support for delimited syntax on RecordAdaptable.
-
Enhanced InspectBuilder error logging to add context about source string.
-
DataSimplifier - added robustness for ByteArray affectation.
-
Enhanced MDC logging with new runtime attributes.
Modernization tools release 4.1.0
zOS
New features
-
Added support for multiple CSD file transformations
-
COBOL - Added support for the CICS ALLOCATE statement.
-
COBOL - Added support for ON SIZE ERROR in the ADD CORRESPONDING statement.
-
COBOL - Added support for EXIT PARAGRAPH.
Improvements
-
COBOL - Improved support for -INC copybook.
-
COBOL - Enhanced support for FILLER initialization.
-
COBOL - Improved support for figurative values comparison.
-
COBOL - Enhanced support for WHEN ANY in consecutive WHEN clauses lacking intermediary code blocks.
-
COBOL - Improved support for figurative constant.
-
COBOL - Improved support for packed type size computation.
-
COBOL - Improved unhandled CICS argument KEEP for SPOOLCLOSE.
-
COBOL - Improved generation for the TEST-NUMVAL function.
-
COBOL - Improved Java generation arguments on INSPECT framework support.
-
CICS - Improved support for defining DFHCOMMAREA.
AS400
New features
-
RPG - Added an error-catching mechanism to generate the (incomplete) DDS so it won’t block program generation.
-
Added support for the INCLUDE file description specification keyword.
Improvements
-
RPG - Improved full-free parsing.
-
RPG - Added robustness with error catching.
-
RPG - Improved initialization of field/DS with export keyword.
-
RPG - Improved DAO operation to handle indicators.
-
RPG - Handled the default value of PERRCD with CTDATA.
-
RPG - Upgraded the Free-RPG parser to log a unique error per parsing rule.
-
PRTF - Handled name collision between PRTF and JRXML.
-
COBOL - Improved support of the LIKE keyword.
Transversal capabilities
Improvements
-
Added robustness for ErrorID API
-
Performance optimization for large project transformation. For example: timeout to skip blocked files, re-use of the classification from Blu Insights, and better memory allocations.
-
Optimized the memory footprint during COBOL/PL1 transformation.
-
Fixed CVE on third-party (jQuery and bootstrap).
-
Managed timeoutParser options in TC.
-
Improved the multiple spaces rewriting on SQL queries.
-
Improved Read Only Cursor with sensitivity attribute.
Release notes 4.0.0
Release date: April 8, 2024
For instructions on how to migrate from AWS Blu Age Runtime 3.10.0 to 4.0.0, see Migrating from 3.10.0 to 4.0.0.
This release of AWS Blu Age Runtime and Modernization Tools is focused on upgrading critical dependencies and supported technologies while boosting performance in multiple functionalities. Some key features and changes in this release are:
-
-
Upgrade from Spring Boot 2.7 to 3.2.4, Spring Core 5.3 to 6.1.5, and Tomcat 9.0 to 10.1.17 to provide improved security, performance, and maintainability by using versions that are actively being patched and maintained.
-
Lazy loading on front-end application to build faster large projects with more than 2000 screens and reduce the displaying initialization from 10 s to 300 ms.
-
Support for DBCS display on front-end applicationfor enhancement of the support of double-byte characters to provide a new font that handles double-byte and single-byte characters, prevent single-byte input in a double-byte field, and handle fields with mixed double-byte and single-byte characters.
-
Thread monitoring feature for AS400 Online application to run AS400 application with parallelization.
-
Improved performance on context and RunUnit initialization by adding a configurable mechanism to pre-initialize program context reducing the impact of loading complex structures inherent in legacy complexity.
-
This version of the AWS Blu Age Runtime was tested with the following stack. Other versions might also be compatible.
Component | Version tested |
Java | Java 17 |
Presentation layer | Node JS 18.18 |
Npm 9.8 | |
Angular 16.1 | |
Service layer | Spring Boot 3.2.4 |
Spring Core 6.1.5 | |
Spring statemachine 4.0.0 | |
Persistence layer | PostgreSQL engine 14 |
Oracle 21 | |
Application server | Apache Tomcat 10.1.17 |
For more information about the changes included in this release, see the following sections.
Runtime release 4.0.0
zOS
New features
-
Added support for include statement '-INC CPYNAME'.
-
CICS - Added support for PUSH/POP HANDLE statement.
-
COBOL - Added support for "ASSIGN TO DYNAMIC".
-
Added support for DB2 UNLOAD using INFUTILB.
-
Added support for keyword SEQNUM in an OVERLAY of INREC statement.
Improvements
-
SORT - Added support for special chars (parenthesis and asterisks) in sort string literals C'....'.
-
SORT - Improved support for OUTFIL NOMATCH-(..) argument.
-
SORT - Added support for SYMNAMES data definition.
-
SORT - Improved handling of TO= and LENGTH= arguments.
-
SORT - Improved handling on MOD disposition.
-
SORT - Added support for HIT=NEXT argument.
-
Enhanced ICEGENER to add support for specific output file encoding.
-
INFUTILB - Enhanced support for WITH UR clause.
-
INFUTILB - Enhanced support for unload when writeNullIndicator is false.
-
DSNUTILB - Enhanced robustness to load step when the NULLIF keyword is after an optional SQL keyword.
-
DSNUTILB - Enhanced support for isolate column name.
-
DSNUTILB - Added support to load an empty file into a table.
-
DNSUTILB - Added support for MOD disposition for the DNSUTILB SYSDISC file.
-
IDCAMS - Enhanced comments support.
-
JCL - Added support for column with double quote in LoadTask.
-
JCL - Enhanced UNLOAD SQL query handling regarding whites paces removing.
-
JCL - Enhanced response of Groovy script when an exception occurs in processing to assure a JSON format.
-
JCL - Improved check file disposition in the case of DISP=NEW and DISP=OLD.
-
JCL - Enhanced support to handle multiple GDG generation reference with special character in GDG base name.
-
JCL - Enhanced support to load a dummy file.
-
JCL - Enhanced support for tempFilesDirectory YML parameter.
-
JCL - Improved JSON return when it is needed to escape double quotes within a string element .
-
JCL - Enhanced FileUtils to support GDG base name.
-
JCL - Enhanced DSNTEP program for DB2 multiple queries execution.
-
Added support for Spring beans.
-
Enhanced SQLConverter to avoid rectifying wrong dates.
-
Improved JicsTimeBuilder handling of YYYYDDD.
-
Allowed custom jars to be accessible from groovy.
-
IMS - Enhanced navigation across records in the IMS database implementation.
-
IMS - Enhanced CBLTDLI to be able to launch program use purge.
-
IMS - DFSRRC00 able to pass the params from groovy to backend program.
-
Added support for JICS command that was not invoked through a transactionRunner.
-
JICS - Improved performance by using configurable cache.
-
BluSam - Add support for disabling warmup BluSam when opening to enhance performance for large dataset.
-
BluSam- Improved delete/rename behaviour on regular BluSam data sets.
-
BluSam - Enhanced performance on record operations.
-
Enhanced datasimplifier for the methods determining if a string is low value.
-
Enhanced support for Packed-Decimal & sorting order issue.
-
Enhanced configuration of DB2 as primary data-source with AWS Secrets.
-
Enhanced FileSystem API to expose the file status.
-
Enhanced DynamicFileBuilder read stream input with lineSeparator.
-
Enhanced datasimplifier for the methods determining if a string is low value when deals with CUSTOM930 charset.
-
SQL - Improved SQL Stored Procedure Output Processing.
-
SQL - Improved lambda mapping for multiple table with aliases.
-
COBOL - Improved support fro LENGTH OF statement.
-
COBOL - Added support for TRANSFORM statement.
-
COBOL - Added support for 9 new mathematical functions.
-
COBOL - Improved support for INTEGER-OF-DAY FUNCTION.
-
COBOL - Improved support for 88 level involving figurative value.
-
COBOL - Improved transformation for SET ADDRESS statement.
AS400
New features
-
Removed duplicated indicator entities.
-
Added support for DBCS characters.
-
Introduced handling of HELP keyword for subfile record control.
-
Added configuration parameter to toggle column name capitalization & split comment column content on pipe char.
-
Added support for using 0x0c as last nibble for Packed type fields.
-
RPG - Handled prototypes declared with ExtProc('system').
-
CL - Handled 'CLEAR' parameter of cl-command RMVMSG + introduce in-memory non-program message queues.
-
CL - Handled generic statements being passed to SBMJOB CMD() calls.
-
CL - Added command STRCMTCTL and ENDCMTCTL. Modified locking mechanism and cleaning up of transactions and locks.
-
CL - Added support for RCDDLM parameter for CPYTOIMPF command.
-
CL - Added handling of padding zeros in SAVOBJ command.
-
CL - Added handling of libraries included in the qualified name of the OBJ parameter for RTVOBJD.
-
CL - Added support for CPYTOIMPF command params STRDLM, STRESCCHR, and RMVBLANK.
-
CL - Enhanced RTVMGS to send CPF2407 and CPF2419 when file/id not found.
-
CL - Improved RCVF command to receive records from any provided library in DEV parameter.
Improvements
-
Changed default values for Blu4iv task executor to allow better scaling by default.
-
Parameterhelper modified to convert list of strings and ElementaryRangeReference to String.
-
Enhanced CTID to handle not existing column in POSTGRE.
-
Added robustness to support user space API "QUSPTRUS".
-
Added support for User Spaces APIs QUSRUSAT and QUSCUSAT.
-
Enhanced support for User Space API (QUSPTRUS) without error code.
-
Added support for CRON Job Scheduling using Quartz.
-
Enhanced support of RPG program cycle.
-
Improved Blu4iv transaction management.
-
Record locking of files under commitment control within same transaction has been improved.
-
Improved handling of subfile initialization.
-
Improved display of scroll indicators for Message Lines.
-
Prevented trailing zeros on numbers sent through data queue.
-
Improved Additional Message Information Screen.
-
Improved JPA write operations to consider current library.
-
Improved behavior of ProgramJobExecutor when executing programs without parameters.
-
Added functionality to directly pass arguments from front end links to back end scripts.
-
Improved transaction handling for jobs metadata.
-
CL - Added support for param SECLVL in RTVMSG.
-
CL - Added empty implementation for CLRLIB.
-
CL - Improved CPYFRMIMPF support for copying from both database and CSV.
-
CL - Improved CPYFRMIMPF implementation to ignore extra columns.
-
CL - Improved CPYTOIMPF and CPYFRMIMPF interpretation of legacy formatting parameters.
-
CL - Added param removeDecimalPoint to format numeric values in SAVOBJ.
-
CL - Improved RCVF command to properly handle EOF condition.
-
CL - RTVSYSVAL - Implementation SYSVAL = QDATETIME.
-
CL - OVRDBF command modified to get field as default table name.
-
CL - RTVJOBA Unavailable value for param : USRLIBL.
-
CL - Handled leading slashes in SNDPGMMSG MSGF param.
-
CL - Improved support for wildcards in sourcefile in command DSPFFD.
-
CL - Improved handling of param PGMQ in RCVMSG and SNDPGMMSG.
-
CL - Made RTVMSG param MSG optional to align with legacy docs.
Transversal capabilities
New features
-
Improved capability when passing parameter at USING clause of OPEN cursor.
-
Performance: Improved pre-initialization of context and RunUnit for performance tuning.
Improvements
-
Improved the mechanism to dump low values from UNLOAD command of INFUTILB utility program.
-
Added support current schema option on datasources secret manager.
-
Enhanced runtime to not consider parameters passed at open cursor when they are not needed.
-
Improved numeric format validation for numeric fields.
-
Improved SQL Diagnostic in highly parallel execution environment.
-
Introduced unicode for codepage byte sequence (FE FD).
-
DataSimplifier performance optimization - Enhanced assign statements.
-
DataSimplifier performance optimization - Improve default value for numeric type initialization to prevent useless BigDecimal usage.
Modernization tools release 4.0.0
zOS
New features
-
Added support handling Abend PROGRAM.
-
Improved support to generate AIX dataset.
-
COBOL - Added support for JUSTIFIED clause on ALPHANUMERIC/ALPHABETIC/GRAPHIC fields.
Improvements
-
Improved PURGETHRESH attribute handling for TRANSCLASS resource definitions.
-
Improved support for data definition and MOVE statement.
-
CICS - Enhanced support for DELAY command on option MILLISECS.
-
Improved SQL lambda mapping for multiple tables with aliases.
-
Improved support for parent field finding.
-
Improved SQLCA sqlstate set for COMMIT and ROLLBACK operation.
-
COBOL - Enhance parsing by commenting obsolete paragraphs
-
COBOL - Enhanced support for REPLACING clause.
-
COBOL - Added support for mathematical functions ASIN ACOS LOG TAN.
-
COBOL - Added support for multiple AFTER statements in PERFORM VARYING.
-
COBOL - Enhanced support for RENAMES (level 66) fields.
-
COBOL - Enhanced LENGTH OF method to get length at a specific index in an array field.
-
COBOL - Added support for multiple AFTER clauses in PERFORM VARYING statements.
-
COBOL - Enhanced support for RENAMES clause.
-
COBOL - Enhanced support of PICTURE keyword.
-
COBOL - Enhanced support for Level 88 field parsing.
-
COBOL - Improved goto depending condition with table data items.
AS400
New features
-
Added functionality to pass arguments to direct front end java calls.
-
CL - Improved %SST generation including support for *LDA with CL→Java.
-
RPG - Added support Program-Described record for DISK files.
Improvements
-
Improved display file, resolve referenced fields with the "REFFLD" keyword.
-
Improved support of display file keyword SETOF-CSRLOC.
-
Removed files from the commitment control after closing.
-
Ensured consistent behavior for concurrent Read and Write Operations on a table when performed by the same program.
-
Handled assignment to substring of SizePrefixedAlphanumericType.
-
Handled passing data structure to procedure with varying-length string parameter.
-
Improved retention of invalid numeric values upon onBlur event and creation of event listeners for valid fields only.
-
Improved error messages on screens and highlighting of fields with invalid input.
-
Improved handling of screen fields conditioned on indicators.
-
Enabled scrolling with mouse wheel.
-
Added support for function keys for Help screen.
-
Improved support for long text in split-dynamic-field component.
-
Improved handling of multi-record LF files when renaming records.
-
CL - Improved RTVJOBD command to handle LF files (views).
-
CL - Improved OVRDBF command when used on a multi record LF.
-
RPG - Handled scenario where procedure defines a variable with same name as renamed param.
-
RPG - Improved handling of *ZEROS when initializing signed binaryInteger.
-
RPG - Improved handling of pointers to non-local (reference) variables.
-
RPG - Improved handling of ELSEIF statements following IFxx statements.
-
RPG - Added support for Fields defined with LIKE on prototype.
-
RPG - Improved the support for LIKE keyword of a field created by LIKEREC.
-
RPG - Improved generation of operators with figuratives.
-
RPG - Improved parsing for array expression xxx(\*) and support it in %lookup.
-
RPG - Improved LookUp operation code with high and equal (or low and equal) indicators.
-
RPG - Improved free form parsing.
-
RPG - Improved parsing of I-card named constants that follow I-card record formats.
-
RPG - Improved support for type INTEGER and UNSIGNED.
-
COBOL - Added support INDIC clause of DSPF format in COPY DDS statement.
-
COBOL - Improved grammar for DISPLAY and ACCEPT statements to unblock transformation and generation.
-
COBOL - Added support fro DISK files.
-
COBOL - Improved DDS display files support programs.
-
COBOL - Added support for LIKE clause.
-
COBOL - Added support for Program-Described DISK file.
-
COBOL - Added support for file name with suffix.
Transversal capabilities
New features
-
Handled the Lazy loading of Map Components of web projects.
Improvements
-
Improved java generation of SQL indicators parameters.
-
Improved capacity to handle variables involved in SET DB2 statement.
-
Improved raise of error at end of fetched cursor when output is a single entity array.
-
Managed path in Linux.
-
Data Migrator manage vulnerabilities and remove unused dependencies.
Release notes 3.10.0
This release of AWS Blu Age Runtime and Modernization Tools is focused on core baseline upgrades and improvements across the product striving to increase performance and robustness in all transformation and execution steps. Some key features and changes in this release are:
-
Version upgrade from Java 8 to Java 17, increasing security and performance, and allowing customers to deploy and run applications implemented in a more modern language and to use recent third-party framework versions.
-
Additional support for managing large shared memory spaces between users or jobs, storing data reusable after application or instance restart.
-
Faster access to large data sets in Blusam using a pagination mechanism that makes it possible to retrieve a subset of records incrementally.
For more information about the changes included in this release, see the following sections.
Runtime release 3.10.0
This runtime is based on Java17, Spring2.7, and Angular16.
zOS
New features
-
Blusam - Added support for large data sets through a paginated mechanism where indexes are stored and loaded using pages
Improvements
-
Enhanced DataUtils.compare to handle lower precedence conversion from string to number
-
Added support to check that no ByteRange is created with improper values through YML property dataSimplifier.byteRangeBoundsCheck
-
Enhanced removeSOSI() to support the initialization of a GraphicAlphanumericType with an empty character
-
Added robustness for job operation and secure GDG state read
-
Blusam - Added support for clearing Ehcache of Blusam data sets through a new method named CoreBluesamManager.removeCache()
-
Blusam - Improved delete/rename behavior for regular Blusam data sets
-
Redis - Enhanced support for unlocking data sets and clearing record lock
-
JICS - Improved the error message for failed requests
-
JCL - Added support for ControlM variable concatenation based on dot character
-
JCL - Added support for Write ADVANCING (ADV) for GDG files
-
JCL - Enhanced support for current generation number after delete all GDG files
-
JCL - Enhanced support for rdw/recordSize reading from catalog at dataset creation
-
JCL - Added support to update the resource object (from AbstractSequentialFile) when opening the file with the size of data output record
-
JCL - Improved IDCAMS performance
-
JCL - Enhanced support for PRINT STATEMENT by adding "CHAR" as alias of "CHARACTER"
-
SORT - Enhanced support for copy operation from a Blusam fixed-length dataset to a dataset with variable length
-
SORT - Enhanced sort grammar to handle some specific statements
AS400
New features
-
Added support for User Spaces and its related APIs
-
Added support for TOMSGQ parameter of SNDPGMMSG and implemented message queues
-
CL - Added support for FILE and SPLFNAME params for the OVRPRTF command
-
CL - Added support for handling libraries for corresponding partition table with the CPYF command
-
CL - Added support for handling the CHGCURLIB command and considering the current library when building queries
-
CL - Added support for handling the cl command as part of the call stacktrace
Improvements
-
Improved MessageHandlingBuilder for better handling of the call stack trace entry
-
Improved parallel execution of the contextPreconstruct feature
-
Improved display attributes when a record is created by SFLINZ
-
Improved SAVOBJ to allow the handling of multiple output files
-
Improved groovy programs handling by adding them to programCallStack when they are called from a Java program
-
Improved top positioning detection of help modal
-
Improved toPgmQ functionality when toMsgQ param is provided for SNDPGMMSG
-
Improved fetching of predefined messages and functionality of message loader
-
Improved CPYTOIMPF handling of delimiter characters in content
-
Improved release lock on READ record
Transversal capabilities
New features
-
Added a translation for system messages on Front-End
-
Added a new method in ExecutionContext to return the program call stack
-
Set a line separator (for data simplifier) regardless of the actual environment
-
Added the possibility to configure the SQL model JSON path
Improvements
-
Improved the comparison method DataUtils.compareAlphInt() when padding is involved
-
Creation of a flag to allow custom behavior on exception in cursor queries
-
Improved graphic LOWVALUES db conversion
Third party
-
Upgrade to mitigate CVE-2024-21634, CVE-2023-34055, CVE-2023-34462, IN1-JAVA-ORGSPRINGFRAMEWORKSECURITY-5905484, CVE-2023-46120, CVE-2023-6481, CVE-2023-6378, CVE-2023-5072)
Modernization tools release
3.10.0
zOS
Improvements
-
COBOL - Added support for ABS function
-
JCL - Enhanced variable scope: attached to STEP instead of JOB
-
Enhanced cursor parameter injection for low/high value
-
Improved CSD parsing, notably for remote TRANSACTIONS
AS400
Improvements
-
Removed blank check for Control Level Indicator
-
Added support for external name for IMPORT/EXPORT keywords
-
Added support for %LEN on fields
-
CL - Added support for new operators for the CLLE language
-
CL - Added support for nested IF
-
COBOL - Improved handling of the START command when used with multiple keys
-
DSPF - Improved handling of cursor position with record number
-
DSPF - Improved the formatting for signed numeric, numeric only fields, and fields with large scale
-
DSPF - Improved the determination of the title for Screen General Help
-
DSPF - Improved support of Input/Output specifications
-
DSPF - Improved handling of grouping separators during validation of numeric field
-
Improved mapping output/DDS records
-
Improved printer file REFFLT keyword ability to resolve referenced fields
-
RPG - Enhanced support for “ALL free” statements
-
RPG - Improved condition parsing and added support for handling CABXX without result TAG
-
RPG - Improved input specification handling of numeric fields
-
RPG - Improved handling of procedure calls within IF/ELSEIF/WHEN conditions
-
RPG - Improved handling of READ command when called on a dspf file
-
RPG - Improve support for files referring to a non-existing DDS
-
Improve handling of REFFLD when passed a physical record format name
-
Added support to use 'return' as a db column name
Transversal capabilities
New features
-
Oracle - Made it possible to define users than SYS to store built-in functions
Improvements
-
Upgraded Java version from v8 to v17
-
Improved SQL condition with Cluster column name
-
Added support for ORDER BY clauses from view
Release notes 3.9.0
This release of AWS Blu Age Runtime and Modernization Tools is focused on multiple transversal enhancements across the product striving to increase performance in high-availability architectures, along with new capabilities to raise jobs executions to the next level. Some key features and changes in this release are:
-
Version upgrade from Angular 13 to Angular 16, increasing security and giving access to new features that improve the performance in customer’s online applications.
-
Add support of cross job features in AS400, with the main high-light that jobs can send inquiry messages synchronously among them, enabling decoupling in modernized jobs.
-
Performance improvements on the usage of Redis, including connection pool optimization, high security on connection and upgraded dataset locking mechanism.
For more information about the changes included in this release, see the following sections.
Runtime release 3.9.0
zOS
New features
-
Sort program: Updated VSAM inputs with fixed length
-
JHDB DB: Added configurable timeout
Improvements
-
Enhanced support for line separator to stream if used in files concatenation
-
Enhanced support to open concatenated sequential files. Initialize DataSetIndex after opening of the file
-
Enhanced support for virtual decimal separator when a NumericEditedType is affected to a numeric value
-
Enhanced support for NumericEditedType on negative values
-
IDCAMS: SYSIN cards are now read using the "encoding" property defined in application-utility-pgm.yml
-
IDCAMS: Updated grammar to support FILE(..) argument in DEFINE CLUSTER statement
-
INFUTILB: Added support for DFSIGDCB argument to override DCB parameters of DD SYSREC
-
INFUTIL: Enhanced support for "DFSIGDCB YES" parameter
-
Improved SPLICE to handle huge input file
-
DFSORT: Improved remark fields handling
-
DFSORT: Added support for (signed / unsigned) free form numeric format (SFF/UFF)
-
SORT: Added parsing support for OPTION PRINT and OPTION ROUTE statements
-
SORT/ICEMAN: Added support for enclosed division operations (field with DIV operator)
-
Enhanced support for CICS READ using generic key
-
Function StringUtils.chargraphic fixed to remove SOSI from a graphic type
-
Enhance performance on DataUtils.isDoubleByteEncoding
-
JCL: Enhanced support for KEEP disposition mode for a temporary data set. The system changes the disposition to PASS
-
JCL: Handles DCB parameters dynamically
-
JCL: Enhanced SUM FIELDS outputs for incorrect values
-
JCL: CommonDDUtils::getContent now searches for the recordSize in the catalog
-
JCL: Read rdw/recordSize attributes from catalog at dataset creation
-
JCL: Added support for DCB=.MYDD to copy DCB parameters of a DD into another in same job step
-
JCL: Improved record size inheritance system
-
JCL: Added (Redis) exclusive dataset lock
-
Redis: Added SSL support for standalone mode
-
Redis: Added synchronized Redis lock count with lock
-
Redis: Supported Pool parameters for Redis lock
-
Redis: Optimized metadata refresh with Redis
-
Redis: Improved redis cluster support
-
Improvement on open locks with IO mode
-
Improved datasets locks performance and clear unused locks
-
Enhanced path of the dataset during unregister file
-
Improved pre-fetch window cache invalidation
-
Added support for thread safe utility datasource provider usage
-
Enhanced datasetState nullity check
-
Enhanced support for not reopening already opened data sets
-
Added robustness for job final operation
-
Enhanced support for indexes order for keys allowing duplicates
-
Enhanced support for skip list serialization order
-
Added support for debug dump feature to help diagnose indexes order issues
-
Enhanced support for metadata refresh
-
Enhanced support for Blusam bulk read
AS400
New features
-
Creates an application-context registry
-
Support for DSPF keyword CLRL(NO) Support record locks monitoring
-
Support for keyed DataQueue
-
Support for INQUIRY messages for batch jobs
-
Added support for Program-described Printer file for AS400 COBOL
-
Handles RMVJOBSCDE cl command
-
Improvement for RUNSQL/DLYJOB
-
CHKOBJ: Raising legacy error code for parameter LIB
-
SNDPGMMSG: Supports string parameters
-
RTVDTAARA: Improved substring in LDA
-
DSPFD: FILE param supported added for specific file name
-
RUNQRY: Support for sql file in QRY PARAM
-
CRTDUPOB: Support to copy the data between data areas
-
SBMJOB: Converts instruction to use JobQueueManager
-
OPNQRYF: Added support for Qtemp library
-
CRTDUPOBJ: Improved logic for copying partition content
-
CRTDUPOBJ: Added support for Qtemp for views
-
RTVSYSVAL: Support for SYSVAL value, QDATFMT in CL command
-
CHKOBJ: Added support for OUTQ
-
RTVJOBA: Supports SWS param
-
SNDPGMMSG and RCVMSG: Additional parameters supported MSGF, MSGFLIB, MSGDTA, MSGTYPE, KEYVAR, MSGKEY, MSGID
Improvements
-
Improved WORKSTATION I/O cards supports
-
Improved handling of set message overlaying previous message
-
Supports additional message information on array-messageline
-
Improved standalone array wrapper access inside EVAL, SortA, figuratives
-
Improve DAOs cleaning when online application ends
-
Added support for additional date formats and improve handling of string inputs
-
Improved CVTDAT handling of SYSVAL by adding system value helper class Decode and build parameters from CL command SbmJob
-
Removed package com.netfective.bluage.gapwalk.rt.blu4iv from gapwalk-cl-command component scan
-
Improved the support of predefined messages for message queue API
-
Improved the support of retrieveSubfileRecord for record written in another program
-
Improved the support of immediate messages for message queue API
-
Improved handling of local data area when submitting a job
-
Starts JobQueues automatically when the server starts
-
Uses applicationContext configuration to decode params for SBMJOB
-
Improvement on system-supplied error messages
-
Allows RTVMSG to search for .properties files in nested sub-directories
-
Handles reset of entities bound to bad/invalid pointers
-
Improved MessageHandlingBuilder to display msgId and MsgFile name as strings for RCVMSG
-
Improved withMsgFileName method of the message queuing API
-
Improved data area lock mechanism
-
RTVMBRD: Support for lower and upper case for parameter FILE
-
CRTDUPOBJ: Improved handling of views
-
CPYTOSTMF: Improved handling of connection
-
CPYF: Improvement in handling directory name while copying from a flat file
-
RCVF: Properly handles DEV/RCDFMT parameters and transformation of RCDFMT for groovy and java
-
RCVF: Handles subsequent calls and avoid resetting the cursor
-
CPYF: Added support for writing from flat files
-
CRTDUPOBJ: Added handling of new obj with Qtemp library
-
CHGDTAARA: Increased data area max length from 256 to 2000
-
SAVOBJ: Ensure records saved are in insertion order
-
RTVDTAARA: Values retrieved (not to be trimmed)
-
CHKOBJ: Returns correct monitor messages when member does not exist
-
RTVDTAARA: Added support of LDA substring
-
RTVDTAARA: Returns whitespaces up to the length of variable specified in the RTNVAR param
-
RTVDTAARA: Supports integer parameters for start and length and support latest transformation format
-
CHGDTAARA: Added support for parameter that includes lower and upper bounds
-
CHKOBJ: Handles VIEW value for parameter object type
-
CHKOBJ: result set to true irrespective of member if the view exists
Transversal capabilities
New features
-
Handles generating reports to .txt files
-
Added currentSchema XA datasource property to secret manager
-
Add database.cursor.raise.already.opened.error YAML property to enable framework to raise SQLCODE error 502 when already opened cursor is opening
Improvements
-
Added gapwalk poms to AWS Blu Age on Amazon EC2 packaging
-
Uses the new signal handler paradigm by default
-
Add support for lock when disposition is MOD or OLD
-
Added cache to store database date time patterns
-
Improved check function of PackedType
-
Improve DataUtils.setTo functions for Records with VariableSizeArray
-
Handles MQ SYNCPOINT option as regard as run unit
-
Enabled framework to set SQLCODE on rollback transaction
-
Added automatic driver class name according to engine key secret
-
Program/Transaction timeout
-
Restore cursor position after Rollback when accessing cursor
Third party
-
Upgrade SnakeYAML, Redisson and Amazon SDK, remove YamlBeans (mitigate CVE-2022-25857, CVE-2023-24621, CVE-2023-42809, CVE-2023-44487)
Modernization tools release 3.9.0
zOS
Improvements
-
Enhanced support for XML-TEXT as source for target of type String
-
Enhanced STM to UML workflow to support X/(Y/Z) division pattern
-
JHDB DB: Accepts ROLLBACK call before any database update
-
JHDB DB: Accepts ROLLBACK even if transaction is terminated (NOP)
-
JCL: Improved step validation function
-
SORT: Handles SUM function with zone decimal negative values
-
COBOL: Adds support for single/double quote escaping in string literals
AS400
Improvements
-
Improved built-in function %editc handling of edit code X by adding leading zeros
-
Improved handling of input only fields initial value
-
Added action keys to help dialogs
-
Footer record of dynamic table appearing at the bottom
-
Handled START command without KEY PHASE for files that specify an actual RECORD-KEY
-
Added default value for float and NumberUtils::pow type
-
Added support defining a variable using LIKE(IN)
-
Updated FOR loop handling to support omitting optional elements
-
Updated RPG parsing to associate records with CTDATA array name
-
Improved handling of indicators for CABxx statements
-
Supports optional parameter on COMMIT keyword
-
Improved FORMAT Keyword support in LF
-
Managed LOOKUP operation code with high and equal (or low and equal) indicators
-
Handled PF key name declared within double quotes
-
Improved the handling of EDTCDE X to not suppress leading zeroes
-
Improved support for MSGCON in printer file not generating unnamed labels
-
Field CONTENT is shared by multiple data structures
-
Handled ERRSFL parameter in combination with SFLMSG/SFLMSGID
-
Improved main code before proc declaration scope of full free rpg
-
Added parsing conditioned control specification
-
Improved support for setErrSfl() method in dataholdermapper
-
Improved type resolution for internally created variables
-
Improved support for Z-ADD opcode
-
Improved the handling of constant field with DFT value
-
Improve the support of integer field inside program status ds
-
Handled indicator assignment in ENTRY params
-
Improved the filter of keywords propagated through ref/reffield keyword
-
Supported unnamed DataArea data structure
-
Improved handling of pointer data type
-
Handled elements of array used to define variables with LIKE keyword support array access in output field
-
Improved support for signed numeric, only displaying digits
-
Supported logical relationship on O card
-
Test case for %CHAR on alphanumeric
-
Supported control specification keyword main
-
EDTCDE with two parameters in printer file
-
Improved FullFreeRPG parsing
-
Enhanced the dynamic table to ensure the footer is correctly positioned
-
Added support for initializing numeric types with ALL figurative constant
-
Improved handling of multiple RPG logical files referencing the same physical file
-
Improve the detection of modified fields in a modern screen
-
Modal synchronization with dynamic fields
-
Improved the handling of output only signed numeric field
-
Improve WORKSTATION I/O cards supports
Transversal capabilities
New features
-
Data Migrator Tool: Added ebcdicFilesWithVarcharInVB property to allow taking VARCHAR 2-byte length into account when reading bytes
-
Implemented a common API to log error
-
Implementation of BluAgeErrorDictionaryUtils and use of common API to log error and/or info in COBOL2Model, RPGCycleBuilder, Definitions2Model and FieldsProcessor
-
Improved SQL grammar to support different isolation clause definition
Improvements
-
Upgraded Angular version to v16
-
Angular: Upgraded ajv version from 6 to 8.9
Third party
-
Upgraded Groovy to version 2.4.15
Release notes 3.8.0
This release of AWS Blu Age Runtime and Modernization Tools is focused on multiple transversal enhancements across the product to improve its quality and security, along with improvements in performance for caching and the unification of commands supports in a single distribution. Some key features and changes in this release are:
-
Version upgrade from Spring 2.5 to Spring 2.7, increasing the maintenance support, performance, and security of the platform.
-
Unification of more than 82 CL commands support as part of the over-the-counter distribution in order to facilitate the usage and deployment of modernized applications previously using CL scripting.
-
New APIs available to operate and interact better with BluSAM datasets, such as integrated import to the managed service and the capability to list dataset metadata information.
-
Performance improvements and extension of the usage of Redis, including availability in cluster mode, high availability data retrieval, standardization of the usage of secrets.
For more information about the changes included in this release, see the following sections.
Runtime release 3.8.0
zOS
New features
-
Handling key definition as a string for DynamicFileBuilder
-
DFSORT: Added support for multi-items in OUTFIL TRAILER1 + DFSORT grammar initialization
-
CommonDDUtils tool: handling record size in in-stream data
-
Indexed file: handling the GENKEY option
Improvements
-
Externalized BluSAM loading services in a separate jar
-
Added support to set up location for storing temporary files
-
Improved shared cache mechanisms for multi-nodes cases
-
Shared cache usage: IDCAMS verify optimization
-
Improve ROWID injection for embedded select
-
JCL: Each in-stream job procedure is now generated in a distinct Groovy file
-
Ensure card-demo-v2 coverage on IDCAMS JCL cards
-
BluSAM: Avoid duplicate warmUp when using multiple instances
-
Reduced memory footprint on cache hydration
-
Jedis pool config support
-
Added line separator to stream if used in file concatenation
-
Support for EBCDIC cards + block comments (/* ... /) in IDCAMS utility
-
Database support query: support for double byte strings in the conversion of level49 towards SQL
-
DFSORT grammar: implements 17 control statements + integration of 2 of them (OMIT/INCLUDE)
-
Enhance GRAPHIC columns fetch INFUTILB
-
Support for reading file with variable Size table
-
Support for ZonedType with nibble signed where the first bit of last byte is 'E'
-
DFSORT/ICETOOL adds support for NOMATCH=(..) argument if a record does not match any of the CHANGE find constants
-
Redis Cluster compatibility
-
Handling Job Status (Failed) based on groovy exit code
-
Improved CICS SYNCPOINT ROLLBACK support.
-
Pre-fetch window to optimize Redis cache usage
-
JCL/GROOVY: Inherits isRDW property from previous step's dataset when DISP=(,PASS)
-
Handling partial copy of data with variable size array
AS400
New features
-
Support for I/O cards for display files
-
Support for additional message information for DSPF keywords ERRMSGID and CHKMSGID
-
Support for multiple error messages on frontend screen
-
Added or improved support of 82 CL commands within the gapwalk-cl-command application
Improvements
-
Improved support for DELETE and READ under commitment control
-
ConvertDate inside of builtin %dec
-
Enforced XSS security headers
-
Improved robustness and consistency of STM generation (better handling of: continuation line in free form rpg, commas for decimal part, free form blocks in definition/declaration)
-
Improved DataHolderMapper generation
-
Added robustness and change scope in DataAreaFactory
-
Improved the focus shifting on tab key
-
Improved performance on Jasper report generation
-
Improved decimal display with padding 0s
-
Improved support for ROW/COL field in INFDS
-
Improve support for modified fields from the screen
-
Added getters for generated report name and path
-
Improved on Dataqueue length
-
Improved autoconfiguration of Job Queues to match new standards in Spring Boot 2.7
-
Improved workstation updates for multiple concurrent sessions
Transversal capabilities
New features
-
Support for No Invalid Data Tolerance for Packed
-
Added pagination/filtering to list dataset endpoints
Improvements
-
Enhanced ORACLE query transformation strategy in column comparison against empty string
-
Handling BLOB DB2 with DSNTEP and INFUTILB utility programs. BLOB DB2 are now modernized to BYTEA type postgres.
-
Improvement of deletion of last item of cursor
-
Enhanced support for delete RRDS file
-
Improved AWS Blusam secret performance
-
Improved handling of database connections in SQL framework
-
Standardized AWS multi-datasource secret manager keys
-
Performance regression fixes
-
Improved check function for PackedType
-
Improved handling of LOW-VALUE for PackedType
-
Upgraded spring security packaging for cognito connection
-
Not applying codeshiftpoint encoding and decoding on DB2 targeted databases
Third party
-
Spring Boot upgrade from 2.5 to 2.7
Modernization tools release 3.8.0
zOS
New features
-
JCL: Handling stream with carriage return "\r"
Improvements
-
Improved logging to prevent division by zero when modernizing a DIVIDE with ON SIZE ERROR clause
-
JCL: Enhanced support for calling a procedure in a procedure
-
Support for OF keyword in FORMATTIME CICS command when there are ambiguous fields
-
JCL: support for ¥ character in variables
-
JCL: computing RC based on previous steps
-
Comparing bytes instead of strings when PL1 SUBSTR is used
-
Improvement of initialization of multidimensional arrays from single source
-
Improved parsing of COBOL when it involves a single SQL query in an IF block
AS400
New features
-
Support for nested IF statement in CL
-
Improved support for ENDDO statement in RPG freeform
Improvements
-
Improved support for conditioning Control Level
-
Improved prototype return with LIKE
-
Improved support for handling functions %months, %year, %days
-
Support for help feature for the whole screen
-
Handling figurative BLANKS passed as a parameter
-
Improvement on expression EVAL with "" operator
-
Handling START command without KEY PHASE
-
Improvement on handling the Keyword LIKEREC
-
Improvement on unnamed subfields
-
Improvement on procedure returning an unsigned type
-
Improved support for RESET operation (Free RPG), %CHAR and %DEC built-ins
-
Improvement in the builtin function %LOOKUPXX
-
Improved support for LIKEDS keyword on procedure without prototype
-
Handling Dim keyword array type (VAR, AUTO)
-
Improved support for XFOOT
-
COBOL: improved support for RENAMES fields
-
CL: support while(true) condition
-
Improved the handling of standalone arrays with LIKE keyword
-
Improvement of built-in function %INT
-
Improved RPG Full Free parsing
-
Improved support for array in the linkage
-
CL2GROOVY: Support Select Statement
-
Improvement in DSPF keyword "ERRMSGID"
-
Improved the handling of initializing bytes with leading zeroes
-
Improvement on authorizedValues for numerical fields
-
Handling extender H for Free form EVAL statement
-
CL to Groovy: Support substring of LDA
-
Improved support for RESET on a record
-
Improved the handling of EDTCDE and EDTWRD with references
-
Improved input-field mapping with DDS fields
-
Improvedsupport for MOVEA character into IN array
-
Improvement in prototype with LIKEDS keyword
-
Improved support for the DSPF keyword DSPATR
-
Improved parsing of D-card with +/-
-
Added robustness in program calls
-
Added robustness in the field-resolving process
Transversal capabilities
Improvements
-
FrontEnd: Simulate paste event for IME input
Third party
-
Spring Boot upgrade from 2.5 to 2.7
Release notes 3.7.0
This release of AWS Blu Age Runtime and Modernization Tools mainly includes enhancements to better support commands and utilities, capabilities to integrate with AWS Secrets Manager and new monitoring features. Some of the key changes in this release are:
-
Multiple runtime components can now use AWS Secrets Manager to increase the security setup of modernized applications, mostly related to utilities data sources, Redis for TS Queues, BluSam cache and locks.
-
Monitoring endpoint that allows to retrieve transaction, batch, and JVM metrics for resource usage optimization and operational management, such as status, duration, volume, and others.
-
New features to support IBM MQ calls in RPG, and increased JCL SORT and IDCAMS transformation coverage.
For more information about the changes included in this release, see the following sections.
Runtime release 3.7.0
zOS
New features
-
Improve parsing queries involved in program utility application by using SQL like grammar. (V7-9401)
-
Handle indexed Variable Size Array when offset (V7-9904)
-
Support INSERT SQL TIME column into DB2 with 24:00:00 hour format (V7-10023)
-
Support INSERT SQL query from arrays with FOR ROWS and ATOMIC options (V7-10105)
-
JCL SORT - enhance TranscodeTool to support OUTREC with IFTHEN (V7-10124)
-
JCL SORT - add support for DATE keyword in OUTREC command (V7-10125)
-
JCL - add support of In-Stream procedures (V7-10223)
Improvements
-
A dataset marked with the "PASS" disposition should be available across all job steps (V7-9504)
-
Support JCL attribute SCHENV (V7-9570)
-
Support SEND with CTLCHAR option (V7-9714)
-
COBOL - Handle different line separator charsets in ACCEPT statements (V7-9875)
-
Avoid multiple rollback (V7-9958)
-
Allow use of MOD disposition to append at the end of GDG files (V7-10031)
-
Optimization: putAll refactoring (V7-10063)
-
PutAll refactoring: adding pagination (V7-10063)
-
Make Jedis client read timeout configurable (V7-10063)
-
UseSsl support for standalone mode (V7-10114)
-
Support EIBDS after opening file successfully (V7-10147)
-
Support EIBDS after a file control request (V7-10147)
-
Improve CICS SYNCPOINT support (V7-10187)
-
BluesamRedisSerializer: issue with metadataPersistence (V7-10202)
-
Support Redis AWS Secrets Manager for TS queues (V7-10204)
-
Support JCLBCICS on customizing DD name size (V7-10224)
-
Adds support for absolute path in IDCAMS DELETE statement (V7-10308)
AS400
New features
-
Implementation of the help feature for AS400 screens (V7-9673)
Improvements
-
Number of records in INFDS (V7-9377)
Transversal capabilities
New features
-
Support for Runtime on EC2 to send logs to Amazon CloudWatch (D87990246)
-
Added new endpoint to retrieve metrics about batches, transactions, and JVM (D88393832)
Improvements
-
Support datasources AWS Secrets Manager for utility pgm (V7-9570)
-
Added Db2 support for DSNUTILB DISCARD (V7-9798)
-
Support for writing into logger instead of default system output stream in default SYSPRINT and SYSPUNCH files (V7-10098)
-
Support BluSam Redis cache and locks connection properties in AWS Secrets Manager (V7-10238)
-
Support for SSL connection on Db2 XA AWS secret (V7-10258)
-
Updated metadata for IDCAMS REPRO and VERIFY (V7-10281)
-
Improved IDCAMS Abend Return Code Management (V7-10307)
Modernization tools release 3.7.0
zOS
New features
-
PLI - Improved assignment for array cross section and two-dimensional arrays (V7-9830)
AS400
New features
-
Handling of control level indicators (V7-9227)
-
Support for EXTNAME parameter *INPUT (V7-9897)
-
Enhanced Goto Rewriting: Support for tags located in SELECT OTHER statements (V7-9973)
-
Support REFSHIT DSPF keyword (V7-10049)
Improvements
-
Improvement on handling file description keyword EXTIND(*INUx) (V7-7404)
-
Improved SQLDDS file transformation (V7-7687)
-
File objects no longer generated for AS400 files (V7-9062)
-
Improved handling of file description keyword EXTDESC (V7-9268)
-
Improved handling of %CHAR builtin (V7-9311)
-
Improved support for pagedown on last record without SFLEND (V7-9322)
-
Improved support for prefixed data structures (V7-9436)
-
Support for dimension defined with %SIZE (V7-9472)
-
Support for handling PF field name declared within double quotes (V7-9557)
-
Improved file operation - case insensitive (V7-9785)
-
Support for field initialized to *USER (V7-9806)
-
Support for COMP type in AS400 (V7-9840)
-
Improved COBOL400 parsing on (Not)InvalidKey (V7-9922)
-
Improved handling of SCAN operation (V7-9971)
-
Improved support of GOTO opcode (V7-9973)
-
Improved handling of EXCEPT operation (V7-9977)
-
Improved prefix support (V7-10000)
-
Support for MQ calls in RPG (V7-10007)
-
Improved %LOOKUP builtin (keyed array data structure) (V7-10022)
-
Support for Close *All operation (V7-10036)
-
Support for UPDATE AS ROW CHANGE SQLDDS statement (V7-10051)
-
Improvement to handle literal value type Long (V7-10073)
-
Improved RPG grammar (the use of the keyword INZ as name of subroutine) (V7-10074)
-
Improved RPG grammar to support numeric values with empty fractional part (V7-10077)
-
Improved support for fields shared between CL and external file (V7-10081)
-
Improved support for DDS conditional indicators (V7-10084)
-
Support for DDS binary type with COBOL programs (V7-10100)
-
Improved name collision with linkage (V7-10109)
-
Support for mixing main and export procedures (V7-10112)
-
Improved support for DataStructure in a sub-procedure (V7-10113)
-
Improved support of CLEAR (V7-10126)
-
Improved support of DO loop (V7-10134)
-
Support SQLTYPE in Full-Free RPG (V7-10151)
-
Improved parsing of conditions on DDS keyword (V7-10155)
-
Improved DSL generation (V7-10163)
-
Improvement for processIndicators when the condition is a binary expression. (V7-10164)
-
Improved GOTOs with Else condition (V7-10168)
-
Support for type Time and Timestamp in DSPF (V7-10173)
-
Improved parsing of continuation line for DDS (V7-10183)
-
COBOL support for RENAMES FLD OF RECORD (V7-10195)
-
Improved conditional indicator parsing on DSPF fields (V7-10221)
-
Support parsing of DDS keyword NOALTSEQ (V7-10288)
-
Support Help menu and hidden fields (V7-10314)
-
Improved DSPF help keyword sanity check (V7-10328)
-
No longer propagating all keywords on Ref field (V7-10347)
Transversal capabilities
New features
-
Data Migrator - Handling CLOB data (V7-9665)
Improvements
-
Propagating JCL property SCHENV from JOB to PROC GROOVY definition through JobContext (V7-10225)
-
FrontEnd - Adjusting window size in case of no border (V7-10358)
Release notes 3.6.0
This release of AWS Blu Age Runtime and Modernization Tools provides new features for both zOS and AS400 legacy migrations, mainly oriented to expanding CICS support mechanisms, complementing JCL capabilities, optimizing performance in concurrent and high-volume features, and adding multi-data-source capabilities. Some of the key changes in this release are:
-
Enhancement of JCL dynamic file handling, expansion of current statements and management of concatenated datasets, execution of multiple statements in a single block, and data transfer from batches to programs.
-
Enhanced support of multiple CICS commands, including inquiry for several CICS resource types.
-
The capability to have different databases when using Blu Age Runtime Utilities, best suited for scenarios when business data is distributed across multiple sources.
For more information about the changes included in this release, see the following sections.
Runtime release 3.6.0
zOS
New features
-
JCL - DynamicFileBuilder - Enhanced file-handle management (V7-9408)
-
Enhanced format conversion on some built-in SQL DB2 functions when calling the INFUTILB UNLOAD utility (V7-9554)
-
Enhanced PLI multi-dimensional array assignments (V7-9592)
-
Handling of sysout redirect to file (V7-9992)
Improvements
-
Add triggering of stored procedures for DB2 RDBMS (V7-9155)
-
SORT handles conversion to PDF format (V7-9286)
-
JCL/GROOVY - Enhance REPRO statement to support DUMMY datasets (V7-9424)
-
Improve CICS UNLOCK support (V7-9606)
-
Handle default value size for Union (V7-9648)
-
JCL/GROOVY handle different termination/disposition in concatenated datasets (V7-9653)
-
Make pageSize configurable for Blusam datasets (V7-9680)
-
DSNUTIL - allow loading of 24:00:00 as valid TIME in DB2LUW (V7-9697)
-
Support HIGH-VALUES (0xff) comparison in NumberUtils.ne() / NumberUtils.eq() (V7-9731)
-
JCL/GROOVY - support DO ... THEN keywords in IDCAMS IF-THEN-ELSE clauses to execute multiple statements in a single block (V7-9750)
-
Invalid JHDB called program outside JHDBBatchRunner (V7-9782)
-
Support whitespace characters in SORT OUTFIL control card (V7-9808)
-
Improve CICS READ PREV support (V7-9845)
-
Improve concurrent access for dataset indexes (V7-9864)
-
Improve CICS REWRITE support (V7-9873)
-
COBOL - support for multi line SYSIN in ACCEPT statements to pass data from batch (JCL) to a program (COBOL) (V7-9875)
-
Groovy - Better handling of ConcatenatedFileConfiguration at files creation step (V7-9876)
-
IDCAMS UTILITY - Handling of DEFINE PATH statement (V7-9878)
-
SORT BUILD - Adjust TRAN option and handle implicit blanks (V7-9925)
-
Improve CICS DELETE with GENERIC option support (V7-9939)
-
Improve CICS STARTBR and ENDBR support (V7-9952)
-
Improve close performance on concurrent access (V7-9953)
-
Improve file status handling on start (V7-9991)
-
Groovy - Allow call of getDisposition()/getNormalTermination()/getAbnormalTermination() on ConcatenatedFileConfiguration (V7-10012)
AS400
New features
-
Support external indicators on COMMIT keywords (V7-6035)
-
Reset ReadC loop after SFLCTL write (V7-8061)
-
Support LR indicator in CALL (V7-9250)
-
Add new type of dynamic-field (split) to handle input field on multiple lines (V7-9370)
-
Support primary/secondary file (V7-9390)
-
Local Data Area are now passed to the called job when submitting a job (V7-9775)
-
Support of QTEMP for data area and support of datarea value creation. (V7-9916)
-
Commitment Control - support for enable/disable commitment control (V7-9956)
-
Support external indicators on COMMIT keywords
Improvements
-
Improve 0 value display and EDTWRD (V7-8933)
-
Support of DSPF keyword "CHKMSGID" (V7-9125)
-
SQL commit transaction upon batch termination (V7-9232)
-
Improve support of keywords EXPORT and IMPORT for field and datastructure (V7-9265)
-
Support lower case in DateHelper (V7-9461)
-
Support conversion *CYMD to *ISO (numeric) (V7-9488)
-
Improve the handle of built-in %len for a varying field (left-hand and right-hand side of an expression) (V7-9733)
-
Improve support for built-in functions '%LOOKUPXX' XX ("LE","LT","GE","GT") (V7-10064)
Transversal capabilities
New features
-
CICS - Improve Inquire transaction for option status (V7-9712)
-
JCL - Improve Load for sysprint with system out file (V7-9797)
-
CICS - Improve INQUIRE TSQUEUE (V7-9823)
-
CICS - Improve Inquire terminal for option userid (V7-9906)
Improvements
-
Improve the handle of the comparison with blank (V7-8047)
-
Improve logging for Jics and Blusam (V7-8847)
-
Support BMS extended attributes SOSI and programmed symbol F8 for dynamic fields (V7-8857)
-
Handle buffer overflow in program parameter (V7-9138)
-
Improve threads write concurrency for Blusam locks registry (V7-9505)
-
Support multiple datasources configuration for Utility-pgm (V7-9570)
-
Blusam record level locking only mode (V7-9626)
-
Ensure metadata persistence resists to server restart (V7-9748)
-
Improve DAO clean-up on exception (Browser Close) (V7-9790)
-
Support DummyFile for INFUTILB SYSPUNCH (V7-9799)
-
Enhance support for negative values on NumericEditedType (V7-9935)
Modernization tools release 3.6.0
zOS
New features
-
JCL - Enhance logging for end of procedure (V7-8509)
-
PL1 - Enhance bags generation for data type PakedLong (V7-8917)
-
JCL - Enhance logging for end of procedure when the file contains the "end" marker // (V7-9509)
-
PL1 - Enhance support for GET EDIT with Fixed-point and SYSIN stream (V7-9593)
-
DB2 - Enhance support for VARGRAPHIC DB2 type (V7-9809)
-
CICS - Improve command QUERY SECURITY for option LOGMESSAGE (V7-9969)
-
PL1 - Improve bags generation for CHARG/chargraphic built-in (V7-9989)
Improvements
-
PL1- Enhance support for INCLUDEX keyword (V7-9588)
-
PL/I - Handle CHARGRAPHIC keyword as a valid parameter of any method call (V7-9589)
-
Improving PL1 host variable resolution when named with specific characters @ # $ §. (V7-9654)
-
COBOL - Support of C01...C12 & S01...S05 keywords as parameter of WRITE ADVANCING statement at parsing step (V7-9669)
AS400
New features
-
Support SQL-DDS transformation in Analyzer (V7-7687)
-
Automate SQL-DDS file detection (V7-7687)
-
Implementation of SQL-DDS preprocessing (V7-7687)
-
Support ALIGN keyword (V7-9254)
-
Support ExtName to DSPF and multi-dim array (V7-9663)
-
Support InvalidKey statements on COBOL WRITE (V7-9793)
Improvements
-
Improvement on TESTB opcode (V7-8865)
-
Improve support of DECFMT on focus (V7-8933)
-
Handling resulting indicator on MOVE (V7-9224)
-
Improve support of keyword TEMPLATE for field and datastructure (V7-9278)
-
Improvement of LIKEDS (DS defined using LIKEDS is automatically qualified) (V7-9302)
-
COBOL - Improve generation of indicators structure (V7-9423)
-
Const parameter in prototype is not read-only (V7-9437)
-
Improve EDTCDE keyword with edit code "Y" (V7-9443)
-
Support generation of *ROUTINE field in PSDS and INFDS (V7-9487)
-
Improve rewriting field XXX to standalone (default value is lost while rewriting) (V7-9522)
-
Improve Support of DSPF keywords (V7-9658)
-
Handling ZEROES default value on binary (V7-9666)
-
Support implicit pointer (V7-9719)
-
Improve the handling of built-in call %size with one parameter (V7-9730)
-
Improve the handling of datastructure references in built-in calls (%ELEM) (V7-9736)
-
Improve the handling of signed length for field with LIKE reference in definition specification (V7-9738)
-
Improvement on REWRITE (V7-9791)
-
Improvement of the generation of indexes from DDS files (V7-9803)
-
Improve mappers robustness with invalid numeric value (V7-9813)
-
Improve SQLModel and allIndexes files generation (V7-9818)
-
Improve qualified DS support (V7-9863)
-
Improve support of LOOKUP (with a standalone field LIKE a DS in parameter) (V7-9961)
-
Improve LIKE on indicator (V7-9985)
-
Handling resulting indicator on MVR (V7-9995)
-
Support character N with tilde (V7-10021)
-
Improve modern DDL files generation from SQLDDS legacy files (V7-10067)
Transversal capabilities
New features
-
Customize resource location with a yml property (D88816105)
-
COBOL - Support of EXIT PERFORM statement to exit from an inline PERFORM without using a GO TO / PERFORM ... THROUGH (V7-9582)
-
Specifying default legacy encoding to consider into global metadata. (V7-9883)
Improvements
-
Improve mask generation (V7-9602)
-
Improve context warm-up (V7-9621)
-
Make Charset CUSTOM930 thread safe. (V7-9674)
-
Improvement on MOVEA (V7-9773)
Release notes 3.5.0
This release of AWS Blu Age Runtime and Modernization Tools provides new features for both zOS and AS400 legacy migrations, mainly oriented to datasets and messaging optimization, as well as extended Java capabilities as a resulting asset of the transformation process. Some of the key changes in this release are:
-
Capability of migrating CL programs to Java in addition to the pre-existent groovy scripts feature, to facilitate its integration with other modernized programs, and to simplify customer learning curve by unifying the resulting programming language.
-
Time reduction and optimization of the performance of dataset loads in Redis with the new data bulk feature.
-
Ability to operate and pass datasets within job steps to modernize traditional datasets behaviors.
-
Extension of SQL migration to support VB input files and Java 11 simplified migration.
-
Multiple new mechanisms for faster integration with IBM MQ including additional headers, extended GET/PUT support and automatic retrieve of queue metadata.
-
REST Endpoint for datasets metadata and import datasets from S3 buckets.
For more information about the changes included in this release, see the following sections.
Runtime release 3.5.0
zOS
New features
-
JCL SORT - Handle new keyword overlay (V7-9409)
-
ZOS COBOL - enhance support of floating char (V7-9404)
-
Port of RedisJicsTSQueue to RedisTemplate & ListOperations (V7-9212)
-
ZOS JCL - enhance temporary directory's path with files directory if defined through UserDefinedParameters (V7-9012)
-
Handle FUNCTION ORD-MAX with ALL (all array items) (V7-9366)
-
Prefixed and human-readable keys are now used when storing TS Queues in Redis (V7-9212)
-
Add get dataset endpoint for Blusam API
-
JCL - ADD support for batch job with name involving special character like # (V7-9136)
-
TSModel fetching is now robustly performed on demand (V7-9212)
Improvements
-
Non-versioned INCLUDE support in LNK files (V7-6022)
-
MQ - Enhance encoding support (V7-9652)
-
Improving support for double bytes or mixed charsets for varying character type (V7-9596)
-
JCL - Support of filesDirectory configuration in IDCAMS delete NONVSAM statements (V7-9609)
-
Support bulk mode for ESDS and RRDS datasets loading from files (V7-8639)
-
Handle the opening of empty ESDS in input mode. (V7-9287)
-
Enhance DEFINE CLUSTER statement with ORD/UNORD abbreviation support (V7-9451)
-
Blusam Redis lock performance improvements (V7-8639)
-
Enhance DEFINE CLUSTER statement to support RECORDSIZE provided in DATA() argument scope (V7-9337)
-
Adds support of BUFFERSPACE/UNIQUE attributes on DEFINE CLUSTER statements (V7-9419)
-
Improve Blusam read operation for variable length record dataset. (V7-9391)
-
CICS ADDRESS properly represents missing CWA as null (V7-9491)
-
Remove Unnecessary write at end locks (V7-8639)
-
Handle Redis cache template injection in cache (V7-9510)
-
Decode correctly BPXWDYN parameter (V7-9417)
-
Improvement on LISTCAT export consumption (V7-9201)
-
Non-printable chars support in Blusam TS Queues name (V7-9212)
-
Handle receive Map building for field with mapset null (V7-9486)
-
Improve BluesamRelativeFile delete and rewrite operation for dynamic access mode. (V7-8989)
AS400
New features
-
Add a feature to generate CL files as Java programs through standard DS/STM pivot (V7-9427)
-
Support Input File with ADD mode (V7-9378)
-
Improved sort order and retrieval management to support cl command OPNQRYF (Open Query File) and added support of SHARE parameter in OverrideItem. (V7-9364)
Improvements
-
Support SFLNXTCHG on UpdateSubfile (V7-8061)
-
Modify scope of CL context when run CL command (V7-9624)
-
Handle return code for program BPXWDYN (V7-9417)
-
Clear local monitors. (V7-9624)
-
Support of DSPF keyword RTNCSRLOC (V7-9389)
-
setOnGreaterOrEqual() not setting Equal to 1 (V7-9342)
-
Update fields cache on UpdateSubfileRecord (V7-9376)
-
Improve Support SFLNXTCHG (V7-8061)
Transversal capabilities
New features
-
Ignore G prefix on literal graphic string. (V7-9420)
-
ZOS COBOL - Enhance support of Fiedl.initialize() for some special structures (V7-9485)
-
Allow initialization of context asynchronously to improve performance of program startup (V7-9446)
-
SQL Release explicitly the opened prepare statement and ResulSet. (V7-9422)
-
Enhance JMS MQ - support MQRFH2 for MQ PUT / V7-7085 - support of default queue manager (V7-9400)
-
SQL Management - Enable Lambda conversions on parameters for SET commands (V7-9492)
-
ZOS MQ JMS - Add support to MQCOMIT and MQBACK (V7-9399)
-
ZOS IBMMQ - Enhance support to MQINQ (V7-9544)
-
Handle CONCAT operation with byte instead of string when using double byte encoding. (V7-8932)
-
ZOS IBMMQ - Enhance support of PUT command with options SET_ALL_CONTEXT (V7-9544)
Improvements
-
Handle gdg file names with $ character (V7-9066)
-
SQL Diagnostic return 1 as NUMBER clause when previous SQL statement is successful. (V7-9410)
-
Outlining for field with non null length (V7-7536)
-
Support built-in PL1 GRAPHIC function (V7-9245)
-
MQ - Add support of version for MQGMO fields setting (V7-9500)
-
JMS MQ GET - Message returned dataLength improvement (V7-9502)
-
Set sqlerrd(3) with number of fetched items in ROWSET context. (V7-9371)
Modernization tools release 3.5.0
zOS
New features
-
ZOS PLI - Support asterisk index in assignment with binary expression (V7-9178)
-
JCL to BatchScript - A "//" marks the end of job execution (V7-9304)
-
ZOS PLI - enhance support of floating char and sign in numeric edited type (V7-8982)
-
COBOL - Support of built-in SUM function (V7-9367)
-
JCL- optionally, comment dead code after null statement (//) (V7-9202)
-
JCL- Support of operator '|' in condition statement (V7-9499)
-
PL/I - Comment of precompilation directives at preprocessing step to prevent parsing exceptions (V7-9507)
Improvements
-
Handle Stream definition with delimiter (V7-9615)
-
Improving LISTCAT exports handling. (V7-9201)
-
PL/I- Enhancement to support implicit 'null' arguments (V7-9204)
AS400
New features
-
Support of DDS keyword CONCAT (V7-9439)
-
Refactor the generated java code for DSPF keywords. (V7-7700)
-
Support Varying keyword on fields within a data structure definition (V7-9029)
Improvements
-
Improve parsing of logical relationship AND/OR (V7-9352)
-
COBOL Improve mapping between vo and dsEntity (V7-9449)
-
Display empty value if numerical input is focused (V7-9374)
-
Local variable in SQL Declare Cursor (V7-9456)
-
Scope problem with empty DS (V7-9466)
-
Truncate lines after col 80 before parsing (V7-9632)
-
Improve the handle of field references and built-in calls in keywords (DIM, LIKE,...) in definition specification (V7-9358)
-
Support SQL comments (--) (V7-9632)
-
FullFree parsing, type Date/Time/Timestamp (V7-9542)
-
Include SQLCA from FullFree parsing (V7-9333)
-
Improve Support of Control Level. (V7-9610)
-
Handle DS comparison with *BLANKS (V7-9668)
-
Improve support of multiple indicators in DDS (V7-9318)
-
Improve support of multiple DSPF programs (V7-9657)
-
Improve the handle of field with LIKE (case of liked data structure and case of liked data structure in an array) (V7-9213)
-
Free RPG, Handle continuation on literal (V7-9686)
-
Improve Support of end of program records (V7-9452)
-
Support of the LINKAGE phrase in the CALL statement. (V7-9685)
-
CASXX operation code (CASBB without CASXX group) (V7-9357)
-
Improve FullFreeRPG parsing (V7-9457)
-
Built-in %LEN does not support DS as argument (V7-9267)
-
Improvements of MOVEA when factor 2 is *ALL'X...' (V7-9228)
-
Support assign with RENAME field (V7-9385)
Transversal capabilities
New features
-
SQL Migrator tool - Add OID option for variable record length at ebcdic loading step. (V7-9380)
-
SQL Migrator tool - Support for Java 11 on OID option (V7-9599)
Improvements
-
Improve support for nested arrays (V7-9595)
-
Replace ¬ character by ! in case of ¬ is supported by original encoding. (V7-9465)
-
JCL - Support of PASS normal termination to share datasets between job steps (V7-9504)
-
Apply ON NULL to column definition on ORACLE when deals with VARCHAR and nullable db column type. (V7-9681)
-
Improve Spring injection compliance (V7-9635)