|
Performance Problems with WindX ?
If your WindX to Unix connection is actually
executing a Unix 'login', read on. This document explains how you can improve
WindX performance by NOT using the standard Unix login mechanism.
When WindX is used through a telnet connection (which is the 'normal' way of
connecting a LAN client to Unix), both sides (WindX and ProvideX on the host)
constantly need to translate all data. That's because certain characters from
the 256-byte ASCII table have a special meaning to telnet itself, and WindX must
avoid using these characters. This translation of data in both directions (host
to WindX and WindX to host) can cause a noticeable performance penalty.
There is another way of connecting a Windows WindX client to a Unix host. All
programs that are required to connect WindX to the Unix host without using a
Unix login (the ProvideX *nthost and *ntslave programs) are already bundled with
ProvideX and WindX.
Below you will find a description of how to set up this " *nthost/*ntslave "
connection between host and WindX. This type of connection doesn't use telnet
and should make quite a performance difference.
Please note that all IP addresses and paths are only examples and must be
replaced by values that reflect your installation.
Save the script below in /usr/local/bin/starthost on your Unix machine:
#!/bin/sh
PVXLIB=/pvx/lib
TERM=winterm
PVXSTART=*startup # or whatever your PVXSTART normally uses
export PVXLIB TERM PVXSTART
umask 0
cd /pvx
/pvx/pvx \*nthost -arg 20000 eric 0 >/dev/null </dev/null 2>&1
Use 'chmod 777' to set 'rwx' permissions for all on the /usr/local/bin/starthost
script.
'20000' is the socketnumber of the host process that will be monitoring for
WindX programs to connect.
'eric' is a login name from '/etc/passwd':
This user (or the one that you select) *MUST* be available in /etc/passwd.
Verify that you can login and start ProvideX with this
user.
All WindX users will appear (in Unix) as THIS user (in other words: the ProvideX
WHO function will return this name).
In /etc/inittab on your Unix machine, enter the following line:
pvx1:234:respawn:/usr/local/bin/starthost </dev/null >/dev/null 2>&1
[ Note for SCO OpenServer 5 users: I usually include this line below the 'r3'
line in /etc/inittab ].
Please note that when the kernel environment is rebuild (after linking a new
kernel for example), SCO will remove this line from /etc/inittab.
Save /etc/inittab and enter 'telinit q'. You've now started a ProvideX host
program on your Unix machine (using socket 20000) that will wait for
*NTSLAVE WindX connections. Please note that on some Unix machines, you will
need to reboot in order to have Unix accept this additional inittab line.
On your workstations (that are running WindX), create the following shortcut:
Target: C:\Pvx\Pvxwin32.exe *ntslave -ID=T99 -arg 192.2.9.10 "" 20000
Start in: C:\Pvx
Run: Minimized
192.2.9.10 is the IP address of your Unix machine.
20000 is the socket number of the host process, as defined in
/usr/local/bin/starthost.
-ID=T99 is the FID(0) value of ProvideX on the Unix machine.
"" is the name of the program that should be started once a connection has
been made. When empty (""), ProvideX will start in console mode.
If you want to start ProvideX sub-processes from this kind of connection, you
should use CALL "*windx.utl;spawn" as the START verb will not work in this case.
|