se.entra.phantom.server
Class ClientSessionManager

java.lang.Object
  extended by se.entra.phantom.server.ClientSessionManager
All Implemented Interfaces:
NetPhantomConstants, ClientConnectionListener, ServerAdminInterface

public class ClientSessionManager
extends Object
implements ClientConnectionListener, ServerAdminInterface, NetPhantomConstants

The manager for all threaded client sessions that clients can connect to.


Nested Class Summary
 class ClientSessionManager.Statistics
          The statistics for transactions.
 
Field Summary
static int CLIENT_TYPE_HTML
          The HTML client type.
static int CLIENT_TYPE_JAVA
          The Java client type.
static int CLIENT_TYPE_RAPP
          The Remote Application client type.
static String progName
          NetPhantom program name.
static String progVer
          NetPhantom program version string.
static String progVerReg
          NetPhantom program version string (registered trademark).
 long serverFreeMemory
          Total free memory when ClientsessionManager is initialized.
 long serverTotalMemory
          Total used memory when ClientsessionManager is initialized.
 long wsErrorCount
          Web server error count.
 long wsHitCount
          Web server hit count.
 long wsMaxQueueSize
          Web server max queue size.
 long wsRedirCount
          Web server redirection count.
 
Fields inherited from interface se.entra.phantom.server.ServerAdminInterface
SUBSYS_API, SUBSYS_CLIENT, SUBSYS_HOST, SUBSYS_TELNET, TRACE_BINARY, TRACE_BINARYVERBOSE, TRACE_OFF, TRACE_VERBOSE
 
