APPX Server 4.2.7 Release Notes

The APPX 4.2.7 Patch Release addresses the following items:

  • Bug #539: XCOPY across applications still confuses ILF EDITOR
  • Bug #1196: Restructure on RS/6000 destroys Data Files as soon as DD has FLEP's
  • Bug #1305: Query fails to select any records on Descending key
  • Bug #1328: APPX Can't Create files in Access
  • Bug #1415: SET TOT gets wrong answer
  • Bug #1485: uappxd does not honor startup process options
  • Bug #1496: ILF editor loses position and statements
  • Bug #1501: @ in Tooltip or Text doesn't work
  • Bug #1512: ILF Editor can silently rearrange code
  • Bug #1513: Automatic subtotals may overlap (PDF)
  • Bug #1519: Query Fails to select any records
  • Bug #1525: CNV PORT fails with fields longer than 256 bytes
  • Bug #1530: Simultaneous access to the same resource
  • Bug #1531: FLEPs are lost when applying a patch
  • Bug #1549: RECEIVE statement can step on PASSED values
  • Bug #1557: C-assert processing DD Runtime
  • Bug #1585: Tooltips don't translate
  • Bug #1586: Pulldown menu names are not being properly translated at runtime
  • Bug #1590: Regular Expression memory leak
  • Bug #1593: Appx can't create Oracle table with more than 512 columns
  • Bug #1594: Lock held too long for query-constrained PCF stored in an RDBMS
  • Bug #1596: Appx won't read record content in locked Oracle record
  • Bug #1600: TRANSLATE subroutine doesn't work
  • Bug #1601: TRANSLATE FIELD needs better error checking
  • Bug #1602: In Progress messages are not being translated
  • Bug #1608: Transfer query does not allow User ID with trailing spaces
  • Bug #1611: Switching between cache and disk PCF can produce invalid record length CASSERT error
  • Bug #1614: DB2 query optimizer seems brain damaged
  • Bug #1615: DB2 on AS/400 reports unrecognized RDBMS name
  • Bug #1626: Two-level input (with memory-file PCF at both levels) wonks out
  • Bug #1627: Command line switches are broken in AppxDsvc
  • Bug #1628: DB2 reports 'string representation of a datetime value'
  • Bug #1630: License Usage PID field too small
  • Bug #1638: Unable to translate message message is useless
  • Bug #1659: PASS statement copies too much/too little data when passing a FILE
IMPORTANT: If you are upgrading from a release prior to 4.2.5, please refer also to the 4.2.5 Release Notes, as a large quantity of changes, corrections, and enhancements were included in that release. Also, read the 4.2.6 Release Notes. As always, it is highly recommended that you review the Release Notes for all intermediate releases if you are not upgrading incrementally.
Bug #539: XCOPY across applications still confuses ILF EDITOR
  • XCOPY from application BBB into AAA and all statements added have application ID defaulted to BBB.
Bug #1196: Restructure on RS/6000 destroys Data Files as soon as DD has FLEP's
  • As soon as a file which has FLEP's wants to restructure the restructure utility reports errors. Afterwards the data file is empty.
Bug #1305: Query fails to select any records on Descending key
  • If you have an alpha field that allows trailing blanks, and it's a descending key, and you try to run a query that uses that key field, and the criteria is EQ, and the criteria does not use every character of the field, the query will not select any records.
Bug #1328: APPX Can't Create files in Access
  • Local APPX can create tables in Microsoft Access®, but Remote APPX (via appxdsvc.exe tcpip) cannot.
  • Adding the environment variable to either the tail end of the appxdsvc.exe installation option, or to the appx.env file seems to fix this.
  • This has been fixed for 4.2.7. AppxDSvc takes care of expanding the environment variables read from the registry and that translates the TMP (or TEMP) variable as needed.
Bug #1415:

SET TOT gets wrong answer

  • Occasionally, APPX will get confused and return the wrong contents after a SET TOT comand.

Bug #1485:

uappxd does not honor startup process options

  • The uappxd connection manager does not honor startup process options when they are specified on the java client command line.

Bug #1496: ILF editor loses position and statements
  • The ILF editor will often lose its current line position when adding or moving statements near the end of the event point. This results in statements being inserted in the wrong position, statements appearing to be duplicated, and even statements being deleted without warning.
Bug #1501: @ in Tooltip or Text doesn't work
  • If you put an '@' in a tooltip or in the text of a label, nothing after the '@' is displayed to the user.
