EPC - 131300

Date : November 21 2013

EPC131300 Updates to IBM i and Windows LANSA Integrator

  • Increased support for SSL including in SMPTP and POP3 services and in JMS services for WebsphereMQ
  • Functional enhancements to a range of services including ExcelReadService, PDFDocumentService, JSON services
  • Support for specifying HTTP protocol version 1.0 or 1.1 for outbound HTTP processing and in the SOAPAgentService CALL
  • Connection and socket read timeouts can be specified for FTPService and SFTPService
  • New services including HashService, ExcelService (supporting .xlsx format Excel files), XMLQueryService
  • Enhancements to default security configuration, behaviour and management with respect to QSYS.LIB objects and IFS files and folders used by or created by the Java Service manager or by JSM services
  • Various fixes and updates to various supporting Java libraries
Product LANSA Integrator
Version 13 SP1
Pre-Requisite Details LANSA Integrator V13 SP1 (EPC130200)
Related Products None
Document Updates This EPC will install an updated version of the "LANSA Integrator Guide" (lansa093.chm) with LANSA Integrator Studio.

You can manually copy this guide to the LANSA documentation location as installed with Visual LANSA. This default location is ...\x_win95\x_lansa\execute\eng directory.

The latest guides also available at www.lansa.com/support/docs/update.htm

Instructions to install the EPC

EPC131300 includes software to be installed on an IBM i machine and on a Windows machine. These instructions describe the installation and use of all delivered items.

  1. Download EPC131300.EXE file from the Web site or email.
  2. Unzip (double click) EPC131300.EXE. These files will be extracted:
    • EPC131300 - IBM i Save file
    • EPC131300w.exe - Windows Visual LANSA install executable

Instructions provided for

Detailed changes

CCS id. Description
SOAPServerService cannot return a SOAP 1.2 fault response

The SOAPServerService has been enhanced to detect the version of the SOAP request and return a SOAP fault of the corresponding version of 1.1 or 1.2.
0147825 RDMLX field values need to be truncate tested

This change is a major impact to existing applications.
LI did not check that field values exceeded the field definition length.
An exception is now thrown if the value length exceeds the field definition length.
Use the TRUNCATE keyword to allow the value to be returned to the RDMLX function.
The manager.properties default.truncate=*yes property has been supplied to turn off this new behaviour and allow truncation to occur at the RDMLX client.
0147837 Add cell comment support to ExcelReadService

A comment can be added to a specified cell, using the ADD OBJECT(*COMMENT) R1C1(r,c) COMMENT(mycomment) command
0147968 Provide new XMLQueryService

The XMLQueryService permits an application to selectively interrogate values contained in an XML document using XML Path Language (XPath) expressions.
0148067 Improve SMTP and POP3 SSL connection process

Use JavaMail properties mail.smtp.ssl.enable and mail.pop3.ssl.enable when using secure *IMPLICIT mode.
Add connection timeout support to FTPService

A TIMEOUT keyword has been added to the FTPService CONNECT command to allow the TCP/IP connection timeout to be specified. The default value is 0.
XML, JSON, MapForce and SOAP Agent ClassLoader not being released

Due to implementaion of the Java JDK classes, instances of ClassLoader classes are not being garbage collected due to object references still being retained. The XML, JSON, MapForce and SOAP Agent ClassLoader has been redesigned to have ClassLoader instance per binding jar file. This means that Class isolation still exists, but the ClassLoader reused.
Remove DELETE method from the HTTP isNoContentMethod check

The DELETE method has been removed from the no content method check.
This will alllow content to be sent with a DELETE method.
If the DELETE method content is zero length then no Content-Type or Content-Length are sent.
Refer to CCS 144279.
This will effect the following services and handlers.
0148440 HTTPOutboundJSONBindService SEND command optional WRITE removed

To be consistent with other HTTP Outbound services and handlers and to allow the sending of no content, the HTTPOutboundJSONService now requires the WRITE command to be performed before the SEND.
0148608 Upgrade jt400 to version 7.9

Note STDOUT.TXT trace shows JTOpen 7.8
0148620 Enhance PDFDocumentService to allow custom page labels