Fields inherited from interface se.entra.phantom.common.NetPhantomConstants
ACTION_CLOSEWINDOW, ACTION_CONTROL, ACTION_HOSTKEY, ACTION_MENU, ACTION_NONE, ACTION_NOTEBOOKPAGE, ACTION_POPUPMENU, CBT_ALWAYSDOWN, CBT_NONEDITABLE, CBT_NORMAL, CC_BACKGROUND, CC_BOTH, CC_FOREGROUND, CC_NONE, CLIPBOARD_GET, CLIPBOARD_SET, DATEF_DMY, DATEF_MDY, DATEF_SYSTEM, DATEF_YMD, DDE_ADVISE, DDE_EXECUTE, DDE_INITIATE, DDE_POKE, DDE_REQUEST, DDE_TERMINATE, DDE_UNADVISE, DDE_UPDATE, DDEVAR_DISABLE, DDEVAR_ENABLE, DDEVAR_REQUEST, DDEVAR_SET, DDEVAR_VALIDATE, EFT_AMOUNT, EFT_DATE, EFT_DATEAMOUNT, EFT_NORMAL, EFT_PASSWORD, EVENT_CHAR, EVENT_CHECK, EVENT_CLICK, EVENT_COMMAND, EVENT_DBLCLICK, EVENT_DDECONNECTION, EVENT_DDEDATA, EVENT_DDEERROR, EVENT_DDEEXECUTE, EVENT_DDEINVALIDATE, EVENT_DDEPOKE, EVENT_DDEREQUEST, EVENT_DEFOCUS, EVENT_FOCUS, EVENT_PAGEDOWN, EVENT_PAGEUP, EVENT_SELECT, EVENT_UNKNOWN, EVENT_USERCHANGE, EXTENDEDINFO_IDS_TO_CLIENT, fillerByte, FOCUSTYPE_CLIENTTARGET, FOCUSTYPE_CONTROL, FOCUSTYPE_NONE, ICON_CRITICAL, ICON_INFORMATION, ICON_NOICON, ICON_QUERY, ICON_WARNING, J_AUTO, J_BOTTOM, J_BOTTOMLEFT, J_BOTTOMRIGHT, J_CENTER, J_LEFT, J_RIGHT, J_TOP, J_TOPLEFT, J_TOPRIGHT, MAX_PANELS_PER_SESSION, MAX_SESSIONS, MB_ABORTRETRYIGNORE, MB_CANCEL, MB_ENTER, MB_ENTERCANCEL, MB_OK, MB_OKCANCEL, MB_RETRYCANCEL, MB_YESNO, MB_YESNOCANCEL, MBID_CANCEL, MBID_DEFAULT, MBID_ENTER, MBID_IGNORE, MBID_NO, MBID_OK, MBID_RETRY, MBID_YES, MS_MOVE, MS_NONE, MS_SIZE, NETPHANTOM_VERSION, OBJEVENT_CHECK, OBJEVENT_CLICK, OBJEVENT_DBLCLICK, OBJEVENT_DEFOCUS, OBJEVENT_FOCUS, OBJEVENT_SELECT, OBJEVENT_USERCHANGE, PANELCREATE_APPPANEL, PANELCREATE_DANGLINGPANEL, PANELCREATE_DLGFRAME, PANELCREATE_EXTENDEDINFO, PANELCREATE_ICON, PANELCREATE_INDIVIDUALSIZE, PANELCREATE_POPUP, REPLYTYPE_CLIENTEXECUTE, REPLYTYPE_CLIPBOARD, REPLYTYPE_DDE, REPLYTYPE_FFONTLIST, REPLYTYPE_MESSAGEBOX, REPLYTYPE_REPORT, REPLYTYPE_SAVEPROPS, REPLYTYPE_TERMMARK, RPRT_CANCELPRINTJOB, RPRT_CLOSEPRINTJOB, RPRT_CONTPRINTJOB, RPRT_OPENPRINTJOB, RPRT_PRINTJOBCANCLD, RPRT_PRINTJOBCLOSED, RPRT_PRINTJOBCONT, RPRT_PRINTJOBOPENED, RPRT_PRINTJOBSTARTED, RPRT_STARTPRINTJOB, SEGMENT_SIZE, SELMODE_NORMAL, SELMODE_NOTALLOWED, SELMODE_REQUIRED, SELTYPE_MULTIPLE, SELTYPE_SINGLE, SEPARATOR, SEPARATORCHAR, TRANS_APPLICATIONCHANGE, TRANS_CALLOBJECT, TRANS_CLEARLOCK, TRANS_CLIENTEXECUTE, TRANS_CLIENTJARS, TRANS_CLIENTTEXTTABLE, TRANS_CLIENTUPDATED, TRANS_CLIENTUPDATEDNOLOCK, TRANS_CLIPBOARD, TRANS_CLIPBOARDCOMPONENT, TRANS_CLOSETERMINALWINDOW, TRANS_CONNECTIONREFUSED, TRANS_COUNTRYINFO, TRANS_CREATEPANEL, TRANS_CREATESESSION, TRANS_DDE, TRANS_DDEEVENT, TRANS_DDEEVENTREPLY, TRANS_DDEVAREVENT, TRANS_DISPLAYHELP, TRANS_DISPLAYTERMINAL, TRANS_ENDCONVERSATION, TRANS_EXIT, TRANS_FONTSUBSTITUTION, TRANS_HOSTCOLORTABLE, TRANS_HOSTPRINT, TRANS_INACTIVESESSION, TRANS_INITIATE, TRANS_KEEPALIVE, TRANS_LOGEVENT, TRANS_MESSAGEBOX, TRANS_MESSAGEBOXWITHREPLY, TRANS_MODALREPLY, TRANS_PING, TRANS_PRINTCOMPONENT, TRANS_PRINTPANEL, TRANS_PRINTREPORT, TRANS_PRTWINKEY, TRANS_REDIRECTION, TRANS_REMOVEPANELATLEVEL, TRANS_REMOVETERMINAL, TRANS_RENEGOTIATESSL, TRANS_REQUESTHELP, TRANS_RESOURCEURL, TRANS_SELECTSESSION, TRANS_SESSIONACTIVE, TRANS_SESSIONSELECTED, TRANS_SETFOCUS, TRANS_SETLOCK, TRANS_SETPANELNESTLEVEL, TRANS_SETUNICODE, TRANS_SETUPPARAMS, TRANS_SHOWDOCUMENT, TRANS_SOUNDALARM, TRANS_STARTUPINFO, TRANS_STOPSESSION, TRANS_TERMINALDATA, TRANS_TERMINALUPDATE, TRANS_TERMINALWINDOW, TRANS_TERMWINTEXT, TRANS_UPDATEAPPLICATION, TRANS_UPDATEPANEL, TRANS_USEREXITPRTKEY, TRANSACTION_VERSION, VSIGN_MINUS, VSIGN_NONE, VSIGN_PLUSMINUS, YEARF_6DIG, YEARF_8DIG, YEARF_EXP8
 
