Enhanced WindX Capabilities

PxPlus enhanced WindX performance by reducing the size of data packets sent from the host to the workstation and by maintaining various semi-static control proprieties on the host thereby eliminating the need to request them from the workstation. Both of these enhancements are designed to reduce network traffic and increase the speed of your application.

In addition, PxPlus enhanced error and status checking of the WindX workstations providing better application control and reliability.

Data Compression:

Setting the '+W' system parameter causes the system to compress the data packets being sent to WindX. While the compression and decompression processes themselves use additional CPU time, the amount of data being sent to the workstation and thus the overhead in the packet transmission itself more than make up for the CPU load. In addition, the reduction of the amount of data sent to the desktop from the host can reduce contention for the network, which will improve overall system performance for all users.

To enable data compression on WindX packets turn on the '+W' system parameter. While this parameter is on, all WindX transmissions are evaluated as to whether or not there would be any savings in using compression (small packets are not compressed). If PxPlus determines that there would be sufficient savings, in terms of transmission time and TCP/IP overhead, the data will be compressed.

Turning the '+W' parameter off disables the compression.

Two new TCB values provide statistics regarding the amount of data being sent to the workstation. TCB(500) contains the number of uncompressed bytes of data that are being sent to WindX, TCB(501) contains the number of bytes actually sent.

Host Properties Cache:

The '+H' system parameter when enabled, tells the host process to maintain copies of various control properties that are generally not changed by the workstation. Properties such as 'Col, 'Line, 'Visible, 'Enabled, 'Tip$, etc. generally are only set by the host – often only at control creation. Many applications access these properties, which normally would invoke sending a request to the WindX workstation to get their current value. The Host property caching eliminates the need for this additional request thereby speeding up access to the property while reducing network traffic.

When using Host property caching, it is important that you do not have any code executing locally that directly manipulates controls otherwise the host will not be aware of the changes made and will report incorrect values back to the application.

If you do wish to run a program locally that may alter the values of cached controls, you should disable the '+H' system parameter. Whenever this property is reset, the system will automatically flush any cached property values currently held on the host and no further tracking of the properties will be done.

Some of the properties cached are:

Auto BackColour BackHilght1 BackHilight2 BitmapPosition
Col Cols CtlName Enabled Font
Height HoverColour hWnd InsDelEnabled ImageCount
ItemNeededCtl Key Left Line Lines
Lock MenuCtl MultiSelect Msg OnFocusCtl
Parent SignalOnly SignalOnExit Text TextColour
Tip Top Visible Width _PropList
    _PropSep    

Caching Definition Directives:

The directives that control what is cached on the server are provided by the system program "*plus/wdxcache" that is run automatically by the system. If you are curious about them, the following is a brief description of the directives and their use:

ADD SERVER PROPERTY var,var,var

This directive defines the variables that can be cached on the server. Only the numeric form of the variable should be specified thus properties such as 'TextColor$ would be supplied as TextColor. Where a property has more than one spelling (as in the case of TextColour and ‘TextColor, the two variables should be separated with an equal sign to identify them as the same property.

DROP SERVER PROPERTY SET var1 CLEAR var2, var3, ... (or *)

This directive tells the system that when 'var1' is set any cached value for var2, var3 (or all properties if a * is given) should be deleted. Generally, this would be used with related properties where changing one affects the other, such as, 'Line and 'Top. For example, changing the 'Line of a property would also change the 'Top position.

DROP SERVER PROPERTY ON <fncs> CLEAR var, var, var (or *)

This directive tells the system that when a Windx data packet containing one of the minor functions in <fncs> is sent to the workstation that the specified property cache values should be dropped.

The program "*plus/wdxcache" defines the current caching parameters for the system and may be modified.

Built-in Workstation Monitoring (Windx only):

One of the major problems with TCP/IP is that when the session is idle there is no notification from a workstation that the connection between it and the host may have been lost. While using the standard TCP/IP KEEP-ALIVE functionality solves the problem, most systems require some form of operating system re-configuration to enable/control the functionality.

PxPlus has added a built-in terminal-polling interface that checks on a regular basis that a TCP/IP connected Windx workstation be still connected. Setting the '+A' system parameter on the host defines the number of minutes between checks. Setting this property to 10 will cause the system to send out a verification message to the workstation every 10 minutes while idle. If the message cannot be delivered properly, the system will disconnect the workstation and terminate any outstanding read request. Should no outstanding read request be present the system will interrupt the processing of your program within 5 seconds with what is effectively a BREAK signal and initiate wrap-up.

Break/Escape Recognition (Windx only):

Break recognition has been enhanced for Windx terminals. Prior this enhancement when a Windx session was executing, the Break signal was only recognized when the system was asking for terminal input. Now, the system will regularly monitor for the receipt of a Break/Escape signal and will interrupt the program if one is detected.

The monitoring is done approximately every five seconds so there may be a slight delay between the time the workstation initiated the break and the time the application receives it.