************************* * PATCH 66 - 2010/07/27 * ************************* Major Enhancements - Framework ------------------------------ Added support for the Minimal Lower Layer Protocol (MLLP). MLLP is commonly used within the HL7 (Health Level Seven) community for transferring HL7 messages and acknowledgments. In addition to standard file-based transactions, the VLTrader MLLP host provides the ability to interface with MSMQ message queues. To create an MLLP host, go to the Preconfigured tab and then Clone and Activate the Generic MLLP host. - VLTrader only: VLTrader now supports intefacing with an LDAP server to authenticate external users inbound thru FTP, HTTP (including VLPortal), and SSH FTP. Go to Configure>Options>LDAP Server. If reverse proxying using VLProxy, VLProxy v2.6.1 or later is required for LDAP authentication. Related issue #1885. - Added a new Local Commands host feature. This new feature allows the VersaLex user to create hosts which are designated solely for manipulation of local files (through LCOPY, LDELETE, etc.), without an association to a protocol. Actions within a Local Commands host may be scheduled. Also, the new Packaging tab is available with the Local Commands host, so files may be encrypted/decrypted at rest. Refer to the user's guide Local Listener chapter in a section titled, "Local Commands Host Configuration." - Expanded the features under the Encryption tab (the Encryption tab was recently added within VersaLex Release 4.2). Before, the features under this tab supported only XML Encryption. Now, OpenPGP has been added as another option for encryption. Signing is also supported through the new OpenPGP option. Due to the expanded functionality, and possible futures expansions, the Encryption tab has been renamed to "Packaging". For further information on the features under the Packaging tab, refer to the user's guide Basics chapter in a section titled, "Configure the Mailbox Packaging Tab." Major Enhancements - OFTP ------------------------- OFTP version 2 is now supported, including all of the new security options (e.g. session authentication, content signing/encryption). Note: Any already existing OFTP connections should continue to function as before; however, if your trading partner's software does not properly handle version negotiation, the host advanced property 'Downgrade OFTP Version' can be explicitly set to v1.4. Enhancements - Framework ------------------------ When the "Disable Date/Time Portion of Filename In Sent/Received Box" property in the Options->Other panel is selected, now no longer add date/time stamps or serial numbers (if synced) to the sentbox and receivedbox filenames which was added as a new feature in version 4.2.47 of the product. Related incident #85763. - Added monthly and one-time scheduling capabilities to the scheduler. These new capabilities are built on top of the current weekly scheduling ability. Also, some user-interface improvements were made to the weekly scheduling dialog. Related issue #1497. - When scheduling partner certificates for future use, old partner certificates will now be archived (in the certs\archive directory) if they are not being used in any other trading relationship. Related incident #85052. - VLTrader only: Added WSDL 1.2 compliant version of general purpose web service (i.e. no overloaded operations). Related incident #84010. - Added support for SSL client authentication through VLProxy incident #80931. Related issue #1881. Related - Tree icons for hosts and mailboxs with an external ID association are now enclosed with a dashed box. Hosts/mailboxes with an external ID association cannot be enabled/disabled from within the VLTrader UI. And a warning confirmation dialog is displayed if a host or mailbox with an external ID association is selected for removal. - VLTrader only: Added new mailboxID column to VLTransfers table, which gets populated when a mailbox has an external ID association. - For more tighter application integrations, added additional API methods for managing host and mailbox external IDs, determining whether a host is a "local" host, listing available host types, and getting/setting systemlevel options. Please refer to the API javadocs for more information. Also added additional web UI parameters for selecting and displaying a specific host or mailbox association and limiting content/capabilities. - Added ability to configure the "Sent/Received Box Archive After Files" setting in the Options>Other panel to -1. When configured in this way, archiving of those files will NOT be done and files copied to the sentbox and receivedbox directories will NOT be set to read-only (as would happen when archiving is enabled). Related incident #84225; 84450. - Added support for including the date/time stamp (and the serial number if synced) as part of the sentbox and receivedbox file names. When archiving sentbox and receivedbox directories, the archive file names now also include the start and end time stamps of the files contained within each archive. Related issue #1848. - Added the ability to bind Local Listener server ports to a specific IP address. This address is configured by specifying an address for the 'Local Bind Address' property in the Local Listener>Advanced tab. Related incident #83601. Related issue #2008. - Now allow client API connection to use files in addition to streams when sending through IMailboxController. - When using the ILexiComIncoming API interface, added a "Source.Directory" property to the open() parameters object which for FTP or SSH FTP will contain the incoming file's directory path on the remote server. Related incident #84020. - Added commandline -s "threaddump,all" option to generate a thread dump not just for the running service, but for each of the connected UIs. For web UIs, each thread dump will be captured in a logs/HTML*.dbg file if Local Listener Web Browser Advanced property "Create individual client debug files" is turned on. For native UIs, each thread dump will be captured in a logs/RMI#.dbg file. - Added ability to import a CA certificate within a zip file - VLTrader only: Added the "From" header value to the list of properties that are returned from the SMTP server to be accessed from the API's ILexiComIncoming or ILexiComMultipartIncoming open() method. Related incident #83583. - The %host% (but not %mailbox%) macro variable can now be to configure the host inbox/outbox/sentbox/receivedbox directory. - VLTrader only: Added ability to create custom preconfigured hosts. - VLTrader only: When an inbound payload is not associated with a file name and the resulting file name obtained from the messageID is greater than the maximum column length of the filename field in the transfer database, now use the transferID to name the inbound file instead. Related incident #81761. - VLTrader only: Changed VLTransfers database column ResultText maximum size from 200 to 500. MySQL versions prior to 5.0.3 are no longer supported. Related incident #81916. - VLTrader only: Added support for marking local users as read-only and only allowing read-only access to the related FTP, SFTP and HTTP servers. Related issue #1853. - VLTrader only: Multiple local user hosts (of the same type) may now be created. Related issue #1854. - Product Service RMI part default changed from 1099 to range of 10991109. - Added import (button) on CA certificate and export (right-click menu) on user certificate browser selection windows. - When downloading the initial preconfigured host list from the web site, no longer display the "Download" dialog when the user clicks on the "Web Site" node. Now the list is automatically downloaded when the user clicks on the Web Site node. - Added "-s heapdump" command line and support bundle options for generating a heap dump with JRE 1.6 (or later). Memory monitor will generate a heap dump the 1st time an error is detected (dependent on Configure > Options > Advanced property "Heap Dump On Memory Errors = true") Related incident #81614. - VLTrader only: When sending via the general purpose web service, an <ExternalID> can now be included with each outgoing <File> which, if database transfer logging is enabled, will populate the ExternalID column in the VLTransfers table. An ExternalID value can be up to 50 characters. Related incident #81161. - VLTrader only: If the parameter "transfers" is included in the query string of the VLTrader web UI URL (e.g. http://localhost:5080/VLTrader?transfers), today's transfer report is automatically displayed. This matches the functionality in the native UI of the VLStat program. Related incident #81161. - In View>Log, added ability to filter local listener log events relative to a local user mailbox (either FTP, SSH FTP, or HTTP). If a local user mailbox is selected as the log source, the local listener log events for the user (starting with the initial login events) are shown. Related incident #80772. Related issue #1775. Enhancements - FTP ------------------ Now allow for server response code after a successful TYPE request to be 250 in addition to the standard 200. Related incident #85575. - For PUT commands whose destination contains a directory path, added new advanced property "Pre Put Change Directory" which forces an explicit CWD request to the destination directory path prior to issuing the STOR request. Some FTP servers treat directories as logical rather than physical directories, and require directories be set only through a CWD request. Related incident #85475. Enhancements - AS2/AS3 ---------------------- AS2 only: First usage logic now includes a comparison of the certificate's fingerprint in addition to comparisons of the issuer and serial number since it's possible that two different certificates could have the same issuer and serial number. Related incident #85052. - Added check for duplicate certificates (same issuer and serial number) to avoid signature verification errors. Related incident #82057. Enhancements - ebMS ------------------- Ensured all temporary files, those written during the process of packaging/un-packaging ebMS data, are encrypted. Enhancements - SSH FTP ---------------------- - VLTrader only: When "Use Key From File" is selected, multiple keys may be included in the file specified. Related incident #85904. - Added support for DSA server keys larger than 1024 bits. incident #85498. Related Enhancements - OFTP ------------------- If the listener was not able to send the EERP/NERP because the OFTP sender did not honor the CD (change direction) request, then the OFTP listener will now immediately start a new session with the trading partner in order to send the EERP/NERP immediately. Related incident #80998. Enhancements - MQ ----------------- Added support for allowing the ability to specify a queue name in the ReplyToQ field in the message descriptor of the sent message. Related incident #84312. Enhancements - MLLP ------------------- Made changes to disable logging of the red messages, "Interrupted" "Requested by user", when an MLLP receiver is in a listening state (waiting for client connection). Bug Fixes - Framework --------------------- Fixed NumberFormatException when logging an error message with an RMI port range defined and no ports registered. - VLTrader only: Fixed problem where changes to a local user host could not be applied due to an error removing subdirectories. Related incident #85904. - VLTrader only: For database transfer logging using an Oracle database, fixed problem where the VLTransfers.MessageID column index was not being created. This missing index could cause performance problems for systems using asynchronous receipts (e.g. AS2, ebMS). The index can not be created in VLTrader however if the table has already been created previously, so for systems already using Oracle transfer logging, the following DDL should be used to create the index manually: CREATE INDEX VLTransfersMessageIDIndex ON VLTransfers(MessageID); - VLTrader only: Fixed problem where local user sent/received box was not working for LDAP user groups. - Fixed problem where a forward slash (/) in a host alias would cause synchronization to fail on Linux/Unix systems. Related incident #86146. - VLTrader only: Fixed problem where the wrong splash screen was being shown after the VLNavigator web UI was exited. - Now log the exception instead of failing silently when unable to add a host to tree when downloading it from the Cleo web site. - VLTrader only: Fixed problem with resizing columns and determining database type for ODBC connections. Related incident #86007. - VLTrader only: Fixed problem with VLStatc where transfer report filter EDI details option was ignored. Related incident #86007. - Fixed issue with local XML encryption where the certificate distinguished name contained XML special characters. - Corrected problem where updated Advanced properties were not being used during 'Email On..' or 'Execute On..' operations for Local Users (FTP, SSH FTP and HTTP ) when running as a service. Related incident #85932. - Made changes to improve robustness of autosend when files with the same name are being repeatedly dropped into an autosend folder. These changes will prevent unnecessary errors from being reported. Related incident #85804. - Options - Configure > Options > Other property Heap Dump On MemoryErrors is now shown for JRE 1.6 or above. - Fixed problems related to active host tree and host table not properly reflecting which hosts/mailboxes are running. - VLTrader only: Fixed problem where router could potentially kick off more than the "Maximum Number Of Concurrent Routes" configured. - When using API's IActionController, fixed problem where if an exception was thrown during a command, the exception and corresponding result would not be logged. - Corrected problem where when a 'Software Update' or 'License Check' could not connect to the Cleo server through VLProxy, an IllegalAccessError was being logged. Now when this occurs, a '400 Connection Failed' error will be logged instead. Related incident #85606. - VLTrader only: Fixed problem where VLNavigator web UI was showing the wrong product title - VLTrader only: Fixed problem where VLTrader would log a large number of database exceptions or warnings in a short period of time. - Eliminated API dependency on web UI jars (ajaxswing.jar and asboot.jar) - VLTrader only: Fixed problem where folder setting in transfer report filter was not working through VLStatc program. Related incident #85327. - VLTrader only: Fixed problem introduced in patch 6 where a VLTrader/VLNavigator password could not be changed at the initial login dialog because of a missing checkbox. Related incident #85274. - Made sure that temporary files that are created as part of an LCOPY operation are not picked up by an autosend operation until they are completely stable (and no longer temporary). Related incident #83882. - Corrected problem where the resulting web UI frame would be too small or too large if the browser window was resized while the web application was processing a request (e.g. while initializing). - Upgraded web UI engine, which resolves various cases where the web UI can become hung either within the browser (e.g. when a menu with submenus selected) or under the covers (e.g. when applcation is exited). - Disabled LDAP paging when selected server is Lotus. - Fixed possible memory leak problem with a large number of LCOPY commands. - Fixed problem with reverse proxy connections from VLProxy when Configure > Proxies > Reverse forward connections was set. Related incident #84468. - When using database payload and encryption, changed the order in which exceptions are reported to ensure the original exception is the one reported. - VLTrader only: When using database payload, fixed problem where deadlock could occur when a database stream was closed more than once. Related incident #84451. - Fixed problem in any Advanced properties table where if a property with a pulldown list was selected but not changed, applying would result in clearing the property value. - If using VLProxy to reverse proxy, fixed problem where an empty Local Listener advanced property value (e.g. Email Local and Partner Certificate Expiration Notices) would cause parse exceptions on VLProxy and keep VLProxy from fully starting up. Related incident #82736. - Fixed problem where changing just the case of a host alias would result in a NullPointerException. Related incident #84156. - VLTrader only: Fixed problem where the HTTP mailbox could not be found in VLProxy when only a single local HTTP user host was defined in VLTrader. Related incident #82736. - VLTrader only: For outgoing database payload, if update of database to mark send complete should fail after a successful send, added database update retry to avoid eventual attempts to resend the same message. Related incident #84086. - For VLProxy reverse forward connection option, added check that if custom header missing in VLProxy response, then restart connection. Also tightened up connection timeout logic. Related incident #83562. - VLTrader only: If using incoming database payload, eliminated possibility of a database exception causing a deadlock. Related incident #84006. - VLTrader only: Changed LDAP integration to use a paged context search to prevent the directory from limiting the number of results returned. - Fixed problem that could occur when using mailbox inbound decryption (as set in the Packaging tab -- XML or OpenPGP) and also database payload or EDI logging are being used. - VLTrader only: Fixed problem where NullPointerException was logged if/when home directory for LDAP user was not properly extracted from LDAP - VLTrader only: Fixed problem where if an LDAP user's home directory was itself a network share then VLTrader would not allow a login. - VLTrader only: Fixed problem where NullPointerException would be logged if using LDAP user group mailbox and user home directories were configured to be extracted from LDAP, but the LDAP home directory attribute name was not configured. Related incident #83208. - VLTrader only: Fixed problem where Advanced properties could not be applied to any Local User mailboxes (HTTP, FTP or SSH FTP) Related incident #83869. - When selecting a trading partner certificate, now only show OpenPGP or SSH FTP CA store certificates when applicable. - For AS/400 network access, fixed problem where Configure>AS/400 would fail silently if the jt400.jar has not been downloaded. - VLTrader only: Fixed NullPointerException logged when FTP or SSH FTP listening port conflict at startup - Fixed problem in scheduler where if a number of actions were all scheduled at once while the scheduler was running, the GUI could lockup. - Fixed problem with LCOPY where "Error: Unable to rename temporary file…" was being reported when running on Unix. Related incident #83519. - In View>Log dialog, more information is now shown when invalid input is detected Related incident #83388. - VLTrader only: Fixed possible blocking problem when EDI logging - VLTrader only: HTTP server authentication is now more efficient. Related incident #82736. - Fixed problem where queued log events could be logged out-of-sequence. Related incident #82976. - Updated the certificate expiration checker to be able to handle PGP certificates and to also check local and partner packaging certifcates for expiration. Related incident #82140. - VLTrader only: Help > About dialog now shows FIPS provider version (as well as the provider name when enabled). - VLTrader only: Under Configure>Options>Transfers, fixed problem where the VLTransfers table column ExternalID was not showing up in the exported database definition. Related incident #82931. - VLTrader only: Fixed problem where the absolute path of the user's home directory was sometimes being included in FTP server directory listings. Related incident #82659. - Added local users host to the search criteria for the Certificates Usage Dialog. - Made change to ensure that certificates which are generated from PGP keys are reported in the Certificate Usage dialog with their associated host/mailbox. Related incident #82140. - VLTrader only: Fixed problem where the contents of the FTP or SSH FTP user home directory could not be found when the default root\username directory was not being used. New dialogs have also been added to notify the user of the status when attempting to move from one home directory to another. Related incident #82659. - Fixed problem where VersaLex -s service running from the commandline would not terminate in response to Ctrl+C if any web GUI sessions were open at the time. Related incident #82107. - Fixed problem where PGP encryption key was not being located correctly. Related incident #82794 82678. - VLTrader only: In Help > About added configured FIPS approved provider name. - VLTrader only: If using MS SQL Server for transfer logging, fixed incorrect SQL syntax when increasing the VLTransfers.Resulttext column size. Related incident #82659. - Fixed problem with NullPointerException on a local user host LCOPY. Related incident #82659. - Fixed a NullPointerException printing to the console or being logged relative to formatting a scheduled item. - Fixed problem where inserting messages into web UI could cause service/daemon logging to fail. - VLTrader only: Fixed router timing problem where if a file being routed contained two routes going to the same host and the host was set to not allow concurrent actions, the routes could potentially not get kicked off. Related incident #82513. - Fixed problem where client updates to the scheduled actions could result in false warnings that scheduled actions were not found. Related incident #82360. - Fixed a problem in the Edit Command dialog where a browsed source or destination directory (selected through the […] button) was being incorrectly displayed when its name began with the inbox or outbox name. - Corrected problem where LCOPY commands were failing when the destination was on the AS400 (iSeries) IFS Related incident #82260. - VLTrader only: When database transfer and EDI logging is enabled, if the database is not available, database transactions are saved to disk (up to Configure>Options>Other>Maximum Saved Database Transfer Log Files). Once the database is again available, fixed problem where the saved transactions could be processed out-of-order for large EDI files, which would cause integrity constraint violations. Note that integrity constraint violations can still occur if the maximum number of saved files is reached (defaults to 10,000). Related incident #82329. - Fixed problem when "Scheduling Certificates for Future Use" where a dialog was incorrectly forcing the user to set initial SSL certificates even though SSL certificates weren't being scheduled. Related incident #82302. - Fixed problem on AS3 GET commands where the destination file name was not accurately named according to the destination specified in the action. Related incident #82280. - VLTrader only: Fixed problem where a database deadlock could occur because checking the validity of database connection already in use. Related incident #82093. - VLTrader only: For EDI transfer report tables, added paging to the functional group and transaction set tables to further improve performance for large EDI files. Related incident #82164. - VLTrader only: For db transfer and EDI logging, added logic to retry any inserts/updates with a new connection for before erroring out Related incident #82106. - Setting read permissions for all users will be attempted for heap dump files . Related incident #82109. - Fixed problem where an IndexOutOfBoundsException could be thrown in the web UI when custom directory variables are modified. Also fixed problem where an UnsatisfiedLinkError was being thrown in the web UI on certain Unix platforms when the Tools>License dialog was closed. Related incident #81960. - VLTrader only: In the web UI, added paging to the EDI transfer report interchange table view to improve responsiveness. Related incident #81676. - Added protection against StackOverflowError when recursively checking for an XML attribute. Related incident #81778. - VLTrader only: Fixed problem where ClassCastExceptions were occurring (causing transfer reporting to hang) when both "EDI" and "Report" were selected in the Transfer Report Filter dialog. Related incident #81676. - Fixed Windows only problem with JRE 1.6 where tables would show "…" instead of data due to insufficient row height. - Moved parameter "Heap Dump On Memory Errors" from system Options > Advanced panel to Options > Other. Related incident #81614. - Fixed problem on AIX where the web GUI was hanging at certain points in the UI. Related incident #81634. - VLTrader only: For EDI logging, fixed problem with function acknowledgment tracking in an Oracle database where an ack status was being updated for more than just the appropriate interchange/functional group. Related incident #81492. - Fixed problem where an ArrayIndexOutOfBoundsException could be thrown in File>Export if a user certificate password was entered incorrectly. Related incident #81161. - Now resolve the %admin% macro when it is either used within a SYSTEM command or when it used in conjunction with the -d option when running either VLStatc or VLLogc (or LexLogc) from the command line. - Fixed software update (and update checker) issue with existing hosts\support\Software.xml hosts (pre-July 2003) which may not have the required parameter 'product'. Related incident #81309. - Added check in service/daemon to make sure schedule update from UI is not missing already scheduled actions. Related incident #80554. - Fixed problem where outside quotes on execute-on command strings were causing exceptions to be thrown. Related incident #81154. - VLTrader only: For incoming database payload, fixed problem where an overly large incoming property value was not being truncated when inserted into the database. Related incident #81092. - When renaming files, added retry loop logic when the first attempt fails. This fix compensates for a bug that is present in JRE 1.5 and has been reported on several Windows platforms. Refer to http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6213298 for further information. Related incident #80638. Bug Fixes - FTP --------------- Corrected problem where the -UNI switch was being ignored for the PUT command when "Resume Failed Transfers" was disabled. - VLTrader only: Fixed memory leak when VLProxy was used as a reverse proxy for FTP connections for sessions ending without a quit command. - Fixed problem where note that receivedbox file was created was not being included in logged result when a single file was being received. - VLTrader only: Fixed memory leaks when VLProxy was used as a reverse proxy for FTP connections. - Variables for QUOTE and SITE commands may now be quoted to permit commands which require multiple spaces. Related incident #84746. - If initial attempt failed (connection refused), subsequent retries would not try to determine if the server supported restarting failed transfers. - VLTrader only: Fixed problem handling file rename (RNFR/RNTO). - Fixed problem where canonicalization of the current directory path for the API could cause an ArrayIndexOutOfBoundsException. Related incident #82736. - VLTrader only: Fixed null pointer exception with invalid user login attempt when no LDAP mailboxes were configured. - VLTrader only: Fixed issue introduced with LDAP enhancement where execute or email on properties set in the local user mailbox would not override the system level settings. - Fixed issue where new connection was created (and Ignore Retrieve Error was active) where server was allowing the data port to open and then closing with an error and no data transferred. Related incident #83519. - Fixed issue where current connection was closed when error code specified in advanced property Ignore Retrieve Error Code occurred. Related incident #83519. - Fixed problem where any file (regardless of size) would be deleted if the transfer (-DEL or POSTGET) failed and Advanced option "Delete Zero Length Files" was selected. Related incident #82021. - Fixed LexiCom(only) problem with creating a temporary file during a PUT when Resume Failed Transfers advanced property was enabled. Related incident #81663. - VLTrader only: Fixed problem with tracking logins for multiple users in the same session. Related incident #81326. Bug Fixes - HTTP ---------------- - Fixed problem where HTTP PUT+GET with a preceding CONNECT would not be able to find files to send. - Corrected problem where attempts were being made to get the results of an HTTP response even when a timeout had occurred and the response was never received. This was causing any additional transaction results (e.g., the associated messageID) to never get logged. Related incident #84780. - VLTrader only: For HTTP LDAP authentication, now log warning rather than exception when password not provided by user. - Fixed problem where macro variable references within PUT HTTP header values were being resolved in what was logged, but not in what was actually sent to the trading partner. This affected AS2 and ebMS as well. Related incident #81154. Bug Fixes - AS2/AS3 ------------------- When archiving MDNs and an "invalid distance code" error is logged (which signifies a corruption of the temp archive), now attempt to remove the temp archive. Also, if any unhandled exceptions occur during MDN archiving, now log the stack trace. Related incident #86381. - Addressed signature verification exception (iaik.cms.CMSSignatureException: SignerInfo does not exist. Wrong index.). This exception was occurring when the message block being returned contained a partial boundary segment. Related incident #84003. - Corrected certificate scheduling initial setup check so that an error is not thrown when either the initial encryption or signing field is not configured but that field is also not being scheduled. Related incident #85052. - Corrected problem where the MIME header wrapping detection logic was incorrectly detecting a header wrap when the header value ended with a semi-colon but the following line was not a continuation of the current header. - AS2 only: When an unsigned Certificate Exchange Message (CEM) request is received and the auto-accept setting has been enabled, now log an error stating that the request must be manually accepted or rejected since the trading partner cannot be authenticated. Related incident #82890. - When an MDN archive file is corrupted, previously an exception was thrown and archiving of the affected MDNs would never complete until the corrupted MDN archive file was manually removed. Now the corrupted archive event is logged stating that its contents have been lost and a new archive is created. Related incident #82254. - VLTrader only: Fixed IAIK CMS initialization problem in FIPS mode where AES/192 and ASE/256 ciphers could not be used. - Fixed problem where a ';' character received in an inbound filename for Windows (which is only a problem for Unix) caused an invalid filename warning. Related incident #82530. - VLTrader only: Corrected problem where signature verification error exceptions were being reported when EDI logging was enabled and the size of the signed message was greater than two megabyes. Related incident #82250. - When using the %sourcefile% macro as part of the default file name, now use the messageID when no file name has been provided. Related incident #81761. Bug Fixes - ebMS ---------------- Fixed issue when encrypting where the certificate distinguished name contained XML special characters. - Fixed issue with result being successful for non-synchronous ping messages when forward proxy connection failed. - Added check to correct issue for 204 No Content responses which had a content-type of text/xml. - When importing a CPA/CPP, now detect when there are multiple delivery channels for the selected party/role and prompt for which channel to import. Related incident #85307. - Fixed problems with overriding the local encryption certificate. - VLTrader only: Fixed message signature issues when operation in FIPS mode. Bug Fixes - SSH FTP ------------------- Fixed problem where note that receivedbox file was created was not being included in logged result. - Fixed client problem when using a forward proxy where connection would not timeout while waiting for some server responses. Related incident #84644. - VLTrader only: Fixed problem handling file rename (SshFxpRename). - VLTrader only: Fixed problem listing files or directories with names containing ".." on a network share. Related incident #83208. - VLTrader only: Fixed problem listing files or directories with names containing "..". Related incident #83208. - Fixed issue with retrieving files using a wildcard when the current directory was the root directory. Related incident #84297. - VLTrader only: Fixed problem where exceptions during file transfers due to errors on the server end did not set the transfer status correctly and the response to the client indicating the error was not logged. - Added additional checks for invalid (not present) permissions found on Tectia server. Related incident #82651. - VLTrader only: Added permissions check for rm(delete) command to deny read-only users from deleting an existing file. - Fixed problem where check for deleting zero-length received file was not done if the transfer failed. - Fixed LexiCom(only) problem with creating a temporary file during a PUT when Resume Failed Transfers advanced property was enabled. Related incident #81663. - VLTrader only: Fixed problem with user login limit after failed password login attempts. Related incident #81252. Bug Fixes - OFTP ---------------- Fixed UI timing problem where the EERPs table in the OFTP service may not be updated with a new received EERP. Bug Fixes - SMTP ---------------- VLTrader only: If using outgoing database payload, fixed problem where an ArrayIndexOutOfBoundsException would be logged if/when an outbound email request without attachments was inserted into the database. Also fixed problem where an ArrayIndexOutOfBoundsException would be logged if/when an inbound email was received without any attachments. Related incident #84006. - VLTrader only: Fixed problem receiving a binary message where the server was failing silently when the incoming data ended prematurely. Bug Fixes - MLLP ---------------- Added a double-check when EOF is detected on returned acknowledgments. This will help prevent unnecessary flagging of false negative conditions on end-of-file (EOF). **************************** * RELEASE 4.2 - 2009/12/07 * **************************** Major Enhancements - Framework ------------------------------ Added two complimentary encryption options: - Inbound payload files can now be automatically encrypted or decrypted while being stored to the file system or database. - Outbound payload files can now be automatically encrypted or decrypted while being retrieved from the file system or database. These options are available in all VersaLex protocols and with any content type. With these flexible options, 1) payload files stored in a public network can be secured, 2) payload can be encrypted over an otherwise insecure communication channel, and 3) VersaLex can work in tandem with another application or a second VersaLex to keep files secure during the workflow process. The encrypted data is packaged using XML (http://www.w3.org/TR/xmlenc-core/). For more information, go to the Encryption tab of any mailbox. - So that an inbound port does not need to be opened through the firewall, VLProxy can now reverse proxy forward connections from VLTrader/LexiCom. This is enabled in VLTrader by checking "Reverse forward connections" in the VLProxy configuration. The VLTrader/LexiCom "Incoming Connection Backlog Size" advanced property dictates how many forward connections VLProxy will continually pool for inbound request processing. - VLTrader only: A general purpose web service is now available for initiating trading partner mailbox sends and receives through any VLTrader protocol. Similar to the Java API IMailboxController interface, the web service provides for send(), receive(), and sendAndReceive() operations. A delete() operation is also included for confirming receipt of a payload file after a receive(). Please refer to the Local Listener Web Service for more information. - Added several new options to the LCOPY command: - Added zipping (-ZIP) and unzipping (-UNZ) options. To manage these new options four advanced properties were added: "Zip Comment", "Zip Compression Level", "Zip Subdirectories Into Individual Zip Files", and "Unzip Use Path". Refer to the Basics chapter of the user's guide for a description of these properties. Refer to a command reference within the user's guide for a discussion of the new LCOPY options. - Also added recursion (-REC) option. This option indicates that subdirectories should be searched recursively for source files. For example, "LCOPY -REC dir1/*.edi dir2/." will search for all files that match "*.edi" within "dir1", including subdirectories of "dir1". - It is worth noting, within the context of zipping or recursing, it was necessary to change how 'autosend' determines the stability of files within the send directory. Rather than starting the LCOPY action when only a single file is stable, now a complete set of files must be stable before the action will begin. Related incident #78394. - Modified the Certificate Exchange dialog to be able to filter on specific protocols and statuses. When filtering for both protocol and status is enabled, multiple rows may be selected allowing commands to be invoked on all selected rows. The ability to schedule certificates for activation at a specified date/time has also been added. Enhancements - Framework ------------------------ Now include a system requirements link (specific to the product) at the end of the software update email notification. Related incident #77633. Related issue #1657. - Sentbox and receivedbox archive file names now include date/time stamp ranges for the files within the archives. Related incident #78842. Related issue #1800. - Added a Website node to the preconfigured tree that enables the ability to download preconfigured hosts from the Cleo web site into the product for cloning and activation. With this update, existing non-local preconfigured hosts are archived. - The "Admin Email Address" previously defined and configured in the AS2 & AS3 Service panels has been moved to the Options->Other Panel (as the "System Administrator Email Address"). If this setting was not previously defined for either AS2 or AS3, this value will initially be set from the registered email address. The macro %admin% may be used anywhere that an email address is configured as a reference to the system administrator email address. - Added a new "Save Raw Message" option to the Local Listener Unknown Partner Message Action advanced property. This property is used by both the AS2/AS3 and ebMS protocols, and indicates how VLTrader should react when a received message does not correspond to any of the configured trading partners. The new "Save Raw Message" option indicates to save the raw request (just like if the Store Raw Received Message advanced property were on) before sending back an error. As part of this, the existing "Save" option was renamed to "Save Payload" for clarification. Related incident #79106. - VLTrader only: Three new enhancements were added to the administrative features of the VLTrader web portal (Local Listener>Web Browser>VLPortal). First, a feature was added to allow users to link to their own web pages directly from the VLPortal main menu. They can specify an URL or a reference to an HTML file. Second, a feature was added to allow users to embed the web portal base pages (ad hoc file transfers and transfer reporting) within their own web pages. Login is required to access the portal pages in this manner. Finally, the user can now customize the graphic images within the banner and menu sections of the web portal framework. Refer to the user's guide for detailed information. Related issue #1658. - Made general changes to support more macro variables in more contexts. With this, several changes were made to the user's guide in an effort to clear up the understanding of macros and their usage. Refer to the section titled, Using Macro Variables, in the Basics chapter of the user's guide. In this section, there is a table that shows a cross reference of all the macro variables and the contexts under which they may be used. Also, it should be noted that, with this change, macro variables that are not resolvable will no longer be substituted with "UNKNOWN" or "N/A". Instead, the variable is simply passed through unchanged. - VLTrader only: Under Tools>Router, the EDI table in the edit route dialog can now be sorted by any column. Related incident #77901. - Added feature to allow stripping of the record padding in outbound AS/400 NFS files. Related incident #77727. - In Configure>Options>Messages, added debug switches for each protocol (previously only HTTP and SSL debug could be selectively enabled/disabled). Also added a general system debug switch. System, HTTP, SSL, and FTP debug are on by default. - Added new Configure>Options>Other>"Include Millisecond In System Log File" property, which indicates to include a millisecond attribute (ms=) in each <Mark> element in the system log file. - Added support to include additional information in the subject line when the "Include Failure In Subject Of Email" advance setting is selected. Defaults to selected. Additionally, if the system alias has been provided, it wiil be included in the subject line of email notifications regardless of the advanced property setting. Related issue #1161. - VLTrader only: When using the outgoing database payload feature, if a transfer attempt fails for protocols which employ message IDs (e.g. AS2, SMTP, ebMS), the failed message ID is now stored in the VLOutgoing table and reused on all subsequent send attempts. Related incident #69821. Enhancements - FTP ------------------ Ignore Retrieve Error Code advanced property will now accept a regular expression as well as a numerical error code. Related incident #79830. - Added new advanced property "Pre Put Command For First File Only" which indicates whether to execute the specified Pre Put Command(s) before each file being transferred by the PUT or only before the first file transfer. This property defaults to true. Related incident #79245. - The PrePutCommand and PreGetCommand advanced properties can now contain macro variables (e.g. %date% and %index%) just like their PostPutCommand and PostGetCommand counterparts. Related incident #79245. Enhancements - HTTP ------------------- When sending via HTTP client or receiving via HTTP server, if an ExternalID header or parameter is specified (case insensitive) and db transfer logging is enabled, the ExternalID column will be populated in the inserted VLTransfers table entry. For sending, the %messageID keyword can be used to provide a unique ExternalID value. Related incident #80512. - HTTP client PUT commands (including AS2 and ebXML) can now specify a destination filename, which can include macro variables (e.g. %sourcefile%_%date%_%time%_%index%). Related incident #80366. - Added option to allow the omission of the 'Name' parameter from the Content-Type header. Related incident #80257. - VLTrader only: For the PUT+GET command transfer logging, the same transferID will now be used for the send and receive except for the last character (the send transferID will end with an 'S' and the receive with an 'R'). - Added new SET command properties (also available in AS2 and ebMS) which allow the host configured command resource path to be overridden in an action (e.g. SET host.Path.PUT=...). Related incident #79118. - VLTrader only: When an Oracle Transport Agent (OTA) client is sending to VLTrader and a file name has not been provided through either the Content-Disposition header's 'filename' parameter or the Content-Type header's 'name' parameter, now use the OXTA "DOCUMENT_NUMBER" parameter value as the default file name and the "MESSAGE_TYPE" parameter value as the default file extension. Related incident #78408. - VLTrader only: If an Oracle Transport Agent (OTA) client is sending to VLTrader, now no longer require the "request=send" parameter as long as an OXTA "REQUEST_TYPE=SEND" parameter has been provided instead. Related incident #78408. - Added support for "macros" (e.g., "%index%") within an HTTP parameter or header value. "Macros" should not be confused with the "keywords" (e.g., "%file.name") that are currently supported. Macro support within a parameter/header is an additional feature, on top of the existing keyword support. Macros may be placed anywhere within the value string for the parameter/header. The set of macros that are supported are those defined under the "Destination File" context. They include: %inbox%, %outbox%, %sourcefile%, %srcfile%, %sourcefilebase%, %srcfilebase%, %sourcefileext%, %srcfileext%, %date%, %time%, %index%, %host%, %mailbox%, and custom directory macro variables. Related incident #78021. Enhancements - ebMS ------------------- Added new advanced property "Enclose Content Type Start With <>" which indicates whether the Content-Type start parameter value for an outgoing ebMS multipart/related message should contain enclosing angle brackets. The examples shown in the ebMS v2 specification are inconsistent, and some implementations may only accept one or the other format. VersaLex will accept either format for incoming messages. This property defaults to false. Related incident #79861. - When receiving through the API and a trading partner relationship is unknown because the CPA Id or Role or Service were not properly defined by the trading partner, now include a "LostAndFound" property containing the text of the "Unknown Trading Relationship" exception. Related issue #1352. - Expanded the capabilities of advanced property "Conversation Id XML Payload Element" to allow multiple payload elements to be concatenated together to produce the ebMS ConversationID. When used in this way, each payload element name must be surrounded by the < and > characters and any needed, additional constant characters placed before, in-between, or after (e.g. <UID>_<DocumentNumber>). Related incident #78974. Enhancements - SSH FTP ---------------------- Added support for aes128-cbc, aes192-cbc, aes256-cbc, cast-128-cbc, twofish128-cbc, twofish192-cbc, and twofish256-cbc ciphers. Related incident #79883. - Added new advanced property "Pre Put Command For First File Only" which indicates whether to execute the specified Pre Put Command(s) before each file being transferred by the PUT or only before the first file transfer. This property defaults to true. - The PrePutCommand advanced property can now contain macro variables (e.g. %date% and %index%) just like its PostPutCommand counterpart. Related incident #79245. Enhancements - SMTP ------------------- Added support for the usage of BCC headers in the SMTP client issue #955. Related - VLTrader only: Now allow for additional inbound SMTP server usernames to be configured. Related incident #79796. Related issue #1803. Bug Fixes - Framework --------------------- VLTrader only: When using database payload, fixed problem where a "java.sql.SQLException: No suitable driver" exception would be logged once at startup even though the database driver was already successfully loaded. - VLTrader only: For VLTrader database payload, fixed problem where a NullPointerException would be thrown if a value in the VLOutgoingProperties table was null. Now the value is treated as empty rather than null. Related incident #80935. - VLTrader only: Fixed problem where an empty parameter value in the xml passed to the general purpose web service was causing a null pointer exception. Also now require that a file name attribute value always be supplied. - When archiving either a sentbox or receivedbox folder now enforce exclusive access on the folder so multiple VersaLexes cannot archive the same folder at the same time. Related incident #80638. - Fixed problem where on an older Windows FAT file system, a host ID mismatch was being reported when trying to run from a network share on another computer. Related incident #80363. - VLTrader only: Fixed problem where checking the validity of the same database connection from two threads at the same time was causing database connection pooling to lockup. Related incident #80573. - VLTrader only: For outgoing database payload, now check validity of the database connection after the send and prior to updating the send status in the database. Related incident #80573. - Fixed various problems mainly centered around a high amount of outgoing database payload: F128- Order processing of host change events is now first-in/first-out. - Fixed potential problem signalling log event handler. - Fixed problem where temporary actions could potentially be stored permanently in a host file, which was causing unwanted overhead. Any temporary actions found in a host file are now stripped out at startup. - Optimized creation of temporary action such that it does not require the entire host XML representation to be recreated. Related incident #79357. - Fixed problem if during startup the VersaLex GUI was trying to log a message (e.g. support contract expiring) the GUI could become locked up. Related incident #80427. - Corrected file access violation / file not found problem (ipconfig.out) when an email is generated through LexMailc on an AS400/iSeries IFS installation. Related issue #1368. - Caught condition where a NullPointerException was being thrown when the native GUI was attempting to connect to the service, and the host address or host name were not known. Related incident #80126. - Fixed problem on AIX where the web GUI was throwing an exception when exiting the Tools>License dialog. Related incident #79494. - Fixed problem where autosend actions that contained multiple PUT/LCOPY commands were not being reliably deployed when they should, or with the correct set of source files. Also added code to ensure that file lists are passed properly between a master and a slave VersaLex when an autosend action is run across multiple synchronized VersaLexes. Related incident #79949 79928. - Corrected problem where validation of the email address entered in the software update dialog and the Options->Other panel (for the System Administrator Email Address) was failing if multiple email addresses were entered. - Fixed null pointer exception that could be thrown in the scheduler when synchronizing multiple VersaLexes. - Added further debug printing for the scheduler. #79949. Related incident - Corrected problem where when 'Email On…' is invoked and the host is set to 'Unknown' an exception was being logged and the email notification was never sent. Related incident #79903. - Fixed timing problem where the GUI would log an error that the "Local Listener was not found" if the service and GUI were started one right after the other. Related incident #79686. - VLTrader only: Fixed issue where the string, "NULL", was being written to the MessageID field of the transfer log when "Log Individual LCOPY Results To Transfer Logging" was set. - VLTrader only: Fixed problem where embedded spaces were being displayed as non-ASCII characters when first starting the web portal under certain Firefox browser versions. - Fixed problem on AIX where the web GUI was throwing an exception at various points in the application (e.g. trading partner certificate selection and support bundle generation). Related incident #79494. - Fixed API problem where a CLIENT_ONLY, SERVER_ONLY, or CLIENT_OR_SERVER request to LexiComFactory.getVersaLex() was hanging when VersaLex was running as a standalone GUI. LexiComFactory.getVersaLex() will now throw an exception in this situation. - Fixed problem where an action couldn't be run after characters in its alias had been changed from upper to lowercase or vice versa. - If a scheduled action was incorrectly scheduled for autosend and then autosend was turned off, fixed problem where the action wouldn't run until the scheduler was restarted or the action was run manually. Related issue #1369. - When synchronizing the schedule across production VersaLexes but the "Automatically run at startup" switch was not turned on, added logging to indicate why the scheduler was not load balancing. - Fixed problem in API where IMailboxController.send() was not making use of an HTTP PUT+GET command if it existed in the default <send> action rather than a PUT command. - VLTrader only: In VLNavigator, fixed problem where the VLTrader pool Status tab could potentially hang on initialization. - Fixed general problem in the Configure>Options>Advanced and Other panels and the various host Advanced panels where just clicking in and out of one of the editable cells was being interpreted as an actual modification. - VLTrader only: Fixed problem where host and mailbox aliases within generated transfer reports were not being sorted the same as elsewhere within the product (case insensitive). - Synchronization is automatically disabled between VersaLexes if there is a mismatch in product versions (e.g. upgraded one VersaLex but have not yet upgraded the other). Fixed problem where synchronization was not being automatically re-enabled when the product versions again matched. - Fixed problem where queuing of a sync item (e.g. at the end of an action) could possibly become hung up if at the same time VersaLex was forcing a reconnect to the synchronized VersaLex because of user or autodetected modifications to the connection information. Related incident #79099. - Fixed two web GUI problems in the action insert/edit command dialog: - An ArrayIndexOutOfBoundsException would be thrown when the dialog was OKed if a command had not been selected on entry into the dialog. - Checkbox option selections in the dialog were not always taking affect. Related incident #78758. - ILexiCom.setDefaultDestination() is now available when using the API in CLIENT mode. - VLTrader only: Fixed problem where if any of the special XML characters (", &, <, and >) are contained in the logged transfer information, the XML transfer log file could become corrupted. Related incident #78781. - Fixed problem where a misleading "renamed" dialog would be displayed and then "element not found" exceptions would be thrown if a user attempted to clone and active a local host that was already active but had been renamed. Related incident #78782. - When using a mailbox controller to send or receive, if a PUT/GET command is not found in the base action , an error result is now logged by the temporary action rather than the system and the result text gives the path to the base action and lists the action's commands. This change affects to the router and database payload features as well as the API. Related incident #78834. - Fixed various syncing issues: - VLNavigator user groups and users are now synced at initialization rather than waiting for the first change. The last synchronization confirmation dialog has a note stating this. - VLPortal files will now only be synced if the Local Listener is being synced. - VLTrader privileges weren‟t working if syncing across Windows and Unix platforms. - Synchronized items weren‟t displaying correctly if syncing across Windows and Unix platforms. Similarly, VLTrader privilege items in VLNavigator weren‟t displaying correctly if syncing across Windows and Unix platforms. - Synchronization could lock up during initialization while trying to switch to an available secure port. - VLTrader only: Fixed problem where configured EDI logging exclusions were not being applied for unsolicited receives. Related incident #78700. - Update to webserver to address potential Cross Site Scripting vulnerabilities. Related incident #78584. - Fixed bug where a NullPointerException was being thrown when a local host did not exist and an attempt was made update the local listener data. Related incident #78529. - Added scroll pane to Generate User X.509 Certificate dialog to handle smaller screen resolutions. Related incident #78342. - In Help>Support>Bundle, fixed problem where an XML parse exception could be thrown if a host file was being updated when generating a support bundle. Related incident #77859. - Modified remote log event queue and thread to avoid the possibility of an endless wait condition. Related incident #77859. - Corrected problem where making updates to the Listener panel in LexiCom was causing a NullPointerException to be thrown after the Apply button was pressed. - Fixed problem where two adjacent macros (e.g., %date%%time%) were not being resolved correctly. Related incident #78348. - Fixed problem where the Schedule.xml file could end up with duplicate entries if while the scheduler is active an attached user updated the schedule. Related incident #77966. - Irrelevant UnsatisfiedLinkErrors will no longer be printed to the console. Related incident #78079. - Now log full exception stacktrace when schedule read/write error occurs. Related incident #77966. - Now synchronize xerces/xalan factory XML calls because of known concurrency issues. Related incident #77966. - Corrections to better handle pad stripping of AS/400 NFS files and to ignore and just stream AS/400 NFS files that are not padded. Related incident #77727. - Fixed problem in View>Log where "Start of Session" markers were being inserted not just when VersaLex was restarted but also when the log file was archived. - VLTrader only: Fixed problem where the database transfer log purge was attempting to delete more than just this VLTrader's serial number, potentially resulting in locking exceptions if another VLTrader was purging at the same time. - VLTrader only: If a local HTTP user mailbox is associated with a primary mailbox (e.g. AS2 mailbox), it now no longer counts against the licensed mailbox limit. - VLTrader only: Modified all Oracle triggers which handle on update cascade for foreign keys to be AFTER UPDATE rather than BEFORE UPDATE. Under certain conditions, BEFORE UPDATE has been shown to cause inserts into the foreign key table occurring at the same time to hang or fail. Related incident #77546. - Eliminated memory leak of web server sessions caused by client requests that did not carry forward the assigned session ID for the socket connection. - Added transfer log event queue and thread to avoid database transfer logging bottlenecks (VLTrader only). And similarly, added a remote log event queue and thread to avoid remote logging bottlenecks caused by attached GUI, commandline, and API processes. - VLTrader only: Eliminated constant quarter second delay when logging EDI information Related incident #75892. - Fixed problem during action retry which caused an incomplete result element if a transfer completed successfully and execute on would not execute. Problem occurred if initial attempt had not logged a file element before the error occurred. Related incident #77075. - A registration validation check is now done when the "Send email when updates are available" option is selected from the "Update Options…" button in the Software Update dialog. When the registration is incomplete, a warning message is displayed. Additionally, run-time exceptions are no longer thrown when any of the needed registration settings are missing. Instead a warning message is logged and the software update checker is not run. Related incident #77340. - Fixed problem where LCOPY warnings were generating EmailOnFail notifications Related incident #77284. Bug Fixes - FTP --------------- Fixed bug where new advanced property PrePutCommandForFirstFileOnly was not being handled correctly when set to true. - VLTrader only: Changed the Maximum Concurrent FTP Logins Per User (system level) setting to be used only when the Maximum Concurrent FTP Logins (mailbox/user level) setting is zero. Related incident #79226. - VLTrader only: Fixed problem where current user was not being logged off with multiple USER commands within the same session. Related incident #79097. - Fixed problem on retry where file from initial attempt was not used when destination used -UNI or %index% macro. Related incident #79078. - VLTrader only: Fixed possible memory leak for each server connection when used with VLProxy. - Eliminated possible quarter second delay after the initial connection and at the end of each transfer. - Fixed ASCII transfer issue where a PUT (or a GET from the server) where a carriage-return character (0xD) would not be followed by an inserted line-feed character (0xA). - Fixed problem with transfer ID not updating on retries when either Only Retrieve First Available File or Only Retrieve Last Available File was enabled. Related incident #77075. - Fixed problem with -UNI when a single file was being retrieved where the unique name was not used and the base file was overwritten. Related incident #77468. - Added host advanced property "Reuse SSL Session" which when selected will attempt to reuse command port SSL sessions for data ports. Related incident #77342. - Fixed problem with appending to a destination file with a PUT command or with a GET command if Resume Failed Transfers was enabled (in 4.1 and 4.0.40) where the destination file was always being overwritten. Related incident #77236. Bug Fixes - HTTP ---------------- For HTTP (and AS2 and ebMS), if the configured Content-Type is overridden by the API (or web service client or database payload), then the value logged now reflects this. - For Chrysler HTTPs, fixed problem where an error was being logged when no files were available for download. Related incident #77350. Bug Fixes - AS2/AS3 ------------------- AS2 only: Fixed problem where a check was being done for an enabled reverse proxy external HTTP or HTTPs port even when a synchronous MDN was being requested. Related incident #80831. - Corrected signature verification errors which manifested themselves as CMSSignatureException: SignerInfo does not exist. Wrong index. Related incident #80115. Bug Fixes - ebMS ---------------- Fixed timing problem where an exception could be thrown trying to parse an unsent ebMS message file that was just deleted. - Fixed timing problem where FileNotFoundException referring to unsent directory could be thrown. - Fixed problem where a valid TimeToLive value could not be parsed and was marked as invalid. - Fixed a timing issue where processing of an inbound, encrypted ebMS message could be put into an indefinately suspended state. Bug Fixes - SSH FTP ------------------- VLTrader only: Fixed issue with client attack via disconnect message which could lead to out-of-memory errors. Related incident #80852. - VLTrader only: Changed logging of disconnect message from error to warning for transport IOExceptions. Related incident #80445. - Exceptions due to changing file permissions with MKDIR command are no longer treated as errors as some servers do not allow this. - VLTrader only: Changed the Maximum Concurrent FTP Logins Per User (system level) setting to be used only when the Maximum Concurrent FTP Logins (mailbox/user level) setting is zero. Related incident #79226. - Fixed problem on retry where file from initial attempt was not used when destination used -UNI or %index% macro. Related incident #79078. - Fixed issue with HTTP proxy authentication when used with a Squid proxy where NTLM was the preferred authentication method. Related incident #78951. - VLTrader only: Fixed problem in overnight testing which caused intermittent PKA login failures via VLProxy. - VLTrader only: Fixed problem when a read request is beyond the file length to generate a status (EOF) rather than an error. Related incident #78477. - VLTrader only: Fixed issue where concurrent sessions could cause invalid handle exceptions after the file was already opened successfully. - Eliminated possible quarter second delay after the initial connection. - Fixed problem with appending to a destination file with a PUT command (in 4.1 and 4.0.40) where the destination file was always being overwritten. Bug Fixes - OFTP ---------------- Fixed problem introduced in patch 11 where inbound OFTP files were being dropped into the installed home directory rather than the configured inbox. Related incident #78951. - Eliminated possible quarter second delay after the initial connection. Bug Fixes - MQ -------------- VLTrader only: Corrected problem where the filename was not being populated in the "Application identity data" field on MQ server when the payload was being streamed from the database. Related incident #79394. Bug Fixes - SMTP ---------------- - Fixed problem where when forward proxying, the initial SMTP server response could be lost because of buffering. - Corrected problem where NullPointerExceptions were being logged when a sentbox was being used in combination with the -DEL option. Related incident #77860. - Eliminated possible quarter second delay after the initial connection and at the end of each transfer. **************************** * RELEASE 4.1 - 2009/06/15 * **************************** Major Enhancements - Framework ------------------------------ VLTrader only: Added a new trading partner web portal, which provides a manual file transfer option, either for low-tech or low-volume partners or for a backup to a primary, automated transfer channel. With only an Internet connection and web browser, a web-portal user can easily upload and download files to/from the VLTrader web server. The web-portal user can also view the file transfer history and have access to any custom web pages that have been configured by the VLTrader administrator. Go to the VLPortal tab in the Local Listener Web Browser service. Requires VLProxy version 2.5 when VLPortal is accessed through VLProxy. - VLTrader only: Added LDAP (Lightweight Directory Access Protocol) authentication for authenticating users using an external directory service. Major Enhancements - FTP ------------------------ Added support for resuming failed transfers. When Advanced property "Resume Failed Transfers" is selected and a transfer fails (and Command Retries > 0), attempt to resume the transfer on a retry. If OpenPGP is enabled on the Mailbox OpenPGP Tab, the entire file will be transferred instead of resuming with a partial file. Major Enhancements - SSH FTP ---------------------------- Added support for resuming failed transfers. When Advanced property "Resume Failed Transfers" is selected and a transfer fails (and Command Retries > 0), attempt to resume the transfer on a retry. If OpenPGP is enabled on the Mailbox OpenPGP Tab, the entire file will be transferred instead of resuming with a partial file. Major Enhancements – Fax ------------------------ VLTrader only: On Windows, VLTrader can now be used to send and receive faxes in the same fashion as other supported protocols. Please review the VLFax system requirements at www.cleo.com/support/byproduct/vltrader/sysreqs.php, as additional requirements and licensing apply. Currently Fax over IP (FOIP) to a Cisco router is supported; future releases will include support for fax boards and other routers. Enhancements - Framework ------------------------ VLTrader only: The VLNavigator GUI can now be accessed via a web browser like the VLTrader GUI. (VLNavigator is an optional VLTrader component.) Go to the Local Listener Web Browser service in VLTrader to modify the default resource path (/VLNavigator). Requires VLProxy version 2.5 when VLNavigator is accessed via a web browser through VLProxy. - VLTrader only: Added support for additional logging of warning messages to the System Event Log (for Windows) or the Syslog file (for Unix / Linux). Logging of warnings requires that error logging is also enabled. Note that for Unix / Linux logging a '*.warn' entry must be included in the syslog configuration file, if not already present. Refer to Knowledge Base item # 2416 for further syslog configuration details. Related incident #76479. - Added support for generating RSA certificates with larger private key sizes of 2048, 3072 or 4096. Related incident #76665. Related issue #1199. - For the API, like the recently added PUT_DESTINATION property, added a new IMailboxController.receive() GET_SOURCE property which overrides the configured GET command's source at runtime. - Added feature to the Certificate Manager to 'Replace Trusted CA Certificates' and will allow the existing certificate file name to be retained so host configurations don't need to be updated with a new file name. Related incident #74853. Related issue #1245. - VLTrader only: A custom splash screen placed in conf/images is now also used for the VLNavigator GUI. - The API IMailboxController.send() "Put.Destination" property can now also be used to specify a subdirectory path for local user file releases. And like the <release> action LCOPY command, when "Put.Destination" is used it can optionally start with the %outbox% variable, which indicates the specified destination is relative to the configured outbox subdirectory under the user's home. (If %outbox% is not specified, the destination is relative to the user's home directory.) - Now include the serial number in the dialog that is presented when a server certificate isn't already trusted. Related incident #75516. - Added several new API features: - ILexiCom.noop() can be used to check API connection. - ILexiCom.getHostProtocol() and ILexiCom.getMailboxPackaging() can be used to get the protocol (e.g. ILexiCom.HTTP_CLIENT) and packaging (e.g. ILexiCom.AS2) a host/mailbox corresponds to. These methods are also available in IMailboxController and IActionController. - For protocols supporting a destination path (e.g. FTP, SSH FTP), added new IMailboxController.PUT_DESTINATION property which can be used to set the put destination value in the IMailboxController.send() parameters object. - Added ability in API to interrupt and stop an action started by IActionController or IMailboxController. Related incident #75493. - VLTrader only: In Tools>Router, added a Note field with each configured EDI that can be used to enter partner or other relevant information. The Note field can also be used when searching for a route (i.e. [Find Route...] button). Related issue #1289. - VLTrader only: Fixed problem where a SQLException was being logged when the account used for the database transfer log did not have the required privilege to retrieve table index metadata. This exception is now captured in the debug information instead. Related incident #75168. - VLTrader only: When a very large number of mailboxes exist, added several improvements to frames and dialogs throughout the GUI to be more efficient. - VLTrader only: Added support for being able to process inbound SMTP messages with an empty MAIL FROM header and the sender address contained in the MIME From header instead. Related incident #74991. - Added mouse over text to the run mode in the status bar which indicates when VersaLex was last started. Also added Note: entries in the View>Log display which indicate each time VersaLex was started up and its run mode. Related issue #1221. - VLTrader only: Added new %transferid% macro variable to ExecuteOn... advanced properties. Related incident #74744. - A [Reregister…] button is now included wherever the registered primary contact information is shown and used (e.g. Tools>Software Update). [Reregister…] allows the registration information to be permanently updated. Related issue #864. - If a regular expression is used in the source of a PUT or GET command, a syntactical check of the regular expression is now included in the validity check that is performed when the action is updated or run. Related incident #74755. - VLTrader only: Local user hosts (HTTP, FTP, SSH FTP) can now also be moved to within a host folder - VLTrader only: Added new router icon in VLTrader toolbar - VLTrader only: Host “modified by” setting now uses current logged-in user - VLTrader only: Current logged-in user now displayed in VLNavigator and VLTrader status bar Related issue #939. - VLTrader only: Added two new VLNavigator user group privileges for VLTrader: - A subset of the VLTrader privileges if set to view-only or editable can also have stop/start enabled, which indicates that a member of the user group is allowed to stop and start (a.k.a. run) the item. - When the hosts privilege is set to view-only or editable, host folder branches can be set to a list of VLTrader host folder names that are accessible by the user group. Related issue #1192. - Made change when locking destination files for an LCOPY command. If multiple source files are being appended to a single destination file, the destination file is locked for the duration of the LCOPY command. This will prevent other operations from accessing a destination file that is actively being built with the LCOPY command. Related incident #74599. - VLTrader only: The VLTrader transfer database can now be marked as temporarily disabled by going to Configure>Options>Transfers. While disabled, transfers are saved to disk and logged once the database is again available. Go to Configure>Options>Other to configure the "Maximum Saved Database Transfer Log Entries". This includes both base transfer and additional EDI log entries. Related incident #74483. - Improved the -s service,stop commandline option to not rely on being able to connect over RMI in order to issue the stop request to the running service/daemon. Instead it now uses the file system to request the stop. Also improved command line parsing to ignore any spaces inbetween service, and stop. Related incident #74167. - VLTrader only: If transfer logging is enabled, now insert a transfer log entry if a GET command fails to connect or log into the server. Protocols affected include FTP, SSH FTP, OFTP, and HTTP. - Renamed advanced property 'Copybox' to 'LCOPY Archive' to clarify its use. No functionality has been changed; only the property name has been changed. Related incident #68850. - Added All/None buttons to host and configuration tables in Help>Support>Bundle dialog. - Inclusion of HTTP and SSL debug in system debug file is now optional in Configure>Options>Messages (defaults to on). - Enhanced File Viewer: old buttons for selecting files, printing and changing formats have been removed in favor of new menu-style options. Also added a new feature to be able to convert the file contents to a desired character set (replaces the ASCII/EBCDIC switches). Made viewing via the Web GUI more acceptable. - EDI parser now ignores end-of-line characters (CR/LF) found within segments (caused by fixed length records). Related incident #73340. - Added a more descriptive error message when send or receive actions are temporarily created and there is no PUT (for send) or GET (for receive) commands in the default send or receive action for a mailbox. This will affect database payload, the API call MailboxController.send()/receive(), and Piping. Related incident #73015. - VLTrader only: Added the ability to set the default connection type for database connections (either auto commit or rollback) through the LexUtil API. In addition, you can override this default setting with the new getDatabaseConnection(boolean) and putDatabaseConnection(Connection, boolean) methods. See the API javadoc for more information. Related incident #73052. - VLTrader only: Added a new "Log Individual LCOPY Results To Transfer Logging" Advanced property that may be set either at the system level or at the individual host level. By default LCOPY logs a single <Result> regardless of how many files are copied. When this option is enabled, a <send> and <receive> result is logged for each file copied. - In the native GUI Log View frame, added a "Save As" right-click context menu item which can be used to save an HTML version of the log messages. - VLTrader only: When using the database payload feature, at each polling interval outgoing payload for the same mailbox can now be bundled together and sent one-by-one using just one mailbox session. Go to Configure>Options>Transfers>Configure... database payload to enable "Bundle (serialize) same mailbox sends" and to set the bundle size. Related incident #64566. - VLTrader only: Added support for processing cXML client messages and returning a cXML response Related incident #70993. - VLTrader only: Added a new feature to log errors/exceptions to the System Event Log (for Windows) or the Syslog file (for Unix / Linux). Note that for Unix / Linux, error messages larger than the size of the Syslog record entry will be truncated. If this feature is enabled, system event logging will be done in addition to "Email On Fail". If emailing fails, the email error will also be logged in the system event log. Related incident #71378. - Added a new Advanced property, called 'Copybox', at both the system and host levels. If the Copybox field contains a directory path, either absolute or relative, then the source files that are copied within an LCOPY command will also be copied (archived) to the Copybox location. Custom directory variables are supported at the beginning of the Copybox path, similar to the Inbox/Outbox/Sentbox/Receivedbox fields on the hosts General tab. If the Copybox field is left empty (default), then no archiving will take place on LCOPY commands. Related incident #68850. - VLTrader only: Added a new feature to compute CRC-32 values on transferred files. This feature is enabled through a new option, 'Compute CRC on transfers' (Configure>Options>Messages panel). If this option is enabled, the computed CRC value is recorded in the <Result> element of the system log file; and further, if database logging is active, the CRC will be stored in the database as well. Additionally, a new macro variable, %crc%, has been added. This variable is supported within Execute On Successful Send, Execute On Successful Receive, and Execute On Fail commands. The CRC feature is available for all protocols. Enhancements - FTP ------------------ Added hint when using OpenPGP encryption to confirm configuration and data format for OpenPGP exceptions. - Added a new advanced property PreGetCommand which can be used to specify FTP commands to be executed before retrieves (e.g. change directory). Using PreGetCommand rather than regular action commands preceding the GET allows failures to connect or log into the server to still be inserted into the VLTrader transfer log as receive errors. - Added a new advanced property PostGetCommand which can be used to specify FTP commands to be executed after retrieves (e.g. rename the retrieved file on the server to mark it as downloaded). All of the macro variables supported by PostPutCommand are also supported by PostGetCommand. Related incident #73827. - If an exception occurs trying to open a passive or active data port and Command Retries is set, now retry starts with a new FTP session. Related incident #71611. Enhancements - HTTP ------------------- Added support for one or more %HTTP.header.XXXX% macro variables in the destination of a GET command. The XXXX references a header name in the HTTP server's response and is replaced with the header's value when assembling the inbound file's name and path. If the header name is not found in the response, the GET will error out. - Added a new HTTP PUT+GET command for being able to both send and receive payload in one server request/response. - Added support to the VersaLex API to allow for the creation of an HttpResponseListener in order to expose the contents of the HTTP request and response through a callback method. See the API javadoc for further information. - Added support for displaying cXML server responses #70993. Related incident Enhancements - AS2/AS3 ---------------------- When receiving through the API and a trading partner relationship is unknown because the AS2 or AS3 names were not properly defined by the trading partner, now include a "LostAndFound" property containing the text of the "Unknown Trading Relationship" exception. Related incident #75493. - AS2 only: Added new "Disable TE Headers" Advanced Property that will disable the Transfer Encoding headers that are normally set in the outer HTTP headers since some trading partners having trouble processing these headers. Related incident #71924. Enhancements - ebMS ------------------- If using the API's ILexiComIncoming interface, the SOAP envelope of the incoming payload is now available via property name "ebMS.SOAP.envelope" in the open() method's parameters object. Related issue #1322. - Added ability to SET a mailbox.Description value in an action, which can be used to override the configured mailbox description. The description is inserted into the generated ebMS SOAP header. - Added several new advanced properties for manipulating outbound messages: - "Always Send Multipart Content", which if set on, forces Contenttype: multipart/related for all non-payload requests and responses. - "Conversation Id XML Payload Element", which when set indicates the element name in the XML payload whose value should be used as the ebMS Conversation Id value. - "Encryption Encrypted Key Id", which when set adds an Id attribute with the configured value to the EncryptedKey element. - "Encryption Include Certificate", which when set indicates to include the X509Certicate in the encrypted data. - "Encryption IV", which when set specifies the initialization vector to be used for encryption/decryption. If specified, the configured IV is NOT added to or expected at the beginning of <CipherValue>. The configured value must be prefixed with either a 'c' or 'x', which indicates whether the value following the prefix should be treated as a character or hexadecimal string. - "Maximum Message Id Length", which if set to a positive number, truncates the generated ebMS message id if necessary. - "Sign XML Payload If Signing", which when set indicates to sign XML payload in addition to signing the ebMS SOAP envelope. - "Sign XML Payload Omit XML Declaration", which when set indicates when signing to omit the XML declaration at the top of the XML payload. - If encrypting, the xenc: and ds: namespaces are now used in the generated encrypted payload. - Optional <X509SubjectName> and <X509IssuerSerial> subelements are now included in the <X509Data> element of a generated signature. Enhancements - SSH FTP ---------------------- Added hint when using OpenPGP encryption to confirm configuration and data format for OpenPGP exceptions. - Added client support server supports it and mailbox password field each time an action is for keyboard-interactive authentication when the password authentication is not available. The will be used instead of prompting for a password run. Related incident #74525. - Added append (-APE) for SSHFTP PUT commands. Enhancements - SMTP ------------------- Added support for sending SMTP payload to multiple (open-ended) recipients without requiring an SMTP forward proxy. Additionally, support for resending payload is now available to LexiCom users. Bug Fixes - Framework --------------------- When the user has selected either "Add Mailbox Alias Directory To Sentbox" or "Add Mailbox Alias Directory To Receivedbox", now also archive the contents of those subdirectories. Related incident #76590. - VLTrader only: For outgoing database payload, VLOutgoing table is now updated first with the transferID before VLSend is updated with a sent status so that a trigger can check that the VLTransfers table status for the transferID is not still "In Progress". Related incident #76594. - Fixed problem in patch 31 to 35 when operating in FIPS mode where certificates were not usable (or displayed). - Fixed problem where use of the API IMailboxController "Put.Destination" property was alway causing a "Command parameter does not exist" warning to be logged at the beginning of a send. Related incident #76324. - VLTrader only: Fixed problem where transferIDs generated for LCOPY commands were exceeding the maximum number of allowed characters in the database table causing VLTrader to hang. Related incident #76232. - VLTrader only: Fix to the API IMailboxController.send() "Put.Destination" property when it is being used to release files to a local user mailbox. Now the "Put.Destination" path value is only treated as a directory if the value ends in '/' or '\' (or if the directory already exists). Otherwise the last portion of the "Put.Destination" path value is treated as the destination filename. - Corrected problem where when invoking either LexMailc or VLMailc, an email server was required (using the -e option) in order to get the email to be successfully sent even though this is an optional parameter. Related incident #76128. - VLTrader only: Fixed problem where when the HTTP server was receiving inbound url-encoded content, the transfer bytes were not being logged causing emailOnStatus and/or executeOnStatus commands not to run. - On Windows, fixed problem where API was attempting to load DLLs each time LexiComFactory was invoked rather than just the first time. - Fixed problem where when viewing logs from an archive file on an AS/400 mapped drive, the error 'Log file syntax error found: "Content is not allowed in prolog"' was being displayed. - When VLLogc is invoked and the report is to be emailed but the email fails to be sent, the process now ends with a negative status - VLTrader only: When VLStatc is invoked and the report is to be emailed but the email fails to be sent, the process now ends with a negative status - VLTrader only: For EDI functional acknowledgment tracking, when using an Oracle database, now explicitly include all tables in the EXISTS clause used within a SQL UPDATE to optimize performance. Related incident #75389. - Fixed problem where NullPointerException was being thrown when running an action via the commandline. Related incident #75249. - VLTrader only: For database transfer logging, if a file name or path is longer than the database is sized for (100 and 200 characters respectively), the name or path is now truncated in the logging. - Fixed problem where if cancel exit of the GUI service, even though scheduler and router were being restarted appropriately, the mainframe status bar items were inaccurate. - Fixed problems with passwords starting with a "*" for FTP/FTPs, HTTP/HTTPs, SSH FTP hosts and local users (VLTrader only). Related incident #74826. - Corrected problem where interruptions to an action were also stopping the logging of the status of the sending of the EmailOnFail message. - VLTrader only: Fixed problem where the router was not including the optional EDIFACT UNA header when present in the original file. Related incident #74865. - Fixed problem where an java.lang.reflect.InvocationTargetException could be thrown by the GUI if an action within the host is running and logging messages while updating the host XML file. - Fixed AS/400 related problem where a new certificate used for OpenPGP or SSL may be not used or exported until the GUI is restarted. Related incident #74461. - For protocols supporting the PrePutCommand advanced property (FTP and SSH FTP), fixed problem in the API IMailboxController where the PrePutCommands would be executed before each send rather than just before the first send. This also affected VLTrader features using IMailboxController including the router and outgoing database payload. Related incident #74615. - VLTrader only: Fixed problem where the router was checking that the host and mailbox were enabled but was not checking that the <send> action was enabled. Related incident #73236. - Fixed problem where updating action properties thru commandline would always log an error that the action was not found even if it existed. - VLTrader only: Corrected problem where a NullPointerException was being thrown during Software update for VLTrader when checking for VLTraderspecific licensed features. This protects a client which in rare cases may be sending the LexiCom product name instead of the VLTrader name to the server. - VLTrader only: Corrected a problem in the HTTP server where an embedded file containing a '%' character was causing the contents of the file to only be partially stored. - Changed memory monitoring message logic to include the amount of free memory available to avoid false indications when actual usage is much different than the maximum available. - Fixed problem with wide warning dialog when attempting to apply invalid changes to an action. - Removed client non-encrypting SSL Cipher selections SSL_RSA_WITH_NULL_MD5, and SSL_RSA_WITH_NULL_SHA. - Removed server support for non-encrypting (cipher algorithm NULL) SSL ciphers SSL_RSA_WITH_NULL_MD5, and SSL_RSA_WITH_NULL_SHA. Related incident #73815. - Fixed problem on Unix platforms where Certificate Manager was indicating that a duplicate certificate with the same filename except in lowercase existed, when in reality it did not. Related incident #72391. - Fixed file viewer problem which affects patch 8. #73743. Related incident - Fixed problem with expiration date on generated OpenPGP key and serial number on certificate when the key is created with a new self-signed certificate. Related incident #73743. - Fixed an issue with the class loader used to create classes for the API. Previously, for each new class created in the API, a new class loader would be created. This has been fixed so that only one class loader is created. This resolves the issue of having static variables with different values in the API. Related incident #73052. - VLTrader only: Corrected problem when using the API and VLNavigator is installed where LexiCom.setIAIK() had to be called before calling LexiComFactory. - Fixed problem where an unexpected interrupted exception could be thrown while the PUT command is finding local files. - Fixed issue when not waiting for processes to complete (Wait For Execute On was not selected) where the two reader threads started with each process would never complete. Related incident #73169. - Moved transfer report related code to new VLTrader method to address class loader issue with LexiCom(only) on AIX with JRE 1.5. - Fixed a problem on the Advanced panels where a text field would not allow character entry, if a numeric field had previously been selected and/or entered. Bug Fixes - FTP --------------- Fixed problem with GET -APE option (patch 26-39) where destination file was overwritten instead of being appended. - Fixed problem with GET when Resume Failed Transfers was enabled when the destination file was already used in the same session. - VLTrader only: Fixed problem where active mode FTP into VLTrader FTP server using a specific source data port (e.g. 20) would occasionally cause socket bind exceptions. Related incident #76636. - Fixed problem when receiving PGP armored file using FTPs in ASCII mode. - VLTrader only: Fixed problem (Windows only) when Automatically Delete Retrieved Outbox Files would not delete the file if the retrieved filename case did not match the configured outbox. Related incident #76711. - Fixed problem where a path in the source of an FTP GET was being stripped out in the generated retrieve when the source filename was not wildcarded. - Fixed problem where when running natively on the AS/400 and storing received files to an AS/400 NFS directory, the file path was incorrectly being appended with a text string causing the AS/400 to throw an ExtendedIOException: Directory name not valid. Related incident #75221. - Fixed ASCII transfer problem where a line-feed character (0xA) was not always preceded by a carriage return character (0xD) on a PUT from the client or with a GET from the server (VLTrader only). Related incident #74758. - Now ignore SSL close_notify bytes if sent by server on command port after CCC command/response. Related incident #71959. Bug Fixes - HTTP ---------------- Corrected problem where the file being used for the %file parameter in an application/x-www-form-urlencoded post would sometimes not be fully read, causing a partial file to be sent to the trading partner. - Corrected a problem in the HTTP client where an embedded file containing a '%' character was causing the contents of the file to only be partially stored. - Fixed problem where the -DEL option on a PUT was causing the command to be flagged as invalid because validation was incorrectly looking for the parameters required for a remote delete. Related incident #73035. - Eliminated possibility of small memory leak occurring with each HTTP client request (including AS2 and ebMS as well). Bug Fixes - AS2/AS3 ------------------- When forwarding an MDN to an email recipient, now replace the 'multipart/report' content type with a 'multipart/mixed' content type in the outbound MIME message. This was done because Microsoft Exchange Server 2007 is interpreting a 'report-type=disposition-notification' as a read-receipt and was stripping out the content of the email being forwarded. Related incident #76945. - AS2 only: Corrected problem where async MDN timeout email notifications were always being sent to the system email on fail address even when a different email on fail address had been overridden at the host. Related incident #74704. - AS2 only: Corrected problem where exception logging was being ignored in some cases where the connection had timed out. Also, user interruptions now supersede any other possible exceptions in the logging and email on fail and retries are no longer attempted when an action is interrupted. Related incident #74071. - AS2 only: Corrected problems where the host name that is set and retrieved from the AS2 Service Panel could potentially contain two ports appended together in the form 'address:port:port'. Additionally, corrected this same issue in the address specified for returning the asynchronous MDN. Also, the Disposition-Notification-To and ReceiptDelivery-Option header values should now always be the same. Related incident #72577. Bug Fixes - ebMS ---------------- Fixed problem where a large configured TimeToLive hours value was causing an integer overflow and resulting in an already expired TimeToLive date. Related incident #77180. - Fixed problem where path of the trading partner signing certificate was included in the fault sent in an ebMS response if the fault had to do with the certificate not existing or being invalid. Bug Fixes - SSH FTP ------------------- Fixed problem with GET -APE option (patch 26-39) where destination file was overwritten instead of being appended. - Fixed problem where a path in the source of an SSH FTP GET was being stripped out in the generated retrieve. Fixed problem where the current directory was changed during a DIR or GET (with wildcards) causing following commands to fail. Also fixed issue with mixed (both '/' and '\') in the same command. - When opening a file for writing and the initial open fails using the attributes returned by the server from the stat command, another attempt is made with default attributes and the truncate flag (as if the file did not already exist). Related incident #75973. - VLTrader only: Fixed problem with retrieving files (larger than 32K) with OpenSSH for a OpenPGP local user where the number of bytes returned from a SshFxpRead could be fewer than the number requested. Related incident #72854. - VLTrader only: Fixed overnight issue SSH FTP server problem when receiving OpenPGP encrypted files where a failed transfer could leave a file locked open. - VLTrader only: SSH_MSG_IGNORE messages will now be logged as a detail message (High) instead of a request. Bug Fixes - OFTP ---------------- Also fixed problem where LexiCom was not always logging the <File> and <Transfer> elements. Related incident #75416. - Fixed problem where if file receive fails because of an ISDN disconnect, then a retry by the sender would always result in a duplicate file error. Related incident #75416. Bug Fixes - MQ -------------- Corrected problem in trust verifier where a certificate chain was not being trusted even after the user had opted to permanently trust the server certificate Related incident #75516. **************************** * RELEASE 4.0 - 2008/11/12 * **************************** Major Enhancements - Framework ------------------------------ VLTrader only: Added graph tabs to VLNavigator which show throughput for a VLTrader pool (bar chart) and individual VLTraders (line graph). In the VLNavigator tree, go to a VLTrader Pool>Status or a VLTrader>Status. VLTrader database transfer logging is a prerequisite for graphing. - Web browser GUI now more closely matches native GUI: - Main page automatically maximized - Toolbar - Configurable automatic refresh rate - Right-click context menus - Auto-scrolling message lists - Tool tip help - Layered and centered dialog windows - Outbound forward proxy requests can now be load balanced between two or more VLProxies. The load balance setting can be enabled in any one of the non-backup VLProxies. Also, whether load balancing or not, an alternate VLProxy will now be used immediately if/when the initial request fails to connect to the proxy. - VLTrader only: Added FIPS edition which will only use FIPS 140-2 approved cryptographic operations (when FIPS Mode is enabled under Configure > Options >Other ). The VLTrader FIPS edition is only compatible with VLProxy version [2.3.2] or better and has additional license restrictions. If multiple VLTraders are used with VLProxy, the VLTraders must have identical FIPS Mode settings. Major Enhancements - SSH FTP ---------------------------- Added OpenPGP encryption/decryption to SSH FTP for outgoing/incoming files. Enhancements - Framework ------------------------ In the Listener Wizard, replaced the HTTP and HTTP/s "port enabled" lines with the appropriate URLs. Related issue #868. - If the configured inbox or outbox for a scheduled action is not presently accessible, the action is now automatically retried after waiting Configure>Options>Other>Autosend Restart minutes rather than being marked as invalid and requiring manual intervention. Note that VersaLex is unable to distinguish the difference between a VersaLex configuration problem versus a temporary network condition. Related incident #72178. - The native AS/400 STRLEXSVR, ENDLEXSVR and translator file generation scripts now require use of JRE 1.4 instead of JRE 1.3 - When the AS/400 client access network password is about to expire, now log a warning message once per day. Also now display the same warning in the dialog when the "Validate Login" button is used. Related incident #71926. - Added a new system-level property (Configure>Options>Other panel), "Minimum Number Of Destination File Index Digits". The setting of this property determines the minumum number of digits that will be inserted by the %index% macro. The %index% value is always padded with zeros. For example, if %index% resolves to "9" and this property is set to "6", then "000009" will be inserted for the %index% macro. - For all protocols, added a new host Advanced property, "Wait For Execute On". Also added "Wait For Execute On" at the system level (Configure>Options>Advanced panel). The setting of Wait For Execute On indicates whether execution should wait for processing to complete within an Execute On Successful Send, Execute On Successful Receive, Execute On Successful Copy, or Execute On Fail command. - Added %sourcefile% and %srcfile% macro support to the Execute On Successful Send, Execute On Successful Receive, Execute On Successful Copy, and Execute On Fail. - VLTrader only: Added ability to redirect (i.e. pipe) inbound payload for a local FTP, HTTP, or SSH FTP user mailbox out through any other host mailbox, regardless of protocol. This can be configured in the specific local user mailbox panel. Piping is done instream, so that if the transfer out through the pipe mailbox should fail, the transfer into the local mailbox will also fail. - Added support for the SET command in local user actions. - Added ExecuteOnSuccessfulCopy and EmailOnSuccessfulCopy Advanced properties for all protocols and as a System Advanced property. When configured, these properties will generate and email or start an external process for each file successfully processed by an LCOPY command. - Added ability to support regular expessions on GET, PUT, LCOPY, LDELETE and LREPLACE commands. Basic wildcards ('*' and '?') are still supported, while regular expressions enable a wider range of search patterns. When used, a regular expression must be encapsulated in brackets ('[' and ']'). - VLTrader only: HTTP, FTP, SMTP and SSH FTP welcome messages may be customized using the Local Listener Responses panel. An optional banner message may be configured for FTP, SMTP and SSH FTP. - Added ability to generate a new self-signed certificate with the same information as an old and/or expiring user certificate. To use this feature, right-click on an existing user certificate and choose the "Generate New Self-signed User Certificate". Everything except the alias and password is cloned from the existing certificate. - SMTP is now also available to LexiCom clients - When the master scheduler in a synchronized system is being manually stopped, a confirmation dialog will now indicate that stopping the master scheduler will keep all synchronized VLTraders from running scheduled actions. Related incident #70502. - VLTrader only: For incoming database payload, added an AlwaysAllMailboxesReceive switch in the VLOptions table (defaults to off) which indicates that all mailboxes are always database incoming mailboxes rather than requiring each mailbox to be individually enabled. This switch can either be set directly in the database or using Configure>Options>Transfers>[Configure...] database payload. - Added option for generating an OpenPGP key using Certificate Manager Certificates>Generate>Self-signed User Certificate. Added support for exporting an OpenPGP key with subkeys. Related incident #70320 and 70431. - VLTrader only: Instead of having to go through the VLTrader transfer table to generate a transfer report, either "Table" or "Report" can now be selected in the initial transfer filter dialog. (A report can still be generated from the table as well.) - VLTrader only: Configured VLTrader aliases are now included in the transfer filter dialog, transfer table detail, and transfer report. - VLTrader only: Added the ability to update in-process transfers to the database based on a user-defined Update Frequency specified on the Transfers tab of the Options panel. - Added ability to use SMTP authentication usernames and passwords for emailing. As part of this enhancement, the SMTP Mail Server has been moved from the Options->Other panel to the Proxies panel and the SMTP Mail server proxy entry may be edited to include a username and password. (Either "Plain" or "Login" Proxy Authentication may be selected, but will currently be ignored. The authentication mechanism used is currently the first available authentication mechanism in the server.) Related incident #68354. Related issue #962. - The Properties parameter in the ILexiComIncoming interface's open() method now will contain all of the HTTP header and parameter name/value pairs for unsolicited receives. The names are all prepended with either "HTTP.header." or "HTTP.parameter." - Added a new directory variable feature. The first aspect of this feature allows the user to create custom directory variables under Configure>Options>General. Variables are defined as '%name%=value' pairs. The second aspect of this feature allows the user to then reference these variables in the inbox/outbox/sentbox/receivedbox settings under the active hosts General tab. With this capability, a reserved variable '%system%' references the associated system-level settting. Related incident #67109. - Modified the SYSTEM command to allow processing of %date% and %time% macros Related incident #68703. - Made changes to LCOPY command to help the user determine if the command completed successfully. When copying a file without the -APE option, or when copying a file with the -APE option but the destination file does not already exist, a temporary file name is used while the copy operation is taking place. This temporary file will be placed in the destination directory. Its name will begin with the product name and end with '.tmp'. Once the copy completes successfully, the temporary file is renamed to the destination name. Related incident #68850. - For all protocols, added a new host Advanced property, "Outbox Sort". Also added "Outbox Sort" at the system level (Configure>Options>Advanced panel). The setting of Outbox Sort controls the order in which multiple files are transferred on a PUT command. At the system level, there are two options: "Alphabetical" (default) and "Date/Time Modified". At the host level, there are three options: "System Default"(default), "Alphabetical" and "Date/Time Modified". - Up to three VersaLex API interfaces can now be configured to run directly within the Versalex service/daemon. Implementations of one or more of these interfaces - ILexiComIncoming, LexiComLogListener, and LexiComOutgoingThread - can be set at Configure>Options>Other>Custom XXX Class. Refer to the VersaLex API documentation for a description of each interface. An archive containing the implementation(s) must be copied to the VersaLex lib/api/ folder. The Versalex service/daemon will load and register the configured classes at startup. - Macro variables %inbox% and %outbox% can now be used in a SYSTEM command. Related incident #67451. - VLTrader only: Database SQL statements used to create the VLTrader transfers table and optional EDI and payload tables can now be exported to a file using Configure>Options>Transfers>[Export Database Definition…]. - VLTrader only: If the database transfer logging is enabled but the database is unavailable, transfer log entries are now saved to disk and the database is brought up-to-date when it is again available. This applies to the basic send/receive transfer log and EDI option, but does not apply to the database payload option. If Configure>Options>Other>Maximum Saved Database Transfer Log Entries (default 10,000) is reached while the database is down, the oldest saved entries are deleted when new entries are added. - Synchronization with an offline VersaLex is now automatically disabled if the sync queue size reaches the maximum number of entries. The maximum can be configured at Configure>Options>Other>Maximum Allowed Synchronization Queue Size and defaults to 10,000. - Up to 25 message IDs and sent/received receipts are now bundled together during syncing to improve sync performance in high volume systems. Enhancements - FTP ------------------ If FTP Mailbox setting No Password Required is checked and the response from the server is 331 from the USER command, the PASS command (followed by a space) will be sent to the server with no password supplied. Related incident #71656. - VLTrader only: For the FTP server, inbound filenames can now be required to have a file extension. This can be set in the Local FTP Users FTP tab. - VLTrader only: FTP server now supports FEAT and OPTS commands (RFC 2389). Enhancements - HTTP ------------------- VLTrader only: Added Oracle Transport Agent server interface for processing inbound messages - Added Oracle Transport Agent client interface for processing outbound messages - Added new "Store Raw Sent Message" Advanced property. When this property is enabled, a copy of the outbound message will be stored in the HTTP/sent directory. - Authorization and Proxy-Authorization HTTP headers can now be manually set in host/mailbox HTTP tab for non-standard values or unsupported authorization schemes. This is supported in all of the HTTP protocols, including AS2 and ebMS. Related incident #70239. Enhancements - AS2/AS3 ---------------------- In the Mailbox Wizard, added a checkbox in Step 3 "Select Trading Partner's Signing Certificate" to "Use Encryption Certificate" and populate the signing certificate field with it when the option is checked. Related issue #871. - AS2 only: Added Async MDN Resend and Async MDN Timeout values at the host level which, when set to the non-default value (-1), overrides the Local Listener's settings. - Added new "Date" and "Date-Local" entries to the generated MDN text Related incident #67287. - AS2 only: When any additional headers are defined in HTTP panel, those headers that have a value are included (as-is) in the HTTP header. - AS2 only: Added ability to specify the AS2 Async Preferred Port on the Advanced Panel Related incident #68580. Related issue #961. - AS2 only: When sending asynchronous MDNs, the Listener's configured advanced property Connection Timeout is now used and the MDNs will now time out if the trading partner's server stops reading it. Before this change, the asynchronous MDN would hang until the socket was eventually closed by the server. Additionally, when an asynchronous MDN cannot be sent, it is now logged as a warning instead of an exception. Related incident #68010. Enhancements - ebMS ------------------- Added new "Encryption-Signing Order" advanced property which if changed from the default of "Sign then encrypt" to "Encrypt then sign" allows the encryption/signing order to be reversed for both outbound and inbound messages with an ebMS trading partner. - Added new "Outbound SOAP Charset" advanced property which if set to UTF-8 will add charset=UTF-8 to the Content-Type header of the SOAP part and ensure UTF-8 encoding. - In addition to default TripleDES, added support for optional SEED encryption algorithm. Related incident #70239. - Added Async Ack Resend and Async Ack Timeout values at the host level which, when set to the non-default value (-1), overrides the Local Listener's settings. - Added new option "TCD Super Gateway" to the ebMS Profile Support advanced property. When this profile is chosen, VersaLex will set the outgoing ConversationID and To Action in the ebMS SOAP envelope based on the outgoing filename (the To Action will be the portion of the filename before '_' and the ConversationID will be the portion of the filename after '_' less the extension). Related incident #70832. Enhancements - SSH FTP ---------------------- VLTrader only: For the SSH FTP server, inbound filenames can now be required to have a file extension. This can be set in the Local SSH FTP Users SSH FTP tab. - VLTrader only: Added support for formatting SFTP version 2 SshFxpStatus messages. Related incident #69629. - VLTrader only: Added log message showing username for connections via VLProxy. Related incident #70152. - VLTrader only: Added check to assume the user root directory is requested when the path specified is '\' or '/'. Related incident #69629. Enhancements - SMTP ------------------- VLTrader only: When rejecting incoming email because account is not known or not unique or disabled, added rejected sender email address to SMTP server response so that if EmailOnFail is configured, the generated email contains the problematic email address. Related incident #68914. Bug Fixes - Framework --------------------- Fixed problem handling autorun/ files where multiple -c command arguments were not being parsed correctly if the commands themselves contained multiple double quotes because of paths with embedded spaces. Related incident #72131. - Fixed problem where the Tools>Scheduler dialog would not reflect the correct "Next Scheduled" column value for an action if the action had been marked as invalid, incomplete, or for restart before the GUI was opened. Related incident #72281. - VLTrader only: For inbound HTTP messages, no longer log the file or PAYLOAD parameter values since they both contain data which shouldn't be logged. Additionally, when the database payload is enabled for incoming data, the file and payload parameters are no longer inserted into the VLIncomingProperties table. - Fixed problem where a scheduled action that was disabled (or it's parent mailbox or host was disabled) would cause delays in autosend actions. Related incident #72134. - Fixed problem when generating a support bundle with JRE 1.4 (patch 42 to 44 only) which would throw an exception when attempting to create a thread dump. Related incident #72072. - When an AS/400 client access network password has expired, no longer display the Client Access popup dialog within VersaLex Related incident #71926. - VLTrader only: Fixed problem in versions 3.6.25 to 3.6.41 where the web GUI would throw a NullPointerException when attempting to view the transfer log table. Related incident #72015. - Fixed null pointer exception problem (3.6.20 to 3.6.36) when emailing support bundle. - Fixed problem where web GUI sessions were missing all images, style sheets, etc. if the browser requests inserted additional name=value pairs at the beginning of the Cookie: header. Related incident #71387. - Fixed problem where if the scheduler could not run an action because the action was invalid, the scheduler would possibly not run any other actions until the action in error was corrected. Related incident #71055. - Fixed problem where characters & and ] when present in the log file content were sometimes being displayed in the log viewer surrounded by semi-colons (;). - Added check to remove .dbg files in the logs directory that are older than 3 days old . Additionally, on exit all zero-length files are removed. (The standard LexiCom/VLTrader dbg file is always excluded from these checks.) Related incident #71150. - Fixed problem where if VersaLex daemon running on Solaris, the web GUI would throw a NullPointerException when a tab in the Configure>Options dialog was selected. Related incident #71049. - Fixed problem where duplicate menubar pulldown items could appear. Related incident #71052. - Fixed LexiCom (3.6.19 to 3.6.30) only problem when requesting a permanent license which would result in a null pointer exception. - Fixed issue with increasing number of threads and eventual out of memory error when accessing AS/400 IFS. Caused by I/O exceptions which would create a new AS/400 connection while the current connection was left open. - Fixed problem with reverse proxy load balancing between VersaLexes when using as a synchronized backup or with a backup license. Reverse proxy load balancing was selecting the backup rather than the primary VersaLex if both were available. - Fixed issue where a synchronized backup would continually initialize VLProxy. Related incident #70885. - Fixed problem where enhancement made to create temp files during LCOPY was failing when destination directory was networked AS/400. Related incident #71010. - VLTrader only: When a Local FTP or SSH FTP User home directory is invalid or not available at startup the user account will no longer be disabled. Instead I/O errors will occur after a successful login when file operations are attempted. Related incident #70814. - VLTrader only: Fixed problem where EDI router was not recognizing a file as EDIFACT if the initial UNB segment contained a carriage return and/or line feed. Related incident #70806. - VLTrader only: Fixed issue loading IBM intermediate CA cert (IBM_PKI.certificate.cer) in FIPS mode. - VLTrader only: Fixed problem verifying a signature from a hash value where the signature's corresponding public key cannot be used for decryption in FIPS mode. Related incident #70437. - VLTrader only: Fixed problem where [Export Database Definition…] in Configure>Options>Transfers would throw a NullPointerException if database transfer logging was just turned on. - VLTrader only: Fixed problem where the folder location for a host when it was exported was not being retained if/when the host was later imported onto a VLTrader where it no longer existed. - Fixed issue with importing DSA certificate and private key file (separate files) using Certificate Manager Certificates>Import>User Certificate and Private Key. - Added warning message if file selected does not appear to be a valid OpenPGP key using Certificate Manager Certificates>Generate Trusted CA Certificate from OpenPGP Key Related incident #70228. - Made changes to avoid a potential endless cycle that could be started if an exception occurred while trying to distribute a log event to the connected (web) GUIs or commandlines. Related incident #69951. - VLTrader only: Fixed problem where if VLTraders are sharing a database instance but are not synchronized, the VLTrader transfer report incorrectly included both VLTrader transfers. - VLTrader only: When load balancing outgoing database payload between active, synchronized VLTraders, added more feedback between the VLTraders so that the outgoing load is more evenly distributed. Related incident #69514. - For synchronized LexiComs or VLTraders, fixed problem where if "Email/Execute On Repetitive Action/Listener Failures" is turned off, VersaLex was unnecessarily synchronizing a host or local listener every time an error or exception occurred. Related incident #69951. - VLTrader only: Fixed problem where VLTrader was not detecting payload as EDIFACT when it started with an optional UNA segment followed by extra end-of-line characters. - VLTrader only: Corrected problem in VLNavigator where if a VLTrader's address/port/secure fields were changed, the subsequent connection status dialog was incorrect. - VLTrader only: When database logging and payload is in use and automatic purging of transfers was enabled, already retrieved incoming transfers (i.e. VLIncoming.Retrieved DT was not NULL) were never being purged. - Corrected problem where the scheduler could not be started from the GUI when running under the AS/400 service; incorrectly reporting that "Scheduler not started because this LexiCom is a backup-only system." Related incident #69081. - If an HTTP/s port is configured and enabled in the Local Listener and Authenticate Client is also enabled, fixed problem where VLProxy would not be able to establish a secure connection inbound to LexiCom/VLTrader when reverse proxying an HTTP/s, FTP/s, or SSH FTP request. Related incident #69015. - While checking an outbox file status for autosend actions, the scheduler now forces a 1 minute timeout. This is to avoid possible lock ups when accessing networked folders. If a timeout occurs, VersaLex logs an error containing the action and outbox file in question and then continues processing the schedule. If the outbox file continues to be an issue, VersaLex will continue to log errors. As part of this change, also the outbox file status check is now more efficient when a large number of files are present in the same outbox directory. Related incident #69002. - Fixed problem where specifying 1 in the Configure>Options>Other Sent/Received Box Archive After Files setting would never archive files (limit was considered invalid). - Corrected issue with shortcut (Windows only) created to a file which may not exist while generating translator files. Related incident #68198. - When archiving directories, removed host specific information in log messages since the same directories could be shared by several hosts. - For AS/400 network access, if a "java.lang.InterruptedException" is thrown while checking validity of the source or destination of a command in an action, it is no longer interpreted as a command syntax error and will force reauthentication with the AS/400. Related incident #67986. - VLTrader only: When transfer logging enabled, fixed small memory leak for each logged transfer. Also corrected problem where if a multiple file transfer is being logged and it included a synchronous receipt, the transfer bytes logged for each file were not proportioned properly. - Fixed problem where if commandline -t option was used to modify a host Advanced property then any other Advanced property settings for the host were being reset back to defaults. Related incident #67760. - VLTrader only: Fixed problem where the VLTrader daemon would not run without an XWindows environment. Related incident #67523. - VLTrader only: Fixed problem where if using the database payload option and the database is not currently available, an add/rename/removal of a host or mailbox could cause the GUI to hang. - VLTrader only: When the outgoing database payload option is being used, if the host/mailbox requested does not exist, VLTrader will now skip immediate retries and wait the restart period before trying again. Related incident #67545. - Fixed bug where the host advanced properties "Add Mailbox Alias Directory To Inbox" and "Add Mailbox Alias Directory To Outbox" were not being applied when the system default inbox or outbox was in use. Also fixed problem where use of the SET command for changing these properties within an action would have no affect. - Indexes will be added (in addition to the timestamp) to zip entries to prevent duplicate entry exceptions when archiving directories after the system clock has rolled back. Bug Fixes - FTP --------------- VLTrader only: For connections via VLProxy, VLProxy will now process the FEAT command. Requires VLProxy version 2.4. Related incident #72072. - VLTrader only: Fixed problem with multi-line responses (Unix only) for FEAT and STAT commands through VLProxy. Related incident #72072. - VLTrader only: Corrected FEAT response multi-line ending to from "211 End of extensions" to "211 End". Related incident #72072. - Changed ASCII transfers to read/write bytes instead of characters. Transferred data will not be altered with the exception of inserting or removing carriage returns when necessary. Related incident #72072. - Fixed problem with decrypting OpenPGP data which contained a password encrypted object. If password encrypted data is detected, it will be ignored and a warning will be logged. Related incident #71761. - Fixed null pointer exception when sending where the source file from a database without a filename and PGP was enabled. Related incident #69588. - Fixed null pointer exception when sending where the source file was from a database and PGP was enabled. Related incident #69588. - VLTrader only: FTP server will now allow the RNFR/RNTO command pair to rename a directory, as long as "Allow users to make/remove subdirectories" is enabled in the Local FTP Users. Also corrected problem where FTP server was erroring out processing a RMD (remove directory) command. Non-empty directories can be renamed, but not removed. Related incident #69071. - VLTrader only: Fixed problem with "Automatically Delete Retrieved Outbox Files" advanced property which was not limiting to only the configured outbox and its subdirectories. Bug Fixes - HTTP ---------------- Fixed a memory leak that was occurring with each HTTP action whenever WWW or proxy authentication was in use. - To improve performance, removed hostname resolution that was occurring with each inbound HTTP connection. Related incident #69967. - VLTrader only: If Local HTTP users root directory is configured with an absolute path but is in fact a directory under the VLTrader home directory, fixed problem where VLTrader was throwing a StringIndexOutOfBoundsException when an HTTP mailbox was accessed via a web browser. Related incident #69582. - Fixed problem where if an HTTP transfer attempt was interrupted by the user, any subsequent attempts to transfer the same file would log a warning that the source file was not found. - VLTrader only: Fixed problem on Unix platforms where HTTP server was not switching a Windows path separator (\) to a Unix path separator (/) when processing inbound requests. Bug Fixes - AS2/AS3 ------------------- AS2 only: Corrected problem where uncompressed signed base64-encoded multiple payload messages that had the "compressed then signed" setting enabled were being incorrectly assembled with a missing start boundary (within the MIME message). - When an exception occurs while sending the message, now preserve that exception and give it precedence over exceptions that could occur while attempting to close the connection. Related incident #72219. - AS2 only: When multipart payload files are received and any of the payload parts have content types that do not match the specified file name, now only add a file name extension (associated with the specified content-type) if the received file name does not already have an extension. - AS2 only: Corrected problem where the wrong offset from GMT was being displayed in the MDN for time zones ahead of GMT that are currently observing DST. Related incident #71597. - AS2 only: When an unsigned/unencrypted message is received containing a bad, missing or duplicate filename and the "Generate Filename Preservation MDN Responses" is enabled and the Action is to "Reject Payload, Return Error", now read (and throw away) the entire message before returning the MDN. This corrects problems where some receivers were not receiving the MDN but instead were getting a "Connection reset" response. - AS2 only: When writing to the AS/400 NFS and the "Overwrite duplicate filenames" option has been selected, now force the addition of the .mbr extension and the correct 10.3 filename format when a default filename has been specified that didn't include a .mbr extension. Related issue #859. - When negative MDNs are received by the Listener they will now trigger Execute On Fail and Email On Fail alerts; however when positive MDNs are received, the successful result will continue to be ignored. Related incident #69634. - Fixed problem where messages terminated with just a line feed were sometimes causing the SignatureException - "Content hash does not match to MessageDigest attribute value!" Related incident #68265. - VLTrader only: Duplicate and unsolicited MDNs are no longer logged in the transfer log. Related incident #67545. - Corrected duplicate MDN checking so that file existence is checked instead of relying on read-only access errors. Related incident #67545. - Reworked the micalg string parsing logic in the DispositionNotification-Options header. Also if there is an exception that a supported micalg was not specified, now always store the raw received file to aid in further debugging. Related incident #66760. Bug Fixes - ebMS ---------------- Fixed problem when select to [Resend] a previously sent message where VersaLex would error out indicating the CPA/Role/Service values were not recognized. - Any pathing contained in the payload's Content-Type header 'name' value or Content-Disposition header 'filename' value are now stripped before being used locally. Also, now handle case when a payload ContentDisposition header is not present. Related incident #70239. - Fixed problem where ebMS client would log an IllegalAccessError rather than a ConnectException when unable to connect to the configured address/port. - Fixed problem where an ebMS action would throw a NullPointerException when trying to send if the Local Listener ebXML Message Service was not configured. Bug Fixes - SSH FTP ------------------- Fixed problem with decrypting OpenPGP data which contained a password encrypted object. If password encrypted data is detected, it will be ignored and a warning will be logged. Related incident #71761. - VLTrader only: Fixed issue when system commands needed on Unix failed with parameters (filenames) containing spaces. Also fixed issue where failed system commands showed the local path. The details on the failed command will be shown in the debug file. Related incident #70454. - Fixed problem when retrieving a file where a SSH_FXP_STAT command after a file was opened for reading would fail. Related incident #70268. - VLTrader only: Added check for paths beginning with '\' or '/' resolve to user's root directory. A path of '/filename' will be '/home/username/filename'. Related incident #69629. - VLTrader only: To improve performance, removed hostname resolution that was occurring with each inbound SSH FTP connection. Related incident #69967. - VLTrader only: Corrected problem with server not using the configured timeout values during protocol negotiation. Server would disconnect (i.e. with a telnet connection) if the client did not provide a valid protocol version within 1 second. - VLTrader only: Corrected problem with unsupported implementation specific channel requests (i.e. simple@putty.projects.tartarus.org sent by PuTTY or FileZilla) which are now ignored or a SSH_MSG_CHANNEL_FAILURE message is returned if a reply is requested. Related incident #69629. - Added support for allowing an empty (blank) remote identity comment field where the identity ends with a space. Related incident #68113. - Added support for allowing an empty (blank) algorithm at the end of a list when the list improperly ends with a comma ",". Related incident #68583. - Corrected problem where action would never complete if the server disconnected (transport protocol disconnected) during authentication. Related incident #68113. - Added support for silently ignoring the first SSH_MSG_KEXDH_INIT message when the first_kex_packet_follows field is true in the proceeding SSH_MSG_KEXINIT message and the preferred (guessed) server public key algorithm was optimistically sent and doesn't match the algorithm agreed upon. - Fixed problem when retrieving files (larger than 64K from a GlobalScape server) where the transport would disconnect due to an unexpected server response without a reason specified. Related incident #67959. Bug Fixes - OFTP ---------------- Fixed problem where if an outgoing ISDN connection request timed out, any subsequent outgoing ISDN connection requests would result in an java.lang.ArrayIndexOutOfBoundsException. Related incident #67825. Bug Fixes - SMTP ---------------- Fixed problem with outgoing transfer rates being half the value configured on the host's advanced panel. - VLTrader only: When an exception is generated while processing an inbound message preamble, now return the actual exception instead of a "Read end dead" error. Related incident #69069. - VLTrader only: When receiving a base64 or uuencode message, corrected the transfer byte count logged by the SMTP server. Also, the transfer byte counts for multiple attachments are now logged as separate events by both the SMTP client and server. **************************** * RELEASE 3.6 - 2008/04/15 * **************************** Major Enhancements - Framework ------------------------------ VLTrader only: Initial release of VLNavigator, an optional, add-on application for multiple VLTrader and user management. VLNavigator facilitates: - grouping VLTraders into "pools", - defining user groups with specific VLNavigator and VLTrader privileges, and - creating individual user logins. - Added Maximum Incoming Transfer Rate and Maximum Outgoing Transfer Rate advanced properties for limiting mailbox transfer rates (kbytes/second). The system level properties are set on the Configure>Options>Advanced panel and control the maximum rates allowed for concurrent transfers for all mailboxes. The system level property can be overriden by each host or local user mailbox advanced property. The system settings are used unless the host or mailbox setting is more restrictive. The system and host or mailbox settings default to 0 which is unlimited. - Two or more synchronized production Versalexes are now allowed to synchronize (i.e. load balance) the schedule. When multiple production VersaLexes are active, one of the VersaLexes is automatically chosen as the master scheduler which distributes actions. Backup VersaLexes become part of the distribution or become even the master scheduler when production VersaLexes are offline. Please note in this scenario that the outboxes for autosend actions MUST be shared network folders and it is strongly recommended that ALL inboxes and outboxes be shared network folders. - VLTrader only: Similar to above, two or more synchronized production VLTraders using the outgoing database payload feature will now be load balanced. When multiple production VersaLexes are active, one of the VersaLexes is automatically chosen as the master outgoing database payload controller which distributes sends. Backup VersaLexes become part of the distribution or become even the master controller when production VersaLexes are offline. Major Enhancements - SMTP ------------------------- VLTrader only: Added ability to send outbound FAXes through the Streem service bureau Enhancements - Framework ------------------------ VLTrader only: For database transfer logging, added the host's folder as a column in the VLTransfers table so that it is now available for external report generation. Related incident #66881. - In Configure>Synchronization…, an optional alias can now be entered for each LexiCom or VLTrader being synchronized. If entered, the alias is included in the title bar of VersaLex's main window. (Even if synchronization is not being used, an optional alias can still be entered for the active VersaLex if so desired.) - A custom splash screen can now be placed in the conf/images directory. The filename must start with "splash." and supported formats include JPEG, GIF, and PNG. The image can be no larger than 525X340 pixels and no smaller than 250X100 pixels. - At startup, if LexiCom/VLTrader detects that the end of the system log file is corrupt, the log file is now immediately archived. Also, if LexiCom/VLTrader detects a corruption when reading in active/archived log files for viewing, the user now has the option of still viewing the events that were readable. - The host's configured advanced property Connection Timeout is now applied to writes as well as reads. Client-side writes will now timeout if the trading partner's server stops reading the sent payload. Before this change, the client would hang until the socket was eventually closed by the server. This applies to the FTP, HTTP, SMTP, and OFTP protocols. Related incident #65579. - VLTrader Only: Database transfer logging reports now by default include all synced VLTraders. User also has the option of including just selected VLTraders. Report details indicate specific VLTrader responsible for each transfer. - To facilitate VLTrader-LexiCom network rollouts, VLTrader administrators can now provide deployment URLs to their LexiCom users. A deployment URL points to a zip file at a web location (possibly VLTrader itself) and can potentially contain a host file which points back to VLTrader, a local listener file which sets the proper LexiCom listening ports, a user certificate, CA certificates, configuration files, and any additional files pertaining to the trading relationship between VLTrader and this LexiCom. The zip file normally would be created using VersaLex's File>Export. LexiCom users can enter their deployment URL either during initial product registration or via File>Import or via the commandline -i option. - In File>Export, if specially named "prereadme.txt" and/or "postreadme.txt" files are included as additional files in the export, then when the exported file is imported using File>Import, the contents of these files are displayed as pre-import/post-import instructions before/after the file import. If using the commandline -i option rather than File>Import, the instructions are printed to the console. - The File>Export utility now includes the ability to export user certificates and their private keys as PKCS12 files in the created zip file. And likewise, the File>Import utility will now look for PKCS12 files in the zip file and if present, allow for import. A password must be provided for each user certificate being exported/imported. If using the commandline -i option rather than File>Import, each PKCS12 file password is prompted for. - VLTrader only: Previously, when using the database payload feature (or when streaming files via the API), the logged source or destination for streamed items in the transfer report were just the keyword "*stream*". Now, if a filename for the stream is known, it is retained in the transfer report. - VLTrader only: An index is now created in the database for each of the VLTrader tables' foreign keys. This potentially helps to avoid deadlocks. - In Configure>Options>Other, added the "Synchronized Backup Failover" property. This property controls how long a synchronized backup VersaLex waits for the production VersaLex to become active before taking over. This property defaults to 5 minutes. A warning is logged halfway through the wait period. - When using the select certificate dialog, if a certificate had already been previously selected and configured, the dialog will now initially go back to this selection, if it exists. - When using the LexLogc/VLLogc or VLStatc command to generate an email report, when no log events or transfer results are found for the specified filter, the filter settings are now included in the generated email. Enhancements - FTP ------------------ - Added new OpenPGP advanced property "PGP V3 Signature", which when set on indicates to generate "old-style" V3 signatures when signing. Related incident #66700. - VLTrader only: The Local Listener advanced property Connection Timeout is now applied to writes as well as reads for the FTP Server. Server-side writes will now timeout if the trading partner's client stops reading the sent payload. - VLTrader only - Added Local FTP User mailbox Advanced property "Maximum Concurrent FTP Logins". Added Local Listener Advanced property "Maximum Concurrent FTP Logins Per User". Both settings default to zero which is unlimited. The Local Listener parameter (Maximum Concurrent FTP Logins Per User) is used unless the mailbox setting is more restrictive. Enhancements - ebMS ------------------- Added new advanced property "Outbound Message Time To Live", which defaults to 24 hours. This value indicates how long a message has to be delivered before it is considered expired. Related incident #66714. - An empty SOAP message received in a response will now be treated as no content and will not result in an error as long as a synchronous acknowledgment was not requested. Enhancements - SSH FTP ---------------------- VLTrader only - Added Local FTP User mailbox Advanced property "Maximum Concurrent FTP Logins". Added Local Listener Advanced property "Maximum Concurrent FTP Logins Per User". Both settings default to zero which is unlimited. The Local Listener parameter (Maximum Concurrent FTP Logins Per User) is used unless the mailbox setting is more restrictive. Bug Fixes - Framework --------------------- Fixed problem when forcing synchronization to resolve previous syncing errors where all of the message IDs and receipts would be resynced unnecessarily. - VLTrader only: For database EDI transfer logging, when the database is not available, fixed problem where VLTrader would hang at the end of a send or receive when attempting to log the EDI information. - VLTrader only: For database transfer logging, at startup, VLTrader sets any leftover, previous "In Progress" transfers to "Interrupted". Changed this SQL UPDATE statement to use an IN clause instead of just a WHERE clause when connected to MS SQL Server because SQL Server does not support a simple UPDATE WHERE statement that affects more than 1 row. Related incident #67025. - Like the scheduler, for AS/400 network access, the sent/received box directory archiver now also catches various AS/400 I/O exceptions and forces reauthentication with the AS/400. Also added a two and a half minute timeout when making any AS/400 connections to keep connections that could not be made from hanging indefinitely. #66557. Related incident - For AS/400 network access, if a "com.ibm.as400.access.ConnectionDroppedException" is thrown while checking validity of the source or destination of a command in an action, it is no longer misinterpreted as a command syntax error and will force reauthentication with the AS/400. Related incident #66820. - Fixed problem where Tools>Certificate Manager would silently fail when being used to generate a self-signed certificate and write access was denied to any of the user certificate store files (data\*). - For AS/400 network access, if an "com.ibm.as400.access.ExtendedIOException: File in use" or "java.net.SocketException: Connection reset" exception is thrown while checking validity of the source or destination of a command in an action, it is no longer misinterpreted as a command syntax error. And the "java.net.SocketException" will now also force reauthentication with the AS/400. Related incident #66557, 66820. - Fixed issue where the service may not stop via command-line or using File>Stop Service since the local listener was not stopping. - Fixed problem where an ArrayIndexOutOfBoundsException was being logged while viewing the Tools>Scheduler… dialog. Related incident #66686. - VLTrader only: In XML transfer logging, fixed problem where the day that the clock was set forward for daylight savings would not be retrieved as part of transfer reports. - Corrected problem with possible null pointer exception with concurrent file transfers started or ended at the same time. - Fixed problem where if a system-level Receivedbox was configured in Configure>Options, Tools>Software was leaving a copy of the downloaded software notes.txt file in the received box. Related incident #66350. - VLTrader only: Fixed problem caused by previous fix for non-ASCII segment terminators where routed EDI files were missing segment terminators in the trailer segments. Related incident #66209. - Corrected issue with importing host files into LexiCom was generating a NoClassDefFoundError for SshFtpUserHost. - VLTrader only: Outgoing database payload is now ensured of being sent out on a first-in, first-out basis. Related incident #66063. - VLTrader only: Added check to prevent exception when sending VLProxy configuration and the SSH FTP server was not configured. Related incident #66084. - Corrected a problem where only one host was being displayed when cloning and activating from the Cleo web site. Related incident #66122. - VLTrader only: For EDI transfer logging, fixed problem where a nonASCII segment terminator was not expected. This was causing only the first interchange record in the payload to be logged. Related incident #66084. - When running LexiCom on an AS/400, the AS/400 network access login (if configured in LexiCom) is used for file I/O privileges rather than the user running the LexiCom process. If the login was only partially configured, the LexiCom AS/400 process was erroring out. Now the configured login is only used by the LexiCom AS/400 process if both a userID and password has been configured. - VLTrader only: If using database payload option, fixed problem where VLTrader was continuously trying to alter database tables with additional columns that were already present. Related incident #65418. - VLTrader only: Fixed SQL syntax problem when using the database transfer log where a string value containing single quote characters that was truncated to fit a table column size would potentially be left with an unescaped quote character at the end. - Fixed various issues related to synchronization: F53- At least one synchronization item must now be selected. - If synchronizing with more than one other VersaLex, initialization with one of the VersaLexes was also causing re-initialization with the other VersaLexes. - A disabled synchronization setting was not being saved properly such that a restart of LexiCom or VLTrader would clear the setting. - If synchronizing system options and the database incoming/outgoing payload option was changed, the synced VersaLex was not reacting to the change and was not starting or stopping database payload appropriately. - Fixed problem under Configure>Synchronization where duplicate serial numbers were being inserted into the list when more than two VersaLexes were being synced and an edit was made. - VLTrader only: Fixed problem in transfer report dialog where the dialog title was not being updated with a new from/to range when [Generate Report...] was used to modify the filter. Bug Fixes - FTP --------------- Fixed problem where a NullPointerException was being thrown when retrieving a file in active mode and the FTP server chose to not connect to the provided port because there was no data to transfer. Related incident #66383. - VLTrader only: When using the default root\username for the home directory, fixed problem where a renamed local FTP, HTTP, or SSH FTP user was causing a synchronized VLTrader to create the new home directory (correct) but not delete the old home directory (incorrect). Also fixed related problems when removing a local user. Related incident #66104. Bug Fixes - HTTP ---------------- VLTrader only: HTTP server username authentication is now case sensitive. - Fixed problem where a failed send or receive via the API (or the VLTrader router or outgoing database payload features) wasn't always logging the <Result> element. Bug Fixes - AS2/AS3 ------------------- Added more diagnostic logging when an unsupported MIC algorithm is found since the exception is thrown before the raw received message can be stored. Related incident #66760. - When payloads are received with Content-Types of either text/xml or text/html, now use a binary content handler instead of the default content handler provided by Sun. Related incident #66760. - AS3 only: Fixed problem where AS3 files were not being appended as expected when receiving with the -APE option. Related incident #67005. - Fixed problem where message hash exceptions were being thrown while processing and verifying an inbound signature. Related incident #65525. - Fixed an additional problem with parsing MIC algorithms which was also causing a "No supported micalg arguments were specified" error. - Fixed problem where a message header specifying a MIC algorithm that included the older "rsa-" prefix was generating a "No supported micalg arguments were specified" error. Bug Fixes - ebMS ---------------- Fixed problem where a sent synchronous acknowledgment was logging zero bytes transferred. - Fixed problem where an invalid received SOAP message was resulting in a ClassCastException. Bug Fixes - SSH FTP ------------------- Eliminated unused channel which was caused a failure when opening the SFTP subsystem if the server allowed only one active channel. Related incident #66512. - VLTrader only: Corrected issue where concurrent sessions could not have the same directory open since the handle was not unique for each session (i.e. same username listing the same directory). - VLTrader only: Fixed problem with setting file attributes on an open file (SSH_FXP_FSETSTAT) which would cause the session to timeout. Related incident #63691. - VLTrader only: Added support for silently ignoring the first SSH_MSG_KEXDH_INIT message when the first_kex_packet_follows field is true in the proceeding SSH_MSG_KEXINIT message and the preferred (guessed) client public key algorithm was optimistically sent and doesn't match the algorithm agreed upon. Related incident #63691. Bug Fixes - OFTP ---------------- ISDN debug now shows the correct directional indicator for inbound (<) and outbound (>) messages. - Configured connection timeout is now properly applied for unsolicited connections. - An unexpected ISDN disconnect from the trading partner is now logged appropriately. Previously, VersaLex would just log a message queue read timeout error. Related incident #65569. Bug Fixes - SMTP ---------------- VLTrader only: Fixed problem where the same message ID could be used when concurrently sending multiple outbound SMTP messages. Also, eliminated possibility of not detecting inbound duplicates when the duplicate messages were received at virtually the same time. Related incident #67306. - VLTrader only: A received SMTP DSN status of failed is now considered a final status. Previously, VLTrader would attempt a retry when a failure was reported. - VLTrader only: VLTrader SMTP server will no longer report an exception if the connected SMTP client immediately disconnects after sending the QUIT command rather than waiting for the server response. Related incident #65607. **************************** * RELEASE 3.5 - 2008/01/07 * **************************** Major Enhancements - Framework ------------------------------ VersaLex now provides the ability to clone and activate preconfigured hosts directly from the Cleo web site. To use this feature, right click on the "Hosts" folder in the Preconfigured tab and choose the "Clone and Activate from Web site..." option. When the dialog appears, click the "Download List" button to display a list of all the available preconfigured hosts from the Cleo web site. Right-click on the desired preconfigured host and choose the "Clone and Activate" option to activate the host in the Active pane. - VersaLex can now be configured through the "Tools>Software Update" dialog to automatically send an email alert to the registered email address when a software update is available. Major Enhancements - FTP ------------------------ VLTrader only: Added OpenPGP encryption/decryption to FTP server for outgoing/incoming files. Major Enhancements - HTTP ------------------------- VLTrader only: Added an HTTP server/service with methods for connecting, listing, sending, and receiving payload. See Local Listener HTTP service and Local HTTP Users preconfigured host. Trading partners can use a web browser to manually trade with VLTrader or an application (such as Cleo LexiCom) to automate trades with VLTrader. The Generic Cleo VLTrader HTTPs preconfigured host captures the HTTP methods and parameters acceptable to the VLTrader HTTP server. The server supports either password-based WWW authentication or public key-based SSL client authentication. Major Enhancements - AS2/AS3 ---------------------------- VersaLex now supports S/MIME 3 and extends the ability to encrypt and decrypt with the AES and RC/4 algorithms. The supported encryption algorithms under S/MIME 3 include all the previously supported S/MIME 2 algorithms (i.e., RC2/40, RC2/64, RC2/128, DES and TripleDES) as well as AES/128, AES/192, AES/256, RC4/40, RC4/64 and RC4/128. (RC4 is also known as ARCFOUR.) Additionally, more secure SHA MIC algorithms (SHA-256, SHA-384 and SHA-512) are now available. SPECIAL NOTE: Check with your trading partner before attempting to use the new S/MIME 3 encryption and/or SHA MIC algorithms since some AS2/AS3 products may not yet support these algorithms! Enhancements - Framework ------------------------ For all protocols, added new "Fixed Record Incoming Insert EOL" Advanced property which works in conjunction with existing "Fixed Record Length" and "Fixed Record EOL Characters" to allow fixed length records to be created while writing inbound payload. The existing "Fixed Record Incoming Delete EOL" property is mutually exclusive with this new property. - VersaLex now performs daily checks of the support contract renewal date when it is about to expire and if it has been updated, a new license is automatically applied as long as no other license settings have also been updated. - VLTrader only: Local FTP, HTTP, and SSH FTP Users can now be configured to have a sentbox directory, which is populated with a copy of files retrieved by the user from the configured outbox directory. Also added Local Listener "Number of Days Before Auto Delete Files In Local User Sent/Receivedbox" advanced property, which defaults to 7 days. If this property is set to 0, local user sent/received box files are not automatically deleted. - Previously when synchronization between two VLTraders or LexiComs was disabled, updates would accumulate in a queue and if synchronization was disabled for an extended period, this would cause considerable overhead. Now when temporarily disabling synchronization, the user has a choice of whether updates should accumulate or would prefer to re-initialize synchronization after it is re-enabled. - In addition to %file% and %status% macros, now support %mailbox% and %host% macros for passing mailbox and host aliases to Execute On Fail/Successful Send/Receive scripts. - When using the commandline -i option to install a patch file, LexiCom/VLTrader will now recognize that it is a patch file and create a backup of the updated files. - Added command line option (-s threaddump) and checkbox on the Help>Support>Bundle panel for generating a thread dump to include in a support bundle. - Added highlighting (bold text) to show differences in the release notes between an installed patch and the patch selected through Tools>Software Update panel. - VLTrader only: Local FTP, HTTP, and SSH FTP Users can now be configured to have a receivedbox directory, which is populated with a copy of files stored in the user's configured inbox directory either directly or, in the case of FTP or SSH FTP, via a rename. - Partner/ CA certificates that have expired or are about to expire are now included in the daily email notification that previously only included Local User certificates. The original 'Email Local Certificate Expiration Notices' property (defined in the Local Listener>Advanced panel) has been changed to 'Email Local And Partner Certificate Expiration Notices'. Additionally, the new property ('Email Local And Partner Certificate Expiration Warning Days') has been added to the Local Listener>Advanced panel to configure the number of days before the certificate will expire and will be used to trigger the email notification. The default is 30 days. - When sending certificates via CEM or email, or accepting a certificate received through CEM, now check the certificate expiration and generate a warning. - Temporary actions, which are automatically created as part of the database payload and routing features and SMTP protocol and which can be created via the API, are no longer displayed in the Active host tree. These temporary actions usually come and go rather quickly, and their logged messages are viewable from the main messages pane so no information is lost by not displaying them in the tree. Removing them keeps the tree from excessive redraws, which was making it difficult to select a specific node near the temporary action (especially in the web gui). - Added integrity check when applying patch files using Software Update. - If any configuration or host XML file has been corrupted (e.g. by an abrupt shutdown), the synchronization feature will now attempt to restore the corrupt file at startup by retrieving it from the synchronized VersaLex. - VLTrader only: Custom reference numbers in EDI database logging can now be set to be extracted only if another element within the EDI segment has a specific value. - Added archiving for host sentbox and received box. Archiving parameters in Configure>Options>Other panel. - Added support for generating a DSA key pair when generating a selfsigned certificate. - The archived log zip file name now includes the license serial number. This allows two LexiComs or VLTraders to share an archive log directory. - Added capability for sending support bundle directly via email. - VLTrader only: For the database payload feature, added "Maximum Number of Concurrent Sends Per Mailbox" property (default 5) which controls how many concurrent sends can be active at any given time for any given mailbox. - Three web GUI session timeout properties are now configurable in the Local Listener Web Browser service panel. The properties include "Initial startup" (default 120 seconds), "Waiting for response" (default 120 seconds), and "Abnormal exit detection" (default 60 seconds). - All service panels now have scrolling support for better resizing. - VLTrader only: For the database payload feature, added "Maximum Number of Concurrent Sends" property which controls how many concurrent sends can be active at any given time. Also now immediately check for more outgoing payload when a database send completes rather than waiting the full "Polling interval". - On Unix, added cut, copy and paste key mappings to text fields for copying text between actions, etc. - Added support for new %inbox% and %outbox% macros in the source or destination paths for LCOPY, LREPLACE, and LDELETE commands. These macros can be used as shortcuts to the configured inbox or outbox paths (they can only be used at the start of the path). - VLTrader only: When database payload is being used, any incoming FTP or SSH FTP server transfers that aren't going directly to the user's configured inbox are now marked with an "Interim Success" status in the transfer log. - VLTrader only: When sending via database outgoing payload and the send fails, the VLSend table now contains a LastFailedAttemptResultText column that is populated with the reason why the send attempt failed. - VLTrader only: Local FTP and SSH FTP users inbox and outbox directories are now configurable. The default values of 'inbox/' and 'outbox/payload/' can be modified at any time and VLTrader will create/rename/remove directories as necessary for each mailbox; however, non-empty directories will never be removed. Other directories besides the inbox and outbox directories can also be configured for VLTrader to create for each mailbox. If the database payload feature is in use, incoming payload will only be inserted into the database if the client is placing the file in the configured inbox directory or is renaming the file into the inbox directory. - Added a new feature to send test emails via a new 'Test' button in the "SMTP Mail Server" field on the Configure>Options>Other panel. Note: Test emails may be sent whether the SMTP Mail Server has been defined or not. - Added the MIC algorithm (for signed MDN requests) and the encryption method (when encryption is enabled) to the Email Profile for AS2 and AS3. - VLTrader only: Enhanced EDI logging custom reference number extraction feature such that extraction rules can now have a) multiple transaction types listed together separated by commas or semicolons, b) either inbound only or outbound only or both identified, and c) a "matching" segment element which must match the specified value for extraction to occur. Enhancements - FTP ------------------ VLTrader only: Added Local FTP User mailbox advanced property "Active Mode Source Data Port" which can be used to specify the FTP server source data port for Active Mode when set to a value > 0. Default value is 0 where the data port is unspecified. Related incident #63224. - Added AES-128, AES-192, AES-256, DES, and Twofish OpenPGP encryption algorithm options. Removed support for IDEA encryption algorithm. - VLTrader only: Added Local FTP Users mailbox Advanced panel property "Automatically Delete Retrieved Outbox Files". When this option is selected, a retrieved file will be deleted when the next appropriate FTP command is received from the client and the response will be a multi-line response which includes confirmation of the deleted file. - For OpenPGP, added checkbox to override the Local Listener Signing Certificate for OpenPGP encryption. Defaults to unchecked so the Local Listener certificate is used by default. Enhancements - HTTP ------------------- Added support for the %filename keyword in PUT command header values. At runtime, the keyword is replaced with the actual filename being sent. - Added new "Successful Put Response Phrase" advanced property. Even if the server response code is a 200 level response, if the configured phrase is not found anywhere in the content of the server response, the PUT is not considered successful. Enhancements - AS2/AS3 ---------------------- When trading with a partner using a server that is non-compliant with the AS2 Filename Preservation rules, improved the processing rules for naming the destination file to use the AS2 transport header's ContentDisposition filename value if it exists and it's not either 'smime.p7m' or 'smime.p7z'. - GXS MDEP AS2 Production and Test preconfigured hosts are now configured with the latest GXS ICS X509 certificate. - Added new "Force MDN Signature" Inbound Message Security property to the mailbox. - Added System-wide and Host-specific support for detecting duplicate file names for Filename Preservation and returning the appropriate MDN responses. - When "Force Signature" inbound message security is enabled, it is now applied to inbound MDNs as well as inbound payload. - AS2 only: When a synchronous MDN is received, now log a 'File' element instead of the previous 'Detail' element. - Now trap and manually parse the Content-Disposition header string when a ParseException is thrown which occurs if a trading partner had included a special character (i.e., '(' ')' '<' '>' '[' ']' '/' '?' '=' '@' ',' ';' ':' '\' '"' a tab or a space) within the filename but did not enclose that filename in quotes. Enhancements - ebMS ------------------- Added support for generating an ebMS signature from a DSA certificate/private key. - Added a configurable number of days to the service panel for retaining the message ID history for duplicate checking. Enhancements - OFTP ------------------- Added a configurable number of days to the service panel for retaining the message ID history for duplicate checking. Enhancements - SMTP ------------------- VLTrader only: SMTP server can now be configured to ignore case when looking for a configured SMTP trading partner's username. - Added a configurable number of days to the service panel for retaining the message ID history for duplicate checking. Bug Fixes - Framework --------------------- VLTrader only: For MS SQL Server, "java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Connection reset by peer: socket write error" that were being thrown when logging EDI information are now handled by re-acquiring a connection to the database and retrying. - For networked AS/400 directories, fixed problem where VersaLex was marking an autosend action as invalid if it got a SocketException or InterruptedIOException when connecting to the AS/400 to verify a command's source or destination path. When this occurs, VersaLex will now just re-authenticate with the AS/400 and retry the scheduled action. - Fixed intermittent problem where NumberFormatExceptions originating from the LoggerThread with descriptions like "multiple points" or "For input String: """ were being thrown. - Fixed problem where if "Fixed Record Incoming Insert EOL" Advanced property is being used and appending to an existing file, existing file's last record length was not being taken into account. - Fixed problem when a Host Receivedbox was configured for an AS/400 path where the received files were not being copied to the Receievedbox. - When an unexpected host, mailbox, or action "not found" error is logged, error now includes stack trace information to better determine cause for error. - Added logged synchronization error if sync request from other VLTrader is malformed. - Added support for importing a User Certificate and Private Key which uses the DSA algorithm. - Checks that configured inbox and outbox directories exist are now made solely by the running service/daemon rather than a connected GUI because of possibility that a different user account (with different permissions) may be running the service/daemon. - Added check for checking for existence of schedule lock file which could prevent a command-line from executing if another command-line process was about to end. Related incident 64543. - Fixed problem when email related timeouts (connection timeout) were set to zero, the timeout would occur immediately instead of never timing out. - Fixed problem when manually applying a patch via the web GUI where the uploaded patch file would be deleted from the webserver\temp directory before it could be applied. - VLTrader only: Fixed problem where TradeLink web service was incorrectly treating receipt files as payload files. - Fixed problem where 'Email On Successful Receive' was incorrectly sending email notifications when an asynchronous MDN was received. - VLTrader only: Fixed problem where the Local FTP, HTTP, or SSH FTP users' configured subdirectories were being incorrectly reset to absolute paths in the installed directory. - Corrected issue with exporting a user certificate as an OpenPGP key where the self-signature on the exported key was not recognized by GnuPG. Removed critical tag on identity in signature sub packet for compatibility with GnuPG. - When updating software, method used in highlighting differences in patch notes was causing a java.lang.NoSuchMethodError under JRE 1.3. Problem will occur after updating to patches 3.4.57 to 3.4.63. - Added check so Local (FTP, HTTP SSH FTP) User sent/received boxes are not archived. - For long running actions, only the last 100 logged messages are not retained in the host in order to avoid overly large host files. - Fixed problem where temporarily disabling synchronization could potentially cause a synchronization collision of the conf\Sync.xml file when synchronization was re-enabled. - Corrected issue with exporting a user certificate as an OpenPGP key to which had unrelated info included in the identity. - Corrected issue where generating a Trusted CA certificate from OpenPGP public key with a OpenPGP secret key as the input was failing without showing an error message due to a null pointer exception. - Fixed problem where the same temporary action was being used for two different sends at the same time, resulting in NoSuchElementExceptions or StringIndexOutOfBoundsExceptions. Temporary actions are employed by the VLTrader database payload and router features and can also be created using the API's MailboxController. - Fixed problem where NumberFormatExceptions were being logged when copying a sent file to the sentbox and system property "Starting Unique File Affix" was set to an alphanumeric. - Fixed problem in web GUI where some of the Certificate Manager tree node menu items were not activating a dialog when selected. - Fixed problem where a property change made to a Local Listener service via a synchronized VersaLex was not affecting the running Local Listener. - Fixed problem where one or more NumberFormatExceptions were being logged right after an action's schedule was updated via the GUI. This problem could then also result in continuous NullPointerExceptions being thrown by the scheduler, keeping it from scheduling actions correctly. - Corrected a ClassCastException problem which was occurring while saving a host file. - VLTrader only: If using outgoing database payload, corrected problem where two synchronized VLTraders could potentially send the same payload. - Corrected issues with sentbox and receivedbox archive filename when the directory name ended in a digit which could cause a new archive to be created on startup instead of adding to an existing archive. - Automatic log file archiving is no longer disabled by the software should archiving fail because of an I/O or other exception. If archiving because the log file has reached the maximum size, now archiving will be reattempted after a 10 minute delay. - VLTrader only: Fixed problem with exception that was thrown when removing a local user mailbox if the user's home directory was blank. - VLTrader only: Fixed problem where an exception being thrown when the apply button was clicked on a Local FTP, HTTP, or SSH FTP user's mailbox if the User Home Directory was blank when running as a service. - For Execute on Failure/Success, fixed issue where the system command would fail to execute if both the command and last parameter were quoted. - When using AS/400 network access on Windows, fixed problem where current drive letter was always being prepended to the configured system or host level inbox/outbox directories, which was causing a local folder rather than the networked AS/400 folder to be accessed. - Added additional checks to Maximum Memory setting on Configure>Launcher dialog to prevent startup problems caused entries without M (megabytes) or G (gigabytes) specified. - If a host file becomes corrupt before queued up changes could be synchronized with another VersaLex, VersaLex no longer mistakenly deletes the host from the synchronized system. - Added logic for setting sentbox and receivedbox files as read-only when archiving for sent/received boxes is not enabled. If archiving is enabled, the files will not be marked as read-only so the files can be archived automatically. - An abrupt system shutdown can cause "garbage" characters to be appended to the active system log file. Now at startup, any invalid characters found at the end of the system log file are deleted before new log entries are added. - Enhanced the View->File feature for faster loading of the file which corrects a problem in the Web GUI for large files where the display was continuously being refreshed. Additionally, the file offset is now always displayed where it had previously only been displayed in the "Dump" mode. - If the scheduler tries to run an action whose parent host is being currently updated by a synchronized VersaLex, the scheduler no longer needs to be restarted to recover. Now the action will simply be run at the next scheduled interval. - VLTrader only: Fixed problem where scheduler could potentially cause a system slowdown when actions were not allowed to run concurrently. - View>Log... now detects when the log file is corrupt and indicates the last date/time mark before the corruption was found. - In web GUI sessions, fixed problems related to selecting a node or node page in the active tree that no longer exists. - VLTrader only: Improved efficiency with which temporary actions for outgoing database payload and router features are created, executed, and removed. - In Certificate Manager - Fixed problem where chained Intermediate CA could not be deleted and would cause high CPU usage. - View>Log... now shows a progress dialog while reading the log files in case of an extensive retrieval. This progress dialog allows cancellation if desired. If using the web GUI, the progress dialog also keeps the web GUI session from timing out. - VLTrader only: For the database payload feature, fixed problem where if host was set to not "Allow Actions to Run Concurrently", no longer repeatedly create then remove temporary actions over and over again when there is more than one pending outgoing payload for one of the host's mailboxes. - VLTrader only: Fixed problem where a response from FTP and SSH FTP server if the file was already being accessed could include path information outside of the user's virtual home directory. - VLTrader only: Fixed problem where an exception being thrown when the apply button was clicked on a Local FTP, HTTP, or SSH FTP user's mailbox if the User Home Directory was blank. - VLTrader only: Fixed the browse button (...) on the Local HTTP user's mailbox for the User Home Directory which was not working. - Fixed problem where a timed out web GUI session was not unregistering, causing delayed disconnects and/or thread death. - Corrected issue where running multiple command line actions may not complete or log the results. - Fixed problem where a forward slash ('/') in an alias would cause synchronization of a host to fail. - VLTrader only: Fixed problem where router was not checking that delete of completed route file was successful. - Fixed problem where the embedded key information for an imported nonarmored (binary) OpenPGP secret key would not display properly. - Fixed problem where Local Listener message count was being reset back to a previous value if the service was restarted or if the Local Listener was updated from a synchronized system. - Fixed problem where an already running action could be started again via commandline. - When retrying email messages using an explicit email server, now only make retry attempts to the failed email addresses. - Fixed problem where a newly registered/licensed LexiCom or VLTrader was incorrectly stating that it was a backup-only system and would not allow the schedule (or router, in the case of VLTrader) to be started. - VLTrader only: After starting a scheduled action for a host whose "Allow Actions To Run Concurrently" advanced property was set to false, fixed problem where the scheduler would possibly not start any actions for any other hosts until this action completed. - VLTrader only: Added SSH FTP Server and SMTP info to TCP/IP port usage. - On Unix, added support for searching user's path for a browser including FireFox, Epiphany, Mozilla, Netscape, and Opera browsers. - VLTrader only: SQL Server 2005 is now supported. - Fixed problem where a certificate (without an embedded OpenPGP key) exported as an OpenPGP key had the wrong valid seconds value which could cause it to be expired. - VLTrader only: Fixed problem where if database payload option was just enabled, payload would not start streaming into the database until VLTrader was restarted. - If a commandline action cannot be run for some condition (e.g. local listener not running), an error is now logged rather than a warning and the exit status returned by the application is now -1 rather than 0. - VLTrader only: On startup, added better error reporting when the FTP or SSH FTP default root path or any user paths use an AS/400 IFS directory and a connection cannot be made to the AS/400. - Fixed problem where a synchronized modification to one of the Local Listener services was not being displayed on the synchronized system until the GUI was reopened. - The file names of the files written to the AS/400 IFS are no longer forced to upper case. This is only being done for file names on the AS/400 NFS. - VLTrader only: Fixed problem with database payload feature where streamed FTP server sends or receives was causing a "java.io.IOException: Invalid argument" exception to be logged. - VLTrader only: Fileindex is now part of the primary key of the VLOutgoingProperties table so that multiple attachments can now have different values for the same property (e.g. Content-Disposition). - Fixed problem importing a host from a zip file whose alias contains a \ or /. Also fixed problem importing hosts when LexiCom is running as an AS/400 process. - Fixed problem where a NullPointerException was being thrown when saving a host file (during calculation of stored check sums). - VLTrader only: When EDI logging is enabled, fixed problem where shutting down the VLTrader service/daemon could potentially hang if there were pending EDI logs. - Fixed problem where VersaLex web GUI sessions would timeout on the HPUX Firefox web browser. Bug Fixes - FTP --------------- Added mailbox level option for "No Password Required". Related incident 62609 going to a Tumbleweed FTP server (SecureTransport 4.6.1) in explicit mode (AUTH SSL). Server required an SSL client certificate and username for login but would respond with a "530 Already logged in." error if the PASS command was sent. - Corrected problem with client authentication when the server returns a large list of trusted CAs. - VLTrader only: : Fixed problem where FTP server was responding with the full path rather than the relative user path when the remote path specified was outside of the user's root directory. - VLTrader only: If a Local FTP OpenPGP User stores a zero-length file a warning is generated instead of an exception. Corrected a timing related issue where receiving small (<100 byte) files could result in an exception if the OpenPGP decryption had not started. - VLTrader only: Local FTP Users mailbox Advanced panel property "Automatically Delete Retrieved Files" is now limited to the configured Outbox. Files retrieved from other directories will not be automatically deleted. Added check for "226-EDI processing started" before attempting to parse GXS EDI sub-codes in server response to a STOR command. This corrects issue with "Unknown EDI processing summary field" errors when sending non-EDI files. - Corrected issue with sending using OpenPGP where transfer would never complete successfully. This problem was introduced by the updated Bouncy Castle jars in 3.4.43. - Corrected issue where zero-length files were not being deleted for failed transfers. - Corrected PGP Hash Algorithm on FTP Host and Local FTP User Mailbox advanced panels from SHA-348 to SHA-384. - Updated Bouncy Castle jars to correct issue with whitespace in armored input files in the header ending line. Related incident 61481. - VLTrader only: Corrected issue where multiple FTP sessions could not concurrently retrieve the same file. Initial problem in patch 29. - VLTrader only: Fixed problem when an exception occurred while creating a connection where server would stop listening on the port caused by cancelling a connection on a FTP (clear) client and where port on server was FTPs Implicit. Related incident 60138. - VLTrader only: Corrected FTP server problem where transfer (STOR) may not complete when OpenPGP user sent data which was not OpenPGP formatted. - Added support for checking PGP 6.5.8 style signature when message is encrypted to an RSA key. - VLTrader only: Corrected issue where local user accounts were not disabled if the mailbox was not configured (not Ready). - Corrected PGP issue where receiving signed messages would cause a stream closed exception and signed-only messages null pointer exception. Added support for verifying a PGP 6.5.8 inline signature where a one-pass signature is expected. - Corrected PGP issue where encrypted, signed files were not being recognized as valid (incoming file not compressed or armored). - Fixed problem forward proxying through HTTP proxy where the initial FTP server greeting was being lost and a connection timeout was occurring. - Added support for PGP encrypted data followed immediately by data (instead of a literal data packet). Added additional troubleshooting information on decryption exceptions. - Added missing catch and log of any Java error thrown during client-toserver connection. - VLTrader only - Corrected issues with an incomplete configuration for a FTP server OpenPGP user. Failed transfers will now indicate the reason the mailbox configuration is incomplete. - VLTrader only - Corrected problems with FTP server using OpenPGP and an invalid certificate or password was specified. Transfer will now fail giving the appropriate reason. - VLTrader only - Corrected FTP server issue with OpenPGP user specified where transfer may not complete due to OpenPGP decryption of an incoming file. - Added PGP Integrity Check for operation with PGP 6.5.8 (incident 59626). - VLTrader only - Corrected issue where FTP server advanced PGP properties were always the defaults. - FTP client no longer attempts DNS lookup if a forward HTTP proxy (e.g. VLProxy) is being used. - VLTrader only: Fixed problem where FTP server was responding with the full path rather than the relative user path when the current directory was requested or when file/directory access errors were reported. - VLTrader only: If the connected FTP client issues both PASV and PORT commands in succession, VLTrader FTP server will now use which ever command was issued last for the data port connection method when a STOR/STOU/RETR/APPE is then issued. - VLTrader only: When multiple FTP sessions are active, sessions can now concurrently retrieve the same file. - VLTrader only: When an FTP server connection is closed by client prior to a QUIT command, VLTrader will still log the exception but will no longer log an exception result (which was causing email/execute-on-fail settings to kick in). Bug Fixes - HTTP ---------------- For DaimlerChrysler EBMX HTTPs when requesting a directory listing, "404 No documents found." response no longer also logged with repetitive "No documents found" HTML content. - Fixed problem where Authorization headers were not always being generated. - Fixed problem where specified PUT Content-type of application/x-wwwform-urlencoded was not always being honored. - Fixed problem where EOFException was not being caught and treated simply as end-of-file. - HTTP server error response and reason line now included in HTTP client logged result. - When using DaimlerChrysler HTTPs, added logic to handle case when using GET command's filenameformat=p option, but the returned filename does not contain a document type prefix. - Fixed problem where %file parameter value wasn't always being replaced with the actual filepath. Bug Fixes - AS2/AS3 ------------------- Corrected problem where the omission of the MDN disposition header was being interpreted as a successful response. - Corrected potential problems where temporary files could not be deleted because they were already open for input. - AS2 only: Fixed problem When sending through VLProxy where Connection exceptions (i.e., Connection timeouts or Connection refused exceptions) in VLProxy were being thrown as IllegalAccessErrors in VersaLex. - Added more protection against NullPointerExceptions when a trading partner is repeating sending "empty" messages. - AS2 only: When returning an asynchronous MDN, now always close any buffers, even when an exception occurs and the MDN cannot be sent, to protect against OutOfMemoryErrors. - AS3 only: Corrected issue where zero-length files were not being deleted for failed transfers. - Corrected a problem where the pending MDN was not always being correctly updated in real-time in the MDN table view after the response had been received. - VLTrader only: When the database is being used for incoming payload and the database is not available, in AS2 now return a "500 Internal Server Error" response instead of a 200 level response; and in AS3 now store the incoming payload in the rejectbox since the FTP server has already returned a 226 response before the payload content is processed. - AS3 only: Corrected problem where when deleting the temporary files used during processing, IOExceptions were being logged stating that a file was open for input. - Fixed problem where a NullPointerException could potentially be thrown while attempting to read and parse the header stream. - Corrected problem where multiple hosts with the same ASx-From name (but different ASx-To names) were triggering duplicate relationship errors. Also when this error occurs, now log a list of all hosts/mailboxes with the duplicate relationship. - Fixed problem where the origMessageID result element was not being logged for incoming messages for LexiCom. Previously it was only being logged for VLTrader - Fixed problem where when large duplicate incoming messages were received, a zero-length file was being written to the file system. - Fixed problem where a NullPointerException was being thrown after a timeout occurred while reading the data stream. - Fixed problem where a NullPointerException could potentially be thrown when manually parsing the Content-Disposition header - AS2 Only (CEM): Corrected problem where when running natively on the AS/400, CEM responses could not be sent. - AS2 Only (CEM): When sending CEM messages, now use the service's time in the log messages instead of the GUI's time which could be significantly different. - AS2 Only (CEM): Corrected problem where the status of the record was not being set to "In Process" immediately after the CEM send was being invoked. - AS2 Only (CEM): Corrected problem where a "No Such Method" exception was being logged when running under JRE 1.3 and attempting to receive an asynchronous response after sending a CEM message. - AS2 Only (CEM): Now set a subject in the CEM message headers, either "CEM Request Message" or "CEM Response Message". Bug Fixes - ebMS ---------------- Fixed problem where importing a valid CPA file when activating the Generic ebXML host was throwing "org.xml.sax.SAXParseException: cvcelt.1: Cannot find the declaration of element 'tp:CollaborationProtocolAgreement'". - Fixed problem where generated Ping and Message Status requests were not using the overridden host From Party Id and override mailbox From Role when these were set. - Reduced boundary value in Content-type header so that can now successfully send payload to the new GM NA Exchange ebMS server. - When importing a CPA during host activation, now handle when encoded X509 certificate lines are separated by spaces rather than linefeed characters. - Receive-only mailboxes are now supported. - Two or more mailboxes can now have the same From Role value as long as the Service value differs. - Corrected issue which handles an extra CR-LF at the start of the message. Bug Fixes - SSH FTP ------------------- VLTrader only: Added handler for SSH_FXP_EXTENDED message which replies with STATUS_FX_OP_UNSUPPORTED for compatibility with VanDyke sftp clients. - VLTrader only: Corrected issue where multiple SSH FTP sessions could not concurrently retrieve the same file. Initial problem in patch 29. - VLTrader only: Corrected issue where local user accounts were not disabled if the mailbox was not configured (not Ready). Corrected problem where a disabled user could still login. - Corrected null pointer issue if connection ended abnormally during a file transfer. Added additional info for this case to include the transport disconnect reason (i.e. server may have shutdown). - Corrected issue where unable to connect to a proxy using basic authentication for forward proxying. Added additional debug logging when connecting via proxy. Now returns just the authentication method if a realm is not specified. - VLTrader only: Changed file log message for incoming database payload to indicate *stream* instead of a file path. Corrected issue where a zero-length file was created when receiving using database payload. - VLTrader only: When multiple SSH FTP sessions are active, sessions can now concurrently retrieve the same file. - VLTrader only: Corrected issue where paths containing '..' could resolve outside of the user directory. - Corrected client issues which prevented an action from completing if the file transfer ended with an error. - Corrected issue which prevented the configured Connection Timeout from occurring after a file transfer had started. - VLTrader only: Corrected issue where transfer status of files left open after the sftp subsystem stopped was not finalized. - VLTrader only: Corrected server problem where a file could not be accessed if a previous session ended without closing the file. Bug Fixes - OFTP ---------------- Added advanced property "Wait For Disconnect After Sending End Of Session", which when set, indicates that if VersaLex is the one that initiates end-of-session, that it should wait for a disconnect request from the connected trading partner rather than immediately disconnecting. - Like an unexpected SFID request, VersaLex will now no longer error out when an unexpected EERP or NERP request is made by the speaker rather than an expected CD request. Bug Fixes - SMTP ---------------- VLTrader only: Fixed problem where -DEL option on a PUT was not being honored if the PUT command included the optional Inline message setting. - VLTrader only: To ensure not receiving a false EOF while base64 decoding, added a second read when EOF first encountered. - VLTrader only: Fixed problem where the hour value in the first hour of the day was 24 rather than 00 in the Date header of an outgoing SMTP message. - VLTrader only: Fixed problem where under heavy load it was possible that a resend/retry timeout would result in accidentally kicking off multiple resend/retry threads rather than a single thread. This would potentially cause a FileNotFoundException. - VLTrader only: Fixed problem where the temporary action used to send a DSN was missing the beginning <Thread> and ending <End> log events. Without these events, it was difficult when viewing the log file to correlate the other logged events coming from this action. - VLTrader only: For synchronizing VLTraders, fixed problems where SMTP sent and received DSNs were not always syncing correctly. - VLTrader only: No longer perform MX record lookup when connecting to an IP address. - VLTrader only: Corrected issue where local user accounts were not disabled if the mailbox was not configured (not Ready). - VLTrader only: Fixed problem where connecting to a SMTP server on other than port 25 would not succeed. **************************** * RELEASE 3.4 - 2007/04/30 * **************************** Major Enhancements - Framework ------------------------------ VLTrader only: Added server-side support for secure shell FTP (SSH FTP) (aka SFTP). See Local SSH FTP Users preconfigured host and Local Listener SSH FTP tab. Enhancements - Framework ------------------------ VLTrader only: The database payload feature will now check the protocol and send out grouped files one-by-one when the protocol does not support multipart messages. AS2, ebMS, and SMTP support multipart messages, while AS3, FTP, HTTP, MQ, OFTP, and SSH FTP do not. - The Listener Wizard now prompts when Listener certs have been changed to either update them immediately in the Listener panel or first exchange them with trading partners. Exchanging the certificates is the default and if this option is selected, the “Exchange Certificate” dialog is now displayed when the wizard dialog closes. - Scheduled action recurrence can now be in seconds. - Added a receivedbox option which can be used to copy incoming files to a saved location. Either a system-wide receivedbox or host-specific receivedboxes can be configured. - VLTrader only: When using MySQL with the database payload feature, now ask whether the BLOB, MEDIUMBLOB, or LONGBLOB datatype should be used for the streamed payload. - VLTrader only: For the database payload feature, increased the VLOutgoingProperties and VLIncomingProperties table "Value" column from 100 to 300 characters. - In Configure>Options>Other, added the "Force Apply/Reset when Changing Content Panes" property. This property controls, when switching content panes, whether VersaLex requires that pending changes be either applied or reset. This option is on by default. - VLTrader only: For the optional database payload feature, added a maximum outgoing send attempts configuration parameter which dictates how many total times a transfer will be attempted before retries are halted. This can be set in the Configure>Options>Transfers>Configure database payload dialog and defaults to 0 (which indicates infinite retries). Refer to the VLOutgoingProperties table in the VLTrader Administrator's Getting Started Guide for more information. - VLTrader only: EDI logging no longer ties up system logging. Additionally added option to still log received EDI when error sending asynchronous AS2 MDN or ebMS acknowledgment back to trading partner. Enhancements - FTP ------------------ Added an "Issue Command After Opening Data Connection" advanced property which indicates to issue the RETR, APPE, STOR, STOU, LIST, or NLST command after opening the dataport connection rather than before. - VLTrader only: When using the database payload feature to release outgoing payload to FTP users' outbox, now insert an entry into the VLTransfers table if there is a file system I/O exception while copying the file into the outbox. - VLTrader only: For FTP server, added ability to disable MKD/RMD commands and added a filter on incoming file extensions. - Added parsing of EDI subcodes for GXS (formerly IBM) IE host to determine the transfer status. Enhancements - HTTP ------------------- Now add filename (; name=) to Content-Type header when possible - For DaimlerChrysler, now check that received file length matches the length specified for the tracking ID in the control file. Enhancements - AS2/AS3 ---------------------- Now check for duplicate mailboxes with the same AS2 or AS3 names when sending (as is already done when receiving). - Adjusted the rules for naming files for trading partners who do not subscribe to the standards for naming files via the Content-Disposition header within the payload. - Modified the MDN detail panel size so that it is relative to the size of application. - VLTrader AS3 only: Added support for outbound folded / unfolded headers in the AS3 server. By default headers for outbound messages will always be folded for both the AS3 client and the AS3 server. - AS3 only: Added support for storing the contents of the received message in the rejectbox when the message is received without a header. Enhancements - ebMS ------------------- Now check when sending if the configured CPA Id/From Role are also defined in other mailboxes. Enhancements - SSH FTP ---------------------- Added option to create a CA certificate from an imported a SSH FTP public key. Enhancements - OFTP ------------------- Now check when sending if the configured trading partner user ID is also defined in other mailboxes. Enhancements - MQ ----------------- When an ExtendedIOException occurs when there is a file naming error writing to the AS/400 NFS, a hint is now logged. Enhancements - SMTP ------------------- VLTrader only: Added a "Store raw sent" setting in host's SMTP panel, which indicates to save the raw MIME payload messages sent to trading partners in the SMTP/sent/ directory. And similarly, the Local Listener's "Store Raw Received Message" advanced property, if set, indicates to save the raw MIME payload messages received from trading partners in the SMTP/received/ directory. - VLTrader only: A Return-Path header for outgoing messages can now be explicitly configured in the SMTP service panel. If left empty, the Return-Path header defaults to the SMTP service <User Name@Domain>. Additionally, the From: and Return-Path: headers can now be overridden at the mailbox or command level. - VLTrader only: Added a new "Always Send Multipart Messages" host advanced property which indicates to always send a multipart SMTP message to this trading partner, even when there is only one attachment in the message. - VLTrader only: For outgoing database payload, Content-Transfer-Encoding can now be specified for individual outgoing files in the VLOutgoingProperties table. However, only values of 'quoted-printable', 'base64', and 'uuencode' are applicable at this level. - VLTrader only: When using transfer logging feature, discarded incoming multipart/alternative parts are now marked with a status of "Discarded" in the transfer table. - VLTrader only: For incoming database payload, full Content-Type value (including charset) for payload is now inserted into the VLIncomingProperties table. - VLTrader only: Now check when sending if any of the email recipients are also defined in other mailboxes. - VLTrader only: Added support for an "open-ended" SMTP host where the host is not tied down to just one SMTP server. For an "open-ended" SMTP host, the host address is specified as "*" and (unlike the normal SMTP host) the To and Cc parameters must include the @domain portion of the email address. "Open-ended" SMTP hosts cannot request DSNs, and if not using an SMTP submission (i.e. proxy) server, the To and Cc email addresses must all be the same @domain. "Open-ended" SMTP hosts cannot receive incoming emails. - VLTrader only: When sending email, added ability to specify an "inline" (non-attachment) portion to the message. This can be specified by either entering the inline text or specifying a file which contains the inline text. And similarly, when using the outgoing database payload feature for SMTP, added the ability to specify a Content-Disposition of "inline" for an outbound file. Refer to the VLOutgoingProperties table in the VLTrader Administrator's Getting Started Guide for more information. Bug Fixes - Framework --------------------- Corrected issue where selected certificate was not being displayed in the CertManager when the Issuer Alt Name was used for something other than an embedded PGP key. - Corrected sluggish updates when new Listener certs are applied and now display an hourglass while non-overridden mailboxes are updated with the new listener certs. Now also update overridden mailboxes that have the same certs to remove the override and log a warning. - VLTrader only: Fixed problem where NullPointerException would be logged if using router feature and router placed outbound file into local FTP user outbox. - VLTrader only: Fixed problem where NullPointerExceptions were being logged when the Local Listener Web Service was in use, which would cause service/daemon to hang. - VLTrader only: Fixed problem with outgoing database payload where if fileindex of attachments in VLOutgoing table did not increment starting from 0, the table was not getting updated with the resulting TransferID. - VLTrader only: Fixed problem where concurrent incoming messages to the AS3 server were sometimes interfering with each other. - Corrected problem where the mailboxes weren't being updated when the Listener certificate(s) had been changed and the certificate(s) in the mailbox weren't being overridden. - Corrected problem where the success emails generated after a failure when the "Email On Repetitive Action Failures" option is not enabled were being incorrectly generated when the last action verb (i.e., PUT, GET, etc) that caused the failure did not match the current successful action verb. - VLTrader only: For streamed incoming database payload, the transfer's filesize property should not be set. Fixed problem where some protocols were setting the transfer filesize to 0 or the number of bytes transferred. - VLTrader only: For database payload option, when outgoing payload is for a local FTP user, fixed problem where VLOutgoing.TransferID was not being updated when the FTP user retrieved the file. - Fixed web GUI problem where the Certificate Manager's help reference could not be displayed. - VLTrader only: Fixed problem where changing an FTP or SMTP listener port from clear-text to secure or vice versa without stopping the listener in-between was causing port bind exceptions. Also fixed problem where a listener port would not be started if it previously had a port bind exception. - VLTrader only: Fixed problem where sending multiple files via database payload would cause database exceptions if no file sizes were specified. - VLTrader only: Fixed problem where database payload outgoing properties would only take affect if the property already had a configured value in the mailbox. - VLTrader only: Fixed problem where extended use of the database payload feature on an Oracle database would eventually result in "ORA-01000 maximum open cursors exceeded" exceptions. - Fixed problem where if there is a licensing issue for a host being run from commandline (w/o a service or daemon running), a "null" warning was being logged rather than the licensing error. Also fixed a timing issue in this licensing case with the -m option where logged messages were not always being printed to the console. - VLTrader only: Fixed problem where database connection errors were not being emailed, even though Email On Fail was set at the system level. - Fixed problem where warning messages were being interpreted as errors when email/execute suppression was enabled. - In the "Certificate Exchange Confirmation" dialog, the "Cancel" button now correctly cancels the send operation instead of returning to the send dialog. - Fixed problem in the certificate viewer where the installed encryption certificate was being displayed as the "Encryption Certificate" and the "Active Encryption Certificate". Bug Fixes - FTP --------------- VLTrader only: Fixed problem with FTP server filter for incoming file extensions if a directory name contained a period. - Corrected issue when receiving OpenPGP encrypted data where the original input stream was not being closed possibly causing a transfer to fail. - VLTrader only: When reverse proxying through VLProxy, removed inherent one second delay in processing each incoming FTP command. Bug Fixes - HTTP ---------------- Fixed problem where Proxy and WWW digest authentication was always failing. Bug Fixes - AS2/AS3 ------------------- Corrected problem where received MDNs were not always being stored properly in the AS2\mdn\received folder. - AS2 only: When an asynchronous MDN response has timed out, the original Message-ID is now included in the result element for LexiCom. Previously it was only included for VLTrader. Also corrected problems with resending messages when Async Resends are enabled. - AS3 only: Fixed problem where the -APE command line option was not being used when specified and the specified target file name (e.g., recvfile.edi) was being ignored and instead the remote file name was used to name the received file. - Fixed problem where MDNs were not always being updated in the MDN table view in real-time when running under the service. - Fixed problem where sending Tradacoms formatted data files were failing with a javax.activation.UnsupportedDataTypeException. - Corrected problem where when asynchronous MDNs were not being properly moved to the mdn\received directory after they had expired. - Previously when setting the outbound file name in the message headers, any ( ) @ , ; : \ / ? " < > TAB SPACE [ ] = characters were being replaced with an underscore (_) character. This list has been modified to only replace the \ / : * ? " < > | characters with an underscore for outbound file names. - AS2-only: Added support for client authentication (which had been previously omitted) when sending an asynchronous MDN response or CEM response via SSL. - AS2-only: Fixed problem where when receiving synchronous MDNs the CEMcapability was not being detected and the "Partner Is CEM-Capable" field was not being properly set. - AS2-only: Fixed problem where an update to the "Partner Is CEM-Capable" field by the Listener was leaving the "Apply" button enabled on the Host>AS2 panel. - AS2-only: Fixed problem where when a host was manually deleted but there were still existing CEM records that had expired, email notifications would continue every 5 minutes indefinitely. Now if a host is not found for any outstanding CEM records, they are removed and a warning is logged. - AS2-only: Pending partner certificates (received through CEM) are now displayed in the "Certificates" panel and the field is set to read-only until the new certificate is accepted. - AS3 only: Fixed problem where inbound unsigned/unencrypted messages were not being properly named with the file name provided in the ContentDisposition header. Bug Fixes - SSH FTP ------------------- Added stack trace information for errors to the debug log when it is available. - Added advanced property to configure the transfer block size. The default block size of 65535 is not supported by all servers. - Added command to ask for available authentication methods before attempting authentication. Bug Fixes - OFTP ---------------- Now instead of erroring out, if the speaker does not honor the CD request within the EFPA response, VersaLex will simply log a warning and continue. Bug Fixes - SMTP ---------------- VLTrader only: Fixed problem decoding base64-encoded UTF without BOM. - VLTrader only: For incoming database payload, cleaned up cases where file size was being reported as 0 in VLTransfers table when it should not have been reported at all. The file size should only be reported in the VLIncoming table when using incoming database payload. - VLTrader only: Fixed problem where the incoming From: (MAIL command) and To: (RCPT command) parameter names were not case insensitive. - VLTrader only: Fixed issue when using incoming database payload where multiple attachments were not being indexed properly in the VLIncoming table. - VLTrader only: Fixed issue where the "lostandfound" directory was not being automatically created. - VLTrader only: Fixed problem where SMTP server was always returning a successful DSN if the RCPT TO: NOTIFY parameter existed, even if only just NOTIFY=FAILURE or even NOTIFY=NEVER was specified. - VLTrader only: Fixed problems when using database payload for outgoing messages where exceptions were thrown if no payload was being sent. - VLTrader only: Fixed a number of problems relative to the inline document option: - Inline file value was not always being displayed in the GUI and therefore could not be edited. - Inline document provided via database payload was not overriding the configured inline file or text. - Configured inline file was being deleted if PUT -DEL option was being used. - Content-Disposition: inline database payload outgoing property was not being picked up globally as it should when Fileindex was set to -1. - VLTrader only: Fixed problem where a default filename was not being properly generated when an outgoing database payload filename was not provided. - VLTrader only: Fixed problem where a single quote in the subject of an incoming message was causing problems inserting into payload the database. Single quotes and backslashes are now properly escaped. - VLTrader only: Fixed problem where a received Message-ID was not being inserted into the transfer log. - VLTrader only: Fixed problem where disabling the SMTP service was not causing connections to the service to be closed with a "421 Service not available, closing transmission channel". - VLTrader only: Fixed problem where a NullPointerException would be thrown if an inbound command requiring parameters had no parameters at all. - VLTrader only: Fixed problem where a NullPointerException would be thrown if an inbound MIME message was missing a Message-ID. - VLTrader only: Fixed problem where an inbound Delivery Status Notification would be rejected if it was missing an Original-Envelope-ID. **************************** * RELEASE 3.3 - 2007/01/29 * **************************** - Upgraded each platform JRE (Java Runtime Environment) to a version which supports new 2007 US and Canada Daylight Savings Times. Please note that if you are currently using JRE 1.3 and choose during the installation to continue using JRE 1.3 rather than upgrading to JRE 1.4, you will NOT be using a JRE with the new DST changes. To obtain a JRE 1.3 with the new DST changes, use the following link to download the JRE 1.3 installer: http://www.cleo.com/Download/LexiComDL.asp?SN=XXXXXXXXXXXX&OS=Windows|Linux|AIX|HPUX|Solaris&PROD=LexiCom|VLTrader&JRE=1.3 Major Enhancements - Framework ------------------------------ Added new a Certificate Exchange feature available in the AS2, AS3, FTPs, ebXML and the Ftp Server User mailboxes (VLTrader only) for sending local certificates to trading partners via email. Additionally support has been added for AS2 to send and receive certificates (via Certificate Exchange Messaging over EDIINT) if the trading partner has a CEM-capable product. Refer to "Exchanging Certificates With Your Trading Partner" in the Certificate Manager section of the User's Guide for further information. - VLTrader only: Added both client-side and server-side implementations of the Simple Mail Transfer Protocol (SMTP). See Generic SMTP and SMTPs preconfigured host, and Local Listener SMTP tab and SMTP service. Enhancements - Framework ------------------------ On Unix, now update product daemon script with chosen home directory during installation. - VLTrader only: Enhanced the database payload feature to allow for more outgoing/incoming transfer parameters/headers to be specified/received via the VLOutgoingProperties/VLIncomingProperties tables. For outgoing payload, also added the ability to specify an external, custom transfer ID which will be correlated to VLTrader's transfer ID. Refer to the VLTrader Administrator's Getting Started Guide for more information. Enhancements - AS2/AS3 ---------------------- AS2 only: Added new "Send '200 OK' For Empty AS2 Responses" Advanced Property to the Local Listener to return a "200 OK" response instead of the default "204 No Content" response when there is no content to return (e.g., for messages not requesting an MDN or for asynchronous MDNs) for compatibility with servers that are unable to process a "204 No Content" response. - Added support for enabling/disabling "Folded Headers" in AS3 Hosts Bug Fixes - Framework --------------------- Removed selections for translator integrations Gentran Server, Trusted Link Enterprise, and Trusted Link/400(LexiCom only). - Fixed problem where forced synchronization was throwing the exception "org.xml.sax.SAXParseException: Premature end of file". - Fixed problem where the backup reverse proxy external address was still being used for AS2 MDNs after the primary proxy went down and then came back up. - Fixed problems where the web GUI was not displaying correctly (e.g. message pane messages were not colored, View>Log window would not display, etc.). - Fixed problem where the contents of an emailed AS2 profile was incorrectly stating that the trading partner's AS2 name was not configured. - Fixed problem where embedded PGP key info from a creation of a PGP CA cert was being stored in a new user cert. - Imported PGP public keys that are not initially armored are now reencoded before they are embedded in the CA cert. - Fixed problem with VLProxy initialization caused by InterruptedIOException where reverse proxy or other information was not being configured consistently in VLProxy. - Fixed problem when using either the AS/400 native or integrated file system for the inbox and/or outbox the path was being misinterpreted as a subdirectory of the installed path. Bug Fixes - FTP --------------- Fixed problem where if host advanced property "Delete Zero Length Files" is on and using GET -APE, could inadvertently delete previously received payload. - Fixed problem where PGP encryption/decryption, etc. options were set to the wrong value when concurrent actions were run. Bug Fixes - HTTP ---------------- Now accept HttpOnly parameter in Set-Cookie header. Bug Fixes - AS2/AS3 ------------------- - Fixed problem in AS3 messages where the CRLF was omitted after the Content-Type header causing the header and the body of the message to run together. - Fixed problem where unsigned / unencrypted files residing on the AS/400 native file system were not able to be sent due to message length calculation errors. **************************** * RELEASE 3.2 - 2006/12/05 * **************************** - WARNING: This version of LexiCom/VLTrader is only compatible with VLProxy version [1.7] or better. Enhancements - Framework ------------------------ VLTrader only: In Configure>Options>Transfers, under the database payload option, added a configurable database connection poolsize, which defaults to 20. - Added Configure->Launcher dialog which is used to modify and test changes to lax file settings. - Added memory usage monitor which will log a warning when total memory reaches maximum memory. - Modified the panels for all applicable protocols to allow the fields to use the available space as the panels are enlarged. - For all protocols, added four new Fixed Record... Advanced properties which can be used to insert and/or delete fixed length record end-of-line characters for outgoing and/or incoming files, respectively. One additional property "Outgoing Insert EOL Between Interchanges" can be used to insert EOL characters in-between EDI interchanges as well as at fixed record lengths. - Local Listener Configuration Wizard - steps are now specific to AS2 or ebMS protocols. Added selection to allow use of a new SSL certificate (not yet generated) for both signing and encryption. - VLTrader only: EDI logging feature now includes optional functional acknowledgment tracking and optional custom reference number extraction. Go to Configure>Options>Transfers>Configure EDI logging to enable. Refer to the VLTrader Administrator's Guide for database information. If necessary, transactions with pending functional acknowledgments can be manually acknowledged by right-clicking one or more transactions in the Tools>Transfer Report... transaction table. - VLTrader only: In Configure>Options>Transfers, if logging transfers to a database, added option to automatically purge logged transfers older than a configurable number of days (default 90). - By default only the logged message time is shown when scrolling messages in the messages pane or with the commandline -m option. In Configure>Options>Other, added new property "Always Show The Logged Message Date" which indicates to display both the message date and time when scrolling messages. - Initial splash screen now includes a progress bar and cancel button. - VLTrader only: In Tools>Transfer Report..., report filter values are retained on re-entry. If any filter values are entered in the EDI tab, on re-entry to the filter dialog, the EDI tab is now automatically selected so that the retained EDI filter values are visible. - In addition to the AS2, AS3, and ebMS protocols, now all protocols support command retries on error or exception with an optional retry delay. Go to host Advanced tab Command Retries and Retry Delay properties to set. - Enhanced View>Log... capabilities: - Filter now automatically spans into archived log files depending on the selected date/time range. Individual log files can also still be selected. - Expanded message type selections to include notes, warnings, errors, and exceptions as well as different result types. - Log filters can now be saved and recalled. - LexiCom only: In Tools>Software Update..., the "Still download even if already at current release/patch level" AS/400 option is now automatically turned on if the latest release has just been downloaded/installed (and no patch exists) and is now automatically turned off after the subsequent AS/400 download is complete. - Added ability to use the "Email Profile..." utility for the local listener services. This allows URLs and certificates to be emailed when necessary before a specific trading partner relationship has been established. - Added support for redundant reverse proxy enabled VLProxies. You may configure multiple Cleo VLProxies to use the reverse proxy feature by selecting the "Backup" checkbox (in the HTTP-Application Level Proxy panel). The "Backup" checkbox must be unselected for the Cleo VLProxy you intend to use as your Primary reverse proxy. VersaLex will enable reverse proxying on both Backup and Primary proxies it can communicate with. A Backup proxy will not be available for selection as the default forward proxy at either the system or host level. If VersaLex is unable to use a specified default forward VLProxy, it will attempt to use an available Backup VLProxy. - Added a new "Print" feature to the Log Viewer. - Added support for suppression of repetitive "Email On Fail" and "Execute On Fail" invocations at the Action, Listener and System levels through the use of additional Advanced properties. The Action and Listener properties may be set at the System Level (via the Options -> Advanced panel) and overridden at the hosts. Additionally the "Email On Fail" and "Execute on Fail" will be invoked on resolution of the error. For "Execute On Fail", users must account for this in the failure script to be executed by using the %status% macro as a parameter. - The service no longer needs to be stopped and restarted when a new license is installed. - The email that is generated when a temporary license key is about to expire now also includes the host name and address of the computer where the temporary license is installed as well as the directory where the VersaLex product is installed. Additionally, an event is now logged when a license expiration reminder email is being sent. Enhancements - FTP ------------------ Added hint for common exception when using OpenPGP encryption with a DSA key and PGP Hash Algorithm set to SHA-256. Enhancements - HTTP ------------------- A transfer element is now always logged if any data had been transferred, even if the transfer didn't complete successfully. Enhancements - ebMS ------------------- Fixed issue where schema validation was not being done entirely local to the computer. "http://www.w3.org/2001/XMLSchema.dtd" was still being requested over the internet. - While activating the Generic ebXML preconfigured host, a Collaboration Protocol Agreement (CPA) or Collaboration Protocol Profile (CPP) can now be imported into VersaLex. The contents of the CPA/CPP are used to set host, mailbox, and ebXML service properties. Enhancements - SSH FTP ---------------------- Added hint for common exception when using Public Key Authentication with an incorrect password. Bug Fixes - Framework --------------------- On the AS/400 platform, fixed problem where an invalid license would cause the AS/400 process to get a NullPointerException when attempting to a log system message and would cause the Windows GUI to have difficulty attaching. - In web GUI, fixed problem where importing of files would always be immediately cancelled. - Fixed problem when manually archiving AS2/AS3 MDNs, ebMS Acks, or OFTP EERPs where NullPointerException would be thrown. - When using the API, fixed problem where a general log listener was not receiving system log events. - For hosts which do not allow concurrent actions (always on LexiCom and optionally on VLTrader), rather than erroring out if another action is already running, commandline requests to run an action will now queue up and wait for the active action to end. - Fixed problem in the Email Profile utility where the encryption certificate was not being included in the zip file, even though the text of the email stated it was included. Also fixed a problem where signing/encryption certificates were not being displayed and sent for the AS3 client. - Fixed problem where active file input/output locking was not taking into consideration symbolic links and ../ relative pathing. - Fixed a problem when streaming incoming payload through the API where reserved filenames would unnecessarily accumulate and cause throughput to slowly deteriorate. - Corrected a problem where when no SMTP mail server is defined and emails are sent to multiple recipients at the same mail domain, the action would hang indefinitely. - Corrected a problem where the Advanced Panel would freeze up if a value that is set at the system level was cleared out at the host level. - The Local Listener can be modified while it is running. If the applied modification leaves the Local Listener in an incomplete state, the Local Listener remains running, but now the user is warned that the Local Listener will not start the next time it is stopped and restarted. - VLTrader only: Fixed problem in the web GUI where router entries and EDI route entries could be deleted while in "View Only" mode. - Fixed problem in the web GUI where paging within a host or mailbox would fail if the host or mailbox alias started with a digit. - If a scheduled autosend action fails to send a file after 2 consecutive retries, the action is set to restart after 30 minutes, by default. If the action is run interactively during this delay, the restart delay is now automatically reset. This matches how temporarily disabled scheduled actions are re-enabled after being interactively run. - Fixed problem where Tools>Certificate Manager... was not displaying the hexadecimal value of a negative serial number correctly. - VLTrader only: Now detect and log a warning when an invalid EDI document is being routed or parsed for EDI logging. Previously an ArrayIndexOutOfBoundsException was being thrown. - VLTrader only: In database payload feature, now limit the maximum BLOB size to 2,147,483,647 bytes. This is the maximum supported by the JDBC interface. - VLTrader only: Added active route information to synchronization so that backup system can pickup routing where the production system left off if/when the production system goes down. Bug Fixes - FTP --------------- Fixed problem with PASV command response where server reply included an extra parenthesis at the end. - Fixed problem with PASV command when using VLProxy with the external address configured as fully-qualified domain name instead of an external IP address. Bug Fixes - HTTP ---------------- Fixed problem where HTTP request events (which include the HTTP method, resource path, and any request parameters) were not being logged. - Fixed problem where if no HTTP headers were specified and the ContentType was defaulting to multipart/form-data, a NullPointerException was being thrown. - In addition to AS2, now include host error response in error result log element content for all HTTP protocols. Bug Fixes - AS2/AS3 ------------------- Fixed a problem when streaming incoming payload through the API where if the subject header was missing from the message a NullPointerException would occur. - AS2-only: In a send action, the transfer element is now updated with the final transfer bytes after the transfer has completed and is waiting for the response. (Previously the final displayed bytes in the panel did not match the actual transfer bytes.) Also, if there is a timeout error, the final transfer element is now logged. - AS3 only: Corrected a problem where if an error response from the server occurs midway through a series of receives, the action would hang indefinitely. - AS2 only: If no data is being sent back in a response, a "204 No Content" response is now sent instead of the previous "200 OK" response. - Corrected issue where large compressed that were also base64-encoded could not be decompressed. - Corrected issue where private keys were being set to null when the private key password contained a ";" character. (This was causing a DecryptionFailureException when receiving inbound messages.) - Corrected issue where plain (unsigned / unencrypted) messages were not correctly setting the content-disposition header when running through the API. - Corrected issue where inbound encrypted messages (with no signature) were always using the Message-ID to name the target file even if a "Content-Disposition" header had been supplied. - Corrected issue where multiple emails were being generated when an action is interrupted. Bug Fixes - ebMS ---------------- If I/O exception occurs while processing incoming payload, now attempt to generate a SOAP fault response rather than not responding at all. - Fixed problem that generated Content-Disposition filename parameter value was not a quoted-string, which allows for embedded spaces or other special characters in filenames. Bug Fixes - SSH FTP ------------------- LS and GET * commands would return no files in the listing if the file type in the permissions was not specified. If the file type is FILE or not a DIRECTORY or LINK it is assumed to be a file since the server is likely not setting the type in the permissions correctly. Bug Fixes - MQ -------------- Corrected issue where an MQRC_OPTION_NOT_VALID_FOR_TYPE (2045) error was being generated when attempting to put messages on a remote queue. - Corrected issue where multiple emails were being generated when an action is interrupted. **************************** * RELEASE 3.1 - 2006/08/08 * **************************** Major Enhancements - Framework ------------------------------ User configuration on two or more LexiComs or VLTraders can now be synchronized. Synchronization can involve a production system and one or more redundant backup systems or can involve distributed non-redundant production systems. Configure>Synchronization may be setup to include the entire set of user configuration data or a subset and does not require use of VLProxy. - Added the ability to use an expanded set of supported macros for naming the inbound file for all protocols and for naming the destination file for the LCOPY command. Refer to the protocol-specific host section in the VersaLex User's Guide for details. - Removed the "Email On Fail", "Execute On Fail", "Email On Successful Receive" and "Execute On Successful Receive" Advanced properties from the Listener. SPECIAL NOTE: IF THERE ARE VALUES SET FOR ANY OF THESE PROPERTIES IN THE LISTENER, THEY WILL AUTOMATICALLY BE MOVED TO THE SYSTEM LEVEL (under Options->Advanced) DURING THE SOFTWARE UPGRADE. IF THE SYSTEM LEVEL ALREADY CONTAINS DIFFERENT VALUES THAN THE LISTENER LEVEL VALUES, A CONFLICT MESSAGE WILL BE LOGGED AND AN EMAIL ALERT WILL BE SENT TO ALL EMAIL RECIPIENTS (IF THE PROPERTY IN CONFLICT IS AN 'EMAIL' PROPERTY). IF IT IS AN 'EXECUTE' PROPERTY IN CONFLICT, THE EMAIL ALERT WILL BE SENT TO THE SYSTEM-LEVEL "Email On Fail" RECIPIENT (IF AN EMAIL ADDRESS HAS BEEN SPECIFIED) OR TO THE EMAIL ADDRESS THAT WAS SPECIFIED DURING THE REGISTRATION OF THE PRODUCT. THE USER MUST RESOLVE THIS CONFLICT BY MANUALLY UPDATING THE SYSTEM LEVEL ADVANCED PROPERTY(IES) IN CONFLICT WITH THE DESIRED VALUES. Enhancements - Framework ------------------------ Added support for importing OpenPGP and SSH keys when creating selfsigned user certificates. User certificates may also be exported to OpenPGP or SSH formats. Trusted CA certificates can now be created from imported OpenPGP public keys. - Added support for the addition of an optional port number (in the form, host:port) when specifying an SMTP server in the options panel. - VLTrader only: Added ability to filter the transfer report with EDI interchange, functional group, and/or transaction set values. - VLTrader only: Added [Find Route] button in Tools>Router dialog. - VLTrader only: For the router, when a route file contains undefined or doubly-defined routes, now reject just the segments in error and route the rest rather than rejecting the entire route file. - VLTrader only: For the router, added new Advanced property "Maximum Number of Concurrent Router Actions" which can be used to throttle the router. The default value for this property is 10. - VLTrader only: For EDI transfer logging, added an exclusions list that can be used to identify hosts, mailboxes, or actions that should not log EDI data when transferring. - VLTrader only: Added support for the new "Compression-Signing Order" and "Retain Temporary Inbound Message Files" Advanced properties for AS3 server users. - Added ability to archive the system log file daily or weekly. Go to Configure>Options>Messages to enable. Also, archive filenames now include the date and time range of the archived log. - Added ability to generate a TCP/IP port usage report for a single host or subset of hosts. Right-click the desired host or hosts in the Active tree and select "TCP/IP Port Usage...". - Added new "DestinationFilenameDate" and "DestinationFilenameTime" Advanced properties at the System-level. - When the System-level Advanced settings are being used by default, they will now be displayed in each host's Advanced panel. Previously, these values were left blank at the host level. - Added a new mailing feature that does not require that a mail server be defined. - Added new feature to send daily email notifications beginning a week before a temporary license will expire. Daily emails will continue even after the temporary license has expired. - Added a "Print" button to the debug log viewer (for non-web GUIs only). - VLTrader only: Now support the Progress OpenEdge RDBMS for the transfer and EDI logging and database payload features. - Under View>VLProxy..., added ability to actively view a connected VLProxy's messages or display the current or archived VLProxy log file. Also, under Help>Support>Bundle..., added ability to include the current VLProxy log file in a support bundle. VLProxy version 1.6 or higher is required. - Added host level integration for use with GXS Application Integrator. Changed sort order for action names on other integrations to match host tree order. Unix script files generated will now have the execute file permissions set. - VLTrader only: In addition to the standard transfer log viewer, added an EDI transfer log viewer which lists interchanges matching the filter criteria. If one of the listed interchanges is then selected, its functional groups and/or transaction sets are displayed. The standard transfer information (protocol, trading partner, bytes, etc.) for an interchange can be displayed in detail windows. - VLTrader only: EDI logging and routing now recognizes and supports the Tradacoms file format. - Added "Open New" and "Find" buttons to the file viewer (under File>View) to allow for opening of new files and searching (forward and backward) within the document, in the same fashion as is done in MS Word and Internet Explorer. - VersaLex now supports importing private keys generated by WS_FTP Pro server (SSLeay private keys). - VLTrader only: Generated detailed transfer report now can include extracted EDI headers. Enhancements - FTP ------------------ - Added integrated OpenPGP (Pretty Good Privacy). Outbound files may be encrypted and signed to allow your trading partners to verify the files have not been tampered with in transit. Inbound files from trading partners are decrypted and verified providing you the same protection. - Added support to the Post-Put command for the file naming macros as used in the PUT, GET and LCOPY commands. Additionally support for this command now also includes the %destfile%, %destfilebase% and %destfileext% macros. - Added "Ignore Exception After Quit" advanced property which indicates to ignore any I/O errors that occur when attempting to read the FTP server response after issuing a QUIT command. Enhancements - HTTP ------------------- Based on the setting of Advanced property "Command Retries", GET CONFIRM and -DELETE option requests will now be retried if/when an error or exception is incurred. - Added "Post Parameters On Request Line" advanced property which indicates to include any request parameters on the HTTP request line rather than using multipart/form-data or application/x-www-formurlencoded content-types. - When an HTTP server sends back an error response, any HTML content in the response will now be logged. - Added support for %file parameter in application/x-www-form-urlencoded Content-Type. Enhancements - AS2/AS3 ---------------------- AS3 only: When sending large messages, now send NOOP commands every 60 seconds to keep the connection open. - When manually archiving MDNs, now check for any "Pending" MDNs in the selection list and automatically deselect them and display an informational message. Pending MDNs should never be archived. - Added new "Compression-Signing Order" Advanced property in the host to allow outbound messages to be either signed then compressed or compressed then signed. (By default messages are signed then compressed.) This support is for both AS2 and AS3 clients. - Now log a hint when the installed JRE (1.4) is missing the correct policy jars which manifests itself as an "Unsupported key size or algorithm parameters" error (on send) or a decryption failure on receive. - When logging an incoming result, now include the hints in the incomingResult so that the sequence of messages for an exception matches what is displayed on outgoing results (i.e., Detail, optional Hint, Result). Previously, for an incoming result, the hints were being logged after the result element. Enhancements - ebMS ------------------- No longer reject incoming payload when content-type is incorrectly specified as application\xml. Enhancements - SSH FTP ---------------------- Now supports both Public Key Authentication (PKA) and password login authentications. PKA supported from user certificate or a file. Under JRE1.3, user certificates created from an imported RSA SSH private key will not be usable with certain security providers. Instead, you must use the mailbox Private Key file parameter to use the RSA SSH private key file directly. Enhancements - MQ ----------------- Added support for usage of the source file naming macros if a file name was provided in the Application Identity Data field on the queue. - For the PUT command, the file name is now in the Application Identity Data field. The GET command now uses the Application Identity Data field (when supplied) for naming the file. Also the MessageID obtained the MQ queue (for a GET command) is now logged. - Modified the GET command to only convert the data if it is ASCII (when the MQMD's "Format" field has a value of "MQFMT_STRING", i.e.,'MQSTR') - When running under JRE 1.3 and SSL Security has been enabled, no longer set the mailbox to "not ready". Instead, an exception is thrown at runtime. Bug Fixes - Framework --------------------- On Unix platforms, added options for configuring web GUI font settings. In the Fonts tab of the Web Browser service under the Local Listener, default font settings can be modified when there are font path problems/exceptions. - Corrected issue where when an attempt to send an email was failing, a delay was not always being done in between retry attempts. (The product now always makes three attempts to send an email with a five second delay in between retry attempts. Detail of the error and the retry attempt is now also logged in the debug log.) - Corrected issue where changes to the "DestinationFilenameDate" and "DestinationFilenameTime" Advanced properties at the host level could not be saved and always reverted back to the system-level's value. - Corrected issue where the file naming macros weren't being correctly interpreted for LCOPY when wildcards were used. - Fixed problem where the Destination Filename Date & Time Format advanced properties were omitted at the system level. - Fixed problem where System level advanced properties were being incorrectly displayed at the listener level. - Fixed problem where "Destination Filename Date/Time Format" advanced properties were being displayed in the FTP User Mailbox's advanced panel. (These properties are not used there.) - Fixed problem where the incorrect System level property was being used when running as a service. - Fixed problem where a NullPointerException was being silently thrown when attempting to "Apply" the Listener's Advanced properties, causing those changes to never be applied. - Corrected problem where the host level "Email On Successful Receive" and "Execute On Successful Receive" properties were not being used for AS2, ebXML, OFTP and AS3/FTP server users. - Corrected problem where loading large files in the File Viewer consumed considerable amounts of CPU. - When trying to import a host file and a license limitation was reached, fixed problem where instead of entirely blocking the import the host file would remain in the hosts\ directory and would display in the active tree on the next software restart. - VLTrader only: Fixed problem where a large route definition was causing the Tools>Router dialog to hang. Also fixed problem where the Status column in this dialog was not being updated automatically. - When attempting to email a success or failure while an action was running and that action was interrupted, previously the email would also be interrupted. Now, the interrupt for emailing is ignored and the email is allowed to proceed until it completes. - VLTrader only: Fixed problem where FTP server was logging NullPointerExceptions when attempting to send a response string that was null. - Instead of erroring out when importing a PKC12 with an invalid certificate chain, VersaLex will now import the user certificate and private key and just ignore the rest of the certificates. - VLTrader only - Corrected problem using VLTraderd script by storing as a binary UNIX format. - VLTrader only: Fixed timing problem when transfer and EDI logging where database SQL statement could become corrupted. - Fixed problem where the CPU would go to 100% for long periods of time while sending emails where no email server has been specified. Also added better handling and reporting of unexpected exceptions which previously caused the action to hang indefinitely. - VLTrader only: If a client disconnects abruptly from the FTP server (without first issuing a QUIT command), now properly disconnect that session and set that user as inactive. Previously that connection would hang and cause 100% CPU usage indefinitely. - Fixed a problem where a NullPointerException could be thrown when the SMTP mail server had been specified and there was a connection problem to that server. - Corrected problem where emails would hang indefinitely when more than two NIC cards are installed. Also improved the performance of the connection to the remote SMTP server when sending emails where the local SMTP server is not configured. - VLTrader only: Fixed problem where EDI logging would error out if the time value in an interchange or functional group included milliseconds. - VLTrader only: Fixed problem where transfer logging would error out with a received message ID of larger than 100 characters. The message ID is now truncated. - Fixed problem in the Email Profile Utility where NullPointerExceptions would be thrown for FTPs clients if the conf/registration.properties file was missing. - VLTrader only: Immediate route retries will no longer be attempted if the router has just been manually stopped. But the router will now log a message indicating when the route will be reattempted if the router is restarted. - VLTrader only: Changes to defined routes (additions, modifications, and removals) are now effective immediately. Previously, the main router dialog also had to be OKed before route changes would be applied. - When using system level sentbox, fixed problem where setting the advanced host property "Add Mailbox Alias to Sentbox" had no effect. - VLTrader only: Fixed problem when routing a file with multiple interchanges to different mailboxes where unnecessary functional group and interchange trailers would precede all but the first interchange. - Fixed problem where sessions would expire after about one minute using the web GUI on Windows Netscape version 8. - VLTrader only: If a host's "Allow Actions to Run Concurrently" advanced property was set off, fixed problems where the router and database payload features would error out if multiple sends were queued up. These features will now sequentially process each send for the host one-by-one. - VLTrader only: Fixed problem where router action would hang if routing to an FTP mailbox and a connection exception occurred. Also fixed similar problem where router action would hang if the proxy originally configured for the host no longer exists. - For web GUI users, fixed problem where a "Browser state re-synchronized with the application" message would appear with each auto-refresh. - VersaLex service/daemon no longer needs to be restarted after the computer name or IP has changed. Previously new VersaLex GUI, commandline, or API applications would fail to attach to the service/daemon until it was restarted. - For web GUI users, fixed scrolling and subdirectory navigation problems in file chooser dialog under JRE 1.4. - Corrected a problem in the file viewer when running under the Web GUI where large files didn't appear to load unless a manual refresh was done. Now, the Web GUI will automatically refresh until the file is fully loaded on the page. - VLTrader only: When EDI transfer logging enabled, fixed problem where sending/receiving a Tradacoms document would cause pipe closed transfer failures. - VLTrader only: Fixed problem where if WS_FTP Pro client was uploading a file on an encrypted data port, VLTrader would error out at the end of the transfer with a "553 data transfer failed. java.io.EOFException: Connection closed by remote host." response. - AS400 only: Added function check monitoring (for the JVA0122 msgid) so that an escape message is not logged and a jog log created if the ENDLEXSVR command is invoked when the LexiCom service is not running. - Added additional validity checking to the "To:" field in the "Email Profile..." utility to protect against invalid entries and tool-tip text to specify that this field requires an email address. Bug Fixes - FTP --------------- Fixed problem where reported transfer bytes were potentially inaccurate by as much as 1KB. - When a GET error changes to a warning based on the setting of the "Ignore Retrieve Error Code" advanced property, fixed problem where a zero-length file was not being deleted even though the "Delete Zero Length Files" advanced property was set. - VLTrader only: Fixed problem in FTP server where if error occurs during incoming file transfer, transfer log entry was being left with a status of "In Progress". - VLTrader only: Fixed problem in FTP server where the initial server welcome response message was taking longer on clear text ports. Bug Fixes - HTTP ---------------- - HTTP multipart boundary no longer includes the "+" character as this was causing a problem in a particular server's Perl scripts. - For DaimlerChrysler EBMX HTTPs when requesting a directory listing, fixed problem where HTML content now returned with a "404 No documents found" response was being incorrectly treated as downloadable file directory entries. - Fixed problem where changes to the Certificate Alias in the Mailbox Security panel for an HTTPs host was not causing the [Apply] button to be enabled. Bug Fixes - AS2/AS3 ------------------- Corrected a problem where allocated memory was not being released when sending any compressed messages smaller than 2.3 megabytes which was causing OutOfMemoryErrors. - Corrected problem where diagnostics for a message encrypted with an incorrect encryption were not being logged. - If a header is received that is missing the CRLF separator before the body, an IOException describing that the header format is incorrect is now logged. Previously an ArrayIndexOutOfBounds exception was being logged instead. - Corrected problem where sending large multipayload documents through the API was causing a "Bad File Descriptor" IOException to be thrown. - When an exception occurs, all Result elements now include the class name as part of the exception text. Removed stack traces that were incorrectly included as part of the content of the Result elements. - AS2 only: Corrected an issue where the Result element was missing the server response code and text and only contained the "Transfer failed" text when the server response was in 500 range. Also Result elements for responses in the 300 - 499 range now contain the response code. Previously they only contained the response text. - Made logging of all exception text more consistent. - VLTrader/AS3 only: Addressed issue where the AS3 server was getting OutOfMemoryErrors when receiving very large files. - VLTrader only: Corrected problem where EDI logging was not being done for files larger than 2.3 megabytes. - AS3 only: Added better exception checking for sending very large files so that connection timeouts are reported properly. - AS2 only: Fixed problem where StringArrayIndexOutOfBounds exceptions were being logged by the MDN Response checker. - AS3 only: Added better exception handling when sending a message to an FTP server where the socket has closed prematurely. - Added checking for an EOF while reading the header portion of the message. This corrects an issue where a warning was being logged that there were no headers in the message. - Corrected a problem where the exception "An HTTP (or HTTPs) proxy port must be enabled for specifying an HTTP (or HTTPs) asynchronous response" would be thrown when VLProxy was not running even though a synchronous response had been requested. - For streamed messages, now set the content-type to the mailbox's default content-type if the content-type of the inbound stream is null. If the content-type of the mailbox is not set, then it is set to application/octet-stream (for a binary stream). Previously, it was always being set for a binary stream. - Fixed problem where the same message ID was being assigned to multiple concurrent send actions. - Fixed problem where a trailing "/" character was not being included in the POST command of the async MDN. - AS3 only: Fixed problem where MDNs could not be forwarded to an email recipient. - Fixed problem where the Action-level "mailbox.Encryption Method" property values were not being properly displayed as a drop-down list. - Added logic to be able to support a "non-standard" MDN error disposition field. - AS2 only: If forward proxying requests and the proxy cannot connect to the host, corrected problem where VersaLex was reporting a "Stream not associated with a request" exception rather than reporting the "400 Connection failed" response from the proxy. - AS2 only: When an http response in the 300-499 range is returned from the remote host or the proxy, now display the actual response text in the result element. Previously the text "An unrecoverable error occurred at the remote host!" was being logged as the result. Bug Fixes - ebMS ---------------- If forward proxying requests and the proxy cannot connect to the host, corrected problem where VersaLex was reporting a "Stream not associated with a request" exception rather than reporting the "400 Connection failed" response from the proxy. Bug Fixes - SSH FTP ------------------- Fixed problem with a PUT command to a server which did not allow chmod. Will now catch the IOException on the chmod at the end of the transfer. The server was configured to allow r/w permissions for all users but no execute was allowed. Bug Fixes - OFTP ---------------- Fixed problem where if the specified virtual filename had to be truncated because it was longer than 26 characters, the returned end-toend response was not recognized and VersaLex would eventually try to send the file again. - Fixed a problem where a NumberFormatException was being thrown when attempting a message retry. - Fixed problem where if a timeout occurred waiting for the next command or response, the ISDN connection was not being properly closed and NullPointerExceptions would possibly result. - Fixed problem where optional local OFTP ISDN addresses, when entered, were not being saved correctly. **************************** * RELEASE 3.0 - 2006/01/31 * **************************** Major Enhancements - Framework ------------------------------ Added support for IBM MQSeries message queues (both local and remote). See Generic MQ preconfigured host. - Added client-side support for secure shell FTP (SSH FTP) (aka SFTP). See Generic SSH FTP preconfigured host. - Added full implementation of Odette FTP (OFTP) over both ISDN and TCP/IP. See Generic OFTP preconfigured host. - VLTrader only: Database rather than file system can now be used for both incoming and outgoing payload repository. Database connection must be through direct JDBC and database must support binary large object (BLOB) data type. MySQL, Oracle, and Microsoft SQL Server tested and supported. Refer to VLTrader Administrator's Getting Started Guide for more information. - VLTrader only: Optionally, when logging transfers to a database, EDI files can be detected and supplementary header information logged along with the transfer. Values are extracted from the interchange, functional group, and transaction set headers. Both EDI-X12 and EDIFACT formats are supported. - VLTrader only: Added Tools>Router... feature which allows outgoing EDI documents to be routed to the appropriate trading partner based on filename, sender ID, receiver ID, and/or document type. Feature splits interchanges when necessary and supports carbon copying to any number of trading partners. - Added new View>File... menu option that allows viewing and dumping of files. - For VersaLex API users, added ability to stream incoming and outgoing payload rather than requiring usage of the local file system. Also added a mailbox controller (for sending and receiving payload via any type of VersaLex host/mailbox) and an action controller (for sequentially executing VersaLex commands). - Added new Email Profile feature for the following protocols: (client & server), ebXML, FTP/s client and FTP server. AS2, AS3 Major Enhancements - FTP ------------------------ VLTrader only: Added support in VLProxy/VLTrader for reverse proxying FTP client connections. See VLProxy documentation for details. - Added support in VLProxy for forward proxying active mode FTP. Enhancements - Framework ------------------------ Added user certificate expiration checking for client certificates for AS2, AS3, HTTPs, FTPs, DC ebmx, ebXML and MQ. - Now interactively prompt for and set the SMTP mail server if it is not already defined before launching the Email Profile utility. (Previously an error was displayed and it was required to manually set the server name before the Email Profile utility would run.) - Added local listener "Do Not Create Inbox Subdirectories For Multipart Payload Files" advanced property, which indicates, when a multipart payload message is received, whether the payload files should be placed in a date/time stamped subdirectory under the inbox. - Now when either the "Add Mailbox Alias to Directory To Inbox" or "... To Outbox" or "... To Sentbox" advanced host property is enabled, VersaLex will immediately create the mailbox alias subdirectories. - In Tools>Certificate Manager..., added support for clientAuth (for TLS client) and serverAuth (for TLS server) extended key usage object identifiers when generating a user certificate. - VLTrader only: In Tools>Transfer Report..., added [Save As...] and [Open...] buttons for saving and later recalling report filter settings. - Added the ability to email local certificate expiration notices (once daily) to a set of email recipients. (Previously these notices were only being written to the log file.) All signing and encryption certificates (defined at the local listener level and those overridden at the mailbox level) for AS2, AS3 client, AS3 server and ebXML are checked. Additionally, SSL certificates for HTTPs and FTPs (defined at the local listener level) are checked. To enable this feature, add one or more email addresses to the new "Email Local Certificate Expiration Notices" Advanced property defined at the local listener level. - When using the 'Email Profile...' option and an error occurs while attempting to email the profile message to the trading partner, now allow the option to save the generated certificate(s) so that they may be sent manually. - In Configure>Integration..., added preserve option when generating translator files which will not overwrite previously generated files. - Added View>Clock option, which can be used to remove the running date/time display in the status bar. This improves performance when connecting over remote terminal services by eliminating unwanted screen updates. - Files placed in the sent box are now marked as read-only files. - VLTrader only: Improved the View>Search utility such that if a node containing the search string has children (e.g. host or mailbox), the children are now also included in the tree. - Added the option to zip the certificates that are sent to the trading partner in the Email Profile feature. This option is useful when trading partners' email clients (e.g., MS Outlook) block files with a '.cer' extension. - For web GUI users, improved the handling of paging within the certificate trees. Now instead of Top/Previous and Next/Bottom enveloping the paging area, a single Page node below the paging be used to page to up to 7 specific page numbers, page previous (by selecting arrows), as well as invoke the Go To dialog. host and nodes area can and next - Added a "Print" button (for non-web GUIs only) for the Release Notes that are distributed during a Software Update. - VLTrader only: Added a "Print" button to the Transfer Report detail dialog (for non-web GUIs only). - Added a "Print" button to the "About" box (for non-web GUIs only). Changed the "OK" button in the "About" box to "Close". - Added a Connection Timeout advanced property in the Local Listener which defaults to 150 seconds. This allows a read timeout I/O exception to be thrown when incomplete message content is received. - For the Listener Wizard, now use the registration properties to default the certificate values (when creating a new certificate) and the AS2 admin email address (when one is not already defined in the AS2 Service Panel). - Added ability to pad inbound AS/400 files having variable length records with blanks. - For the protocols that support sending multiple files as part of one payload (AS2 and ebXML), now support detecting and grouping files in subdirectories of the inbox as one message. - When running the Listener Wizard and any changes have been made, now automatically apply those changes to the appropriate panels. Previously, the user was instructed to manually apply those changes after closing the Listener Wizard. - When using web GUI, modified Go To... dialog to show but not default to the current page number. This allows searching on alias across all node pages without having to clear out the current page number. - VLTrader only: Reduced memory usage of the VLTrader service when using the XML file for Transfer Logging. - Added sorting option to the initial log viewer filter dialog. Sorting by either date, source, or message type was previously only a right-click option after the log was displayed. Enhancements - FTP ------------------ VLTrader only: The usage of the Content-Type header in the Ftp User Mailbox is now optional. If the header is left blank when sending an AS3 message, the Content-Type to be used in the message header will be derived from the type of message being sent. - VLTrader only: Added new "Use AS3 Content Type For File Extension" Ftp User Mailbox advanced property. When this property is "true" and an incoming message does not contain a header defining the name of the file, the file name will be derived using the Message-ID with an appropriate extension that reflects the type of file being received (e.g., ".edi"). When this property is "false" and the file name needs to be derived, it is named in the form "'Message-ID'.file". By default all new preconfigured Ftp User hosts have this property set to "true" for the Ftp User Mailbox, but all pre-existing hosts will have this property set to "false". - Added FTP advanced properties Password Automatic Update (days) and Password Update Format, which if supported by the FTP server, allow the FTP client to automatically change passwords after a certain number of days. The password generated by the software does not include the current month/year in either numeric or character format. Enhancements - HTTP ------------------- Added Delete Zero Length Files and Do Not Send Zero Length Files advanced properties to HTTP (which already existed in FTP) that can be used to avoid receiving and sending zero-length files. - Added support for the %file.extension keyword in PUT command header values. At runtime, the keyword is replaced with the actual extension of the file being sent. This may be particularly useful for the Daimler Chrysler HTTPs host's FileType header in minimizing the number of send actions when many different filetypes are being sent. Enhancements - AS2/AS3 ---------------------- Changed the MDN text to make it more generic when describing the content since not all received content is always EDI. - Added new host Advanced property (Retain Temporary Inbound Message Files) to allow retention of the temporary files (stored in the product's "temp" subfolder) that are created when an inbound message is received by the Listener. This is particularly useful for diagnosing messaging problems. Some of these files may be unencrypted so this option should only be used for troubleshooting problems and once they are resolved it should be disabled. Unless the temporary files are manually deleted, they will be retained until the product is restarted. - AS2 only: When an asynchronous MDN cannot be sent back to the trading partner, now include the URL that had been provided in the "ReceiptDelivery-Option" header to possibly help diagnose the reason for the failure. - When the signature of an incoming message cannot be verified (and the certificates were not included in the signature), now include the issuer and the serial number of the certificate that had been used by the trading partner to sign the message as part of the exception text. Previously all that was reported was "Signature could not be verified." - Now log the number of bytes received and the number of bytes expected when an EOF exception occurs. - Now include the Content-Disposition header in the outer MIME header even when the message is encrypted or compressed. This is only done when the message is NOT streamed, i.e., created through the API, since there may not be a file name. - A Content-Disposition header is now included in each part of a multiple payload message for file naming (again only for non-streamed messages). Also, improved the naming of incoming payload files for multiple payload messages. - Changed the disposition type of the Content-Disposition MIME header from "inline" to "attachment" so it conforms with the new standard introduced by the IETF working group for preservation of file names. - Changed the number of days that a MessageID is kept (for determining duplicate messages) from two to five days. This is in accordance with a new proposed standard for "AS2 Reliability". - When a DecryptionException is thrown, now include the encryption algorithm that was used to encrypt the message in the exception text. Now also display a hint showing the potential reason for the error, i.e., either an unsupported encryption algorithm was used or the incorrect encryption certificate for that trading relationship was used. Similarly, now display a hint when a SignatureException is thrown and the incorrect signing certificate was used. - Added an option to the mailbox wizard to allow the ability to email the mailbox's profile to the trading partner after the wizard has completed. - Added a "Close" button to the MDN display dialog for users with XWindows environments that strip the windows title bar. - When logging an inbound message (except for AS3 client GET actions), now log the host and mailbox alias as part of the result element. - When a decryption error occurs because the decryption key was not found (i.e., the message was encrypted with the wrong certificate), now include information in the exception text specifying the issuer and serial number of the expected certificate and the actual received certificate(s). Likewise, when the certificate is signed with an untrusted certificate (i.e., it is not in the certificate store), instead of always logging the signing certificate information in the debug log, the received signing certificate issuer and serial number is now logged as part of the exception text. - AS3 Only: Added support for trading AS3 messages with non-standard AS3 partners (e.g., Linens & Things). This feature is enabled using the "Use SMIME Over FTP Headers" Host Advanced property. - The usage of the Content-Type header is now optional. If the header is left blank when sending an AS2 or AS3 message, the Content-Type to be used in the message header is now derived from the type of message being sent. - Added new "Use Content Type For File Extension" advanced property. When this property is "true" and an incoming message does not contain a header defining the name of the file, the file name will be derived using the Message-ID with an appropriate extension that reflects the type of file being received (e.g., ".edi"). When this property is "false" and the file name needs to be derived, it is named in the form "'MessageID'.file". By default all new preconfigured AS2/AS3 hosts have this property set to "true" but all pre-existing hosts will have this property set to "false". - When running the Host Wizard to make changes and any changes have been made, now automatically apply those changes to the appropriate panels. Previously, the user was instructed to manually apply those changes after closing the Host Wizard. - When an asynchronous response is returned, a FILE element is no longer created in the log file. Instead, only a DETAIL element is logged with the message "Asynchronous acknowledgement successfully sent to 'trading partner name'". - AS2 Only: Added support for sending and receiving of multiple payloads within the same AS2 message. For inbound messages, content-type file extension naming is always enabled for these types of messages. Bug Fixes - Framework --------------------- Corrected problem in File Viewer where the file chooser dialog was incorrectly being displayed a second time after the file view had already been closed. - Fixed problem in the Email Profile panel where some of the components would not be displayed if any of the certificate alias names were longer than 30 characters. - Fixed problem where RemoteLexiComOutgoing class in API was truncating binary data. - VLTrader only: Fixed problem where outgoing database payload could not be sent if default database date format was not yyyy-mm-dd. - Fixed problem where web GUI on AIX would not start up. - VLTrader only: A previous fix made on 6/10/05 to allow a user to access a home directory on a local drive other than the one where the server was running was only working for AS3 users. This problem was corrected so that now both AS3 and FTP users may have a home directory on another local drive. NOTE: When VLTrader is running as a service and the home directory is specified on a drive other than where the service is running, a networked path MUST be used (as opposed to a drive letter). - Corrected a problem where the Email profile was signaling that the FTP or FTP/s ports were not configured properly when they actually were correctly configured. - Fixed problem where Tools>TCP/IP Port Usage was incorrectly reporting some HTTP/s sites as HTTP. - VLTrader only: Fixed problem where established EDI routing rules were being unexpectedly cleared when VLTrader was restarted. - Fixed problem where copies of outgoing files written to a sentbox folder on the AS/400 native file system were not being streamed properly. - Fixed problem in the "Email Profile" utility where the composed email message does not contain the correct certificate usages for the specified file names. Also corrected potential panel sizing problems for long labels by wrapping them across two lines. - Fixed problem where if manually copy a host file into the hosts/ directory, a duplicate copy of the host file would be created when Refresh was selected in the active hosts tree. - Fixed inefficiency problem introduced in version 2.3.3 causing transfer times to increase. - On the AS/400, if cannot set the timezone from the QUTCOFFSET, now log an exception and continue running rather than aborting the process. - Fixed problem where the File Chooser for the File>View function was not getting the correct path when the product's install directory is a mapped drive (e.g., AS/400 installations). - Fixed problem using Configure>Integration... where if permanently licensed to a platform, selection of a specific translator from the list would cause the interface to be suspended. - VLTrader only: Corrected problem in AS3 server when doing a LIST or NLST from the AS3 User Root Directory, a "/" was being returned instead of an empty list. - VLTrader only: Fixed problem when running FTP server where the user was unable to access its home directory when it was on a local drive other than the one where the server was running. Also corrected similar problems where when the user's home directory was networked path name. NOTE: When VLTrader is running as a service and the home directory is specified on a drive other than where the service is running, a networked path MUST be used (as opposed to a drive letter). - Fixed a problem where a NumberFormatException would be logged when attempting to use the Email Profile feature when there were multiple comma separated HTTP or FTP ports specified in the Listener. - Fixed problem where if a scheduled action failed to run because the networked outbox directory was inaccessible, the action would be disabled by the scheduler until user intervention. Now, when this failure occurs, the action is automatically restarted by the scheduler after the configured "Autosend Restart" minutes. - VLTrader only: In database transfer logging, fixed problem where occasionally completed transfers would be left with a status of in progress. - Fixed problem using Tools>Software Update... to apply a patch via the web GUI. - VLTrader only: Fixed problem when using transfer log database where not recognizing that a table column already exists. - GUI will now reflect host changes via the API. - Made the Email Profile Utility dialog scrollable so it can be resized without losing any of its components. - When running from commandline, fixed problem where if -l argument was not followed by a log filepath, VersaLex would fail silently even if the -m argument was specified. - When running VersaLex as a service/daemon, fixed problem in the VersaLex GUI when replacing a self-signed certificate with a CA-signed certificate. VersaLex was incorrectly clearing the private key attached to the certificate. - Fixed problem with translator integration where logged result events from an LCOPY command were too long for parsing. - Fixed problem when running as a Windows service and the Web browser service is licensed and enabled. If DOS-style path names cannot be determined, extra javaw processes were being repetitively launched. - In addition to fatal exceptions, fatal errors (e.g. java.lang.IllegalAccessError) are now logged. - On AIX web GUI, fixed problem where various file browse buttons, when clicked, would cause a ClassCastException. - LexiCom/AS400 only: Corrected a jt400 compatibility issue when attempting to either run the service natively or to run CL commands while a jt400.jar existed in the /LexiCom/lib directory. Additionally, if the jt400.jar is in the /LexiCom/lib directory and an update is applied, the jt400.jar is no longer removed. - VLTrader only: Fixed problem where VLTrader's web browser service resource path was defaulting to /LexiCom. - VLTrader only: Fixed problem in transfer logging feature that would not change the status from Receipt Pending when the asynchronous receipt timeout period expired. - If using the API in SERVER mode, fixed problem where action log events were missing the thread and command identifiers. - VLTrader only: Fixed problem in transfer logging feature where sent files waiting for a receipt were prematurely marked as completed. - Fixed problem where if VersaLex is licensed mailboxes per host, cloning an active host with more than half the mailboxes per host limit would fail. - LexiCom only: Fixed problem where email/execute on successful send/receive was not being performed. - Corrected the Sterling AS2 preconfigured host to properly encode entries in the password field. Previously the entries were being shown in clear text. Bug Fixes - FTP --------------- VLTrader only: If an FTP/s explicit (AUTH SSL) server port is enabled, FTP clients connecting into this port are no longer allowed to stay in clear-text without explicitly disabling protection using the CCC (Clear command channel) or PROT C (Clear data channel) commands. - Fixed problem where Password Automatic Update would throw a StringIndexOutOfBoundsException if the generated password was less than 10 characters. - Fixed problem where a relative destination direction in an FTP GET was not being recognized as a directory and GETs would fail with a java.io.FileNotFoundException (Access is Denied). - Fixed problem where if FTP PUT failed because of a timeout exception reading the server response, the exception was not being logged. - VLTrader only: Fixed problem where newly enabled implicit or explicit FTP server SSL ports would not be activated until the Local Listener was stopped and restarted. - VLTrader only: Fixed VLTrader CPU runaway condition which would occur when VLTrader lost connection to VLProxy while VLProxy was reverse proxying FTP to VLTrader. - Fixed problem introduced in version 2.3.3 where multiple binary receives would not append to the same file. - VLTrader only: When processing a PUT command, FTP control connection/login errors/exceptions are now captured in the file transfer log. - When both "Ignore Retrieve Error Code" and "Email/Execute On Successful Receive" advanced properties have been set, no longer mistakenly treat an ignored retrieve error code as a successful receive. - VLTrader only: Fixed an IndexOutOfBoundsException that occurred when the client attempted to use a wildcard (*) in either the LIST or NLST command. - VLTrader only: Corrected email profile validity checking when VLProxy reverse proxy is enabled to ignore the enablement of the listener ports since the external ports that will be used for the url will come from VLProxy. - When using an FTP proxy, fixed problem where :port was being included in the proxy command specifying the FTP host address. - VLTrader only: Fixed problem where the FTP server was timing out if SSL negotiations took longer than 10 seconds. - Fixed problem where if a data socket exception (e.g. connection refused) occurred on binary retrieve, the destination output file stream was being left open and immediate retries would fail. - VLTrader only: When an NLST command is received for an AS3 connection, now only allow output from the outbox/payload and outbox/mdn directories. Also added support to display the contents of the inbox when a LIST command is received. - VLTrader only: In the Ftp User Mailboxes, added the capability to disable (gray-out) the AS3 and Certificate tabs when the user is not an "AS3 User" since these tabs are not needed for generic FTP users. Bug Fixes - HTTP ---------------- Fixed problem where a NullPointerException was being thrown when the source file was being copied to a null reference. - Fixed problem where decoding a chunked response was throwing premature EOF and read timeout exceptions. Bug Fixes - AS2/AS3 ------------------- If the Listener's "Save Sent MDN" option is selected, now update the MDN result log element with the readable MDN record. Previously, the path to the raw sent MDN (that includes headers and signatures) was logged instead. This now matches what is logged in the mdn result element when an MDN is received. - Now trust a message that has been signed with a user certificate that is not self-signed and the CA certificate is not trusted. Previously the full certificate chain needed to be present in order for the message to be trusted. (Note that there is still a requirement that the user certificate be trusted.) - AS2 only: Corrected problem when sending multiple payload messages via the API where an inner header containing the names of the source files was being omitted causing the destination application to get strangely named files. - AS2 only: When reverse proxying is enabled and an asynchronous response is desired, now check if the appropriate proxy port has been enabled and throw an exception when the action is run. Previously when this condition occurred, the address in the "Receipt-Delivery-Option" MIME header of the sent message was being set to a null value. - AS3 only: Corrected a problem where when updating the host properties through the Wizard, the AS3 login password was not being saved when running under the Service. - AS3 only: Corrected a ClassCastException problem caused by attempting to cast an HTTP-specific class (for AS2) to an FTP-specific object (for AS3). - AS2 only: The Content-ID header used when creating multiple-payload messages now conforms to the standard (e.g., as described in RFC 2045) that states that a Content-ID is "syntactically identical to the 'Message-ID' header field". Previously this header's content contained the name of the file with that body part. - Now correctly log when the data was stored and when it was not stored as well as correctly stating it in the MDN text area. - When an inbound message fails (e.g., I/O errors, EOF errors, etc.) and the payload is not stored, now remove the messageID entry from duplicate checker database so that retransmissions of the same message do not cause a duplicate-document error. - When an unknown trading relationship occurs and there is an EOF error, the EOF error now takes precedence. Previously, the EOF error was not being reported. - Corrected problem where the Message Integrity Check calculation was being calculated incorrectly for messages from files with names greater than 34 characters. This was due to an internal "folding" of the Content-Disposition header that needed to be done for Signed and Signed/Encrypted messages. - Corrected problem where the MDN folder was being written to the subfolder of the API application that was calling it instead of the absolute VersaLex home path. This is only an issue if running VersaLex through the API. - Corrected problem where sending an unsigned/unencrypted message to an incorrect address or port would cause it to hang for an amount of time before logging a "Connection Refused" error when it should return immediately. - AS2-only: Fixed problem where the content-type was not being set correctly in the S/MIME header when sending unsigned/unencrypted files using the -MUL option through the streamable API. - AS2-only: When the message contains a multiple-document payload, the MDN will state that it is a multiple document payload and not display the file name. (Previously only the last file name was being displayed.) Additionally, when running through the streamable API, the file name was not being properly reported internally within the MDN so the file name was not being reported through the MDN viewer. - Fixed problems were not correctly auto-detecting Content-Type for outgoing messages. - AS2 only: Fixed problem where sending unsigned/unencrypted files using the -MUL option was causing a FileNotFoundException. - Now validate the existence of the "Disposition-Notification-To" S/MIME header when either the "Disposition-Notification-Options" or "ReceiptDelivery-Option" header is present and generate an error. This protects against a null MIC value being sent back to trading partners with nonconforming EDIINT applications. - Corrected a problem where when a duplicate document had been received, the server was not correctly generating a "Received-Content-MIC" header in the returned MDN. - AS2 only: Fixed problems where the message retransmission wasn't working properly when an asynchronous MDN had timed out and the number of "Async Resends" (set in the Listener) was greater than zero. Also enhanced the logging of the retransmission to include a response, a transfer rate and a result. - Corrected logic so the content-type extension for naming the file is never used when the file name is known even when the "Use Content Type For File Extension" advanced property is set. - Adjusted the content-type determination logic to use the file name's extension to guess the content-type of the file when all other means have been exhausted. - Added support for sending mpeg files. Previously, these types of files were erroring with a "No Data Content Handler" Exception when a send was attempted. - Corrected problem where large inbound files (such as zip files) were being named with the wrong extension (e.g., .'edi'). Also removed the restriction for application/XXX content-types having to match one of the specified content-types within the product. This restriction was causing a ParseException when the content-type was left blank at the mailbox level and a large file such as a zip file (with an application/zip content type) was being processed. - Corrected problem in the signature canonicalizer which could cause a SignatureException that includes the text "SignerInfo does not exist. Wrong Index;". - AS2 only: When sending a message that requests an asynchronous MDN, now throw an exception if VLProxy is not running when reverse proxy is enabled. This keeps a null address from being put in the Sender-Address and Receipt-Delivery-Option headers. - AS3 only: Fixed problem where AS3 MDNs could not be viewed from the AS3 Service panel. - Corrected a problem where the sent and received MDNs would sometimes get archived into the same zip file. - Corrected some NullPointerException problems. Specific cases were reported in AS2 when attempting to send certificates using the "Send Certificates" button. - AS2 only: Fixed problem where Content-Type set at mailbox level was being cleared on upgrades. - AS2 only: Added handling of "Read timed out" errors in the Listener. - AS2 only: Corrected a problem where the Listener would appear to just hang on a message when the AS2 trading relationship was unknown and an async MDN had been requested. - AS2 only: Corrected a DataContentHandler error that occurred when sending signed or signed/encrypted multiple payload messages that did not request a signed MDN. - AS2 only: Corrected email profile error checking that incorrectly blocked the dialog from appearing if both HTTP and HTTPs listening ports were not enabled. Also, when VLProxy reverse proxy is enabled, there is now no validity checking for the listener ports since the external ports that will be used for the url will come from VLProxy. - Fixed problem where if the AS2 Content-Type HTTP header has been set to a specific value at the host level, the software was accidentally clearing out the entire PUT syntax (method, resource, parameters, and headers). - Corrected signature integrity errors that manifested themselves as signature verification and message hash errors. - Now set the MDN file name in the result element for asynchronous MDNs. Previously this element was omitted. - Corrected bug where retries were not always being handled by the AS2 subsystem. The only retries that can be technically done are when there is a "Connection refused", "Connection time out" or a server response with an error greater than or equal to 500. In all other cases, retries will not be attempted and a detail message will be logged stating that it is an unrecoverable error. - Fixed problems where a "java.security.SignatureException: SignerInfo does not exist. Wrong index." error was being logged intermittently while processing the signature of a signed message. - AS2 only: Fixed problem where if using VLProxy for reverse proxying and the proxy was down, AS2 sends requesting asynchronous MDNs were being blocked. For autosends, this would cause the scheduler to halt the send action until interactively rerun. Instead, now let the send fail trying to forward proxy thru VLProxy. By default, autosend will retry 2 times and then restart over again in 30 minutes without user intervention. - AS3 only: Corrected problem where the AS3 client would hang indefinitely when sending a PASV command to a non PASV-enabled AS3 server. - Corrected a problem where a NullPointer exception was being thrown when receiving an unsigned/unencrypted message where the local file name has not been specified. - When the AS2-From or the AS3-From name is null, (i.e., not defined in the header) and an exception occurs while sending a response, no longer include it as part of the logged exception message. Bug Fixes - ebMS ---------------- Corrected email profile error checking that incorrectly blocked the dialog from appearing if both HTTP and HTTPs listening ports were not enabled. Also, when VLProxy reverse proxy is enabled, there is now no validity checking for the listener ports since the external ports that will be used for the url will come from VLProxy. **************************** * RELEASE 2.3 - 2005/03/01 * **************************** Major Enhancements - Framework ------------------------------ VLTrader only: Added the capability to generate a report from the VLStatc command-line using a filter XML file. Filter file can be created from the Transfer Report Filter dialog. The report can be saved to an HTML file or forwarded to e-mail recipients. - Added new printing functionality to all "Notes" tabs. Major Enhancements - FTP ------------------------ Added capability to use an HTTP proxy for FTP forward proxying. HTTP proxy must support tunneling via the CONNECT method. The Major Enhancements - AS2/AS3 ---------------------------- Added full-featured, Drummond certified AS3 client. - VLTrader only: Added full-featured, Drummond certified AS3 server. Major Enhancements - ebMS ------------------------- Added full-featured, Drummond certified ebXML Message Service handler. Enhancements - Framework ------------------------ VLTrader only: When removing an Ftp User (via the right-click "Remove..." menu item), the associated user directory (if empty) is also removed. If it is not empty, a prompt is displayed giving the option to retain or delete the user directory. - VLTrader only: When renaming an Ftp User mailbox alias, the associated user directory is now renamed as well. - For AIX, upgraded from JRE 1.3.0 to JRE 1.3.1. - Added ability to specify a range of values for the RMI secondary ports. In addition to the main RMI port (defaults to 1099), one additional RMI port is used by the service/daemon and each VersaLex client (GUI or commandline). If left unset, the secondary port range is dynamically allocated and unpredictable which is potentially a problem for installations accessed over a WAN and/or through a firewall. - The resource path for the Local Listener's web browser service is now allowed to be modified from its default value. - VLTrader only: Added serial number column to the Transfer Database. Multiple VLTraders can now write to the same database. NOTE: The VLSerial column must be added to any existing database tables. - VLTrader only: Added code to set "In Progress" transfers to "Interrupted" when VLTrader starts. - In View>Log..., added ability to refilter entries after log has been displayed. Just right-click anywhere in the display and select Filter... from the menu. - In the active host tree, added support for multiple tree selections. Only like tree items can be selected together. Multiple selections can be enabled/disabled, removed, scheduled, or (VLTrader only) moved as a group. In the web GUI, multiple selection mode can be enabled by selecting the Active tab and selecting Multiple in the pulldown menu. - In Configure>AS/400..., when enabling AS/400 network access, added [Validate Login] button for verifying address, user ID, and password entries. - If an I/O exception should occur during AS/400 network access, will now revalidate/recreate login before next attempted network access. - VLTrader only: Renamed transfer log columns "AS2MessageID" and "IsMDN" to more generic "MessageID" and "IsReceipt" names in order to also support AS3 and ebXML protocols. IMPORTANT: On upgrades, if database transfer logging was enabled prior to the upgrade, these columns in the VLTransfers table will need to renamed by the database administrator. This is because SQL does not provide a standard syntax for renaming table columns. - If a user deletes the VersaLex log file while VersaLex is running, VersaLex will now recover by building generic starting XML tags and continuing to log. Before, VersaLex logging would hang, eventually causing memory size problems. Enhancements - FTP ------------------ Added advanced property "Use External IP Address in PORT Request" which indicates for active (aka port) mode that the external rather than the local IP address should be included in data port requests to the FTP server. - VLTrader only: Added advanced property "Use External IP Address in PASV Response" for each FTP user which indicates for passive (aka pasv) mode that the external rather than the local IP address should be included in data port response to the FTP client. - Added advanced SSL Cipher property for setting specific cipher to be used for SSL key exchange, encryption, and hashing. - Added support for clearing the command channel after authentication. This is accomplished by using the CCC command within the QUOTE command. - Added the ability to use the %srcfile% (or alternately %sourcefile%) keyword in the PostPut command, e.g., RNFR %destfile%; RNTO %srcfile%. This useful when an FTP server requires the file to be given a temporary name until it is fully transferred. - Added ability to override the SecurityMode at the action level using the new "SET host.SecurityMode" command. (This is for secure FTP connections only.) - Added processing of new destination file naming tags for the PUT action, i.e., %sourcefile% or %srcfile%; %date%; %time% and %index%. - Added new advanced properties "Destination Filename Date Format" (defaults to "yyyyMMdd") and "Destination Filename Time Format" (defaults to "HHmmssSSS"). These properties may be used in conjunction with the %date% and %time% destination file naming tags and may be modified to change the format of the destination file as desired. - Added advanced FTP/s property "Explicit SSL Command" to control the command sent in "SSL AUTH" mode. The values are: AUTH SSL, AUTH TLS, AUTH TLS-C, and AUTH TLS-P. These control the default mode of the data channels created. - Added support of sending data in the data channel in either clear text mode (PROT C) or in encrypted mode (PROT P). This is accomplished by issuing the PROT command within the QUOTE command. - Added "IgnoreRetrieveErrorCode" advanced property which, when set, indicates an FTP server response code (after an FTP RETR request) that should not be treated as an error condition. Multiple error codes to be ignored can be separated by commas. This property is useful when the absence of a file on the server is not considered an error. CAUTION: If the server uses the same error code for multiple reasons, this property can potentially mask unknown error conditions. - Implemented usage of the %destfile% keyword for the PostPut command. - Added "OnlyRetrieveLastAvailableFile" advanced property which, when set to True, indicates a GET * should only retrieve the last available file from the server. - Added "DoNotSendZeroLengthFiles" advanced property which, when set to True, indicates a PUT should ignore zero-length files. If PUT command includes the -DEL option, the ignored zero-length file is also deleted. - VLTrader only: Modified FTP Server to show user's path as an absolute path with the root displayed as the user's home directory. Enhancements - HTTP ------------------- Added advanced SSL Cipher property for setting specific cipher to be used for SSL key exchange, encryption, and hashing. - For generic HTTP servers, added "Log Full Html Put Response" advanced property. Enhancements - AS2 ------------------ Added support for "EDI Consent" (i.e., application/edi-consent) content-type. - When displaying MDNs in the view, a new menu item is now available via a right-click mouse button for printing the selected MDN. This feature is only available when one row is selected and it is a non-Web GUI display. - Added new printing functionality to the MDN display panel for non-Web GUI displays. - Added support for using an alternate port number as part of the host address, i.e., address:port. This allows routing of asynchronous MDNs to an alternate port not used by the AS2 listener. - VLTrader only: Improved the speed of compressing a message. - Added support for sending and receiving base64-encoded content. - Made significant improvements in the processing of large signed files containing embedded line terminators (i.e., carriage returns, line feeds or a combination of the two). - Errored inf files are now moved to the MDN folder instead of being left in the unsent folder. At startup, the unsent folder is now cleared of any lingering inf files, i.e., all errored inf's are moved to the MDN folder and undetermined ones are deleted. Inf files for unexpired MDNs are left intact. - Added support for processing of large signedData messages. Previously, only multipart/signed messages (with a detached signature) were supported. Bug Fixes - Framework --------------------- VLTrader only: Fixed problem where a web GUI user viewing the Local Listener configuration would be prompted when another user made updates, but would still retain the old Local Listener configuration. - Fixed problem where if using VersaLex API in server mode, the web browser service would fail. - In Tools>Certificate Manager..., fixed problem where after generating a new user certificate, the new certificate was not being selected in the tree. - Fixed problem where web browser GUI on Netscape was displaying double vertical scrollbars in the messages pane. - Fixed problem where web browser GUI sessions were timing out after 1 hour of inactivity. - In addition to archiving after action completion, system log file automatic archiving can now also occur after an unsolicited request message (AS2, ebXML, etc.) has been processed. - When an NLST was done for generic (non-AS3) FTP users, previously both directories and files were being returned to the receiver which could cause the receiver to attempt a retrieve on a directory, which returns an error. Now, only files are returned to the receiver for the NLST command and directories are ignored. - Corrected a problem in Tools>Software Update... where if AS/400 download options had been enabled under a temporary key, but the subsequent permanent key did not include AS/400 licensing, the AS/400 download options could not be turned off. Now the AS/400 download options are ignored if AS/400 is not licensed. - Corrected problem where the unique file name was not being properly determined (causing file overwrites) when an AS400 connection had been lost. - Fixed problem where web browser GUI on Linux Netscape browser would timeout after only a few minutes of no usage. - Fixed problem when scheduling an action using the web browser interface where the first selected time was always duplicated. Also corrected problem where an update to a time was not retained if the time updated was not the currently selected row. - When using Tools>License>Move License, now warn the user to ensure that the new install location is not currently running (including the service/daemon). If the new location is left running while the license and data files are copied, the new information at best will not be recognized until the application is restarted and at worst could be overwritten with old values. - For the web GUI feature, added downloaded through the browser. Listener Web browser service and always present a "File Download" a file type (like .cer or .p12). option to always zip files being This can be turned on in the Local may be needed to force the browser to dialog rather than attempting to display - VLTrader only: Corrected a problem where the result element was sometimes not being logged. - Corrected problem where a CA certificate which was imported via a PKCS12 user certificate and private key was not considered trusted during SSL negotiations. - Fixed problem where a newly created proxy entry was not being added to the Forward Proxy pulldown list in the host |General| tab. - VLProxy only: Fixed problem where VLProxy was reporting a premature EOF when receiving the CA certificate key store (CKS) from VersaLex. - VLTrader only: Fixed problem where Tools>TCP/IP Port Usage... report was not listing the Local Listener FTP ports. - Fixed three problems in File>Import... First problem occurred if a host file was being replaced. VersaLex was incorrectly stating that two users just added the imported host and the import would fail. Second problem occurred when importing a local host file with a different alias. VersaLex was not enforcing the rule that only one local host can exist. And third problem is VLTrader only specific. If importing a Local FTP Users host file, FTP user home directories were not automatically being created. - Fixed problem where View>Log was not displaying Response element content and was not colorizing Detail, Request, and Response elements. - VLTrader only: Fixed problem where the XML transfer log could become corrupted if a long result text string was logged which included special XML characters (<, >, &, and "). These characters are escaped with longer strings (&lt;, &gt;, &apos;, and &quot;) in XML, which caused file offsets to be unpredictable. These special XML characters are now replaced with similar characters ({, }, +, and ') prior to transfer logging so that string expansion does not occur. 2004/10/8 - Fixed problem where emailOnFail and executeOnFail would throw NullPointerExceptions when executed from a "Local Ftp User" action. - Fixed problem where could not use wildcards to run multiple actions sequentially from commandline when VersaLex was running as a service. - Fixed problem where Certificate Manager was not always correctly chaining CA certificates. Also fixed problem where attempting to replace a user certificate would result in an "UNEXPECTED EXCEPTION: com.sun.rsajca.JSA_RCAPrivateKey". - Fixed problem where the AS2 mailboxes were not being updated when the certificates at the local host level had been modified. - Occasionally VersaLex cannot connect to the SMTP host when trying to send an email alert. If and when this occurs, now will reattempt to send email two more times. - Corrected problem in the Listener wizard where updated existing certificate aliases would not be retained when moving backward and then forward through the wizard panels. Bug Fixes - FTP --------------- VLTrader only: Added support for emailOnStatus and executeOnStatus to generic Ftp Users. - VLTrader only: The default "inbox" and "outbox/payload" directories are now created for generic Ftp Users. - VLTrader only: Fixed problem where the FTP Command Idle Timeout setting was not being enforced correctly. - VLTrader only: Corrected problem in the Ftp User Mailbox where when the user defines a root path different from the default, the value was not being displayed on restart of the product. - Corrected NBT mailbox in GXS ICS FTPs host to proxy to @ftp1.am.gxsics.com rather than @nbt.gegxs.com - VLTrader only: When the FTP server receives a secure transmission over TLS, the "PROT" and "PBSZ" commands may now be sent before the USER/PASS commands by an FTP client. - VLTrader only: Corrected problem where enabling/disabling a local FTP user via the tree pulldown menu was not affecting the status of the FTP user. - VLTrader only: Fixed the PROT command on the AUTH SSL ports. Previously the FTP Server would not accept the PROT C command. - Corrected address field in EDI*Express FTP preconfigured host. Bug Fixes - HTTP ---------------- Fixed problem where old (potentially expired) cookies were being retained from previous connections. Bug Fixes - AS2 --------------- In the signature canonicalizer, reworked the terminator and boundary search mechanisms from String searches to byte array searches to resolve signature verification errors found in the newer Linux versions (e.g., RedHat 9, SuSe 9.1, etc). - When retransmitting a message because of an error (e.g., timeout or connection refused), now reset the transfer counters so that each transfer rate is independent of all others and is more accurate. Previously, the transfer times and bytes counts were incrementing each time a retransmit was done. - Corrected problem with the MDN auto-archiving not always archiving MDNs. - Corrected problem in the AS2 Action where when there is more than one PUT command, it always uses the file name from the first PUT command. - Corrected problem where the errored transaction's .inf file was moved to the MDN directory instead of the MDN\received directory. - Corrected problem where if there were a number of MDNs (or .inf files) in the MDN folder, the Listener wouldn't start until all these files were moved to the received subfolder. - Corrected a problem where the Http/Https security setting was not being interpreted correctly when the "host.Secure" property was not being overridden at the action level. This problem only caused the incorrect setting of the "Recipient-Address" value in the AS2 header. It did not affect the successful sending of the message over SSL. - The generic error "Transfer Failed" now also contains a reason for the transfer failure. - VLTrader only: when an unknown trading partner relationship is found, now set the host and mailbox aliases to "Unknown" for the transfer report. Previously, these fields were being left blank and the status was being left "In Process". - Modified the text of the MDN to be more specific about the processing that was done to the received message, i.e., decrypted, signature verified, etc. Previously this text was the same for all successfully returned messages. - Corrected MDN display paging issues related to the web GUI. - Corrected potential issue on Unix platforms where the MDN files may not be sorted by the last modified date causing the wrong MDNs to be archived. - The MDN auto-archiving checking interval has been changed from one to five minutes. - When an IOException occurs, no attempt is made to return a synchronous MDN because there is no longer a connection back to the sender. - When a partial MDN is received and the entire signature is not received, now report this error. Previously an ArrayIndexOutOfBoundsException was being thrown. - If an exception was processed when an incoming message was received, the "Folded Headers" and "Store Sent Message" indicators were not being stored properly. - Added a fix to immediately send back the "200 OK" response for small signed messages that request an asynchronous response. Previously the HTTP connection was being held open until the MDN was returned. - Improved the method of canonicalizing large signed files which corrected a problem where sometimes the end MIME boundary could not be found. This change also improved the overall processing speed by about 50%. - Changed the method used for canonicalizing small signed messages to now use the improved canonicalizing method for large signed messages. Previously small signed messages were canonicalized a byte at a time. **************************** * RELEASE 2.2 - 2004/08/16 * **************************** Major Enhancements - Framework ------------------------------ For VLTrader, added full-featured FTP server. FTP usernames/passwords and directories can be configured. In addition to clear-text, both explicit and implicit SSL supported. - Added support for Red Hat Linux 9 running Java 1.4. - If licensed, added web browser user interface feature on Windows and Unix operating systems, which allows Microsoft Internet Explorer or Netscape Navigator to be used as the VersaLex user interface rather than the native GUI. Enhancements - Framework ------------------------ Changed the order of the panels that are displayed in the Listener Wizard to correspond to the order of panels in new Listener architecture and AS2 Service. - For API users, eliminated need for certain libraries in classpath depending on use. If using CLIENT_ONLY model, then HTTP client jar is not needed. If not using ILexiCom.show() method, then help jar is not needed. If using CLIENT_ONLY model and not using ILexiCom.getCertManager() method, then IAIK jars are not needed. - Modified the classpath for generation of AS/400 translator integration CL files. - Now display the product version in the email message generated by 'EmailOnFail' and 'EmailOnSuccess'. - Added full set of 2-hour increments to View>Log... From and To time pulldowns. Also added support for 24:00, which indicates midnight. - Local host properties can now be changed without having to stop and restart the listener. All modifications take effect immediately except for the advanced "Incoming Connection Backlog Size" property, which takes effect the next time the listener is restarted. - Now automatically activate a local listener at initial startup. - Added commandline -p option for modifying host/service/mailbox/action properties. - Added a progress bar to the Reading Report Data dialog of the Transfer Report when reading from the XML log. - Added warning for Translator Integration file generation if either VersaLex or the translator is not on a local drive. Translator integration may or may not function correctly when running in this mode. - Transfer Report enhancements: Sped up switching between days in GUI when results for multiple days are displayed. Sped up updating of transfers started the previous day (for transfers around midnight). Sped up delay in first transfer. Added 24:00 to the Transfer Report filter dialog so that transfers through midnight could be checked. Default "Include details" to OFF. Enhancements - FTP ------------------ Updated EDS ELIT FTPS host for the new data port range (was 2098020999; now 20900-20999). Enhancements - AS2 ------------------ Now log the IP address, port and headers of an incoming message to the debug log. - The wizard dialog now displays on top of the VersaLex product instead of being skewed to the top left corner of the window. - When validating an inbound message, added debug logging of the signing certificate's Subject, Issuer and Serial Number. Additionally, information about certificates in the certificate store is logged so that a quick comparison can be made to determine if the cert is missing from the certificate store. - When validating an inbound message, added debug logging for the signing certificate's Subject, Issuer and Serial Number. Additionally information about certificates in the certificate store is logged so that a quick comparison can be made to determine if the cert is missing and the correct cert has been received. - All AS2 panels (including the wizard panels) are now scrollable so that the entire panel contents is always viewable on all platforms. - Now load the MDN table as background thread (non-HTML only) so other GUI functions may be done at the same time. Previously, while the MDN table was initially loaded, other GUI functions were not usable and an hourglass would be displayed until the table load completed. On some platforms, particularly AS/400, this appeared as if the GUI was frozen. - Added paging support to the MDN table. MDN panel is done. Changed the way sizing of the - Now better handle incoming non-AS2 messages. The IP address of the sender is now reported and no MDN is returned and the message is handled based on the security settings define in the Local Listener. If the security setting is "SAVE", a "400 Bad Request" response is returned but nothing is saved. If "IGNORE", the sender gets a "200 OK" response. If "REJECT", no response is returned and the connection is closed. In all cases, the message is flagged as a warning so that if "Email on Fail" is enabled the user's mailbox isn't inadvertently flooded by a hacker. Bug Fixes - Framework --------------------- Fixed problem where newly unlicensed AS2-To/From relationships were still being accepted and passed thru by VLProxy reverse proxying. - Fixed problem where under heavy load, extra empty archive log files were being created. - Fixed problem where VLTrader transfer report was sometimes excluding the first day chosen in the filter. - Fixed problem where RMI GUI was not always showing the server's correct time if the server was in a different timezone. - Fixed problem in RMI GUI where renaming a host or mailbox with scheduled actions would cause the VersaLex service/daemon to disconnect the RMI GUI. - Fixed problem where if one user moves a host into a different folder, if another user had the host selected, he/she would be informed that the host was modified, but the host selection in the tree would be lost. - Fixed with transfer log report using a database where if not all records were selected, the "Reading report data..." never finished. - Fixed problem where if one GUI user stopped or started the schedule, the File>Stop/Start Schedule pulldown menu item was not being dynamically changed for other users. - Modified the Transfer Log to only log database connection errors once per database update. Modified transfer report display to display exceptions in a dialog to the user. - No longer double prompt with the same error when attempting to apply changes to a text value in the Advanced tab while the host or local host is running. - Fixed problem where clicking [Defaults] to reset to default host values when either registering or unregistering, requesting a permanent license, performing software update, or sending a support bundle would cause a warning to be logged indicating a "property does not exist". Also fixed problem where if a hint message was logged in any these functions, it was being repeated. - Fixed problem where "Next Scheduled" column in scheduler dialog did not clear when another user stopped the scheduler. - Fixed dates in Transfer Report which contained extra 00s. - Modified Transfer Report archiving to be threaded so as to not stop the VersaLex logging while archiving is active. - Fixed problem in RMI GUI where never able to kick off an install downloaded using Tools>Software Update on a relatively slow computer. - Fixed problem in RMI GUI where transfer report filter was only showing hosts (and their mailboxes) that had been previously selected in the tree. Bug Fixes - FTP --------------- Fixed problem where if using active mode and the active mode port range was changed after already connecting to FTP server, the new port range would not take effect until VersaLex was restarted. - For Covisint FTP server, now allow CWD return code to be either 200 or 250. - Fixed problem in ASCII mode when sending non-US ASCII characters. Characters in the decimal range 128 to 255 were being improperly encoded with extra characters. Bug Fixes - HTTP ---------------- Fixed problem where if authentication to the local proxy and authentication to the remote host were both needed, one or the other would fail to properly authenticate. Bug Fixes - AS2 --------------- Modified to not send AS2 relationships to VLProxy for unlicensed hosts or disabled hosts/mailboxes. - Corrected problems with the size of the MIC Algorithm drop-down list (on the AS2/Mailbox panel) and Country Code and Key Size drop-down lists on the Certificate Creation panel of the AS2 Listener wizard so that they are always fully viewable on all platforms. Previously, these fields were being cut off on some Unix platforms. - Now correctly handle NullPointerException when there are no MDNs to be loaded (viewable from the MDN tab in the Listener). - When reading an incoming message, added logic to read an EOF character twice and now throw an EOFException. Also, if there is nothing in the input stream, now wait in between reads for better CPU usage. - Corrected problem in the summary panel of the Host/Mailbox Wizard where the user name and password labels weren't being displayed on the same lines as their associated values. - Corrected problem where the recipient's signing and encryption certificates were not viewable on the Preconfigured tab. - If the listener parses the incoming message and determines that the method is not valid (i.e., it is not GET, PUT, POST, HEAD, TRACE, DELETE or OPTIONS), it now sets the method to "UNKNOWN". If garbage characters or an incomplete header are sent, the AS2 service will not receive the corrupted message from the Local Listener. ****************************** * RELEASE 2.1.7 - 2004/04/12 * ****************************** Major Enhancements - Framework ------------------------------ If licensed, added support for interfacing to Cleo's VLProxy product, which can be used to proxy inbound and/or outbound messages through a firewall. The HTTP Proxy panel includes a "Using VLProxy" flag and a "Enable Reverse Proxy" flag. VersaLex will dynamically pass configuration data to VLProxy and use VLProxy's external address for asynchronous AS2 MDNs. - For VLTrader only, added support for multiple, concurrent GUI users (up to a default maximum of 5). Major Enhancements - AS2 ------------------------ Added enhanced feature to be able to process and recognize multiple duplicate incoming messages (with the same messsage ID). Previously only the last message ID processed per host was used to determine duplicate messages. Also added the ability to disable this feature at the host level (on the Advanced panel) in the event that processing of a duplicate message is necessary. Enhancements - Framework ------------------------ On Windows, when a new release installer is downloaded using Tools>Software Update..., now check if user is running VersaLex off a remote drive. If so, user is warned that if VersaLex is to run as a service, it is highly recommended that it be installed at the local drive. - Added additional notes for forward and reverse proxies in the TCP/IP Port Usage Report. Added Reverse Proxy URLs to the listener if the VLProxy reverse proxy is enabled. - Log the VLProxy version number and reverse proxy URLs when received from VLProxy. - When VersaLex is running as a service/daemon, multiple concurrent commandline processes can now be run against the service/daemon. Previously, concurrent commandline processes would queue up and run oneby-one. - Added File>Start Schedule and File>Stop Schedule menu items. - If EmailOnFail and/or ExecuteOnFail are set at the system level (Configure>Options |Advanced|), now in addition to Action and Local Host errors/exceptions, these properties apply to framework errors/exceptions (like scheduling errors). - When an action fails to run via the scheduler (because it is invalid, incomplete, etc.) and has been deactivated in the schedule, now running the action manually will cause the action to be automatically reactivated. Previously, the scheduler had to be stopped and restarted for the action to be reactivated. - The VersaLex service/daemon will now run before VersaLex is licensed, but as with the VersaLex GUI, any active hosts are disabled. This is to allow for the VersaLex service/daemon to be set up and started prior to initial registration. Similarly, the VersaLex service/daemon will still run if the license has expired. - Improved randomness of public/private key pair during generation of user certificate. - For File>Export..., added ability to specify a wildcard when exporting additional files. - For File>Import..., [Yes to All] and [No to All] buttons now apply just to the current file category (hosts, configuration, CA certificates, or additional files) rather than for the entire import. - Now allow an expired CA certificate explicitly specified in the certificate chain to be trusted if the certificate is still a trusted CA certificate in Tools>Certificate Manager... (for GXS ICS FTPs). - Now just ignore a repeated server certificate in the certificate chain (for DaimlerChrysler HTTPs). - Added latest VeriSign "server certificate chaining" SSL certificate to the trusted store (certs/verserv.cer). - Tools>Certificate Manager... now colors certificates in the tree orange that will expire in 15 days or less. Enhancements - FTP ------------------ Added "OnlyRetrieveFirstAvailableFile" advanced property which, when set to True, indicates a GET * should only retrieve the first available file from the server. Enhancements - AS2 ------------------ Now report unknown-trading-relationship in the MDN disposition as an error. Previously it was being sent it back as a warning. (This allows email on fail to properly flag that the message was not processed as expected.) - Added more logging detail describing the action that is taken when an the unknown trading relationship occurs. - Added validation checking on the port values that are entered on the Local AS2 Listener's HTTP tab. Ports must be within the range 1-65535. - Updated the tool tips on the HTTP and HTTP fields with a better description. - When the connection is closed before an MDN is received (previously logged as a "Premature EOF Error"), now log the error "Error: Connection was closed before expected MDN could be received!". Also, now log this hint message: "This may occur if AS2 names or certificates at the remote host are configured incorrectly." which is usually the cause of this error, particularly for Wal-Mart suppliers. - When the Listener is stopped (via the GUI) and there are incoming messages currently being processed, a new pop-up dialog is displayed asking the user if he is sure that he wants to discard the incoming message data. A warning message is also logged. - Added more performance improvements when sending messages. - Now include headers in the received MDN which specify if the MDN was signed and if so, who signed it and the serial number of the certificate. - Determine operating system port backlog and write to the debug file. This information can be used for host-to-local connection issues. - In the certificate generation portion of the AS2 Listener Wizard, added a pull-down list of ISO countries to the "Country" field. - Added error logging (with the reason) when an SMTP message could not be sent successfully. - Now log a warning message when an unsolicited / unexpected asynchronous MDN is received. - Added several improvements to aid in enhanced performance of processing messages. - Added a new diagnostic message to signify we've completed sending the message and are waiting for the response. Bug Fixes - Framework --------------------- When using AS/400 remote access, fixed problem in the GUI where opening the first host panel was slow if the default inbox, outbox, sentbox, or rejectbox was an AS/400 directory. - When using Tools>Software Update..., VersaLex no longer incorrectly tries to pre-validate AS/400 source and destination command paths on Windows. - Now check that a file can be written to prior to importing. avoid corrupting the file's readonly flag. This is to - Fixed problem where repeated use of the active tree host/mailbox/action rename option would eventually cause the tree to become malformed. - Fixed problem where logged exception tracepath was not printing out correctly when running from the commandline. - When running commandline against a running VersaLex service/daemon, made change to ensure that the exit status from commandline is set to -1 if any error/exception was reported. - On Unix, clarified file chooser dialog prompts when selecting a folder. - Fixed API problem where saved hosts were not being marked as complete. - Fixed problem where VersaLex running over a Novell network could not update the locking file with OS information. - Added ability to execute-on-success or execute-on-fail on the AS/400. - No longer email/execute-on-fail when "No files found at remote source." - On Windows, corrected problem where LCOPY -DEL could potentially cause a null pointer exception. - On Unix, VersaLex will now shut down correctly when a new VersaLex install.bin is downloaded and started up through Tools>Software Update... - Fixed problem in action panel where the "Running:" information was not being cleared when the action stopped. - On Windows, now automatically fill in a '\' filename when a new drive is chosen. This is so that the root directory can be chosen without having to type '\'. - Fixed problem with the file overwrite prompt in File>Import... where the [No] and [No to All] selections were being treated as [Cancel]. Also added prompt to now either [Retry], [Continue], or [Cancel] if an exception occurs when trying to import one of the files. - Fixed problem where if VersaLex is running as a service/daemon and a permanent license is requested and applied, the order of the log messages was confusing. - Fixed problem where if the VersaLex GUI has been displayed through the API, a support bundle could not be created if one or more of the configuration files was chosen to be included. - Fixed problem where only directories would be selected when using the file chooser for additional files in File>Export... - Fixed problem on AIX where VersaLex believed the license was invalid when it was really valid. Bug Fixes - FTP --------------- Fixed problem where ASCII mode on Unix was potentially truncating ending carriage returns. Bug Fixes - AS2 --------------- Added a check for a decryption failure when an unknown trading relationship has occurred (which is caused by not being able to get the correct certificates when they have been overridden at the mailbox level). Previously this was failing silently and nothing was being stored in the LostAndFound directory. - Added NoClassDefFoundError error handling for the case where AS/400 network access is being used but the jt400.jar file does not exist. - Changed the Listener Wizard to restrict HTTP ports to the range 165535. Previously it allowed port 0 which is invalid. - When processing a synchronous MDN, added error handling when a timeout occurs. - When VersaLex server running on AS/400, now if remote GUI on Windows is used to interactively start an action, VersaLex no longer tries to prevalidate AS/400 source and destination command paths on Windows if AS/400 remote access has not been enabled. - Corrected a problem where the signature could not be verified if the "Use signing certificate" checkbox was selected and the signer's certificate chained to a CA certificate. - Fixed problem where after sending AS2 message, it should timeout waiting for a response, instead of erroring out at that point, two more attempts were being made to get the response. - If the incoming input stream is ended abruptly, an IndexOutOfBounds exception was being thrown. Now catch this exception and report the error as "Incoming message ended prematurely". - Increased the size of the Wizard panel so that all the contents of each pane is displayed completely on every platform. - Corrected problem in the AS2 Listener and Host Wizards where the "Browse" button wasn't being displayed properly on Unix platforms. - When receiving a certificate and the Use Default File Name is selected, now manually set that to false so that VersaLex properly names the certificate instead of using the default file name. Also, now manually set the option overwriting of duplicate file names to false do that multiple certificates for the same trading partner may be received. - When creating a new message ID, now use a 24-hour clock which makes the timestamp unique. (Previously message ID duplicates could occur because an AM/PM timestamp was incorrectly being used to create the message ID.) Also, additional checking and versioning of the message ID is now being done to guarantee against duplicate message IDs. - When an asynchronous timeout occurs and the cached file is moved to the mdnPath, now verify that the path exists before trying to move it and if it doesn't exist, create it first. - Modified the layout of the text fields in the AS2 Listener Wizard so they would look right on the Linux platform - Corrected problem where an encryption cert was being sent using the "Send Certificates" button because the process was always looking at the listener's "Use Signing Cert" checkbox even when the certs were being overridden at the mailbox level. - Corrected problem where the temp folder wasn't be created as it was needed. ****************************** * RELEASE 2.1.6 - 2003/12/19 * ****************************** Enhancements - Framework ------------------------ Instead of requiring the schedule to be manually restarted, now if an autosend action fails to send three times in a row, the action is set to start trying again automatically after 30 minutes. The actual number of retry attempts and the minutes before restarting can be modified in the Other tab of Configure>Options... - To avoid resending the same file, now if an autosend action successfully sends but fails to delete the sent file, the scheduler will not retry the action. - For AS/400 data file source and destinations, added checking of the absolute paths to catch syntax errors. This is to avoid cryptic "Request is not supported" exceptions being thrown. - Now default scheduling of automatic send actions back to round robin approach, which if a large number of actions are scheduled for autosend, eliminates CPU spiking. - Organized hosts by category and function in the preconfigured tree. - Since we are now forcing usage of Java version 1.3 on AS/400 platforms, added verification that the user has this version of Java installed before attempting to start or end VersaLex (using the STRLEXSVR and ENDLEXSVR CL commands) and for the VersaLex-generated CL-files. - If an exception occurs, the stack trace is now displayed before the result element. - Added new Transfer Log licensed feature. - In File>Export..., when exporting additional files, added ability to export entire directories. - Modified the AS/400 CL file creation to replace the CLASSPATH and to force the use of a version 1.3 JVM. - Added new Advanced options: Email On Successful Send; Email On Successful Receive; Execute On Successful Send and Execute On Successful Receive. These options may be specified at the system level, host level or local host level. - In the Other tab of Configure>Options..., added "Save Messages In Host Files" option, which defaults to on. Turning this off will eliminate action and local host messages from being saved in the host file each time the action/local host stops, which may help to eliminate cases where host files are being corrupted. - In Tools>Certificate Manager... View>Usage..., now color certificates orange that will expire in less than 15 days - Added configuration file selection table to Help>Support>Bundle... (selection defaults to on). - If re-installing VersaLex over a previous version, then do not overwrite the Logon information for the service. - If installed on an AS/400, when VersaLex is started on a PC through the shared IFS drive, now post a warning if the AS/400 VersaLex process is not currently running. - Added automated licensing capability to API. This includes registration, permanent licensing, and unregister. Also included is a method for checking the validity of and activating a license key file. - Added ability to view the User's Guide/Help without going through VersaLex. - Added All and None push buttons in the Export and Import User Files dialogs for individually controlling host file, configuration file, CA certificate file, and additional file selection. - Changed Configure>Translator to Configure>Integration. Allow this menu item for AS/400 even without integration so CL files can be generated to run the actions from the AS/400 command prompt. Enhancements - FTP ------------------ Added support for saving DIR and LS command results to a file. Enhancements - AS2 ------------------ - Added logic to intercept errors that occur when writing to the MDN file. If the file already exists (denoted by an "Access is Denied" message), now write a hint that the MDN may already exist due to a duplicate message and is read-only. - When using AS/400 remote access from the PC, the listener now recovers the AS/400 connection if it was lost. - Added new "Email Recipient When Unable To Send Async MDN" Advanced option to the AS2 Local Listener. When this setting is selected, the trading partner to whom the failed asynchronous MDN was intended will receive an email notification stating that the MDN could not be sent. The email address of the intended recipient is taken from the "From:" HTTP header of the original message, if it exists. If no email address is included in the header of the message, no email notification will be sent. - Warnings are now displayed for 15 days prior to the date when a certificate will be expiring. - In the Generic AS2 host, made the "Authenticate" tab on the at the Mailbox level visible. Previously, it was hidden. For pre-configured hosts, this tab is still hidden but users may make it visible by selecting the "Show Hidden Panels" option in the Configure->Options menu under the "Other" tab. - Disabled/unlicensed hosts/mailboxes are now ignored when processing incoming messages. If a AS2 name relationship match cannot be found for a licensed/enabled host/mailbox but the relationship is in the unlicensed or disabled host/mailbox, a hint message is now displayed after the "AS2 name relationship could not be found" message is displayed. - Added the '\','/',':','"','<','>' and '|' characters to the list of excluded characters when creating a default AS2 file name for incoming messages. Previously only the '*' and '?' characters were excluded. - Included MDN processing (with the appropriate disposition) for duplicate messages so that the sender is informed of the duplicate. Previously only the receiver got a warning that the message was a duplicate and that it was not stored. - Changed the message "AS2 Listener Starting on ports…" to "AS2 Listener Started on ports…" since the message isn't logged until after the listener is started. - Enhanced the error messages that are generated when an asynchronous MDN cannot be sent to include the trading partner's AS2 (particularly for "email on fail" messages). - Added an option to the Mailbox/Certificate panel to use an optional Signing Certificate to validate incoming messages. By default, all certificates in VersaLex's certificate store are used to validate that the signature of the message is from a trusted source. This option would be used to limit validation to only the trading partner's certificate. Bug Fixes - Framework --------------------- Fixed problem where even if a general or host sentbox directory had not been selected, but the Advanced property "Add Mailbox Alias Directory to Sentbox" was on, VersaLex was creating a sentbox directory named with just the mailbox alias off of the VersaLex home directory and copying sent files to it. Now, if a sentbox directory has not been established, regardless of the Advanced property setting, VersaLex will not create/use a sentbox. - Now catch and disallow an LCOPY -DEL where the source is the VersaLex home directory in the MSDOS-shortened format. - Fixed problem where Tools>Certificate Manager... View>Usage... was not always accurately showing host\mailbox CA certificate usage. Also fixed problem where CA certificate filenames were always lowercase. - If server SSL certificate is expired, but still trusted in Tools>Certificate Manager..., now allow SSL to succeed. - In Tools>Certificate Manager... View>Usage..., corrected certificate warning calculation to be 15 days. - Corrected problem where current, total mailbox count was being miscalculated when cloning a mailbox. - When cloning a host, fixed problem where license mailbox limit overflow was not caught until after VersaLex was subsequently stopped and restarted. - To avoid sending the same file twice, if a PUT -DEL command fails because the delete of the source file failed, the command will now not retry if 'Command Retries' is set. Also, if any file after the first file of a PUT command (no -DEL) fails, the command will also not retry. - Fixed problem where intermittent log file entries were missing thread numbers. Also, in case existing log file has missing thread numbers, fixed problem where View>Log... was erroring out with "Invalid Input" or "Error reading log file". - In File>Import..., when importing additional files, VersaLex will now create any missing directories. - Rather than just ignoring the extra variables, action commands with surplus parameters are now considered invalid. - No longer report '?' for host file name when unknown property found. - Removed determination of host name from an IP address in the TCP/IP Port Usage Report because VersaLex would occasionally crash with a JVM HotSpot error. - Fixed problem where VersaLex was miscalculating total number of active mailboxes when enforcing permanent license limits. - Fixed problem where hitting [Cancel] button while Tools>Scheduler... dialog was being generated would leave an empty dialog in the upper-left of the screen. - For AS/400 V4R5 remote access, no longer attempt to listen for AS/400 disconnect. Now just recover when determine that AS/400 has been disconnected. - Fixed problem where commandline exit status was not -1 if a framework exception or error occurred - Fixed problem where an action ending in a space could not be run via commandline. Also fixed problems running an action ending in a space via the RMI GUI. - Added "Finished reviewing licensing" message - Fixed problem where licensed mailbox limit check was temporarily allowing one additional mailbox - When using AS/400 remote access from a PC, now recover if connection from PC to AS/400 is lost. - Fixed problem importing a duplicate host while running as a service. - Fixed intermittent problem opening the Tools>Register... dialog. The workaround is to delete the hosts/support/License.xml file and restart VersaLex. - Fixed problem where VersaLex would not run because of an XML parse exception. The workaround is to delete the conf/top.xml file and restart VersaLex. - Now check that schedule and AS2 listener do not get restarted if -s service is rerequested. - Changed the AS/400 INSTLEX and UPDTLEX CL commands to ignore the case where QSH does not exist. Also, if the wrong version of the savf file has been installed, now signal an error and abort the installation instead of issuing a warning and continuing on with the installation anyway. (The error that is displayed is: "Error: VersaLex.savf version does not match the VersaLex installed version). - When running on the AS/400, fixed a problem where null pointer exception was being periodically thrown when trying to perform local I/O. - Fixed problem where if no other AS/400 I/O has yet occurred, trying to write an AS/400 inbound file would result in a null pointer exception. - Fixed problem when upgrading from an older version of VersaLex where the SMTP mail server settings was not being seamlessly moved over from the AS2 listener configuration to the overall system options configuration. - Fixed problem where a recursive logging condition could occur if the VersaLex client API has connection problems with the VersaLex RMI server. - In Tools>Software Update..., fixed problem where software update was inadvertently downloading the native VersaLex AS/400 software file (if selected to always be downloaded by user) when a new release was being downloaded. This would cause software update to error out after the download was completed. - Fixed aesthetic problem where screen was not being promptly repainted after a host was deleted. - Fixed problem where AS400 remote access was constantly signing on and off of the AS400 if any actions were scheduled for automatic send. - Fixed problem where archived log file name reported did not match actual name used. - Now that all actions scheduled for automatic send are not treated as a round robin, in "Next Scheduled" column of Tools>Scheduler..., no longer indicate that actions scheduled for automatic send are processed sequentially. Automatic send actions are treated as a group. - When the VersaLex service/daemon is trying to send log events to the RMI GUI, now on exception, retry three times rather than just once, and wait .25 seconds between tries. - When importing a user certificate and private key file separately in Tools>Certificate Manager..., now recognize when the private key file format is not a supported format rather than assuming the entered private key password was incorrect. - Fixed problem where the larger the current log file, the longer VersaLex would take to start up. - Modified VersaLex help so that jumping to a topic within a help page works correctly and the Forward and Back buttons work better. Default context-sensitive help to a larger window when displaying for the first time. Updated to OHJ version 4.2.5. - In the GUI, fixed a problem where a carriage return character could be inadvertently added into the middle of an action command. This would cause the command to look like one line, but be treated during execution as two lines. - In the action commands, do not consider blank lines containing spaces a syntax error. Bug Fixes - FTP --------------- - Fixed problem where the current mode was not being retained after a Type Binary or Type Ascii command - Fixed problem when receiving a file where intermittent buffer empty conditions were being treated as EOF conditions. - Now ignore blank lines at the beginning of an FTP server response. - Now log an appropriate exception when an FTP server response is incomplete (i.e. missing blank or dash after 3-digit response code). Bug Fixes - AS2 --------------- Corrected problem where the number of retries actually performed would be one more than the actual number that was desired. - Corrected a typo in AS2 Listener Wizard. In the "Configure Port Settings" description, HTTP/s was incorrectly misspelled as HHTP/s. - Modified the logging when sending the asynchronous MDNs so that the response is logged before attempting to send the MDN. This makes it clearer what the problem is if the MDN cannot be sent. - When using the "Set Address" button on the Listener panel or through the AS2 Listener Wizard, now check if the host address cannot be determined (e.g., if there is no internet connection) and pop up an error message. Previously, the error was not being caught and the cursor remained as an hour glass forever. - Corrected a problem where the 'temp' folder was not being properly created before processing a compressed message. - Now correctly verify the signatures of MDNs using only the recipient's signing certificate (if this feature has been enabled). - Added support for proxy firewalls and authentication when sending asynchronous MDNs. - Fixed problem where if possible values are specified for the AS2-From header at the host level, but the AS2-From value specified at the mailbox level does not match one of these values, the AS2 relationship could not be found when a message was received. - When processing an incoming message where the recipient's signer certificate has been specified in the mailbox, now use an absolute path to this file name. This corrects a problem on AS/400 platforms where a "File Not Found" error was being reported. - Changed the mouse-over text for the "Set Address" button on the Listener panel and the "Get" button on the first page of the AS2 Listener Wizard to include the statement that the System Admin should verify the address that is returned when this button is pressed. This address inadvertently could be the address of the desktop machine for non-Windows platforms that use Windows for the GUI. - When searching for the matching host for an first check that the matching host is enabled checking for multiple mailboxes with the same combination, now disregard disabled mailboxes incoming messages, now and licensed. Also, while AS2-To / AS2-From for that host. - Added logic to not print the "Success" message and properly release the session (which previously would hang indefinitely) if the asynchronous response could not be sent. - Fixed a problem where the AS2 Listener Wizard would report the error: "The following error occurred: null". This problem occurs when the Listener has been newly cloned. - Now disallow entering of either the * or the ? character in the Default File Name field on the Host/AS2 tab. These characters are interpreted as wildcards and cannot be used when receiving a single file. ******************************** * RELEASE 2.1.5.2 - 2003/09/12 * ******************************** Enhancements - Framework ------------------------ Added 'Only VersaLex Service Auto-Starts Tasks' option, which when set allows the VersaLex GUI to be displayed standalone without kicking off the schedule/local hosts set to automatically startup. - Changed active and preconfigured tress to have individual scroll panes. - Added certificate usage report (go to Tools>Certificate Manager... and then View>Usage...). This report details the user and CA certificates, expirations, and usage by each active host. - Added support for delete key in Tools>Certificate Manager... when a user or CA certificate is currently selected in the tree. Enhancements - AS2 ------------------ Added new functionality to resend that fails to make it to the remote failures were ignored.) This logic (on the Listener's Advanced tab) is an asynchronous acknowledgment (MDN) trading partner. (Previously send requires that "Async Resends" value set to a non-zero value. Bug Fixes - Framework --------------------- Fixed problem with API where if close VersaLex instance could not call startService() method again. - When using the RMI GUI, fixed problem importing a host file. - When using the RMI GUI, fixed problem where if cloned and activated a host and then immediately closed the GUI, the next time the GUI was opened, the host was missing. A work-around to this problem is to restart the VersaLex service/daemon. - Fixed problem where if permanent license email request was used in a previous version of the software and a translator had not be specified in the request, VersaLex would fail at startup with a null pointer exception. A work-around to this problem is to manually delete the conf/ReqPermKey.txt file. - Added synchronization of active input/output file lists to eliminate possibility of ArrayIndexOutOfBounds exceptions during actions. - Eliminated logging exception being printed at the beginning of VersaLex commandline on Unix. - With VersaLex commandline -m option, eliminated use of backspace character to update the active transfer message. Bug Fixes - FTP --------------- Added advanced property to be able to "Include Filename in Store Unique Command", as some FTP servers require a beginning filename with the STOU command. - Fixed problem where an inadvertent space in the either the PrePutCommand or PostPutCommand advanced option would cause the FTP session to send the space to the host and timeout waiting for a response from the host. Bug Fixes - AS2 --------------- Now catch and report errors that are generated when asynchronous MDNs cannot be sent. ****************************** * RELEASE 2.1.5 - 2003/09/03 * ****************************** Major Enhancements - Framework ------------------------------ Added ability within product to register and license. - Added context-sensitive help to many panels. Added Help -> Navigator to show the User's Guide Table of Contents. Major Enhancements - AS2 ------------------------- Added the ability to force signing and/or encryption for all inbound messages. - Added wizard for AS2-type hosts. This sets only the AS2-To/From, the Recipient's Encryption Certificate, and Username/Password for certain hosts. - Added new AS2 Wizard for configuring the AS2 Listener Enhancements - Framework ------------------------ Upgraded to Version 1.3.1_09 I18N of the Windows Java Virtual Machine. - For DaimlerChrysler EBMX HTTPs, added support for zipping and/or sending zipped files. - When a file within a directory specified in Configure>AS/400.. is being sent/received, now log at end of file path whether file is configured for Integrated File System or Native File System. - When an unknown host exception is logged, added 2nd hint which directs user to www.cleo.com/iplookup to determine the IP address. - When a connection exception is logged, added 2nd hint which points user to troubleshooting section of user's guide. - Added notes to the TCP/IP Port Usage Report mentioning the use of Cleo URLs for Registration/Licensing, Software Updates, and Technical Support Bundles. - In Tools>Certificate Manager..., the serial number for a certificate is now displayed in hexadecimal rather than decimal. - In Tools>Certificate Manager..., when generating a user certificate, a pulldown list of valid country codes is now offered. - When exporting user files and a secure host is selected, now warn user that corresponding user certificate must be exported/imported using Tools>Certificate Manager. - Now queue up updates from the VersaLex GUI to the running service/daemon so that the user is free to perform other updates while the service/daemon is applying the change. - Modified Trusted Link for Windows (TLW) logon scripts to not create sendfile.edi if there are no interchanges to send. This should prevent 0byte files being sent to the trading partner during a send+receive action. - Added context sensitive help the Certificate Manager. - When using File>Export... now prompt user for overwrite if chosen export zip file already exists. - Added the following pre-configured AS2 hosts: ICC.NET; ASDA; Lowes (test & prod); Target (test & prod); Winn-Dixie (test and prod). Updated the DeCa host with HTTP header values. - Updated the GXS certificate with a new one since the old one was expired. It has the same name as the original one so the changes will be seamless. - Allow colon (:) as a delimiter between E-mail addresses for 'E-mail on Fail'. - Default certificate manager screen to a 40/60 split. - Added ability to select the certificate signing algorithm (MD5 or SHA1) when generating user certificate through the API. - Now disable rather than ignore hosts which are not licensed. Also, now allow partial use of VersaLex while it is unlicensed, mainly to allow access to the Help menu. - Added computer name/IP waiting for to initial wait messages, if any. Also added RMI exception to initial waiting message, if any. - No longer allow "VersaLexc -s service" to run if there are any problems registering as the RMI server. - Like Windows event messages and AS/400 system operator messages, now log to Unix system log when running as a daemon and an unrecoverable error is encountered. - Now log AS/400 system operator message when VersaLex successfully starts as a service. - Updated GXS Dialer DLL (J_IBC_COM.DLL) to be compatible with future VersaLex features. Customers currently using the GXS dialer MUST upgrade this DLL in order for the dialer to work with this and future software updates. - When selecting the translator location, if a known sub-directory of the translator is selected, allow and correct the selection. - Display additional information when an invalid translator location is selected. - Improved the optimization of the ENDLEXSVR command (for the AS/400) so that it reflects the same level of optimization as the STRLEXSVR command. - Added error checking to the INSTLEX command (AS/400 Install CL) so that it continues the installation process if it cannot pre-delete jars in the IFS. - Interactive dialog for choosing for inbox/outbox/sentbox/rejectbox and other directories now refers to selection as "Directory name:" rather than "File name:". - Now support running SYSTEM commands on the AS/400 platform. - If right-click in the empty space of the active or preconfigured host tree, a new Refresh option can be used to reread the hosts/ or hosts/preconfigured/ directories for new host files. - Added support for the RMI property "java.rmi.server.hostname", which can be used to override the use of the default name or IP address of the computer for RMI registration. - Added ability to export/import host/certs/conf/data files. This includes File>Export and File>Import GUI dialogs as well as commandline import options. Also added commandline import option for import PKCS12 user certificate and private key file. This option prompts for a user alias and private key password. - When using the API, string-format of message and date of messsage now returned with XML message - When VersaLex is running continuously as a Windows service or Unix daemon or AS/400 process, when the VersaLex GUI is subsequently displayed, it is now a second VersaLex process. This has a number of benefits, including: On Windows, the VersaLex GUI will now work thru Windows Terminal Services, the VersaLex service can now run under a different account than the default local system account. On Unix, the VersaLex GUI can now be displayed through xterm windows without having to hardcode the xterm IP address, the VersaLex daemon will no longer be killed when the XWindows server is closed. On AS/400, the VersaLex GUI on the mapped Windows PC is now the full GUI rather than just a message viewer. Having the GUI run as a second process is the default option except on Windows 98, where Windows services are not supported. To revert back to the VersaLex GUI not creating a second process, go to the Other tab in Configure>Options... and turn on "Enable VersaLex Server as GUI". - When running as a Windows service or AS/400 process, now log critical startup events to the Windows Event Log. Likewise, when running as an AS/400 process, now log critical startup events to the system log. - Added ability to override the default number of contiguous retries of failed scheduler autosend of a file. This can be overridden in the Other tab of Configure>Options... The default number of autosend retries is 2. - Allow move license feature on Windows to move between computers if the remote system is a mapped drive. - Store the VersaLex version along with date/time in the TLW merge file. - When downloading the AS/400 network access software file 'jt400.jar' during Tools>Software Update..., will now show the corresponding AS/400 supported versions for confirmation. - Added LREPLACE to list of available commands. LREPLACE replaces byte strings in local files. - Modified Translator Integration for TLW so that VersaLex no longer needs to be installed into the TLW work folder. Enhancements - FTP ------------------ Added warning when sending zero-length file. - Removed RSA encryption libraries from FTP/s. VersaLex now only uses IAIK libraries. With this change, the "Use IAIK" and "Disable TLS" Advanced options are no longer needed. - Modified the Sterling Commerce FTP pre-configured host to use the new PostPutCommand option for moving file to the commit directory. - Like PrePutCommand, added PostPutCommand property which can specify FTP commands to be executed after a successful PUT command. Enhancements - AS2 ------------------ Allow the ability to remove all references to an internal host address (or domain name) from the messageID header through a new "Advanced" feature on the Local AS2 Listener panel. - Removed all references to domain names from header and text fields within the MDN. This isn't necessary. - Added tool-tip (mouseover) text to all the fields on the AS2 panel at the mailbox level. - Added graceful handling of errors occurring while attempting to email on fail. We also now include a stack trace with a reason for the error. - Added support to determine if the incoming message from the remote trading partner is a duplicate of the last message that was received. If so, the incoming message is not stored and a warning is logged but a successful MDN is returned. (Also, raw received data and headers are not stored.) This only works if the current messageID matches the last messageID that has been received and no other messageID's have been received in between. - Added a new counter to the AS2 and HTTP tabs of the Listener which displays the number of incoming AS2 messages (next to the Stop button). This display is only visible if there are incoming messages. - Added detailed logging (based on the AS2 Listener's "Log Received Message Details" property) as to whether the received MDN was signed or unsigned. - Added a unique thread number to incoming AS2 Listener messages so that it is now possible to distinguish between simultaneous messages coming in from different trading partners. - For the pre-configured AS2 hosts, the overridden certificate information is no longer displayed. - Whenever any of the certificate parameters (i.e., signing and encryption aliases or passwords) are changed in the listener, the overridden certificate parameters are now also updated. - For the "Add Content-Type Directory to Inbox" feature, included a popup warning message to alert the user that translator integration will not work unless the EDIFACT and X12 directories are left blank. - Added the ability for the user to be able to obtain his external IP address through a new "Set Address" button on the listener panel - Added validation checking for the overridden certificate alias and password fields being left blank (but selected). Now a DecryptionFailureException is thrown and a better indication of the error is given to the user. Previously, an IOException was being thrown and there was little way of knowing the reason for the error. - Added logic to return a "Welcome to Cleo AS2." message when a trading partner attempts to hit the listener through a browser. The listener now logs a warning. - Improved the speed of compressing a file - Added the # character to the list of characters that should be stripped out of the messageID string before it is used for file name creation. - Added graceful handling of duplicate MDN archive entries (which will only occur if the user manually copies previously archived MDNs back into the mdn\sent or mdn\received directory). Now, duplicate entry errors are ignored and the duplicate file is deleted from the directory. - Added the ability to route incoming messages to a specified subfolder based on the content type of the message. - Enhanced the "Forward MDN to Email Recipient" feature so that the signature is never forwarded as part of the message to the email recipient. The signature is first verified and then stripped off. Since the signature could be binary and email systems require base64 encoding, email systems (e.g., MS Outlook) reported "Digital ID Unknown" errors with messages containing binary signatures. - When an error has been received in the synchronous response stream and an MDN has not really been received, the "MDN" is no longer forwarded to an email recipient if that feature has been selected. - Added trimming of the mdn field (in the Local AS2 Listener panel) before creating the directory. This guards against the creation of directories with embedded spaces which causes multiple directories to be created on Unix platforms. - Modified the labels for the MDN directory chooser to refer to directory names rather than file names. - VersaLex no longer forces the user to enter a value in the Subject field (in the Mailbox/HTTP tab) before running an Action. Some servers (such as Cyclone) use the "Subject" field for routing messages and sometimes need this field to be blank. - Added setting of the received Message-ID (messageID=) parameter and the sent (raw) MDN file name parameter (mdn=) log's result element. - Changed the wording of the error message when "multiply" defined AS2-To and AS2-From names are specified to so that multiply is removed and the actual number of definitions is shown. - Added informational logging of the listener port(s) that are started - Added support for quoted-printable content-transfer-encoding when parsing large signed and/or encrypted messages. Bug Fixes - Framework --------------------- Added text to the error dialog if an error occurs reading the log file when trying to display the log. - When VersaLex running as a service/daemon, fixed problem where AS2 listener could not successfully lookup AS2 relationships at startup. - If a .exe or .zip file exists in the certs/ directory, VersaLex will now ignore the file rather thn try to determine if it is a valid certificate file. (Previously, when a large .exe or .zip file was placed in the certs/ directory, VersaLex could potentially fail to startup.) - The scheduler will no longer inherently create an increasing startup delay as more actions are scheduled to run whenever they have a file to send. - Import user files will no longer try to automatically clone an AS2 listener when an AS2 host is imported. - Fixed problem where service/daemon was reporting that AS2 listener needed to be active when it already was. - Now catch invalid AS/400 remote access (invalid host, user ID, or password) and no longer automatically store to the local drive instead. - [Defaults] button now works in software update dialog. - Corrected parsing commands in the Actions that contain spaces with double quotes("). Previously, multiple spaces within quoted commands were reduced to one space. - For AS/400, when generating a unique filename on the native file system (NFS), now make sure filename is valid (10.3 format with .MBR extension). - For the API, now throw an exception rather than log an exception when an action cannot be started. - In RMI GUI, fixed problem where if rename a VersaLex host which has actions scheduled, the GUI would report host element not found errors. - Fixed problem where if VersaLex running as a service/daemon, the VersaLex GUI could not be displayed if the LAN was disconnected. - When XML log file archived, fixed problem where active actions and listener thread names were not being carried over to the new log file. - Removed action pending changes check by scheduler. This check was sometimes causing a hung dialog condition and is no longer applicable with the separate service and GUI processes. - Fixed problem when Enter is pressed in the Log viewer "Find" dialog. - Now strip out any non-printable ASCII characters from action commands prior to running. - Now check AS/400 access with each file access. If AS/400 has been previously disconnected, will now automatically reconnect. - Host renamed through GUI attached to VersaLex service/daemon no longer leaves old host in memory. - Active transfer messages printed during VersaLex command line now use %= rather than percentage= header to avoid wrapping past 80 characters. - File matching for action PUT commands is no longer case sensitive on Windows and AS/400 operating systems. - Fixed problem where Tools>TCP/IP Port Usage report was not replacing -1 with default port numbers for AS2 and FTP hosts. Also fixed problem where the saved HTML TCP/IP Port Usage report did not properly handle special HTML characters (>, <, and &) in the content. - Fixed problem where VersaLex command line errored out logging a message at the end of processing. - For an action which is scheduled to run automatically when there is a file to copy (LCOPY -DEL -APE * recvfile.edi), the destination of the copy (recvfile.edi) will no longer cause the action to kick off when a file of that name exists. - Removed small window of opportunity for two VersaLex GUIs to be accidentally displayed at the same time. - For PUT -DEL commands where, after a successful send, the delete of the source file fails, now verify that in fact the delete failed and reattempt to delete source file many times. - Now consume standard output and standard error from SYSTEM and ExecuteOnFail commands so that output buffers do not fill up and cause the command to hang. - When generating a user certificate, now verify that country specified is a valid 2-character IS0 3166 country code. - When exiting the VersaLex GUI, now make sure the Active host tab is selected if any unapplied changes are found. - In addition to null characters, now remove newline characters causing XML format errors. - Fixed problem where if the QUTCOFFSET was changed by something other than one hour, the AS/400 had to be IPLed before VersaLex could be restarted. - Added unique filename reservations so that two files of the same name could not be chosen concurrently. - Fixed problem where if QUTCOFFSET (timezone offset) is changed on the AS/400 by more than one hour, VersaLex would complain that the license had been copied. VersaLex should be stopped on the AS/400 before the QUTCOFFSET is changed. After the QUTCOFFSET is changed, VersaLex must be restarted on the AS/400 before it can be run on Windows over the IFS. - Fixed EDI*Express host to remove extra space in the Server Address field. - Override user selections for Add Mailbox Alias To Inbox/Outbox to work with Trusted Link for Windows integration. - Fixed DaimlerChrysler host loopback action to get the test.edi file from the correct directory. - VersaLexc -s service,stop command line option now only runs cleanly when VersaLexc -s service is already running. Otherwise, it throws an exception that the VersaLex service/daemon is not running. - Fixed problem where could not Clone and Activate a host and then copy the unmodified host back to the preconfigured directory. - Fixed problem where VersaLex was allowing more than one AS2 listener to be active. - Fixed problem where running an action after changing the action and renaming a host or mailbox without first applying the changes would cause lookup problems. - Fixed problem where host file could be corrupted if host response includes a null (x0) character. - For the special deals, fixed problem where an AS2 listener host could not be cloned and activated. - On the AS/400, fixed problem where the AS2 listener host was being lost when VersaLex shutdown. - For deletion of a sent file (PUT -DEL), if delete should fail, now automatically retry delete multiple times after a slight delay before marking delete as failed. - Fixed problem where VersaLex GUI process would report a null pointer exception when trying to determine if the VersaLex scheduler is running before it had actually been created by the VersaLex service. - Fixed problem where VersaLex GUI process could not clone and activate a host if the GUI process was running of a different drive than the VersaLex service. - In the VersaLex scheduler, now only recalculate the action start time if necessary. - Changed sequence of shutdown events to avoid interrupted I/O exception while updating host files. - To improve user flow, In Tools>Software Update..., changed the [Extra...] button to [Update Options...] and moved button before [Check for Update]. - Fixed problem where the GXS IBC dialer username being logged was outdated. - During Tools>Software Update..., now hang up modem immediately when I/O complete, rather than sometimes waiting for user response. - When using the API, removed all remaining use of interactive dialogs for different licensing scenarios. - While VersaLex is running as a "service", first Clone and Activate of an AS2 host will now also clone and activate an AS2 listener local host. - Fixed problem where host aliases < 3 characters were not supported. - No longer assume that deletion of a sent file (PUT -DEL) is succeeding. Now check that deletion is successful and log error result if not. - Fixed a problem with Emanio Translator integration for older Windows versions. Uses %1 instead of %* in the batch files. - Now log error message at startup if AS/400 configuration information exists, but the AS/400 is not licensed. In this situation, also now allow user to go into Configured>AS/400 to clear config. - Added [Help] button to initial "Waiting for existing VersaLex process(es) to complete" dialog. The help text describes the different scenarios when this wait is necessary. - Now log an exception in addition to the note that "Registered remote log listener no longer accessible; disconnected." when it is a general connect exception. - Corrected GXS ICS AS2 Server Address. - Added receive and send+receive actions to GXS ICS AS2. - Modified EDS ELIT host to transfer files in ASCII mode for the EDI mailbox. - Modified GM via EDS ELIT host to transfer files in ASCII mode. - When using the API on AS/400, now by default, VersaLex does not apply the QUTCOFFSET system value to the default timezone. Bug Fixes - FTP --------------- Allow for double quotes(") to be after the CD command so that directories containing spaces will work correctly. - Fixed a problem where a GET with a directory name in the source using a backslash(\) and no destination specified would cause an error saving the file on the local computer. - Clarified exception text when initial connection times out. - Fixed problem where explicit ssl in active mode would get a read timed out when trying to open a data port if the advanced property "Use IAIK" were set on. - Fixed small memory leak - Modified ASCII mode transfers to no longer chunk by lines. Large one line files were being read entirely into memory. Now 8K chunks are read and written. Bug Fixes - HTTP ---------------- Fixed problem in HTTP mailbox authenticate panel where if Basic authentication is selected, the realm, username, and password were not being enabled. Bug Fixes - AS2 --------------- Added logic to always convert certificate aliases that override the listener certs on the Mailbox/Certificates panel to upper case when they are typed in manually, i.e., not browsed. - Added logic to always convert certificate aliases (on the AS2 Listener panel) to upper case when they are typed in manually, i.e., not browsed. - Added sanity checking (and appropriate reporting) when processing a trading partner's synchronous response to handle unexpected responses, particularly where an MDN is expected and one is not returned. - Corrected a problem where the encryption certificate field was not being checked for KeyUsage when the same certificate was being used for both signing and encryption. In that case, it was possible to set an encryption certificate that was not intended to be used for encryption. - Added check for existence of the ExtendedIOException class (which is in jt400.jar) before checking that an exception is of that type. This corrects problems where NoClassDefFoundError exceptions are thrown when the jt400.jar file is not in the classpath. - Corrected a problem where mixed case content types were improperly interpreted when parsing the message. - Corrected a problem where the SSL server certificate's password was being incorrectly populated on the Listener's HTTP panel. - Corrected an issue where populating the MDN table while the Listener was selected caused a lag in the display. - Corrected problem where temporary work files for large encrypted messages would remain in the temp folder if a signature or decryption error occurred. Now these files are always properly removed. - Now gracefully handle instances where either the AS2-To or the AS2-From header exists but the contents of the header is empty, i.e., not null. - Corrected problem where MDNs could no longer be sorted on the MDN panel after an auto-archive of the MDN folder had been done. - Corrected problem where large signed messages with a signature verification error remained in the temp folder after the error occurred and was never deleted. - Added a "Decryption Key Not Found" check. - Added a check for the scenario where there are no trusted certs in the cert store. Previously in this case, certificates are trusted when they shouldn't be. - Added checking of a null header value when processing inbound messages in order to circumvent possible null pointer exceptions. ****************************** * RELEASE 2.1.4 - 2003/04/18 * ****************************** Enhancements - Framework ------------------------ Updated GXS host URLs to match changes made at GXS. - Added new preconfigured hosts: BMW Manufacturing, ECXpress, IBM IE FTP (via AT&T dial-up). - Added rename commands to comments in the Sterling FTP host since they are needed often. - Modified the VersaLexd daemon script to include a umask line to set default permissions. This is currently commented out and can be uncommented/modified by those who need it. - Added prompts during Configure Translator to warn about generating files for hosts not ready or enabled. - Added prompts during Configure Translator to warn about files being deleted if un-checking an action for which files have already been generated. - Added CHASE mailbox to DaimlerChrysler pre-configured host. - Added Tie Commerce Edge integration. - In addition to PUT -DEL commands, LCOPY -DEL commands are now supported by the VersaLex scheduler autosend feature. If both commands are found in the same action, the first type found will control autosend. - Added ability to save the displayed release/patch notes to a file during Tools>Software Update... - Added hint for when an EOFException, which occurs when the host does not send a complete response. - Added ability to copy configuration files (hosts/, certs/, conf/, and data/) when moving a license. Enhancements - HTTP ------------------- Added ability to have variable HTTP parameters with no name - Added ability to automatically repeat an HTTP header value in the URL resource. Enhancements - AS2 ------------------ Received MDNs which were previously stored in the MDN "root" directory will automatically be copied to the "received" subdirectory the first time VersaLex starts up. - The default MDN "root" directory is now AS2\mdn (under the VersaLex home directory). Previously the default was mdn. This change will only affect new installations. Existing users who update to this version will not be affected. - Removed the "Delete" option from the MDN Viewer which is found on the MDN tab of the Local AS2 Listener. - Added a new property "Archive Automatically After Maximum MDNs" to the Listener's Advanced panel so that MDNs (in the sent or received subdirectories) are automatically archived (in an archive subdirectory) after a specified number of MDNs are stored. The default value is 500. - Added a new property "Archive File Maximum Size" to the Listener's Advanced panel. A new mdn.zip file will be created after the size of the current file is reached. The default value is 0.25 mbytes. - Added "Save Sent MDNs" to the Advanced panel of the Local AS2 Listener. If this option is selected, sent MDNs will be stored in a "sent" subdirectory under the specified MDN directory. - Moved all received MDNs to a "received" subdirectory under the specified MDN directory. Added the option for the user to be able to save a copy of all sent MDNs. This option is selectable under the "Advanced" tab on the Listener panel. Bug Fixes - Framework --------------------- Change the slash used between the host, mailbox, and action to a / instead of a \ for UNIX system during translator file generation. - Now automatically create host inbox and outbox directories during "Clone and Activate". - Fixed problem where repeated use of API in CLIENT_ONLY mode would cause duplicate log messages. - WAIT commands can now be interrupted by user. - For TLW, change the name of the Network ID to LX### and also the internal script name (LX###.SCR). Save the number used for the Network ID number so the same number can be used the next time the script is generated. - Changed TLW script generation to put a ? before a / as opposed to removing the character. - Fixed problem with certificate manager where inability to complete a certificate chain would keep a secure FTP/S or HTTP/S action from running. - Fixed problem with API where using CLIENT_ONLY option only works once. - Fixed problem where XML <Results> log element is missing command information for non-AS2 transfers. - Similar to LCOPY -DEL and PUT -DEL, fixed problem where wild carded LDELETE could be used to blindly delete files from the VersaLex home directory. - Modified the VersaLex XML logging so that TLW recognizes when an AS2 send is successful. - Modified the DaimlerChrysler pre-configured host to have two CHASE actions instead of a CHASE mailbox. This is because TLW can only associate one trading partner per TLW script. - Modified the TLW logon script file extension to be mrg instead of scr so Windows won't think it is a screen saver. - Modified the TLW login script to use LEXTLW.LOG instead of LEXFTP.LOG to avoid confusion for non-FTP hosts. - Fixed problem where a ? was not put before the + character in the send+receive action for a TLW script. - Fixed problem where wild carded LCOPY -DEL or PUT -DEL could still be used to blindly delete files from the VersaLex home directory if the inbox or outbox was set to ".\". - Shortened TLW Logon ID to 5 characters in the TLW script generation. Longer Logon IDs would cause the TLW scheduler not to work correctly. - Fixed problem where wild carded LCOPY -DEL or PUT -DEL could be used to blindly delete files from the VersaLex home directory. - After downloading the AS400.zip file through Tools>Software Update, VersaLex will now unzip the file to the local hard drive before copying the file to the mapped IFS drive. This reduces the amount of time by about 1/2. - Fixed problem with having / in certain places in the TLW logon scripts. It would cause TLW to give the error "Unable to create document in document database". - If VersaLex is initially started without a license_key.txt file, the licensing popup no longer offers the option for requesting a permanent key. - Fixed a problem with AS2 receive actions where the file would not be pulled into TLW. The TLW SCR file for AS2 hosts now parse for LCOPY as opposed to GET. - TLW does not allow `-characters except as end-of-line markers. VersaLex now checks to make sure that character is not in the host, mailbox, or action name when generating translator files for TLW. - Fixed problem where an invalid host inbox/outbox/sentbox was causing problems when cloning or modifying a host/mailbox/action. - If using dial-up connection for Tools>Software Update..., modem is now disconnected right after download is complete rather than after user selects the next step. - Fixed problem where undeleted "schedule.lck" file was causing a null pointer exception. - Fixed problem where default System Debug File setting of APPEND was not creating the debug file. - When selecting a directory in the software update and move license features, now labeled as "Directory name" rather than "File name" - Fixed problem where could not configure VersaLex RMI port to be anything other than 1099, the default. - Fixed problem with replace1.exe which would not replace characters with ordinal value > 127. Bug Fixes - FTP --------------- Fixed display problem where FTP active mode high port field would not be visible when the panel size was decreased. - Fixed problem where repeated execution of FTP/s actions was causing a memory leak - Fixed problem where could not retrieve files from ge1.ecxpress.com.au. Bug Fixes - AS2 ---------------- Added better interrupt handling so that each AS2 Listener thread ends quicker when VersaLex is shut down. This corrects a problem where listener threads stayed running after VersaLex was stopped. - Fixed problem where the Listener would appear to be running (status would be set to Green) even though an error actually occurred which blocked it from starting. - Added stripping of the file name from a file name string received through an internal "Content-Disposition" header. This string could potentially contain a pathname that is not legal is the user's operating environment. ****************************** * RELEASE 2.1.3 - 2003/03/11 * ****************************** Enhancements - Framework ------------------------ Added ability to set AS/400 coded character set ID (CCSID) when writing IFS files. - Added ability to retrieve VersaLex license information through the API. - Added a confirmation prompt to translator file generation to verify the overwriting of translator files. - Create a "Do not edit" message in the translator script files generated. - Modified the pre-configured hosts to default a inbox/outbox based on the host name. - If the translator script output directory does not exist, create this directory. Bug Fixes - Framework --------------------- If request permanent key email gets exception, now always put up message box - If license problem encountered when running on AS/400, fixed problem where was trying to show message box. - Changed LCOPY command to issue warning rather than success when no file(s) were found to copy - Delete TLW.CFG before creating it for Trusted Link for Windows integration. This keeps Trusted Link from running the wrong configuration if the file could not be created. - Added index number to Trusted Link for Windows internal script name (VersaLex#.scr) to make them unique. This fixes a problem where an action from a different host (from the last merged script) could be run. Bug Fixes - FTP --------------- No longer issue QUIT command at end of FTP session if encountered exception or user interrupt Bug Fixes - AS2 ---------------- Corrected a problem where Message Integrity Check mismatches would occur when file names longer than 38 characters were used to transport AS2 messages. This was mainly an issue with Wal-Mart customers who would loop-back the same message as they received while testing with them. (The file names of messages received from Wal-Mart can be excessively long.) - Corrected a problem where the MDN could never be forwarded to email because it always appeared that the email server was undefined. ****************************** * RELEASE 2.1.2 - 2003/02/28 * ****************************** Enhancements - Framework ------------------------ New pre-configured hosts for Sterling AS2, Sterling FTP, and GXS AS2. - Added VersaLexd script, which can be used to run VersaLex as a Unix daemon. Enhancements - HTTP ------------------- For both WWW-Authentication and Proxy-Authentication, now send Authorization or Proxy-Authorization header with the first request rather than waiting for a challenge, even if not sending a file. This is to avoid cases where the challenge is not understood. Bug Fixes - Framework --------------------- Certificate manager will no longer allow leading or trailing spaces in a user certificate alias. - No longer allow -s "service" and -r command line options together. - Fixed problem where single-user locking mechanism was not working on Solaris. - Fixed problem where multiple -r command line arguments would not be accepted. - Modified the replace1.exe program to allow for a string of characters to be deleted. Bug Fixes - FTP --------------- Fixed problem in active mode where a data port connection would fail with a NullPointerException. Bug Fixes - HTTP ---------------- Fixed problem with SET host.* properties not taking effect. Bug Fixes - AS2 --------------- Fixed problem where AS2 listener would throw a NullPointerException when a message was received and an action with no commands was found. ****************************** * RELEASE 2.1.1 - 2003/02/19 * ****************************** Major Enhancements - Framework ------------------------------ Added 'Email On Fail' to the Advanced tab of the hosts. If an action fails, an E-mail will be sent to the e-mail recipient(s) listed. - Added Configure>Translator... feature, which allows a user to create script files for integration with an EDI translator. - Added Tools>Software Update... feature, which allows a user to download and install new releases and patches of the VersaLex product. - Added Configure>AS/400... feature, which allows support for integrated or native AS/400 file I/O. Also added VersaLex AS/400 message viewer. Major Enhancements - AS2 ------------------------ AS2-1Q03 Drummond Group certified! Enhancements - Framework ------------------------ - VersaLex now defaults "Enable GUI as VersaLex Server" option as on, which enables the GUI to act as a server for VersaLex command line processes. - Added ability to request a permanent license. This generates an email to either salesIL@cleo.com or supportIL@cleo.com. - The VersaLex API methods are now thread-safe. - When running an action interactively, if an untrusted CA certificate is received, the user is now prompted as to whether the certificate should be trusted - either for the session only or permanently. If the user selects permanently, the certificate or certificate chain is imported into certificate manager. - Changed default expiration when generating user certificates from 6 months to 2 years. - Added ability to have mailbox directory added to host's inbox, outbox, and/or sentbox paths. This allows incoming/outgoing files to/from different mailboxes to be kept separate. - VersaLex debug file now defaults to APPEND and system log file level defaults to HIGH. - VersaLex logging and debug can now be turned on through technical support bundle, when necessary. - Create logs/exception.txt if VersaLex should throw an exception before system logging starts. - Limit size of system debug file (limit defaults to .25mb). - Added ability to select either SHA-1 or MD5 algorithm for signing when generating a user certificate. - Added LCOPY and LDELETE action commands for copying and deleting local files. Enhancements - HTTP ------------------- Removed the DaimlerChryslerTest host. This test host is not necessary for DCX suppliers, and was only causing confusion. - When first reading HTTP server response, added a 2nd read if EOF detected. This was for a specific HTTP SSL server that was somehow causing an EOF condition prior to actual response data. If EOF is still detected on 2nd read, proceeds with exception handling as before. Enhancements - FTP ------------------ Advanced panel is now used for additional properties, consistent with HTTP. Enhancements - AS2 ------------------ No longer set the source and destination to "NAME UNKNOWN" when we can't get the name of the incoming file from the Content-Disposition header. - Added functionality to allow the HTTP "From:" header to be set with a 'from=' value on the HTTP tab, if present. Otherwise it uses an email address. This is needed for interoperability with older versions of Cyclone servers. - Removed the SMTP Mail Server field from the local host panel. It is now on the Options (Other) panel. - The recipient's certificate and the "Send Certificates" button have been moved to the "Certificates" tab at the mailbox level. The local signing and encryption certificate can also now be overridden from the "Certificates" tab. - Added support for overriding of an incoming file name with a default file name (specified on the host panel). - Added a new checkbox on the AS2 Host tab to allow the ability to store raw sent messages: HTTP responses, synchronous MDNs, and all asynchronous MDNs, if indicated by the user. This can be helpful for general debugging purposes. - Raw received files are now stored in the AS2\received folder and raw sent files are stored in AS2\sent folder. Previously only raw received files could be stored and were stored in the "received" folder under the VersaLex home directory. Moved the unsent folder under the AS2 subfolder. - Removed the AS2-To, AS2-From and AS2-Version headers for an asynchronous SMTP MDN. As per Drummond Group, these MDNs need to represent an AS1 message format so the AS2 headers must be omitted. - Changed the message ID to include milliseconds to guarantee file naming uniqueness. - Changed the method for creating incoming file versioning from the form file_n to filen (no longer include an underscore). Bug Fixes - Framework --------------------- Fixed problem where incomplete host, mailbox, or action was not being colored orange right after cloning and activating. - If the local disk is full, a partial or empty host file is no longer left in the hosts/ directory. - If VersaLex is installed on networked drive, fixed problem where differences in clocks on two computers would cause problems determining whether VersaLex was already running. - Fixed problem where installing and running a 2nd copy of VersaLex on the same computer would potentially cause VersaLex running as a service to no longer accept connections. - Fixed problem where an action is scheduled to run periodically, but only when there is a file to send. The action was only being run every other scheduled time. - Fixed problem with autorun and -f files where embedded quotes (") were not being handled. Now, if a quote is right before or after whitespace needs to be included in an argument, put two quotes (""). - No longer allow @ sign in common name when generating user certificates. This is considered an invalid character. - Fixed problem in host advanced tab where using pulldown list would corrupt property values. - Fixed problem where license dialog wouldn't appear when VersaLex was running as a service. - Fixed problem with outbound data ports not showing up in the TCP/IP Port Usage Report. Also corrected some pre-configured hosts passive port numbers. - Fixed intermittent shutdown problem when closing the GUI where the VersaLex process would hang. This would lock the user out from starting VersaLex again until he either killed the process or logged off/logged in. - Fixed problem parsing command line -f option file where whitespace characters (space, tab, newline) were being incorrectly weeded out of values within double quotes. - Added an API fix such that a user included XML parser does not affect the host file checksum calculation. - Added a fix to allow dial-up share between sequential autosend actions (within 15 seconds of each other). - Added an option to wait for dial-up disconnect at the end of command line. This is for stacked dial-up VersaLex command line processes. - If VersaLex is installed as a Windows service, the JRE now included in the install will no longer stop the service if the user displays the VersaLex GUI and then logs off. - When license becomes permanent, no longer check license serial number stored in host file against current license serial number. This is in case serial number is changed as part of issuing permanent key. Bug Fixes - HTTP ---------------- - Fixed problem when a GET command was missing a destination, an IndexOutOfBoundsException would be thrown. Bug Fixes - FTP --------------- FTP commands will no longer continue after user interruption or when TerminateOnFail is set to true and an error is encountered. - FTP host will now be considered incomplete if address/port is missing. FTP mailbox will now be considered incomplete if username/password is not supplied. - All FTP exceptions are now captured in the system log file. - Result log element is now logged for all commands, not just PUT and GET. - Commands are now validated prior to running. - The [Reset] button now will work in all FTP panels. - Moving the cursor in the commands text area no longer enables the [Apply] button. - Default directories now are applied correctly and are used in the file chooser dialogs. - A SYSTEM command no longer must be enclosed in quotes if it contains embedded spaces. - If specified, an Account value will now be applied at the end of the login. - Fixed problem where scheduling an action for "auto send" would not work if the action didn't end in a PUT command. Bug Fixes - AS2 --------------- Now handle text/plain body parts as input streams. Previously these were not being properly written to the MDN file. - Added better loop handling so we never hog the CPU during very long loops. - Added handling of the case where the response object was never created when processing an error. Previously, when an exception occurred before the response object was created, a null pointer exception was being thrown when trying to send back a response to the user. - Modified the logic used when parsing headers to determine if a header is wrapped to the next line. Originally, we were checking for a line ending in either a semi-colon or a comma. Lines that were ending in a comma (i.e., the comma was part of the "value" field) were previously incorrectly getting concatenated together. The comma is now only used as a terminator for the Disposition-Notification-Options header. - Reworked the mailbox logic so that an unknown trading partner relationship is always correctly determined. This includes proper traversal of all mailboxes to determine unique AS2-To/AS2-From relationships. - Corrected a problem where special characters in a file received by WalMart was causing a ParseExceptionError to be thrown when the same file is sent back to Wal-Mart. Now, the file name is stripped of all special characters and replaced with underscores before it is sent to the recipient. An alternative is for the user to override the name of the incoming file with a default file name (in the new "Default file name" field) on the Host AS2 panel. - Corrected logic in the MIME header parse method which previously was unable to "unfold" headers that spanned across more than two lines. - Added logic to not display the recipient port in the HTTP headers if it is the default (-1). ********************************* * RELEASE 2.0.11.2 - 2002/12/06 * ********************************* Enhancements - Framework ------------------------ Added ability to specify RMI port number when using VersaLex as a service/server. This is in case the default RMI port number is already in use by another process. - Can add any additional files to technical support bundle. - Added logging of "Hint" messages (in magenta) for self-diagnostic information. These generally follow logged exceptions and errors. - Added -s "service,stop" option. Enhancements - FTP ------------------ Fixed problem where reacting to intermediary responses rather than final server response. This was causing, in some cases, VersaLex to think that a file was successfully sent. - SYSTEM and ExecuteOnFail commands now always wait for completion of the created process before continuing. (However, the -WFC parameter is still syntactically supported.) - Removed deletion of local file when GET command fails. This is to protect against deleting a local file which is being appended to and already contains successfully received data. - Changed default control and data channel timeouts to 2.5 minutes rather than 15 minutes and fixed bug where modified values would always revert back to defaults. Bug Fixes - Framework --------------------- Improved performance of tree when a large number of mailboxes/actions exist for a host. ********************************* * RELEASE 2.0.11.1 - 2002/12/02 * ********************************* Bug Fixes - AS2 --------------- Fixed problem where if PUT failed, were still deleting source file and/or copying source file to sentbox directory. - Added sanity check when the "unsent" directory does not exist. In some instances, were getting null pointer exceptions when the response checker attempted to search the unsent directory but it didn't yet exist. ******************************* * RELEASE 2.0.11 - 2002/11/08 * ******************************* Enhancements - Framework ------------------------ Added Help>Links to be able to bring up www.cleo.com or www.cleo.com/VersaLex/documentation or www.cleo.com/VersaLex/firewall with the default desktop browser. - Added [Browse...] button in Update License dialog so that the "license_key.txt" file can be selected rather than cutting and pasting contents. - Added TCP/IP port usage report which shows, for direct connections, the inbound and outbound ports. This report is intended for the firewall administrator - it includes specific notes about each protocol and can be saved as an HTML file. Enhancements - FTP ------------------ Removed debug tab for enabling ftp/host specific log file, moved all debug logging to one overall system debug log file. Enhancements - HTTP ------------------- For DaimlerChrysler, added support for filenameformat parameter on download. When this parameter is set to p, the files received are prefixed with the EBMX document type. Enhancements - AS2 ------------------ - Added extra detail information when a "501 - Not Implemented" error is logged in response to a GET request. This will let the user know that the sender possibly tried to incorrectly access the server using a web browser. - Added the ability to have multiple ports defined (separated by commas) for both HTTP and HTTP/s listeners. Port values in the XML file are now stored internally as a string instead of an integer value and are parsed when each instance of a listener is stopped and started. - Added functionality to the listener to be able to process messages from generic (non-AS2) HTTP hosts. The trigger is a "host=" parameter on HTTP POST request line. - Added an extra detail element line when a ConnectionTimeout occurs as a "hint" to the user to try increasing the ConnectionTimeout value. - Added "hint" text when the user gets an "Unknown Trading Relationship" warning. Bug Fixes - Framework --------------------- Fixed problem where the license host ID was changing with daylight savings if running on a Windows FAT file system. - Updated the TCP/IP Port Usage report to have the correct link to the Cleo website. - Modified <Transfer> XML log element save transfer size in bytes rather than kbytes. The GUI still displays size in kbytes and transfer rate in kb/sec. Bug Fixes - HTTP ---------------- For DaimlerChrysler, fixed problem where EBMX response text was not being logged because the HTTP Content-Length header is missing. Bug Fixes - AS2 --------------- Corrected a problem that would occur when the user would sort the MDN display by a column. When sorted rows were deleted (based on the unsorted row) but the unsorted index was already gone (usually one of the last indexes), an IndexArrayOutOfBounds exception would be thrown (usually silently). The user would not see this unless he was running in VersaLexc mode. All he would see is that VersaLex was frozen and the selected rows were not deleted or archived as expected and restart of VersaLex would be necessary to get it to respond again. ******************************* * RELEASE 2.0.10 - 2002/10/18 * ******************************* Enhancements - Framework ------------------------ - Added the ability to [Send] the technical support zip file directory to Cleo technical support via a Cleo web server. - Added Help>Support>Bundle... for creating a technical support zip file with needed debugging information. - Added [Move License] option under Help>License... which allows a temporary or permanent key to be moved to a different VersaLex install location. - Added check at startup that current user has minimum required read/write permissions. - Added API methods for certificate management. Enhancements - HTTP ------------------- For WWW-Authentication, when sending a file, now send Authorization header with first request rather than waiting for challenge. This is so that if file is large, do not waste network traffic by sending file twice. - Added support for POST commands which are not Content-type: multipart/form-data. Enhancements - AS2 ------------------ Removed the exception trace information as part of the result element and made it a detail element which is displayed after the result element. Trace messages contain the actual exceptions that were thrown and are no longer wrapped layers deep in MessagingExceptions. - Addition of the messageID to the XML log. This is useful for API users who need to correlate messages to the messageID. - Added password validity checking for the SSL certificate. Bug Fixes - Framework --------------------- Fixed problem where cloning an active FTP host was not retaining the active FTP mode setting. - Fixed problem where not able to set start time when adding an action to the VersaLex scheduler. Work around is to click the <New> list item and then click back to the start time being added. - Fixed [...] browse button size on AIX, HP-UX, and SunOS. - Fixed problems relative to using the VersaLex API under Jakarta Tomcat 4. Bug Fixes - FTP --------------- - Removed unwanted, repetitive log messages when action is scheduled to run only if it has a file to send. - Fixed timing problem where if LIST or NLST command returned back empty quick enough, an endless loop condition resulted and the action would never complete. - Fixed problem when using IAIK SSL libraries (<Useiaik>True</Useiaik>), where if mailbox is empty, NLST command would hang. Also removed bogus setClientCredentials() exception. - Like STOR and RETR commands, added setting of Data Socket Accept Timeout for LIST and NLST commands. - Fixed problem with modifications for EDS ELIT special request GET *,S=???. - If the "Delete Zero Length Files" option is on and such a file is received, a warning result is now logged rather than a success result. - If DNS lookup failure occurs, now logs UnknownHostException message. - If the unique file names option is being created on a GET command, the resulting unique file name is now logged rather than the original command file name. - SSL debug no longer prints to the console if a debug file is not being generated - Relative local filenames/paths now work on GET and PUT commands. - Local file chooser in the FTP command wizard dialog now defaults to the default inbox for GETs and the default outbox for PUTs. Also a relative filename/path is generated, if possible, as a result of choosing a file or directory. - Removed use of AWT (GUI) event class for command line FTP, which was causing runtime exceptions on SunOS 5.8 JRE 1.3.0. Bug Fixes - HTTP ---------------- Fixed NullPointerException when PUT command has no HTTP headers. Bug Fixes - AS2 --------------- Modified the logic for mdn browse button on the listener panel to be platform independent. Previously this button looked good on Windows platforms but was unusually small on Unix platforms. - Added a check for a null pointer when the trust verification is done within the SMimeSecurity constructor. - Added a check to the Log class' localMessage parameter in the incomingResult method. This check corrects a potential null pointer exception problem. - By default the "Store Raw Received Data" checkbox on the Advanced tab of the Listener panel is no longer checked. Since this is an advanced feature and could consume lots of disk space, users must intentionally turn this feature on. - Changed the method used to base64 encode the MIC value since the original method was adding some extraneous characters to the beginning and ending of the string which needed to be stripped out before it is valid. The number characters added varied by platform. Now the base64 MIC value should be consistent across all platforms. - Corrected the logic so that if an exception is thrown while the listener is starting up, all threads are stopped. This corrects a problem where if the HTTPs listener throws an exception and the HTTP listener is already started, when a second attempt is made to run the listeners after corrections are made, a "socket bind error" for the HTTP listener is logged. - Added certificate expiration checking for all applicable certificates when the listener is started. Currently just a warning message is logged and the user is allowed to continue. Also, our listener does not currently do any validity checking for expired or revoked certificates while decrypting or validating signatures. ****************************** * RELEASE 2.0.9 - 2002/08/09 * ****************************** Enhancements - Framework ------------------------ Added ability to schedule an action to run whenever it has a file to send. - Added system support for FTP and HTTP proxy server firewalls. - In Certificate Manager, when generating a self-signed certificate, added ability to change # of months certificate is valid. - Added ability to run VersaLex command line from a remote computer. - Added -e and -d command line options to enable/disable actions. As a result, the existing -e options to show errors was changed to -x. - Now allow repeated -i, -e, -d, and -r options within one command line. - A GEGXS IBC dial-up connection (to the same username) can now be shared across parallel or sequentially run actions. - Added Pending CA certificate support within Certificate Manager. This allows for CA certificates to be either Trusted or Pending (untrusted). - Added control keys in Log View window for Find (<Ctrl>F), Find Next (F3), Copy (<Ctrl>C), and Select All (<Ctrl>A). - Added ability to set X509 certificate key usage for signing and encryption in Certificate Manager. Also now display any key usage settings in view pane. - Added right-click of Schedule status bar item to allow start and stop of scheduler from main window. - In addition to '\', now support '/' separator for path specified following -r command line option. Enhancements - FTP ------------------ Added threaded connect method. - Added modifications for EDS ELIT special request GET *,S=???. Enhancements - HTTP ------------------- For DaimlerChrysler, problems receiving a file that are specific to DCX (file already purged, zip file invalid) are now treated as errors rather than exceptions. This means that SET TerminateOnFail=True will now allow an action to continue processing when these types of errors are encountered. - Added „Check server name‟ option for HTTP/S that verifies that the server name in the received SSL server certificate matches the server actually connected to. - Changed DaimlerChryslerTest host back from HTTP to HTTPs. - Increased the maximum allowed transportable file size from 2**31 to 2**63. - Added Advanced tab at host level which allows default values for the SET properties to be changed. - Added Authenticate tab at mailbox level which allows either a basic or digest username/password to be specified for WWW authentication. - Improved initial HTTPs connection speed. - Changed DaimlerChryslerTest host from HTTPs to HTTP. - Now logs warning if sending 0-length file. Enhancements - AS2 ------------------ Added the AsyncResends parameter to the Listener Panel's Advanced tab. - Added the ability to retain the raw data file and the header file when an asynchronous transaction is initiated so that the transaction may be resent in the event that it times out. - Included the ability to resend transactions (via the listener) that have timed out asynchronously. - Changed the initial wait period (when the listener starts) from 60 seconds to 30 seconds so that checking of expired files occurs a bit more quickly. Also, if an asynchronous .inf file does not have a matching .hdr and .raw file, it is automatically marked as expired and is moved into the mdn directory. - Modified the sending process to place all MDN transactions in the "PENDING" status after the transfer has completed. When the response is received from the remote host, the record is then updated with the correct completion status. - Added formatting (i.e., quoting for ", spaces and \) of OriginalRecipient and Final-Recipient fields in the MDN which contain the AS2-To field. - Added the MIC algorithm to the "Sent MIC" string that is stored in the .inf file and eventually appended to the end of the MDN. - Added ability to remove all files from the temp directory when VersaLex starts up. - Added the ability to have separate signing and encryption certificates and passwords (which are configured on the local listener panel). Previously, only a "generic" certificate and password which was always used for both signing and encryption was available. - Added error checking to the signing certificate to check for its existence and to validate that the certificate's password is correct. - When sending messages, added logic so that the signing certificate existence and validity is not checked when a signed message is not requested. Likewise, when an encrypted message is not requested, the recipient's encryption certificate is not checked for existence or validity. - When sending certificates via the automated "Send Certificates" feature, if the local signing certificate is different than the local encryption certificate, both signing and encryption certificates will now be sent to the remote host. - Added logging of the MDN file name as part of the result element for synchronous MDNs so that applications that use the API can access the MDN file name in the log. - Added the ability to send messages with a size greater that 2 ^ 31 bytes. - Addition of real-time updates of MDNs on the listener panel. - Added support for compressed base64-encoded messages. - Addition of the archive and delete operation on the MDN list panel. - Modified the "From:" header field returned when an MDN is sent via SMTP. Previously, the "From:" field was contrived as VersaLex'machine_name'@domain_name but there was a vendor in the Drummond Test that could not handle fake email addresses. To work around this problem, changed the "From" header to be the AdminEmailAddress (which is configurable on the Listener Panel) and set the personal name of the address to be "VersaLex at 'machine_name'". Also changed the subject which was previously "Your requested MDN" to "MDN for message 'message_ID'". - Added the ability to differentiate signature authentication errors from signature message hash errors and so they can be reported with different error dispositions in the MDN. - Corrected an issue where populating the MDN table while selecting the Listener panel caused a lag in the display. This was because the MDN panel was being populated at that time. Instead, the MDN tab is only populated when the "MDNs" tab is selected. - Added better result logging. - Modified the Listener panel to not display the MDNs tab when it's on the preconfigured side. - Addition of the Advanced Property tab at the host and the localhost levels. - Added the ability of the system to differentiate between expired and SMTP MDNs. - Added "Compressed Request" to the list of parameters tracked in the .inf file and eventually transferred to the MDN. - Added more detailed log information about the incoming message including whether it is signed, encrypted and compressed. (This may be turned on/off via the Advanced Tab.) - Added a new MDN tab on the listener panel. Currently the contents of any MDN may be displayed via this panel by either right-clicking or double-clicking an MDN element. Eventually, the ability to archive and delete MDNs through this panel will also be available. - Added and/or improved timeout checking for both synchronous and asynchronous responses. For asynchronous responses, a separate thread periodically checks the unsent directory for all expired files that have not yet received an asynchronous response. It logs an error and moves the file to the MDN directory. Currently the expiration time is hard-coded for 30 minutes, i.e., files older than 30 minutes will trigger an "expiration" log error. - Improved the logging of sent and received messages. - The MDN file is now set to read-only after it is saved. This keeps users from accidentally deleting files in the mdn folder. Eventually the ability to delete MDNs will be available through the MDN panel on the Listener. - Improved error reporting logic for MDNs that return an error disposition. - Added key usage validation for the recipient encryption certs after they are selected. - Added original message tracking information to the end of the MDN. This information is used on the MDN List panel. - Created a new tracking information file ('messageID'.inf) for all messages in the unsent directory. MIC information is now included in this file (if it was computed) and the .mic file has been replaced with this new file. - Compression of files is now available for "public consumption". Although compression hasn‟t been fully interoperability tested, it has been informally tested with several vendors participating in the tests. - Added the ability to parse and store signed certs-only messages. - Modified asynchronous response messages to add a distinction for processing warning messages vs. processing error messages from the remote host. Bug Fixes - Framework --------------------- Fixed bug in 2.0.08 engineering release where indexed properties were not being properly reset when using the VersaLexc -t command line option. This only affected use of the DaimlerChrysler host. - Fixed problem displaying Help>License dialog when VersaLex running as a service or thru PCAnywhere. - Fixed problem running on standalone (non-networked) computer. - Improved startup speed. - Command line -r option no longer case sensitive. - Fixed problem automatically archiving log file on Windows 95/98. - Reduced RAM usage. - Fixed autorun timing problem when trying to parse an XML host file. - Fixed licensing problem where VersaLex installed on shared drive, and both Windows 95/98 and Windows NT/2K/XP computers access the share. - Only pull in .xml files now from the hosts\ and hosts\preconfigured\ directories. Bug Fixes - FTP --------------- Added code to light up Apply button when wizard is used. - Added XML message for case where no files to PUT or GET. - Fixed bug where PUT -DEL filespec was deleting from "outbox" before moving to "sent" folder. Bug Fixes - HTTP ---------------- -t "<Mailbox><Parameter>command name=value" and -t "<Mailbox><Header>command name=value" no longer reset all other parameters and headers values, but now just affect the matching command and name value. - Fixed problem with Bank of America host where requested ASCII download on Windows was not formatted correctly. - Improved initial HTTPs connection speed. - Fixed problem parsing HTTP directory for available files when not all lines in listing specify a file. - If an HTTP proxy firewall is specified, no longer incorrectly require a proxy firewall account (username and password). - Now strip off surrounding quotes, if present, in SYSTEM command before trying to create process. Bug Fixes - AS2 --------------- Changed the timeout error to a Result element when an async timeout is logged via the listener. - Added handling for conditions where the MDN is received after the MDN has already timed out (and has been moved from the unsent directory to the mdn directory). - Added the ability to parse the Sent MIC string by stripping out the sent MIC which is now followed by ", " and the MIC algorithm. Older MDNs which may contain the sent MIC value without the algorithm are also correctly parsed. - Added checking of the "Last-Status" tag in unsent messages so that the status of errored transactions are correctly updated in the MDN List panel. - Corrected logic so AS2-To and AS2-From names that contain special characters, backslashes, spaces, etc., are always correctly escaped when sent and properly parsed when received. - Corrected problem where we weren't able to properly open certificates from a specific vendor because of encoding issues. - Corrected a problem where files received without an extension were causing an exception in the getFileVersions() method. (We now properly handle files with or without extensions.) - Modified the building of the name of the recipient certificate file to have an absolute path when an action is run. (This is necessary for proper operation via the API.) - Added cleanup (i.e., removal) of lingering files in the unsent directory upon startup. - Added better handling of compression failures and the proper setting of the "decompression-failure" disposition in the MDN. - Corrected some problems with parsing messageIDs which contain special characters. - Corrected a problem where the certificate was not being set on the host panel after it was selected because the keyUsage field was null. When the keyUsage field does not exist, we now assume that the certificate can be used for both signing and encryption. - After an asynchronous SMTP message is ack'ed by the server, the cached file is now moved from the unsent folder to the mdn folder. - Removed most of the stack traces that are stored in the MDN and replaced them with short, user-friendly messages. In most cases, this is enough information and the stack trace exposes our module names, which could potentially be insecure. - Improved performance of the asynchronous message handling for all types of messages. The "200 OK" is always sent back immediately after the message is fully received and the MDN is then returned once the message is fully processed. - Improved the processing of compressed messages to always use the temp directory for intermediate processing so memory errors do not occur once the message is fully inflated. - When sending an asynchronous SMTP MDN, the "From:" field in the HTTP header is now in the form: VersaLex-'machine-name'@domain-name. Previously the "from" header was being defined as VersaLex@machine-name but some mail servers bounce emails that don't come from a valid domainname. The domain-name is taken from the "Admin Email Address" on the listener panel. - Changed the message that is reported when an error is included as part of an MDN disposition. The message no longer says that a MIC was not computed because sometimes other vendors compute one anyway. - Added the stack trace information to the log message (displayed to the user) when there is an MDN archival error. Previously the user just received the message "MDN Archival Error!" with no explanation of why the error occurred. - Corrected a problem when a certificate that does not yet exist in the listener was added to the list of trusted certificates. Non-existent certs were causing a NullPointerException. - Added case-insensitivity for processing content types when parsing large files. This was an error discovered during interop testing where a particular vendor was setting content types to uppercase and we were only checking for lower case. - Corrected errors in the messageID parsing; angle brackets could be embedded in the message and need to be removed throughout the Message-ID. - Corrected parsing of the Disposition-Notification-Options string to always get the correct micalg value. (A micalg value of rsa-sha1 was not properly being interpreted as sha1 and instead md5 was being used.) - Removed the Message-ID header from the synchronous HTTP response. It is unnecessary since the connection is still open. - There was a problem where closing an SSL output stream would throw an exception. Somewhere in the ssl classes the stream is closed so it doesn't need to be done again. However the http output stream (which uses the same base code) does need to be closed. To correct this, added a try/catch block around the close method and ignore any exceptions that are thrown. - Corrected a problem where MDN disposition was being reported as failed/failed instead of just "failed". Also, the MIC value should not be reported on error. ****************************** * RELEASE 2.0.6 - 2002/05/20 * ****************************** Enhancements - Framework ------------------------ Added support for GEGXS IBC dialer. - When node is reported as incomplete (host, mailbox, or action), added information about what is missing. - Added autorun feature which allows commandline parameters in a file to be dropped into the autorun/ directory. - Added customizable control of messaging and logging levels. - In the log file (but not the log messages), repeated command and file attributes in the result element to allow easier parsing of the results in the log file. - Added detailed licensing info to GUI and command line (-s version). - Added -f "option file path" option for command line VersaLex. allows (lengthy) options to be specified in a separate file. This - Added automatic system log file archiving - default options will archive the log file to 'logs\archive\' once it reaches 5 mbytes. User can also manually archive. Even though the archived log files are stored in zip file format, the VersaLex log viewer can still be used to view the archived log events. - In order to make a filename unique, added support for affixing any starting numeric string (that gets incremented automatically) either before or after the dot. - In the Hosts folder in the preconfigured tree, added display of the 'last modified' date for each preconfigured host. In the Hosts folder in the active tree, the original preconfigured host's 'last modified' date is displayed as the 'preconfigured' date. - When running VersaLex as a service ('-s Service' option), VersaLex now automatically supports server/client model. - Expanded VersaLex scheduling capabilities to allow multiple times ranges per day. - Added <End> log element when action stops running. - Added support for server/client model. - Added VersaLex API. - Added support for multiple dial-up phonebook entries. - Added ability to select multiple lines in the messages pane and messages tab and copy to the system clipboard. - On program exit, now allow all pending configuration changes to be applied or reset. Enhancements - FTP ------------------ Added WizSet class Wizard panel for the SET command. - Added FileListParseMethod for parsing files returned by Tradanet server. - Implemented copy of files to Sentbox. - Added GET -UNI * uniquefile functionality. All wildcard GET operations with a destination file name that use the Store As Unique file (-UNI) option will retrieve all files that match the wildcard and assign unique local names based on the destination file name. - Added functionality for Sent Folder. All files that are successfully sent will be copied to the Sent Folder. - Added PrePutCommand property. This property is empty by default. - Added TerminateOnFail property. This property is set to TRUE by default. - Added ExecuteOnFail property. This property executes a System Command when there is a failure in the execution of the action. Example "SET ExecuteOnFail=notify.bat". - Added ls command to do NLST followed by a list of parameters. - Added hidden Host Level property to force the use of LIST for wildcard GET operations (<Usenlst>False</Usenlst>). If this property is not present in the host XML file NLST will be used by default. If the property is present and set to False, LIST will be used. - Added hidden property to disable TLS for IBM Information Exchange Hosts (<Disabletlsv1>False</Disabletlsv1>). - Added Site command to wizard. Enhancements - HTTP ------------------- Enhanced HTTP "cookie" management such that if multiple, each CONNECT command within an action discards cookies so that less likely to have a cookie timeout. - Only one result element is now logged per command or file. This should allow easier parsing of the results in the log file. - Added local/remote port log when first connecting. - Added HTTP request and response log elements. - Added append option (-APE) to HTTP GET action commands. - Added a SET action command for changing the following properties and defaults: TerminateOnFail=True ExecuteOnFail= ConnectionTimeout=60 (seconds) CommandRetries=0 - CONNECT command will now not execute if host commands that follow are going to be skipped. Enhancements - AS2 ------------------ Added a "Send Certificates" button to the host panel which will allow the ability to send user (i.e., signing/encryption) and/or the SSL certificate to the remote host. At the remote host (VersaLex installations only) the transferred certificate is stored in the certs\pending folder. (Eventually hooks will be added to the Certificate Manager to allow the user to accept pending certificates and make them active.) - Added the ability to accept or deny incoming certificates. Currently this ability is hard-coded for "accept". Eventually this option will be modifiable via a "Properties" panel for the "Local Listener". - Added processing for unrecoverable errors received from the remote host. Currently, response codes received from the remote host between 300 - 499 are defined as unrecoverable errors (and will require user intervention). Messages with response codes greater than or equal to 500 will be eligible for retransmission, if desired. - Added the ability to send a copy of the HTTP or HTTPs received MDN to the desired recipient when the "Forward MDN to Email" box is checked. - Added the new "Admin Email Address" field to the Listener panel. - Split the AS2 Listener panel data into two tabs: AS2 and HTTP. Added new fields to specify the SSL Sever certificate alias and password. If the HTTPs port is enabled, these fields must be filled in. Also added new checkbox to the HTTP tab to allow for client-side authentication. - Added retry delays for sending messages. This will be used when there is a "Connection refused" error when sending the message to the remote host or an HTTP response code > 500. - Added an "AS2-Version" constant for HTTP headers as per new Drummond Group specification that this header be included for backward compatibility. - For out-going messages, added quoting to the AS2-To and AS2-From field that contains embedded spaces, backslashes or double quotes. - Added the ability to receive and process "certs-only" messages so trading partners may send their certificates over the HTTP connection. - Reverted back to case-sensitivity for processing of AS2-To and AS-From fields as per decision by Drummond Group participants. - Added better stack trace logging and added the ability to include the stack trace in the MDN upon failure. - Added better logging of incoming messages to include the remote IP address, the local/remote port values and the AS2-To/AS2-From header values. Also added logging of sending back synchronous and asynchronous acknowledgments. - Added processing for unknown AS2-To/AS2-From partner relationships. Currently option #1 (below) is the default value and is hard-coded as the default value. Eventually, the user will be able to select from any of the following options: UNKNOWN_SAVE - store the message in the LostAndFound folder, return an *unsigned* MDN with an explanation of the error if the sender requested an MDN. UNKNOWN_IGNORE - return "200 OK" with no explanation of the error even if the sender requested an MDN. The input stream is flushed and ignored. UNKNOWN_REJECT - disconnect from the sender before completing reception of the incoming message. - Added the filename and host to the human-readable portion of the MDN. - When returning an MDN, if the sender did not set the "Date:" HTTP header, the AS2 Listener will generate a date and return it in the MDN. - Included better logging of incoming messages and the status of received MDNs. - Included better handling/parsing of HTTP message headers. - Included better handling of HTTP channel closure. - Addition/usage of ConnectionTimeout and CommandRetries which can be set from the properties (SET) command on the Action Panel. - Added processing for signatures that do not contain embedded certificates. - Added the ability to receive and parse large (> 2.3mb) files. - Significantly improved the performance of sending and receiving most large files. - Added ability for transferred files to retain their original file name. The 'Overwrite duplicate filenames' checkbox on the host panel allows the user to decide whether file versioning is to be used. Bug Fixes - Framework --------------------- Fixed host alias problem when cloning and activating multiple hosts in one session. - Fixed problem skipping days when multiple day ranges for an action in the schedule. - Fixed problem where renaming host file when making update via command line. - Fixed licensing problem in Windows 95/98 caused by daylight savings time changes. - Fixed problem where running as a service was dependent on the schedule being set to run automatically at startup. - Added fix for allowing two trusted CA certificates to have the same subject DNS. - Fixed problem selecting a server certificate (for AS2) where the certificates filename was always being cast to all lowercase letters. - Fixed problem in the API where importing a host already in the hosts\ directory was deleting the host. - Applied fix for intermittent problem where active host XML files were being set to zero-length. - Fixed problem where command line VersaLex was trying to create GUI components. - Fixed a bug where command syntax errors just entered were dialoged twice when [Run] was clicked. - Fixed problem where a HOST ID error from a "permkey.dat" file was causing a loop condition. - Now check validity of action when [Apply] in addition to [Run]. - Fixed problem selecting a phonebook entry when running off a network drive. - For command line, now check that property name specified in '-t' option exists. - For command line, modifying properties using '-t' option now updates the host's 'modified' and 'by' attributes. - For HTTP commands, now validate the parameter/header referenced in action command exists. - Fixed problem creating new mailboxes/actions/trading partners in empty folders. - In certificate manager, added more definitive error dialog message when importing a PKCS12 certificate/private key and private key password entered is incorrect. - Fixed problem where alias name with ending spaces was causing tree errors. - Fixed problems on Sun platform where command line logging was generating interrupted IO exceptions and where certificate manager was not always logging to the correct path. - Cut program startup time by half. Bug Fixes - FTP --------------- Added fix for actions that contain lines that start with one or more spaces. - Fixed getByName/disableAddressResolution property mismatch. - Fixed problem where PrePutCommand was being executed when set to "none". - Fixed null event pointer bug in DIR function. - Fixed wizard problem with inserting commands at end of script instead of at current cursor location. - Blocked display of password in log. - Fixed delete for delete after GET option ("GET -DEL filename"). - Added code to send "Bytes Transferred" message at one second intervals instead of every 8092 bytes. This seems to have substantially improved file transfer rates. - Wizard now automatically adds quotes around paths that contain spaces. - Wizard no longer strips quotes from commands after editing. - Client certificate password are now encoded before being stored in host XML file. Changed wizard coffee cup icon to turquoise people icon. - Fixed Retry counts/timeouts. Bug Fixes - HTTP ---------------- Fixed problem with DaimlerChrysler EBMX where getting files was returning an error when no documents were found. - Fixed problem where HTTP session was not retaining the active "cookie" if the client computer‟s time/date or time zone was off - this was causing a problem for hosts which require a login first before gets and puts - Fixed problem where editing whole parameters or headers and clicking [Apply] before hitting [Enter] was causing parameter/header names to be inappropriately updated in addition to values. - Fixed problem checking where validation of action commands were failing incorrectly when an optional parameter/header was placed in the command. - Fixed bug where a specified HTTP proxy firewall was not being used. - GET command now allows a single filename when using the -DIR option IF the -UNI option is also set. - Fixed problem where if action contained all SYSTEM commands, action would never be allowed to run. - If a dial-up host, now wait to dial up until a host command needs to be executed. Bug Fixes - AS2 --------------- Corrected a problem where the signature verification of some messages would fail the first time (when VersaLex is first started) but then is OK after that. - Added logic when sending encrypted messages to always encrypt with the leaf certificate and not with the root certificate. Also removed the sender as a recipient of encrypted messages. (These issues were uncovered during Drummond Group Interop testing.) - Added processing for the case where an MDN is not returned when it is expected. - Since our client / server implementation is currently designed to only handle one message per request, persistent connections are not supported. To comply with the HTTP 1.1 protocol, added the HTTP header "Connection: close" to all responses. - Added additional checking to the messageID string so that all backslashes, double quotes and spaces are replaced with underscores for correct file naming. - Added modifications to better handle large signed binary messages where the binary content does not contain embedded line breaks. - Added modifications to better handle erroneous incoming messages. - Added case insensitivity to the AS2-To/AS2-From header tags which are used to determine the appropriate recipient inbox. - Added a new check to force the user to have a remote encryption certificate only if the user is requesting an encrypted message, otherwise the "Recipient's Encryption Certificate" field on the AS2 host panel may be left blank. - Removed the local certificate alias and password as necessary variables for MDN processing. They are not needed and when not filled in on the Listener Panel caused a null pointer exception. - Added error checking for the condition where a certificate has not been specified on the listener panel. This is a valid case when the user is sending an unsigned message via HTTP and requesting a synchronous reply (or no reply at all). - Removed the requirement for client-side authentication during SSL negotiation when receiving messages via HTTPS. - Corrected a problem where the cache directory (which is used to store a copy of the headers, raw content and message integrity check value until the file is successfully sent) was not created by the AS2 application if it did not exist. - Corrected problems where signed binary and signed XML files received by non-VersaLex clients (e.g., the Cyclone Interchange Server) were not being properly canonicalized and so signature verification would fail.