Constructor Summary
ClientSessionManager(Object nul, String iniFileName, boolean isRestartAvailable, boolean isEditor, int clusterServerNumber)
           
ClientSessionManager(String iniFileName, boolean isRestartAvailable)
          Creates an initial count of thread sessions.
ClientSessionManager(String iniFileName, boolean isRestartAvailable, boolean isEditor)
          Creates an initial count of thread sessions.
ClientSessionManager(String iniFileName, boolean isRestartAvailable, boolean isEditor, int clusterServerNumber)
          Creates an initial count of thread sessions.
 
Method Summary
 void addClientSessionListener(ClientSessionListener listener)
          Adds a client session listener.
static void addHostReceiveTransaction(int size)
          Adds a new host receive transaction for statistics.
static void addHostSendTransaction(int size)
          Adds a new host send transaction for statistics.
 void addInboundTransaction(int size)
          Adds a new inbound transaction for statistics.
 void addOutboundTransaction(int size)
          Adds a new outbound transaction for statistics.
static void addPingReplyTime(ClientConnectionData client, int milliTime)
          Adds the reply to a ping round-trip.
 String addRuntimeFile(String appName, String filePath, boolean doValidateUser)
          Loads and adds a runtime file to the hash table containing all runtime files.
 void addServerProcessListener(ServerProcessListener listener)
          Adds a server process listener.
static void addWebServerError()
          Adds a web server error reply.
static void addWebServerHit(int currentQueueCount, int maxCount)
          Adds a web server hit.
static void addWebServerRedirection()
          Adds a web server redirection.
static void addWebServerReply(int size)
          Adds a new web server send reply for statistics.
static void addWebServerRequest(int size)
          Adds a new web server request for statistics.
 void aliveNotification()
          Performs alive notifications.
static void appendClientSettings(Transaction trans)
          Appends the list colors and look-and-feel string to an initiate transaction.
static void appendCountryInformation(Transaction trans)
          Appends the country information for the initiate transaction.
static void appendLocalizedTextData(Transaction trans)
          Appends the localized text to a transaction.
static void appendLocalizedTextData(Transaction trans, String lang)
          Appends the localized text to a transaction.
static void appendPrintTransactions(Transaction trans)
          Appends the print window transaction and user exit print transaction if defined.
static void appendTerminalWindowTransaction(Transaction trans)
          Appends the terminal window transaction if defined.
 boolean areNonServerAdminConnectionsAllowed()
          Checks if non-ServerAdmin connections are allowed.
 boolean changeEventFile()
          Changes the event file.
 boolean changeTraceFile()
          Changes the trace file.
 boolean clearWebServerCache()
          Clears the web server cache.
 ClientSession createNewSession(int type, ClientCommunicationListener ccl, InetAddress clientAddress)
          Call this method to create a new client session that is created from either a HTTP session or a request-reply session.
 ClientConnectionData createPooledSessionData(String name)
          Creates a new ClientConnectionData instance for use in a session pool.
 ClientSessionManager.Statistics createZeroedTransactionStatistics()
          Gets the statistics for transactions.
 boolean displayWebServerCache(VirtualCListBox list)
          Fills a list box with the cache information.
static boolean disposeOfClientSession(ClientConnectionData ccd)
          Disposes of the client session indicated by the client connection data.
static boolean doAPIBinaryTrace()
          Checks if API binary trace is on.
static boolean doAPIVerboseTrace()
          Checks if API verbose trace is on.
static boolean doClientBinaryTrace()
          Checks if Client binary trace is on.
static boolean doClientVerboseTrace()
          Checks if Client verbose trace is on.
