EPC - 131200

Date : November 4 2013

EPC131200 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
ProductLANSA Integrator
Version13 SP1
Pre-Requisite DetailsLANSA Integrator V13 SP1 (EPC130200)
Related ProductsNone
Ducument UpdatesThis 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 http://www.lansa.com/support/docs/update.htm

Instructions to install the EPC

EPC131200 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 EPC131200.EXE file from the Web site or email.
  2. Unzip (double click) EPC131200.EXE. These files will be extracted:
    • EPC131200 - IBM i Save file
    • EPC131200w.exe - Windows Visual LANSA install executable

Instructions provided for

Detailed changes

CCS id.Description
0147717
0147683
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.
0147825RDMLX 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.
0147837Add 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
0147968Provide new XMLQueryService

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

Use JavaMail properties mail.smtp.ssl.enable and mail.pop3.ssl.enable when using secure *IMPLICIT mode.
0148235
0148236
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.
0148263
0148345
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.
0148416
0148446
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.
HTTPOutboundXMLBindService
HTTPOutboundJSONBindService
OutboundFileHandler
OutboundSVListHandler
OutboundNameValueHandler
OutboundXMLHandler
OutboundXMLBindHandler
OutboundJSONBindHandler
0148440HTTPOutboundJSONBindService 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.
0148608Upgrade jt400 to version 7.9

Note STDOUT.TXT trace shows JTOpen 7.8
0148620Enhance 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.
0148622Enhance 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.
0148765Create 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.
0148937
0148815
0149990
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.
0149040Remove FORTHNET SMS service and add BULKER SMS service

ForthNet no longer operates in Greece, replace with Bulker service.
0149058Support 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.
0149074
0149092
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.
Services:
XMLBindFileService
JSONBindFileService
HTTPInboundXMLBindService
HTTPInboundJSONBindService
HTTPOutboundXMLBindService
HTTPOutboundJSONBindService
HTTPService + InboundXMLBindHandler/OutboundXMLBindHandler
HTTPService + InboundJSONLBindHandler/OutboundJSONBindHandler
JMSXMLBindService
XMLBindQueueService
0149083Add 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.
0149216Update jSch to version 0.1.50

Update jSch to version 0.1.50. This product is used by the SFTPService.
0149278New 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.
0149432JSMRPGSRV 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.
0149444Add support for name areas to ExcelReadService

The ADD command now supports the *NAMEAREA object to add name areas to a specified excel sheet
0149586
0149777
0149955
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.
0149617SQL 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.
0149632
0149738
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.
0149660Add 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.
0149704LI installation and work management object creation

LI installation and work management object creation has changed.
Refer to LI documentation.
0149724Allow 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.
0149752
0149759
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.
0149831LI 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">
os400.dir.create.auth=none
os400.file.create.auth=none
#!</studio-project>

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.

CHGJSMOWN NEWOWN(&OWNER)

CHGJSMPGP PGP(*NONE) DTAAUT(*NONE) OBJAUT(*NONE)

CHGJSMAUT USER(&USER) DTAAUT(*RWX) OBJAUT(*ALL)

CHGJSMAUT USER(&OWNER) DTAAUT(*RWX) OBJAUT(*ALL)

CHGJSMAUT USER(*PUBLIC) DTAAUT(*EXCLUDE) OBJAUT(*NONE)


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.

CHGUSRPRF USRPRF(MYUSER) GRPPRF(XXXXXXXXXX) OWNER(*USRPRF|*GRPPRF) SUPGRPPRF(xxxJSMLIB)

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.

os400.dir.create.auth=none
os400.file.create.auth=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.

os400.dir.create.auth=RWX
os400.file.create.auth=RW
0149859Add OBJTYP keyword to JSMCHGAUT command

Allow either files or folders to be specified for object authority change
0149929Add 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.
0149968
0149991
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.
0149975Upgrade JavaMail to version 1.4.7

Upgrade JavaMail to version 1.4.7
0149976Upgrade JTOpen to version 7.10

Upgrade JTOpen to version 7.10
0150034Add 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.
0150250
0150136
Add SSL support to JMS MQSeries/WebSphere

This defect has now been rectified
0150317
0150102
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 EPC131200.
  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 EPC131200 to an IFS folder on the System i. ( e.g. /LANSA_jsmlib(pgmlib)/tmp/epc131200' )
  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:
    jsmlib
    /LOADEPC and press command 4 (F4) to prompt the command (This command also can be run in batch)

    EPC number . . . . . . . . . . . > 131200

    Install the EPC from . . . . . . > *IFS
    IFS Path and object name . . . . eg: /LANSA_jsmlib(pgmlib)/tmp/epc131200
    Apply this EPC to . . . . . . . > LANSA_INTEGRATOR
    LANSA Integrator library . . . jsmlib
    LANSA program librar . . . pgmlib (This is optional)

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 EPC131200.
  2. Make a backup of the JSM directory from the iSeries. The current JSM directory will also be saved in the backout library.
  3. EPC131200 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 EPC131200
    • copy unzipped file EPC131200 to folder EPC131200
  4. Get the EPC131200 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:
RSTOBJ OBJ(*ALL) SAVLIB(QTEMP) DEV(*SAVF) SAVF(EPC131200) RSTLIB(QTEMP)

  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:
    LOADEPC EPCNUM(131200) USE(*SVF) SAVF(EPC131200) SELECT(LANSA_INTEGRATOR) JSMLIB(<jsmlib>) PGMLIB(<LANSA_pgmlib>)

    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 EPC131200.
  2. Make a backup of the Integrator directory from Windows.
  3. Unzip (double click) EPC131200w.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