A PAGELABELS keyword has been added to the CLOSE command.
This comma separated list of labels is used to label the document pages.
0148622 Enhance PDFDocumentService READ command to read form fields and values

The new READ command OBJECT keyword allow either document information or form field values to be read from the specified PDF file.
0148765 Create HashService to calculate an MD5/SHA hash of a field value or file

The HashService supports SHA/MD5 and other hash algorithm to be performed on a specified field value or specified file.
Add VERSION keyword to HTTP SEND command to specify HTTP protocol version

This allows the service to control whether HTTP/1.0 or HTTP/1.1 protocol is used when send a HTTP request using the HTTP outbound handlers and services.
0149040 Remove FORTHNET SMS service and add BULKER SMS service

ForthNet no longer operates in Greece, replace with Bulker service.
0149058 Support java.net.preferIPv4Stack and java.net.preferIPv6Addresses properties

The java.net.preferIPv4Stack and java.net.preferIPv6Addresses properties can be set by using the manager.properties file.
Add content FILTER support to the XML and JSON binding services

Content filters are been introduced to allow pre and post processing of generated and consumed XML and JSON content.
HTTPService + InboundXMLBindHandler/OutboundXMLBindHandler
HTTPService + InboundJSONLBindHandler/OutboundJSONBindHandler
0149083 Add AI_ADDRCONFIG flag to JSM BIF socket getaddressinfo API call

V6R1 is the first release where IPv6 is fully supported on the IBM i.
As a result, the first DNS query sent is for an 'AAAA' (IPv6) query versus an 'A' query (IPv4).
The AI_ADDRCONFIG flag specifies that a query for AAAA records should occur only if the node has at least one IPv6 source address configured and a query for A records should occur only if the node has at least one IPv4 source address configured.
0149216 Update jSch to version 0.1.50

Update jSch to version 0.1.50. This product is used by the SFTPService.
0149278 New SQLService CONNECT parameters to provide alternative to service properties

The CONNECT command of the SQLService presently uses the values of keywords DRIVER and DATABASE as "keys" into the sqlservice.properties file to retrieve the JDBC driver class name and the connection URL/string.

In order to permit the service to be implemented in a set of LANSA Composer activities, the service has been amended to provide alternative keywords that can receive these values directly, without reference to the properties file. The new keywords are DRIVERCLASS and DATABASEURL respectively.
0149432 JSMRPGSRV socket handle not released on no host connection

An allocated socket handle was not being released if a connection to a host did not occur.
0149444 Add support for name areas to ExcelReadService

The ADD command now supports the *NAMEAREA object to add name areas to a specified excel sheet
Create new ExcelService to read and write XSLX files

Create new ExcelService to read and write XSLX files. This service uses the Apache POI classes and JDK 1.5 is required. Because LI compiles and ships down to JDK 1.4, these files are not currently shipped with the base LI installation. An additional product pack containing the necessary jars files need to be installed.
0149617 SQL Service/RDMLX boolean field and DBMS boolean data type conflict

The SQLService attempts to use the "true/false" values from an RDMLX field to insert/update an SQL DBMS which uses a numeric datatype to hold a Boolean value.

The SQLService nows uses "1/0" values for Boolean values.
ExcelReadService - jXL/Excel2007 currency fix

jXL/Excel2007 currency fix
Known issue: https://code.google.com/p/jcite/issues/detail?id=1
jXL cannot read some currency formats and returns a pattern that does not contain a decimal place
For example: "E"#,##0.00;-"E"#,##0.00 returns ($#,##0_);[Red]($#,##0)
Note: E is the Euro sign.
This is particular returned pattern, ExcelReadService will use a scale of 2 decimal places.
0149660 Add support for top level arrays to JSON services

JSON binding service can now read and write top-level JSON arrays.
The JSON Server Type editor can now generate sample JSON content and also import JSON content to create Server Types.
0149704 LI installation and work management object creation

LI installation and work management object creation has changed.
Refer to LI documentation.
0149724 Allow RDMLX Boolen field values to be set using 1, Y or true

