News in NetPhantom Version 3.7

These are news implemented in NetPhantom 3.70 Build 1700. For details of a build version before version 3.7, follow this link.

For detailed information about news in individual Builds, click here. Also see news in the Older versions.
 

General

Terminal component

  • Enhanced terminal window with new options:
    • Keyboard auto reset,
    • Keyboard type ahead,
    • Disable sound alarm,
    • Box drawing (3270 only) -- typical for e.g. ISPF under TSO.
    These options can be pre-configured in "server.ini" or the Server Administration program, and also customized for each user.
     
  • Added support for Keep-alive for 3270 and 5250 sessions. This new feature supports two different types of Keep-alive's: Timing-Mark (duplex, i.e. inbound and outbound) and No-Operation (inbound only) are available. Set the parameter *KEEPALIVE_TM:seconds or *KEEPALIVE_NOP:seconds for the session definition, where seconds is the timeout value (normally between 30 seconds and a couple of minutes).
    Example: M=3270 tnserver.di3270.com 23 *KEEPALIVE_TM:60,*TN3270E,*PRT,3279-2-E"
     
  • Added support for Euro symbol for the following host code pages:
    • Cp870 - Multilingual Latin-2 (Serbia)
    • Cp1025 - Multilingual Cyrillic (Bulgaria/Bosnia/Herzegovina/Macedonia-FYR)
    • Cp1026 - Latin-5 (Turkey)
    • Cp1112 - Latvia/Lithuania
    • Cp1122 - Estonia
    • Cp1123 - Ukraine
     
  • Support to detect if a Terminal Print Screen or 3287 Host Print operation is too large to fit on the selected printer and paper size/orientation, and if possible requesting the user to change paper orientation.
     
  • Enhanced terminal host screen update on client side by coalescing several update transactions into one.
     
  • Added configuration for the Terminal Application in the Server Administration program.
     
  • Extended default terminal application with the actions Print screen, Print window and About.
     
  • Scaling of fonts in the Terminal window for NetPhantom Client running with Java 2. The font is now stretched over a larger area in the window.
     
  • Terminal window now has possibility to display a cursor height in percentage of the font height.
     
  • Selection of clipboard area in the terminal window using the keyboard arrow keys combined with the Shift key is now supported.
     
  • Added keyboard customization for the Terminal Properties dialog box (on per-user basis).
     
  • Added Field Exit key support for 3270. The 5250 key Field Exit is now supported for 3270. The key functionality is the same as pressing Erase EOF followed by Tab.
     
  • Faster removal of terminal window when a panel is to be displayed for the NetPhantom Client.
     
  • When the terminal window is removed and the panels are to be displayed, if there is a change of the main panel, the previous contents of the main panel will not be displayed until the new main panel replaces the old one (that normally takes about 1 to 2 seconds at most).