Bug #1512: ILF Editor can silently rearrange code
  • Related to #1496, but scenario was at top of event point, rather than at end.
Bug #1513: Automatic subtotals may overlap (PDF)
  • When automatic subtotals are created by APPX for fields that are being totaled, subtotal fields may overlap if fields that are being totaled overlap from multiple rows, images, or frames.
  • This problem only exists when PDF output is requested.
Bug #1519: Query Fails to select any records
  • If you have a key field > 22 bytes long and you use it in a query, it will not select the proper records.
  • Query processes have always limited literal values to 30 characters or less. When range-read optimizations were added a while back, the query processor was damaged so that literal values were limited to 22 characters (or less). To fix this bug, the limit has been restored to 30 characters.
  • NOTE #1 - Increasing that limit beyond 30 is considered an enhancement request.
  • NOTE #2 - Key values with a length of 22 or less result in a constrained read of the PCF. Key values longer than 22 characters result in an unconstrained read of the PCF.
Bug #1525: CNV PORT fails with fields longer than 256 bytes
  • A CNV PORT statement fails if the destination (alpha) field is longer than 256 bytes. If the source field is a numeric field, the CNV PORT causes a seg. fault. If the source field is a date field, the CNV PORT fails (but correctly returns a 'F').
  • Definition of statement: "CNV PORT works like CNV TEXT except that the portable format is designed for import/export purposes and is immune to differences in numeric and date masks. CNV PORT ensures that you can import anything that you export."
Bug #1530: Simultaneous access to the same resource
  • The resource record is held causing a cassert if another user attempts to use the same resource.
Bug #1531: FLEPs are lost when applying a patch
  • It appears that APPX does not copy FLEPs when transferring a file definition using the Design Transfer - All utility. Furthermore, there is no warning given that this has happened, either on the screen or in the transfer log. This would be fine, except for the fact that existing FLEPs are deleted when the file definition is subsequently applied as a patch, again without warning.
  • Design transfer has been modified so that it always transfers the Flie Level Event Points (FLEPs). The text of the warning has been altered so that instead of stating the FLEPs will not be transfered if the App ID or Filename is changed, it states that in this case the FLEPs will be transfered but the code should be revised manually to correct App ID and Filename changes.
  • NOTE: We do not automatically try to convert the App ID or Filename in the FLEP code because you may be using the destination applications as a temporary holding area to copy code from development into production. And chances are that if you are really crossing into a new app ID or new filename you will need to make other alterations to the code beyond just changing the App ID and File name on the statements related to this file.
Bug #1549: RECEIVE statement can step on PASSED values
  • A RECEIVE statement in a subroutine that references a field name that is also referenced by a PASS statement in the calling process that has not yet been received will modify the value of the yet to be received field. This will cause the wrong value to be received when a subsequent RECEIVE statement is executed.
Bug #1557: C-assert processing DD Runtime
  • Fixed for 4.2.7.
Bug #1585: Tooltips don't translate
  • Tooltips are not being tranlated at runtime. It appears that the engine is using the wrong length for the tooltip field. The tooltip field has a length of 60. The engine appears to be using a length of 256.
  • The tooltip is being added to the translation dictionary with a length of 256. Positions 61-256 contain 'garbage'.
Bug #1586: Pulldown menu names are not being properly translated at runtime
  • The 'WIDGET GROUP NAME' field is not currently being tranlated. The 'WIDGET LABEL' field is being translated. As a result, pull-down menu items and sub-menu items are not being associated with the correct pull-down menu groups.

Bug #1590: Regular Expression memory leak
  • Every time you use the Appx regular expression matching relational operators, memory is allocated and never freed until you exit the session. Usually several K each time. The amount of memory consumed each time is larger with a more complex expression.

Bug #1593: Appx can't create Oracle table with more than 512 columns
  • If you try to create (or open) an Oracle table that contains more than 512 columns, Appx crashes

Bug #1594: Lock held too long for query-constrained PCF stored in an RDBMS
  • The record lock held for the last record in a query-built result set is held too long if the PCF record is stored in an RDBMS.

Bug #1596: Appx won't read record content in locked Oracle record
  • When Appx encounters a locked record in an Oracle database, it may not read the record content (leaving the wrong data in the record buffer). This only occurs when the engine re-reads a locked record by its record-ID.

  • Also fixed for DB2 and ODBC