This change could impact existing applications where an RDMLX Boolean field is used by an LI service.
Previously only the "true" string value enabled the Boolean field and any other value was treated as "false".
Now the values "1", "Y" or "true" will enable the Boolean field.
Add VERSION keyword to SOAPAgentService CALL to specify HTTP version

By default Apache Axis HTTPSender uses HTTP protocol version 1.0.
The VERSION keyword allows the HTTP protocol version to be changed to 1.1.
0149831 LI JSM install object and folder/file ownership and authority

Note: A LANSA or LI install, upgrade and EPC load do not support IFS paths that are SYMBOLIC links. The same also applies if you are using IASPs with SYMBOLIC links.

1. All JSM objects are initially restored to their JSM library as QDFTOWN and *CHANGE public authority.

Note: Service programs DCXS882X and DCXS883X are copied from the JSM library to the associated LANSA library.

2. All JSM IFS files are initially restored to their JSM IFS location as QDFTOWN and *EXCLUDE public authority.

3. On a new install the upgrade/SystemDefault.properties file is copy to the system/SystemDefault.properties file.

The following section is appended to the newly copied file.

#!<studio-project id="20090000-000000" name="install">

These properties set the public authority for new folders and files created by the JSM services to *EXCLUDE.

4. Library object ownership and authorities are set.

5. IFS folder/file ownership and authorities are set using the following commands for a new install and existing upgrade.






6. It is recommended to read and write IFS application data files outside the JSM instance folder, this keeps a clean separation between your application data files and LI files.

LI configuration files, properties files, PKI files, classes, binding and jar files need to be in their respective JSM instance subfolders.

You need to find a balance of where you want your application data files and folders to exist.

7. Because of public *EXCLUDE authority on folder and files, the RUNJSM command must be submitted and run under the &USER profile.


Refer to LI documentation 2.1.1 File and Folder Security.

To allow other user profiles to access JSM files and folders you can use the i5/OS user profile primary group or supplemental group feature.


To change the data and object authorities of existing files and folders you can use the CHGJSMAUT, CHGJSMPGP, CHGAUT or CHGPGP commands.

By default, IFS files created by Java, inherit the *PUBLIC object authority from the parent directory. The system properties os400.file.create.auth and os400.dir.create.auth can be used to control the *PUBLIC object authority for created files and directories.

Specifying the properties without any values or with unsupported values results in a public authority of *NONE.


To change the *PUBLIC file and folder creation data authority to a particular value requires changing the following properties in the SystemDefault properties file.

0149859 Add OBJTYP keyword to JSMCHGAUT command

Allow either files or folders to be specified for object authority change
0149929 Add tracing to HTTP and FTP transport to measure connection times

Trace timings have been added to SERVICE.TXT to record DNS lookup time, host connection time, host response time and response content read time. These timings can help in locating TCP/IP communication issues.
Add WAIT and BUFFERSIZE keywords to FTPService CONNECT command

The WAIT keyword value in milliseconds specifies the socket read timeout, the default is 0.
The BUFFERSIZE keyword value in bytes specifies the socket send and receive buffer size, the default is 0 which is to use the default TCP/IP values.
0149975 Upgrade JavaMail to version 1.4.7

Upgrade JavaMail to version 1.4.7
0149976 Upgrade JTOpen to version 7.10

Upgrade JTOpen to version 7.10
0150034 Add TIMEOUT and WAIT keywords to SFTPService CONNECT command

The WAIT keyword value in milliseconds specifies the socket read timeout, the default is 0.
The TIMEOUT keyword value in milliseconds specifies the socket connect timeout, the default is 0.
Add SSL support to JMS MQSeries/WebSphere

This defect has now been rectified
Fix incorrect SOAPServerService SOAP 1.2 Fault message

Fix incorrect SOAPServerService SOAP 1.2 Fault message as the XML element names where incorrect.

