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.
- Enhanced terminal window with new options:
These options can be pre-configured in "server.ini" or the Server
Administration program, and also customized for each user.
- Keyboard auto reset,
- Keyboard type ahead,
- Disable sound alarm,
- Box drawing (3270 only) -- typical for e.g. ISPF under TSO.
- 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
- 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
- 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
- New License Manager features, click here for more information:
- Support for multiple backup License Managers when several NetPhantom Servers
are used for redundancy on multiple machines.
- 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.
- 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:
- Dynamic host field connection in terms of its position and length,
- 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,
- 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:
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
- 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.
- 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".
- 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.
- 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
- 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
- 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
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
- 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
- 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
- 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
- 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
- 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.
- 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
- 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
- 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