static boolean doHostBinaryTrace()
          Checks if Host binary trace is on.
static boolean doHostVerboseTrace()
          Checks if Host verbose trace is on.
static boolean doResolveDNSName()
          Resolving of DNS name or not.
static boolean doTelnetBinaryTrace()
          Checks if Telnet binary trace is on.
static boolean doTelnetVerboseTrace()
          Checks if Telnet verbose trace is on.
static boolean editor()
           
static void exit(int rc)
          Exits the system with a return code.
protected  void finalize()
          The finalize method calls the Start class to trigger a pending restart of the server.
static void fullGC()
          Performs the full garbage collection.
 int getClientConnectionCount()
          Gets the current client connection count.
 int[] getClientConnectionCounts()
          Gets the current client count for the connection types.
 ClientConnectionData[] getClientConnectionList()
          Get the listing of client connections.
 Enumeration<ClientSession> getClientSessions()
          Gets an enumeration in a copy of a vector of all the client sessions.
 VirtualSessionManager getClientVirtualSessionManager(long id)
          Gets the VirtualSessionManager of a client connection ID.
static String getClusterBindAddress()
          The bind address for all ports for a clustered server (null for none).
static String getClusterDnsName()
          The DNS name to use for the web server (null for none).
static String getClusterIpAddress()
          The IP address to use for the web server (null for none).
static int getClusterServerAdminPort()
          Gets the server admin port for the cluster server (0=none).
static int getClusterServerCount()
          The number of clustered servers (zero for normal server).
static int getClusterServerNumber()
          Gets the cluster number of this server (0=not clustered).
static int getColor(String commaSeparatedRGB)
          Gets a color RGB value from a comma separated string.
static int getComboAutoComplete()
          Get the combo auto complete setting.
 int getDefaultHostSession()
          Gets the default host session ('A' to 'Z') if none (or invalid) is specified by the NetPhantom Client.
 String getDefaultRuntimeApplicationName()
          Gets the default runtime application name.
static byte[] getDefaultTraceLevels()
          Returns the default trace levels.
 JDesktopPane getDesktopPane()
          Gets the desktop pane.
 String[] getEventIDs()
          Gets the list of available EventIDs for event logging.
 String[] getEventIDsDescription()
          Gets the list of available EventIDs description for event logging.
 String getFeatureValue(String feature)
          Gets a licensed feature value if the feature item is specified as "feature=value".
static long getFileSize(String fileName)
          Helper method to get the size of a file.
 GofManager getGofManager()
           
 GuiOnTheFlyRuntime getGuiOnTheFlyRuntime()
          Gets the base definition of how Gui-on-the-fly looks like.
static String getHostAddress()
          Gets the host address when depending on the bind address of the Admin port.
static String getHostName()
          Gets the host name depending on the bind address of the Admin port.
static String getLocalizedTextItem(int textIndex)
          Access localized text for internal server use.
 int getLoggingEvent(int eventIndex, long clientID)
          Checks if an event is logged for a particular event index.
 int getLoggingEvent(String eventID, long clientID)
          Checks if an event is logged for a particular event ID.
 LUMapperInterface getLUMapper()
          Returns the LUMapper.
 int getMaximumClientConnectionCount()
          Deprecated. Use getMaximumClientConnectionCount(int type) instead.
 int getMaximumClientConnectionCount(int sessionType)
          Gets the current maximum count of client connections.
 int getMaximumClientConnectionStatus()
          Deprecated. No replacement.
 int getMaximumWebServerRequests()
          Gets the maximum count of outstanding web server requests.
static long getMemoryUsage()
          Gets the amount of used memory.
static InetAddress getOutputBindAddress()
          The bind address for output connections.
 int getPingClientTimeout()
          Gets the "ping" time value (in minutes) when a dummy transaction should be sent to the client, 0 for none.