Bug #1600: TRANSLATE subroutine doesn't work
  • The 0LA TRANSLATE subroutine does not correctly identify the Application and Version.

  • NOTE: This subroutine has not yet been released for general use.

Bug #1601: TRANSLATE FIELD needs better error checking
  • The 0LA TRANSLATE FIELD subroutine needs to check for and gracefully handle:
    1) A blank source string.
    2) The from and to language ID's are the same.
    Neither of these conditions should occur but they do. The subroutine needs to anticipate that the conditions might occur and handle them without crashing.

  • The subroutine will now return a blank field when passed a blank field.

  • The subroutine will now return the original text when the from and to language IDs are the same.
Bug #1602: In Progress messages are not being translated
  • When running an application with a language ID set, the In Progress message for a Job is not being translated.

Bug #1608: Transfer query does not allow User ID with trailing spaces
  • The transfer query utility displays a 'Blank not allowed' message if either of the User ID fields contain trailing spaces.

Bug #1611: Switching between cache and disk PCF can produce invalid record length CASSERT error
  • In an input process whose PCF is a disk file, scan against a cached version of the PCF. When you come back from the scan and change modes, you'll get an invalid record length CASSERT error.

Bug #1614: DB2 query optimizer seems brain damaged
  • Customer reported that it takes a long time (anywhere from 6 to 40 minutes)
    for an input process to start when using a particular DB2 table. The
    table has 35 million records and occupies 4+ gigs on the AS/400.

  • They turned on logging, and noticed line 'Select * from auliv61f.tttb
    where 1 = 0' in the log. They monitored the sql log while APPX was
    connecting, and the pause occurred when this line was executed. For
    confirmation, they logged on directly to DB2 and entered the command,
    and it took 6 minutes to run there as well.
  • Fixed (hopefully) for 4.2.7, but you must set APPX_USE_SQLCOLUMNS to force Appx to use an alternate method to retreive the metadata for a table.

Bug #1615: DB2 on AS/400 reports unrecognized RDBMS name
  • A DB2 instance running on an AS/400 host reports an unrecognized RDBMS name (AS). On all other hosts, DB2 reports 'DB2'. The Appx/DB2 interface treats DB2 on an AS/400 as a generic RDBMS of unknown type.

Bug #1626: Two-level input (with memory-file PCF at both levels) wonks out
  • If you have a multi-level input process family (with auto-update of the child PCF) and the parent and child PCF's are both memory files, Appx will crash when you delete a record at the parent level.

Bug #1627: Command line switches are broken in AppxDsvc
  • Using AppxDsvc services and trying to launch Appx from the client using the command line switches like -runApplication, -runDatabase, -runProcess and -runProcessType, they will not be honored. They do, however, work for WinAppxD.

Bug #1628: DB2 reports 'string representation of a datetime value'
  • If you try to store a CCYYMMDD field in a DB2 database, you'll get an error that states ' string representation of a datetime value '

Bug #1630: License Usage PID field too small
  • The License Usage field 'PID' on the System Registration is too small. It shows ???? for PID's greater than 99,990. AIX 5.2 is assigning PIDs that are 7 digits.

  • Expanded PID field on scrolling screen and reworked screen to be bigger so more scrolling records can be viewed at a time

Bug #1638:

Unable to translate message message is useless

  • An 'unable to translate message' error occurs when the Appx runtime tries to convert an error code (as defined in the 0LA message file and la.h) into a human-readable, localized form. In almost every case, the error occurs because the engine has reported an error whose code does not appear in the 0LA MESSAGE file (that should never happen). To aid in debugging this sort of problem, we should remove the extra information displayed in that message (because it's confusing) and replace it with the raw error code and the runtime (engine) context.

Bug #1659: PASS statement copies too much/too little data when passing a FILE
  • When you PASS a FILE (to a CALL, RUN, or RECEIVE statement), the PASS statement typically copies too much or too little data to the receiving field. It may also copy too much/little data when restoring the field value on return.
  • This can cause memory corruption and may explain some/all of the exceptions thrown by the NSCAN process

 

Microsoft, Windows, Windows Server, Windows Server 2000, Windows Server 2003, Windows Vista, Windows XP, Windows 7, Microsoft SQL Server and Microsoft Access are registered trademarks of Microsoft Corporation. All other products may be trademarks or registered trademarks of their respective companies.