Install Instructions

  1. Backup all the LANSA Integrator library and ALL the Integrator IFS objects (LANSA_jsmlib/jsm) before applying this EPC (this IFS is backed up by the EPC load program)
  2. End the JSM server to be upgraded before installing EPC131300.
  3. Display your current library list. If QTEMP is not shown, then add it to your library list using the ADDLIBLE (add library list entry) command.
  4. Move the unzipped file EPC131300 to an IFS folder on the System i. ( e.g. /LANSA_jsmlib(pgmlib)/tmp/epc131300' )
  5. For this EPC use the following options:
    1. Install the EPC from = *IFS
    2. Apply this EPC to = LANSA_INTEGRATOR
  6. Run the command LOADEPC with the following parameters:
    /LOADEPC and press command 4 (F4) to prompt the command (This command also can be run in batch)

    EPC number . . . . . . . . . . . > 131300

    Install the EPC from . . . . . . > *IFS
    IFS Path and object name . . . . eg: /LANSA_jsmlib(pgmlib)/tmp/epc131300
    Apply this EPC to . . . . . . . > LANSA_INTEGRATOR
    LANSA Integrator library . . . jsmlib
    LANSA program librar . . . pgmlib (This is optional)
  7. Save and then delete the backout library XXXJEPC99 - where xxx is a the first 3 chars of the JSMLIB and 99 is a EPC applied sequence number. This library is a backup of all the objects of the JSM library. This library also contains a save file with the JSM IFS objects (JSMIFS).

The following instructions use a partially manual procedure to complete the installation.
(The preferred installation procedure uses the LOADEPC command that should be present in your LANSA Integrator library (eg: LICJSMLIB). See above.

  1. End the JSM server to be upgraded before installing EPC131300.
  2. Make a backup of the JSM directory from the iSeries. The current JSM directory will also be saved in the backout library.
  3. EPC131300 must be extracted onto a Windows machine then uploaded onto the iSeries server.
    For iSeries shared folders:
    • in Explorer, map to the shared folder drive
    • create a folder named EPC131300
    • copy unzipped file EPC131300 to folder EPC131300
  4. Get the EPC131300 file into IBM i as ta save file. Can use FTP or CPYFRMSTMF command
  5. Use the OS/400 RSTOBJ (restore object) command to restore all objects from library QTEMP into library QTEMP.

For a save file you will use the following command:

  1. Display your current library list. If QTEMP is not shown, then add it to your library list using the ADDLIBLE (add library list entry) command.

    Install the EPC using the command:

    Where <jsmlib> is the name of the LANSA Integrator JSM library. This is often JSMLIB but it may be different on your system.

    Where <LANSA_pgmlib> is LANSA program library name and is optional.
  2. Press enter to continue processing.
  1. End the JSM server to be upgraded before installing EPC131300.
  2. Make a backup of the Integrator directory from Windows.
  3. Unzip (double click) EPC131300w.exe to start the upgrade of LANSA Integrator on Windows.
    NOTE: Please view the Additional Install Notes section in this document for important post-installation/upgrade checks.
  1. When the JSM instance starts it will process the files in the upgrade directory. If the upgrade is successful the JSM instance will restart else the instance will end. Check the file UPGRADE-LOG.txt in the JSM instance directory for upgrade messages.

    An example of the upgrade messages :

    manager: version : 11.5.1
    upgrade: version : 11.5.1
    java.class.path : ./jar/jsm.jar:./jar/jsmide.jar:./jar/jsmjaf.jar
    Upgrade instance : /LANSA_licpgmlib/jsm/instance
    Upgrade properties file : MapForceService.properties
    Properties file upgraded
    Upgrade properties file : MapForceService_fr.properties
    Properties file upgraded
    Upgrade properties file : MapForceService_ja.properties
    Properties file upgraded
    Upgrade completed
    Remove upgrade files
    File removed : /LANSA_licpgmlib/jsm/instance/upgrade/MapForceService.properties
    File removed : /LANSA_licpgmlib/jsm/instance/upgrade/MapForceService_fr.properties
    File removed : /LANSA_licpgmlib/jsm/instance/upgrade/MapForceService_ja.properties
    File removed : /LANSA_licpgmlib/jsm/instance/upgrade/upgrade-instruction.txt
    Remove upgrade directory
    Removal completed

© 2013 LANSA