static Vector<Object[]> getPingReplies()
          Gets the vector containing ping replies.
 PortManager getPortManager()
          Gets the server port manager.
 PhantomRuntime getRuntimeApplication(String name)
          Gets a runtime application of an ID.
 String[] getRuntimeFileIDs()
          Gets the runtime file IDs.
 String[] getRuntimeFiles()
          Lists the names of the runtime files used.
 String[] getRuntimeIndexes()
          Lists the indexes of the runtime files used.
 PhantomRuntime getSecureLoginRuntimeApplication()
          Gets the SecureLogin runtime application.
static String getServerAdminAddress()
          Gets the server admin address used (as IP address 123.456.789.012).
static ClientSessionManager getServerAdminInterface()
          Gets the user authentication runtime application.
static int getServerAdminPort()
          Gets the server admin port used.
 PhantomRuntime getServerAdminRuntime()
          Gets the Server Administration runtime.
static IniFile getServerIni()
          Gets the SERVER.INI class instance.
static String getSoftwareUpdatesURL()
          Gets the string for "Checks for software updates".
 long getStartupFreeMemory()
          Returns free memory at startup.
 long getStartupTotalMemory()
          Returns memory use at startup.
static String getTextID(String id)
          Gets a text ID from the "server.phm" file.
static String getTextID(String language, String id)
          Gets a text ID from the "server.phm" file.
static String getTextIDWithException(String id)
          Gets a text ID from the "server.phm" file.
static String getTextIDWithException(String language, String id)
          Gets a text ID from the "server.phm" file.
static long getTotalMemoryChange()
          Gets the changed amount of total memory.
 int getTrace(long clientConnection, int subsystem)
          Gets the trace state for all clients or for a particular client connection.
 ClientSessionManager.Statistics getTransactionStatistics()
          Gets the statistics for transactions.
static UserAuthenticationInterface getUserAuthenticationInterface()
          Gets the user authentication interface.
 PhantomRuntime getUserAuthenticationRuntimeApplication()
          Gets the user authentication runtime application.
 int getWarningClientConnectionCount()
          Deprecated. No replacement.
 HttpWebServer getWebServer()
          Gets the web server instance, null for not initiated.
 int getWebServerRequests()
          Gets the current count of outstanding web server requests.
 boolean hasClientConnectionChanged()
          Checks for a change in the client connection list since the last call to this routine.
static boolean hasExpired()
           
static boolean hasLanguage(String language)
          Checks if a language is defined and used for the server, apart of the default one.
 void initializePrintWindowTransaction()
          Initiates the print window transaction.
 void initializeTerminalWindowTransaction()
          Initiates the terminal window transaction.
 void initializeUserExitPrintTransaction()
          Initiates the print window transaction.
 void initLicense(VirtualSessionManager vsm)
          Handles the license panel for the Editor.
 void initLicense(VirtualSessionManager vsm, VirtualPanel vp)
          Handles the license panel for the Server Administration program.
 boolean isApplicationEnabled(String appID)
          Gets the application enabled state for new client connections.
 boolean isClientConnectionAllowed(String id, ServerSocketInterface ssi, Socket socket)
          Checks if a client is allowed to connect or not.
 boolean isClientLogonAllowed()
          Checks if client logon is allowed.
 boolean isEditor()
          Checks if this is the Editor or not.
static boolean isEventLogged(int eventID)
          Checks if an event is logged.
 boolean isFeatureEnabled(String feature)
          Checks if a licensed feature is enabled.
static boolean isHardJVMRestartAvailable()
          Checks if hard restart JVM is available.
 boolean isHttpTunnelingEnabled()
          Checks if the server is enabled for HTTP tunneling.
static boolean isLicenseValid()
           
 boolean isMaximumClientConnectionsReached()
          Deprecated. Use isMaximumClientConnectionsReached(int sessionType,int extraSessions) instead.
 boolean isMaximumClientConnectionsReached(int extraSessions)
          Deprecated. Use isMaximumClientConnectionsReached(int sessionType,int extraSessions) instead.
 boolean isMaximumClientConnectionsReached(int sessionType, int extraSessions)
          Checks if the maximum number of client connections allowed is reached.
 boolean isRestarting()
          Checks if the server is currently restarting.