Load balancing, Windows Services and Cluster controller

  • NetPhantom Servers now supports a new server role for load balancing. This new role is "Controller + slave" and enables several servers to be interconnected as a "farm of servers" where all servers can be contacted directly by a NetPhantom Client (or web browser) and the contacted server will redirect to the server with the least load in the "farm network". This new feature enables full redundancy for both software and hardware failures in combination with multiple License Managers.
     
  • Generic NetPhantom Windows NT Services. A new feature has been added to NetPhantom to allow any NetPhantom server process to be executed as a Service under Windows NT/2000/2003/XP.
     
  • NetPhantom Service Wrapper. This new feature enables execution of one or several processes (simultaneously). The typical usage of this feature is to run two or more NetPhantom Servers or Cluster Controllers on the same machine. After completion of the process execution, the return code from the process can be checked in order to conditionally execute another process. This enables running the NetPhantom Server, checking the return code for e.g. Hard JVM restart and/or server upgrade.
     
  • Event logging to the Windows Event log. All NetPhantom server processes can now log events to the Windows Event log when running under Windows NT/2000/2003/XP.
     
  • Support for a NetPhantom Windows Service to wait a specific amount of seconds before starting. This helps is situations when a Windows server is rebooted with at least one NetPhantom Windows Service installed and this service is started a little too early (even using dependencies to other services), e.g. when the IP network configuration has not yet been stabilized (typically complex networks with NetPhantom License Manager(s) and NetPhantom Servers being load balanced over several physical servers, in conjunction with Microsoft Network Load Balancing included in Windows 2000 Advanced Server). Click here for more information.
     
  • Support to specify a bind address for outbound connections for NetPhantom Server and License Manager. This allows an outbound connection to specifically bind to a network IP address and to use this resource network card. This feature is typically used when a machine has several network cards. The default is not to bind to any specific address, thus letting the system choose what bind address and ultimately the network adapter to use. This setting is a must when using e.g. Microsoft Load Balancing (NLB) when running the server using Windows 2000 (Advanced) Server or better on one network card and a normal IP configuration on another network card.
    The new setting is named bindOutput=ipAddress and should not be specified or left blank if the system should choose the address. For License Manager (in "license.ini") and normal NetPhantom Server (in "server.ini"), this setting is specified in the [base] section. For Cluster Controlled servers, the setting is specified in the [Cluster] section in "server.ini" as bindOutput.NN=ipAddress where NN is the cluster server number.
     
  • Added support for read timeout setting on socket connection for load balanced servers. This new setting allows a server to quickly detect if another server in the load balanced system is no longer present. Configuration of this setting is done using the Server Administration program in Configure - Web server - Load balancing notebook page. When a connection using the read timeout that is not indefinite times out, a short "are-you-there?" transaction is sent back and forth between the servers in order to check the network connection.
     
  • Added configuration in the Server Administration program for Cluster Controller log file definition, or use the settings logFile=filename and appendLogFile=1 (or =0) in the [Cluster] section in "server.ini".
     
  • Cluster Controller enhanced to support usage of different Port IDs for each server in the cluster.
     
  • Added option to number the server log and trace files with the number of the cluster server, (e.g. clustered server number two when the event log file is defined as NetPhantom.log and NetPhantom2.log would become NetPhantom.log#2 and NetPhantom2.log#2).

License system

  • New License Manager features, click here for more information:
    1. Support for multiple backup License Managers when several NetPhantom Servers are used for redundancy on multiple machines.
    2. License Manager enhanced to support "even license distribution" by means of a new setting in "license.ini". The previous distribution mechanism "first come, first served" works well for smaller NetPhantom Server installations, but the new mechanism is required for large installations where redundancy is of importance.
    3. New license code 0000 0000 0000 0000 enabling the License Manager to be set to all possible settings (e.g. huge amounts of clients, lots of features) for testing purposes. A NetPhantom Server connecting to such a License Manager will automatically shut down after 2 (two) hours unless it connects to another License Manager with a normal or demo license.
     
  • Added file logging for NetPhantom License Manager. Use the settings logFile=filename and appendLogFile=1 (or =0) in the [base] section in "license.ini".

General server settings

  • Support for three new properties for an entry field control:
    1. Dynamic host field connection in terms of its position and length,
    2. Automatic hiding of the entry field when the control is connected to a protected and empty host field, or vice versa: making it visible when the host field is not protected or not empty,
    3. Automatic sizing of the entry field on the client side.

    This support is added as two new properties for the entry field class (VirtualCEntryField). These are DYNAMIC_HOST_FIELD, HIDE_PROTECTED_EMPTY and DYNAMIC_WIDTH. To enable convenient from the REXX language in Phantom Hurricane, two new REXX functions are also added (note that these functions are not available for Phantom Hurricane, only from REXX code converted to NetPhantom, see "Conditional conversion of REXX code to NetPhantom" in regards to /*NETREXX: statements */ in the NetPhantom User's Guide and Reference):

    • rc=PanSetCtlProperty(controlID, PROPERT_NAME, "true" | "false")
    • rc=PanGetCtlProperty(controlID, PROPERT_NAME) that returns true or false

    In the Java API, this support has added new methods to several base classes on the server side of NetPhantom. The following classes are affected:

    • VirtualCEntryField
    • VirtualHostField
    • HostField
    • HostScreen
    • NetRexxMigration
    • REXXMigration

    To view the changes in these classes, please see the JavaDoc documentation, where the keyword dynamic or property can be used to search for changes.
     

  • Support for individual codepages for text file (PHM) and translation table file (PHX). The first line in the file must start with ;#CODEPAGE=nn where nn is one of the valid OEM codepages (Cp437, Cp737, Cp775, Cp850, Cp852, Cp858, Cp860, Cp861, Cp862, Cp863, Cp864, Cp865, Cp866, Cp868, Cp921, Cp922 or Cp1098).
     
  • Support for setting a panel size change in percentage for width and height. Use the settings ratioX=xxx and ratioY=yyy in [base] section of "server.ini", where xxx and yyy is by default 100 (100%). The minimum values are 10.

Other

  • Support for Java 1.5.0 or J2SE 5.0.
     
  • Speed improvement of up to 10% on NetPhantom Client and Server side on reading transactions when CPU was the limiting factor (no change on network load).
     
  • Business Graphics package in NetPhantom Client and Server rewritten to include all features available from the REXX API, except patterns.
     
  • Improved stability in out-of-memory situations on the server side. The server will now stay alive for new socket connections (e.g. HTTP, SSL or NetPhantom/RAPP Clients) and try to inform them of the server state (i.e. unavailable as long as the out-of-memory situation is present).
     
  • Support for  
  • Support for new Phantom Hurricane 3.60b setting "Generate NetPhantom UCHG" to produce a User change object message each time the user changes an entry field, multiple-line entry field, combobox and spin button. Note that this option produces a transaction to the server each time the user makes a change, and that this has effect on client, server and network load.
     
  • The default RAPP remote application class has been extended to provide a post-initialization routine that can be overridden to perform special operations. New methods to set the HostSessionManager and VirtualSessionManager in se.entra.phantom.server.ClientSession has also been added (these routines should be used with care).
     
  • Host induced cursor position changes sets the global variable NETPHANTOM_HOSTCURSOR to X Y (zero-based, e.g. 1 0 for column 2 and row 1). This variable can be deleted and will only be set whenever the host positions the cursor followed by a HostChange event to the panel or controls.
     
  • NetPhantom Starter now omits the panel to select application to run if just one application is present in "applications.pkg".
     
  • NetPhantom Starter (with or without SSL) now includes the file NetPhantomClientImages.jar that contains the default images for an application. This makes displaying of panels containing images quicker when running over slow connection lines.
     
  • Company name change from "TietoEnator Financial Solutions AB" to "TietoEnator Banking & Insurance".
 

Server

Web server

  • HTTP Server Reply string is now settable. This option is used to obfuscate the real web server identity from a possible attacker. The option is settable from the Server Administration program (Server - Configure - Web server, on the first notebook page). Otherwise, use the option serverReplyString in [WebServer] in the "server.ini" file. This setting allows specifying the reply of the web server and version to conceal the HTTP web server against a possible attacker. The string should be in the format of serverName/versionName (see RFC 1945 http://www.ietf.org.rfc/rfc1945.txt section 10.14 for more information). This option is considered as a "low risk vulnerability" of the "HTTP Banner Exposure".
     
  • Added new Java Web Start MIME type for the NetPhantom Web Server (application/x-java-jnlp-file for file extension jnlp).
     
  • The Web Server now logs entries in the NetPhantom Log with WS_nnn (where nnn is the port number) instead of HTTPWSrv.

Server administration

  • New commands for Remote Server Administration command line utility. Click here for more information.
     
  • Enhanced Server Upgrade facility:
    • Checking for certain locked files, e.g. NetPhantomClient.jar and executables. This will enable the server upgrade facility to gracefully recover the above situations.
    • Server Administration enhanced with display of upgrade log files and possible failure or "graceful recover" of a previous server upgrade operation.
    • Implementation of future upgrade of the upgrade facility with output messages logged to the server administrator.
     
  • Remote Administration port of NetPhantom Server has been extended with security settings. The port can now use an access control that allows only specific IP domains access and also have the User ID and Password Authentication option. This new setting is set with the Server Administration program (Server - Configure - Base, on the first notebook page).
     
  • Added support and configuration (in the Server Administration program) of Administration Port User ID for load balancing slave servers when the controller server has an Access Control with user authentication on the administration port.
     
  • Option to disable non-server administration client connections using the option Client - New client connections menu item in the server administration program.
     
  • Server Administration enhanced to provide a system view of the server thread usage (not only including ServerThread instances).
     
  • A client session can be purged from the system by a request in the Server Administration to stop all threads of the client session and then performing a session clean up. This could resolve situations when threads are deadlocked in a session.
     
  • Enhanced tracking of server threads in NetPhantom Server by means of controlling Thread Groups. This enables threads started without the ServerThread instance to be assigned to a client session.
     
  • Added logging on the server for the list box control when an error occurred when a host field is set.

Various server settings

  • New language support in the server allowing several languages to be loaded and used to display messages in the event log as well as to clients. English, German and Swedish are available, English is the default language.

    When a client starts up, it uses the Java system property user.language to determine the language to use for a client.

    The new settings are (in "server.ini" [base] section):

    • textFileLanguage=id to set the default server language text file (must be loaded with the setting textFileLanguages below).
    • textFileLanguages=id,id2,... to specify German, Swiss mapped to German, Austrian to German and Swedish set textFileLanguages=de,ch=de,at=de,sv".
    • For each language ID (e.g. de or sv), two settings to specify the text file are used, for example: codePageTextFile.de=Cp437 and textFile.de=server_de.phm.
     
  • Support for port remapping in the NetPhantom Server. This allows e.g. ports above 1024 to be used as the normal ports (HTTP=80 and HTTPS=443) under UNIX systems when combined with external port remapping. This makes it possible to run the server without having "root" privileges.
     
  • Added option for Client DNS name look-up. For a Client connection, DNS names can be resolved (if possible) or not. A DNS look-up is time consuming and can be turned off. Once a client DNS name has been looked up, it is cached, so no further look-ups are performed. By default, DNS look-up is disabled to enhance performance.
     
  • New option used for "loop detection" in server.ini [base] section called loopDetectionCount=value. This options combined with setting trace ALL API Verbose or trace ALL API BinaryVerbose in [trace] section will output trace entries as LOOP DETECTION TIME = millisec each 20 seconds in the trace file. On a 800 MHz Intel machine using loopDetectionCount=10000 results in LOOP DETECTION TIME = 78 (depending on Java VM). The options is typically used to detect if e.g. REXX code is looping or being called constantly.

REXX and NetRexx

 

Client

  • Support for JDK 1.4.2 and JDK 1.5.0 (J2SE 5.0) for the NetPhantom Java Client, including new look-and-feel's (such as Windows XP look-and-feel).
     
  • Enhanced print window functionality when using Java 1.4 or better. The printing will be done using JNI (as before using NPCDDE.DLL) but if this fails, the Java2D framework for printing will be used, resulting in a high quality output (in color if supported). This also means that the NPCDDE.DLL file is no longer required for print window when using Java 1.4 or better.
     
  • Auto-complete feature for editable comboboxes. The entry field is pre-filled with matching data from the list in the same manner as e.g. Microsoft Excel does.
     
  • Faster loading of NetPhantom Client Applet when using Microsoft Internet Explorer with Sun Java 1.4.x (this applies to the NetPhantomClient[SSL].jar file when not present in the Sun Java 2 plug-in cache).
     
  • Generic Windows fonts can now be used with the NetPhantom Java Client running under Microsoft VM. Previously, only the Java fonts Dialog, Monospaced, SansSerif and Serif could be used in conjuction with font substitution.
     
  • Added logo display in the "Connecting" window in the NetPhantom Client. An alternate logo is displayed if the client can load the image altlogo.gif. This image should be located where the HTML file is loaded from if running as a Java Applet, otherwise when running as an Application, in the current directory or in the RESURL path specification.
     
  • New NetPhantom Client option RESJAR enabling image resources to be loaded from JAR files instead of over e.g. HTTP. Specify RESJAR:file1.jar:file2.jar:etc when running the Client as a Java Application. If the RESJAR parameter is not specified, the default NetPhantomClientImages.jar is assumed.
     
  • Added tool-tip text for listbox cells too small to visibly fit.
     
  • Added support in NetPhantom Client for automatic showing or hiding of menu item separators when (multiple) menu items visibility state are changed.
     
  • Maximize of panels now performed using native maximize function when running NetPhantom Client using JDK 1.4 or better.
     
  • Checkboxes and radio buttons now supports the new option "Always update text" that is introduced with Phantom Hurricane version 3.61a.
     
  • Two new client parameters are now transferred to the server when the client initializes the application. These can be used in e.g. multi-homed networks where external code needs to access the NetPhantom Server (typically HTML help system or external images), and the server doesn't know the IP address or host name used by the client to access the server. These are netphantom.resource.url and netphantom.server.host, and can be retrieved e.g. with GlobVarGet("NETPHANTOM_CLIENT_NETPHANTOM. RESOURCE.URL") and GlobVarGet("NETPHANTOM_CLIENT_ NETPHANTOM.SERVER.HOST").
     
  • Support for custom Look-and-Feel for the NetPhantom Client in regards to disabled icons for buttons (push buttons and toolbar buttons). The method getDisabledIcon (new in Java 1.5) in the LookAndFeel extending class is dynamically called to use the appropriate disabled icon. This enables support in Java versions prior to 1.5.
     
  • Enhanced NetPhantom Client functionality that typically is used when integrating the Client into an external framework:
     
    • Change of the TraceInterface

      e.g. to enable different processing on the client side when a panel is closed and/or when the application exits. The changes are:

      • the methods onPanelCreation and onPanelDisplayed are now called when panels are created from a notebook,
      • a new method onClosePanel,
      • the method onExit that now must return a value.
       
      For more information, see the JavaDoc for se.entra.phantom.client.TraceInterface.
       
    • Added support for IDs of panel and its controls.

      To enable the Server to send the IDs to the Client, at least one of the following operations must be done:

      • a System Property on the Java command line (e.g. with "Java" as -Dnetphantom. extended.create.info=1 or "JView" as
        -D:netphantom.extended.create.info=1),
      • a System Property set from a calling Java application by the java.lang.System.setProperty or setProperties method prior to starting the NetPhantom Client,
      • call the method setSendIDsToClient on the server side in the se.entra.phantom. server.VirtualSessionManager class.

      Once the IDs are transferred to the Client, the new methods in PPanel: getPanelID(), getControl(String id) or in PControl: getControlID() can be used.

     
  • Support for keyboard indicator status bar options (Caps Lock, Num Lock and Scroll Lock) when running the NetPhantom Client under JDK 1.3 or better.
     
  • Enabled possibility to specify only some look-and-feel options in the application panel. The look-and-feel names are set in the server[_xx].phm file (CLI0017 to CLI0020). If one is left empty, it will not be included in the menu.
 

Java API

  • Added API to set tooltip text on menu items and controls in a panel. Use the VirtualInterface.setProperty(VirtualInterface.TOOLTIP_TEXT, "The tooltip text") and the getProperty() methods.
     
  • New NetPhantom Client API in se.entra.phantom. client.SessionManager callObject enabling external Java code or User windows to call any object in the application running on the server. For more information, see the JavaDoc for SessionManager in the Client package.
     
  • The VirtualSessionManager class now implements two new methods addVirtualPanelCreationListener and removeVirtualPanelCreationListener.
     
  • The VirtualPanel class now implements two new methods addPanelListener and removePanelListener that should be used instead of setListener and getListener. When one listener instance is added, the functionality is backwards compatible, but when two listeners are added, the new class VirtualComponentListenerMulticast is used when delegating an interface method call.
     
  • New access methods for manipulating menus and pop-up menus from the VirtualPanel class. This also includes new methods in VirtualMenu, VirtualPopupMenu, VirtualPullDownMenu, VirtualMenuItem and VirtualPopupMenuItem. See the JavaDoc for more information.
     
  • The Java class se.entra.phantom.client.Bounds is now made public.
     
  • The se.entra.phantom.client.Terminal Java class in the NetPhantom Client used a javax.swing.JFrame and is now changed to use the se.entra.phantom.client. PJFrame class instead.
     
  • Added "Global frame" that is used to display JDialog's so that the owner is correct. This variable is used instead of the "frame" parameter when creating a new instance with PJDialogPlaf.createInstance and it is not null.
     
  • Changes in classes se.entra.phantom.client.PJFrame and se.entra.phantom.clientplaf.PJDialogPlaf that enables a "frame-less" client.
 

Phantom Session Booster

  • New Phantom Session Booster functionality:  
  • Phantom Session Booster now disables/hides the parent menu item if all menu items below it also are disabled/hidden because the menu items are unauthorized, only if the entry includeUnauthorizedParentMenus=1 in PSB.INI is found.
     
  • Phantom Session Booster now disables/hides all menu items that are bound to be authorized or unauthorized for a user when the application starts, use the entry unauthorizeMenusAtStart=1 in PSB.INI. These menu items have the ID O_nn or OPEN_nn where nn is a valid integer.
     
  • Phantom Session Booster now disables/hides the top-level menu item if all menu items below it also are disabled/hidden because the menu items are unauthorized.
     
  • Phantom Session Booster now supports setting the AS/400 User ID as the NetPhantom logged on User ID that is visible in the Server Administration program. Specify GGGSAVEUSERID=1 in PSB.INI.
     
  • Support for single session in Phantom Session Booster, i.e. that a new session runs in foreground and cannot be put in background by either selecting another session or by starting a new session. This is enabled for particular functions by number. E.g. a function with the ID OPEN_123 and OPEN_789 is specified as GGGSINGLESESSION=123,789 in PSB.INI. A started session can be locked as single session by calling the REXX function CallObject("GGGMAC","LOCK","CMD",1) or unlocked with CallObject("GGGMAC","LOCK","CMD",0).
 

Older versions