_________________________________________________________
Release Notes for
IBM Informix 4GL 7.51.xC4
March 2025
________________________________________________________
Table of Contents
=================
I. Overview of Release Notes for IBM Informix 4GL 7.51
II. Products included in 7.51.xC4
III. New features in 7.50.xC5
IV. New features in 7.50.xC4
V. New features in 7.50.xC3
VI. New features in 7.50.xC2
VII. New features in 7.50.xC1
VIII. Customer-reported defects fixed in 7.51.xC3
IX. Customer-reported defects fixed in 7.51.xC2
X. Customer-reported defects fixed in 7.51.xC1
XI. Known issues and workarounds
=================
I. Overview of Release Notes for IBM Informix 4GL 7.51
____________________________________________________________
These release notes contain additional information not found in the
product manuals that are included with the product. You should
review these notes for critical information.
Due to changes in related functionality, the introduction of new functionality, or the removal of support, some IBM Informix 4GL functionality
available in earlier releases has been deprecated.
For Machine Specific settings needed with the 7.51 release refer to
the MACHINENOTES.751 file.
II. Products included in 7.51.xC4
___________________________________
The products released are:
IBM Informix 4GL
IBM Informix 4GL/Runtime Facility
IBM Informix 4GL/Rapid Development System
IBM Informix 4GL/Rapid Development System Runtime Facility
IBM Informix 4GL Interactive Debugger
IBM Informix SQL
IBM Informix SQL/Runtime Facility
Language Supplements containing the localization requirements are not
part of the product-suite.
The 4GL product suite contains 4GL and SQL product-specific message
files. It does not contain the full complement of SDK product-specific
message files. To access all message files, you must install the
International Language Supplement (ILS).
III. New features in 7.50.xC5
______________________________
IBM Informix 4GL 7.50.xC5 provides the following new features:
* Simultaneous thread handling
* NULL handling in inputs and outputs
* Optional input and output parameters in 4GL
* Dynamic array support
Simultaneous thread handling
---------------
This release supports simultaneous thread handling with the introduction
of the FGLD daemon. In previous releases multiple invocations of the same
IBM Informix 4GL function ran simultaneously in a dedicated Informix 4GL
environment and share resources. With simultaneous thread handling, clients
can have their own environment and individual copies of data. The FGLD
daemon receives a request from the Axis2C client, communicates with 4GL,
and returns the results to the Axis2C client. The AXIS2C server and FGLD
daemon must coexist on the same computer. The FGLD daemon requires that
two new environment variables (FGLD_PORTNUMBER and FGLD_HOSTNAME) be
set in the same terminal where the AXIS2C server is started. The FGLD daemon
also can relay errors to the clients.
For more information about this feature, see the
IBM Informix 4GL Web Services Administration Guide.
NULL handling in inputs and outputs
----------------
IBM Informix 4GL can handle NULL values as the inputs and outputs within
an Informix 4GL function. In a web service, the WSDL standard differentiates
NULL and non-NULL values using the xsi:nil="true" attribute for both inputs
and outputs. Informix 4GL adheres to the WSDL standards including
handling NULL values.
For more information about this feature, see the
IBM Informix 4GL Web Services Administration Guide.
Optional input and output parameters in 4GL
------------------------------------
IBM Informix 4GL does not require input or output parameters when publishing or
subscribing to a web service. In previous releases of the product, input and output
parameters were mandatory.
For more information about this feature, see the
IBM Informix 4GL Web Services Administration Guide.
Dynamic array suppport
----------------------
With dynamic array support, IBM Informix 4GL applications can return multiple rows
within a table. Informix 4GL supports the ARRAY data type, but you cannot
use the ARRAY data type in inputs or outputs. Informix 4GL clients can process structured data
such as arrays and records from other 4GL applications, in addition to Informix 4GL
applications.
For more information about this feature, see the
IBM Informix 4GL Web Services Administration Guide.
IV. New features in 7.50.xC4
______________________________
IBM Informix 4GL 7.50.xC4 provides the following new features:
* File I/O enhancement in 4GL
* WSDL parser
* Error handling for 4GL web services
* RECORD data type in 4GL applications
* Reporting available as web services
File I/O enhancement in 4GL
---------------------------
This release introduces direct support for file I/O in Informix 4GL
applications. Unlike earlier versions that supported file I/O indirectly
by calls to C or C++ functions, this release supports new Informix 4GL
statements that can open, read, write, seek, and close report files,
including any UNIX files. This enhancement provides a standard Informix
4GL interface for reporting or reading files. This enhancement is
available to all 4GL users.
For more information about this feature, see the
Documentation Notes for 4GL Reference Manual.
WSDL parser
-----------
This release contains a parser (wsdl_parser) for the Web Services
Definition Language (WSDL) that generates a subscriber configuration
file and simplifies subscribing.
The WSDL parser (wsdl_parser) is integrated with the w4gl utility
or you can invoke the parser from the command line. When you subscribe
to (or consume) a web service, this feature parses the WSDL file to
retrieve all the information that is required to define a web service.
For more information about this feature, see the
IBM Informix 4GL Web Services Administration Guide.
Error handling for 4GL web services
-----------------------------------
When you enable your 4GL applications to run on the web, you can
handle errors generated by the application or web services. IBM
Informix 4GL defines errors by error number (WS_STATUS variable) and
error message (WS_STATUS_MSG variable). The applications can check
for error numbers to determine whether certain errors occurred. The
applications can relay the correct error messages to users who can be
in different locations on remote clients. Error messages are relayed
in English only.
For more information about this feature, see the
IBM Informix 4GL Web Services Administration Guide.
RECORD data type in 4GL applications
------------------------------------
You can use the RECORD data type in 4GL applications to define a
data type as a structure of member variables. You can avoid
specifying all individual member variables of a structure. Instead,
use the RECORD LIKE TABLE.* data type to specify that all columns of
the table make up the structure. The RECORD data type returns only
one row at a time. This RECORD type support is the same as the
RECORD support in 4GL.
For more information about this feature, see the
IBM Informix 4GL Web Services Administration Guide.
Reporting available as web services
-----------------------------------
Informix 4GL reports are now available as web services. You can
transmit any kind of binary or character data across applications
and to other users who might be in different locations. Use the
new data type, WS_FILENAME, as an input or output in the w4gl
interface. Use the VARCHAR(255) data type in 4GL applications to
handle report parameters. These reports can be generated without
changing any pseudocode in your 4GL applications. The WS_FILENAME
data type is a substitute for BYTE or TEXT data types to represent
printable ASCII data and digitized contents. Currently in Informix 4GL,
it is not possible to send BYTE or TEXT data types as outputs.
For more information about this feature, see the
IBM Informix 4GL Web Services Administration Guide.
V. New features in 7.50.xC3
_____________________________
With IBM Informix 4GL 7.50.xC3, I4GL programs can subscribe to web
services written in I4GL or any modern programming language. The product
contains sample demonstrations on how to publish an I4GL web service and
how to subscribe to an I4GL web service using an I4GL subscriber.
VI. New features in 7.50.xC2
_______________________________
With IBM Informix 4GL 7.50.xC2, you can deploy your 4GL functions on
the web without rewriting any source code. The w4gl utility uses your
existing 4GL code to create web services. These web services can be
used by, for example, Java and .Net applications on the web without
you doing any Java or .NET programming. Your business logic is
maintained in 4GL, and made available to a variety of web clients by
the web services.
VII. New features in 7.50.xC1
_________________________________
Informix 4GL 7.50.xC1 supports UTF-8 character encoding. To convert your
existing databases to UTF-8, use a standard converter or enter the
non-English characters manually. English language users can unload data
from the existing en_us database and reload it into the new utf8 database.
VIII. Customer-reported defects fixed in 7.51.xC3
___________________________________________________
Defect # Description
________ ___________
IC93750 STATEMENTS INSIDE SQL BLOCKS DUPLICATES THE FIRST CHARACTER OF
A STRING THAT STARTS WITH AN HYPEN
IT08899 THE FIXES FOR IDSDB00237833 AND IDSDB00243891 INTRODUCE OTHER
PROBLEMS WHEN CURRENT MENU IS USED
IT10633 TABLE PRIVILEGES ARE NOT DISPLAYED IN IBM INFORMIX SQL INTERFACE
IT14057 4GL ID DEBUGGER MAY HANG IN AN ENDLESS LOOP DEPENDING ON THE
TERMINAL WINDOW SIZE
IT15243 ISQL DOES NOT DISPLAY TABLE LEVEL PRIVILEGES FOR STANDARD
ENGINE TABLES
IT15753 UNLOADING BYTE DATA USING ISQL CREATES CORRUPTED UNLOAD FILE
IT16622 COLUMN TITLES DO NOT LINE UP WITH ACTUAL DATA WHEN USING
ISQL -> QUERY-LANGUAGE
IT16989 FGLDB CRASHES WHEN DEBUGGING A SOURCE FILE WITH MORE THAN 32K LINES
IT18226 COLUMN TITLES DO NOT LINE UP WITH ACTUAL DATA WHEN USING
ISQL -> QUERY-LANGUAGE WHEN USING A MULTIBYTE LOCALE
IT20359 ERRORLOG DOES NOT WRITE DATE / TIME INTO THE LOG FILE
IX. Customer-reported defects fixed in 7.51.xC2
___________________________________________________
Defect # Description
________ ___________
IC96162 4GL CRASHES WHEN A VARIABLE IS DECLARED AS CHAR STRING
LONGER THAN 256 BYTES
IT09885 SUBSCRIBERS FAIL TO UNDERSTAND EVEN FAULTS RETURNED BY 4GL
WS WITH UNPREDICTABLE CONSEQUENCES
IT12936 A WS RETURNING AN ARRAY OF DATETIME VALUES DOESN'T HANDLE
NULL PROPERLY AND COULD ALSO CRASH.
IT09833 4GL SOA : IF A SUBSCRIBER RECEIVES A FAULT MESSAGE AND NEEDS
TO RETURN AT LEAST ONE DYNAMIC ARRAY, IT FAILS WITH ERROR -4500
IT09623 LOG MESSAGES ARE RESTRICTED TO 4KB
IT02734 FGLD CANNOT BE RESTARTED FOR A WHILE IF IT HAS SERVICED
REQUESTS RECENTLY AND THEN CRASHED OR WAS TERMINATED.
IT04745 SEGMENTATION FAULT OCCURS IF WE SPECIFY BIG VALUE TO COLUMNS
CLAUSE WITH OPEN WINDOW STATEMENT AND SET JAPANESE LOCALE
IT03742 THE 'STATUS' GLOBAL VARIABLE SHOULD BE UPDATE WITH EVERY
I/O OPERATION
IT02648 ON 64BIT LINUX, DATA CORRUPTION IS POSSIBLE IF STRCPY()
IS USED WITH POINTERS TO AREAS THAT OVERLAP
IT01854 THE NAMESPACE OF SOAP FAULT MESSAGES IS NOT THE SAME
SPECIFIED IN THE WSDL DESCRIPTION
IT01477 HIDE OPTION KEYWORD DOES NOT WORK PROPERLY WHEN USING
VARIABLES TO SPECIFY WHICH MENU OPTIONS TO HIDE
IT12384 COLUMN NOT DISPLAYED IN FORM IF END USER HAS NO SELECT
PERMISSION ON COLUMN AS IN PREVIOUS VERSIONS
IT12512 SPERFORM: CANNOT UPDATE FIELD WITH WORDWRAP ATTRIBUTE
IT10507 DATA FROM TEXT COLUMNS IN PLACED IN THE WRONG FIELDS OR IS
MISSING IF THERE IS MORE THAN ONE TEXT COLUMN
IT10509 ISQL FORMS: THE "DOWNSHIFT" FIELD ATTRIBUTE MAKES UPDATES
FAIL SILENTLY.
IC99563 CUSTOM SPERFORM CRASHES ON PF_GETVAL ON LINUX WHEN
PASSING A STRING LITERAL.
IT07356 CUSTOM SPERFORM CAUSES SEGMENTATION FAULT OR CORE DUMP
WHEN PERFORMING A QUERY
IT06174 ADDING A DETAIL RECORD IN A SPERFORM SCREEN RESULTS IN ERROR:
'** GLIBC DETECTED *** SPERFORM: FREE(): INVALID POINTER:...'
X. Customer-reported defects fixed in 7.51.xC1
___________________________________________________
Defect # Description
________ ___________
IC93105 WSDL_PARSER FAILS TO RETRIEVE A VALUE FOR SOAP_ACTION
IN SOME CASES
IC92452 WSDL_PARSER CAN BE RATHER SLOW IN GENERATING THE 4CF
FILE IN SOME CASES.
IC92486 WSDL_PARSER MAY GENERATE A BAD 4CF FILE IF SOME SERVICE
PARAMETERS HAVE LONG NAMES
IC93105 W4GL MAY NOT ADD INFORMATION ABOUT OPERATION TO A 4CF
FILE WHEN COMPILING SUBSCRIBERS
IC85722 4GL: WARNING #2177-D: LABEL "_EF1CONTINUE" WAS DECLARED
BUT NEVER REFERENCED
IC94063 WHEN AN FGLD PROCESS EXITS ABRUPTLY OR CRASHES, THE
CORRESPONDING THREAD IN AXIS SPINS ON READ() AND CONSUMES CPU
IC94062 ON AIX AXIS2C THREADS MAY SPIN AND CONSUME CPU TIME IF THE
FGLD DAEMON IS NOT RUNNING
IC92311 THE FIX FOR IC82311 MAY CAUSE AN ERROR WHERE MKPATH RESULTS
UNDEFINED.
IC83708 THE 4CF FILE OF A SUBSCRIBER HAS NUMERIC CHARACTERS STRIPPED
AWAY FROM MESSAGE NAMES
IC90693 4GL WEB SERVICE SUBSCRIBERS RETURN ERROR
IC61446 DISPLAY INCORRECTLY HANDLES ASCII 10 FOR JA_JP
IC94212 4GL: PRINTING REPORT USING CLIPPED WITH TAB (ASCII 9) HAS
CHANGED FROM 7.32 TO 7.50
IC93179 4GL: BEHAVIOR OF CLIPPED HAS CHANGED FROM VERSION 7.32
TO 7.50
IC92216 DEFAULT FORM DISPLAYS GARBAGE / ASTERISKS IN CERTAIN FIELDS
WHEN INITIALLY RUN
IC91232 THE MACHINE NOTES DO NOT LIST ALL THE REQUIRED EXTERNAL
SOFTWARE DEPENDENCIES FOR TOOLS
IC91308 REPORT OF ISQL RETURNS WRONG RESULTS WITH MULTI-BYTE
CHARACTERS
IC91565 MESSAGE "ERROR IN FIELD" WHEN ENTERING DATE WITH HYPHENS
IC91126 THE RUNTIME VERSION OF 4GL DEVELOPMENT DOES NOT CONTAIN
THE WEB SERVICES LIBRARIES
IC90598 FORM4GL HANGS IF CLIENT_LOCALE SPECIFIES UTF8 AND THE SCREEN
SECTION CONTAINS A UTF8 STRING LONGER THAN 255 BYTES
IC83781 SOME ISQL TOOLS FAIL TO DISPLAY THE TEXT MESSAGE FOR ERRORS
IC90343 EXTERNAL CALL TO INDEX() IN A 4GL PROGRAM CAUSES ERROR ON
COMPILE
IC89387 RESIZING A MULTIDIMENSIONAL ARRAY GIVES UNEXPECTED END OF
FILE DURING COMPILATION
IC89271 SEGMENTATION FAULT (CORE DUMP) IN 4GL INTERACTIVE DEBUGGER
IC88206 ISQL FORM RETURNS ERROR "CURSOR NOT OPEN." FOR AN UPDATE
ACTION
IC86827 DATE FORMAT "YYYY/MM/DD" IN FORM AND DATE INPUT AS YYMMDD
WITH TWO DIGITS FOR YEAR, RETURNS "ERROR IN FIELD".
IC83701 DATE FORMAT OF "DD.MM.YYYY" IN FORM GIVES "ERROR IN FIELD"
MESSAGE
IC85815 SOMETIMES WHEN A DECIMAL IS PUSHED ONTO THE STACK, THE NULL
INDICATOR IS RESET WHEN IT SHOULD NOT BE
IC83705 FORM SCREEN DISAPPEARS WHEN YOU DISPLAY UTF8 CHARACTER WITH
MESSAGE STATEMENT WITHIN INPUT STATEMENT
IC85296 4GL PROGRAM CORE DUMP
IC84068 CANNOT RUN R4GL BECAUSE OF MISSING SYMBOL IFX_RSTRDTIME
IC82010 4GL: WARNING MESSAGE DURING COMPILE ON HP ITANIUM WHEN
SOURCE HAS NEXT FIELD STATEMENT
IC83418 SEGMENTATION FAULT WHEN WE SET CLIENT_LOCALE=JA_JP.UTF8 AND
CURSOR REACHES TO THE END OF SCREEN
IC82311 THE 4GL/SOA SUBSCRIBER LIBRARY IS GENERATED INTO TMPDIR
INSTEAD OF TARGET_DIR
IC82009 4GL: WARNING MESSAGES DURING COMPILE WHEN ATTEMPTING TO
PRINT REPORT TO A FILE ON HP ITANIUM
IC61446 DISPLAY INCORRECTLY HANDLES ASCII 10 FOR JA_JP
XI. Known issues and workarounds
____________________________________
A. Installing 4GL and CSDK into same folder can result in issues with
4GL at runtime, check the machine notes for platform specific
issues and CSDK versions.
Workaround :
It is highly recommended that 4GL and CSDK/IDS be installed into
separate folders.
B. The 4GL version 7.50.xC3 web services functionality is not compatible
with IBM Informix Dynamic Server version 7.31.
C. In IBM Informix 4GL version 7.50.HC1 and later, the compiler "c4gl" returns
the following error when trying to compile any 4GL program:
/usr/ccs/bin/ld: Can't find library: "cur_colr"
Workaround:
In HP-UX 11.31, create a symbolic link for libcur_colr.1 under
$INFORMIXDIR/lib/esql and $INFORMIXDIR/lib/tools directories
which points to /usr/lib/libcurses.sl.
For example:
ln -s /usr/lib/libcurses.sl $INFORMIXDIR/lib/esql/libcur_colr.1
ln -s /usr/lib/libcurses.sl $INFORMIXDIR/lib/tools/libcur_colr.1
D. When using the Development version of 4GL 7.50.xC2 and later to deploy
the 4GL function as a web service, if any of the files or
directories in the directory pointed to by the $TMPDIR in the
configuration file do not have permissions, the PERL script
returns this error:
This is an issue with the application org.apache.axis2.wsdl.WSDL2C
used by this deployment tool.
Exception in thread "main" org.apache.axis2.wsdl.codegen.
CodeGenerationException: java.lang.NullPointerException
at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.
generate(CodeGenerationEngine.java:278)
at org.apache.axis2.wsdl.WSDL2Code.main(WSDL2Code.java:35)
at org.apache.axis2.wsdl.WSDL2C.main(WSDL2C.java:31)
Caused by: java.lang.NullPointerException
at org.apache.axis2.wsdl.codegen.extension.JavaPrettyPrinter
Extension.prettify(JavaPrettyPrinterExtension.java:49)
at org.apache.axis2.wsdl.codegen.extension.JavaPrettyPrinter
Extension.prettify(JavaPrettyPrinterExtension.java:50)
at org.apache.axis2.wsdl.codegen.extension.AbstractPretty
PrinterExtension.engage(AbstractPrettyPrinterExtension.java:36)
at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.
generate(CodeGenerationEngine.java:272)
... 2 more
This error occurs frequently when /tmp is the designated $TMPDIR
because /tmp is shared by all the users and all the processes.
$TMPDIR should be used by one user only and should not contain any files
or directories that do not have permissions.
Workaround:
Option 1: Create a new directory and designate it as a $TMPDIR. For example,
mkdir /tmp/w4gl_<loginid>
In the example above, <loginid> is the user's login id into the
operating system.
Option 2: Remove all the files or directories from $TMPDIR for which the
user does not have privileges.
E. Statements inside SQL blocks duplicates the first character of a string that
starts with an hypen.
For Example :
MAIN
SQL
UPDATE tab
SET col1= col1* -2 WHERE key="key"
END SQL
Both 4GL pcode compiler and C compiler generate wrong code for the above SQL statement,
for given example above generated 4ec files will have following statement
update tab set col1 = col1 * - 22 WHERE key = "key"
Correct translation should be 'col1 * - 2' but generated code is 'col1 * - 22', this
happens for all SQL that has 'hypen' inside the SQL..END SQL block.
Workaround :
If you have any SQL with hyphen then do not put it inside the SQL... END SQL block.