static boolean isServerAdminOperational()
          Checks if the server admin exit is operational.
 boolean isServerConfigRequired()
          Checks if the server needs to run in server configuration mode.
 boolean isShuttingDown()
          Checks if the server is currently shutting down.
 boolean isSSLActive()
          Check if SSL is activated.
 boolean isWebServerStarted()
          Checks if the web server is started or not.
 void loadWebServer()
          Checks and loads appropriate data used by the WebServerInterface.
static boolean logEvent(int eventID)
          Log the event.
static boolean logEvent(int eventID, String appendedText)
          Log the event.
static String mapClientToHostLU(ClientConnectionData ccd, String host, int port)
          Gets the 3270/5250 LU name from an internet address (and/or user name).
static String mapClientToHostLU(ClientSession clientSession, HostSessionPeer hostSessionPeer, ClientConnectionData ccd, String host, int port)
          Gets the 3270/5250 LU name from an internet address (and/or user name).
static String mapLanguage(String language)
          Maps a language ID to another one if this is defined in "server.ini".
 void onClientConnect(String id, ClientCommunicationInterface cci)
          This method is called when the clientListener thread accepts an incoming client connection.
 void onClientDisposed(ClientSession cs)
          ClientSession calls this method whenever a client session is about to be disposed.
 void onRemoteApplicationConnect(String id, ClientCommunicationInterface cci)
          Called when a new connection is created from a remote application.
 void onUnknownConnect(String id, ServerSocketInterface ssi, Socket s, int firstChar)
          This method is called when the clientListener thread accepts an incoming client connection.
 int performEventCommand(String command)
          Processes an event command.
 int performEventCommand(String eventID, int include, long[] clientIDs)
          Processes a single eventID specification for the event filter.
static void performFullAggressiveGarbageCollection()
          Performs a full garbage collection very aggressively.
 void reloadMapFile()
          Reloads the optional file used to map a client to a particular 3270 LU.
 boolean reloadRuntimeFiles(String[] apps)
          Reloads one or several runtime files of the specified indexes.
 void removeClientSessionListener(ClientSessionListener listener)
          Removes a client session listener.
 boolean removeRuntimeFile(String appName)
          Removes a runtime file from the application.
 void removeServerProcessListener(ServerProcessListener listener)
          Removes a server process listener.
static int requestPingReplies()
          Requests all Java clients to perform a PING round-trip and add the elapsed time into an array that can be retrieved using getPingReplies.
 void resetTransactionStatistics()
          Resets the statistics for transactions.
 boolean restart(boolean immed, int restartState)
          Requests the server restart or shut-down.
 int sendApplicationBroadcastMessage(String applicationID, String message)
          Sends a broadcast message to all clients using the specified runtime application.
 int sendBroadcastMessage(String message)
          Sends a general broadcast message to all clients.
 boolean sendClientMessage(long id, String message)
          Sends a message to the specific client.
 boolean setApplicationEnabled(String appID, boolean enabledFlag)
          Sets the application enabled state for new client connections.
 boolean setClientLogonAllowed(boolean isAllowed)
          Sets the client logon allowed count.
 int setMaximumClientConnectionCount(int maximum)
          Deprecated. No replacement.
static void setNetPhantomServerUpgraded()
          Sets the server as upgraded.
 void setNonServerAdminConnectionsAllowed(boolean allow)
          Sets the state of non-ServerAdmin connections allowed or not.
static void setResolveDNSName(boolean on)
          Sets resolving of DNS name or not.
 void setSSL(int sslVal)
          Set SSL activation code.
 boolean setTrace(long clientConnection, int subsystem, int traceLevel)
          Sets the trace state.
 boolean setTrace(String cmd)
          Sets trace options from a text string command.
 void setWarningClientConnectionCount(int count)
          Deprecated. No replacement.
 void shutDown(boolean immed)
          Requests the server shut-down.
 void stopWebServer()
          Stop the web server.
 boolean terminateClientConnection(long id)
          Terminate the connection of a client connection with an optional text describing why this is done.
 boolean traceClientConnection()
          Prints a snap-shot list of current client connections to the current trace file.
 
Methods inherited from class java.lang.Object
clone,