Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Mike Lewis on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Bad ProTermCap file? Is 8 limit on TCP/IP sessions?

Status
Not open for further replies.
Sep 18, 2002
19
0
0
US
MY CREDENTIALS -
I have sold and done some support and some installations on a Progress V8 app on SCO Unix systems. But I have zero expertise in Progress or Unix. I appologize if I am not stating the details clearly.

PROBLEM -
Only 8 PC's can connect to the Progress application via TCP/IP. I can exceed 8 TCP/IP connections to the server if I go into a Unix screen, but not if I try to launch another Progress application session.

When the limit is reached the message from the PC is: "Terminal Type is Unknown - Unable to use terminal - check your PROTERMCAP file. (443)" and then "could not find terminal type UNKNOWN in file /u/APP/APPtermcap (146)".

If I shut down one session elsewhere (or one of the multi-screens on the problem PC) and try again, it logs into the app fine.

IN THE PAST -
The client did not ever "run out of sessions" after I changed his "n" parameter in the pf file (probably set to 64 - the client probably never goes beyond 16). The terminal emulation software is Termulator II and the mode is [I think] "SCO Ansi Color Console".

CHANGES THAT PRECIPITATED PROBLEM -
One of my clients has changed most of his terminals <FROM> Wyse 60 terminals connecting serially via a Stallion multiport adapter <TO> Window PC's connecting via a TCP/IP connection into a 3M NIC added to the HP SCO Unix 5.0.6a server.

HELP -
Can you help? Can you direct me to help?

THANKS

 
This sounds strange...and is OS oriented rather than your progress app.

Things to check, logged into server as root

look at their startup profiles (/etc/profile, ~/.profile)
and at the script that starts the application.

It would be my guess that these scripts are doing something strange with TERM based on the tty port.

(I have been using progress on openserver since 1990)
 
There are 3 &quot;profile&quot; files, but they all seem to be identical and the one I am showing is the newest, /etc/profile -

NOTE 1: the &quot;(&quot; and &quot;)&quot; signs below possibly should be &quot;<&quot; and &quot;>&quot; - the screen font was undecipherable and I did not have time to pursue it

NOTE 2 - I have not included most of the comments and the script dealing with the screen display script relating to HUSHLOGIN mode

NOTE 3 - most of this is Greek to me - I may have &quot;mis-spelled&quot; something - I will gladly be 100% precise on any item specifically questioned

MF_ADM=adm.cat@Unix
MS_PROFILE=1
# @ (#) profile.sh 26.1 95/07/25
trap &quot;&quot; 1 2 3
TERMINFO=/usr/lib/terminfo ; export TERMINFO # the default terminfo location
umask 022
case $0&quot; in
-sh | -rsh | -ksh | -rksh)
#### a bunch of stuff about MAIL messages and HUSHLOGIN ##
-su>
:
;;
esac
trap 1 2 3
/usr/lib/dv/digi_trigger ##old code relating to Digiboard serial adapters ##


DIRECTORY =/usr/lib/terminfo has the following files -
1, 2, 3...9
A, V, M, P, W
a, b, c...z
brasinfo.src
euroinfo.src
terminfo.lp
terminfo.src

Does this help?

Thanks
 
More Clues
Someone suggested Progress cannot handle a lot of SCO ANSI COLOR CONSOLE TELNET connections [?]

The terminal emulation software (Termulator II) specifies SCO ANSI COLOR CONSOLE via a TELNET connection (com1-4 are the only other connection options)

Someone suggested using WYSE60 emulation - but that doesn't translate correctly (lots of gobbledygook characters instead of a properly formatted and boxed menu screen).

When I setup TCP/IP using NETCONFIG, I set it up as:
IP 192.168.0.10
Broadcast address of 192.168.0.255
TCP com 256
Pseudo tty 80
Gateway NO
FrameForm Ehternet-II

Any clues?
 
ok, first off...
the -su> should probably be -su) but i'm guessing on that without seeing the rest of the case statement.
I still think it will be the TERM setting, which isn't being set in the examples you show. TERMINFO is the location where the system goes to look for terminal escape sequences based on what the TERM variable is set to.

Are they still connecting any terminals via the digi?
if not what else is digi_trigger doing that it is still needed? (I thought you were using a stallion board)

I would also be very surprised if you actually had an entry in the APPtermcap for scoansi. ansi yes scoansi no.



 
I am getting into this more and more…it seemed like it should have been easy since it works with up to 7 sessions…
EMULATION SOFTWARE -----------------------
Just to re-state the problem…
Termulator II is set for &quot;SCO Ansi Color Console&quot; (the ONLY other choices are DEC VT-100, Generic TTY, SCO mono, SCO Scan, and Wyse60)
I use the above settings on a PC and log in. It works, if there are no more than 7 sessions logged in via Termulator emulation. When I hit 8 or above on the same PC, it will allow a login to SCO Unix (ansic) but not into the Progress Application.

TERMCAPS ----------------------
I printed out the applicable TermCap file – I believe the final entries are the only ones that matter in this case:
ansi|ansi entry for SCO OpenServer5:…followed by indented lines like &quot; :BB=\E[5m:\. &quot; + additional entries for G1, G2, G3, G4, GV, GH, GS, and GE
:tc=ansi-old:
#
ansip|ansic entry for SCO OpenServer5:…followed by indented lines like &quot; :BB=\E[5m:\. &quot; + additional entries for G1, G2, G3, G4, GV, GH, GS, and GE
:tc=ansic:

PROFILES FILE ----------------------------
You are correct, it is &quot;-su)&quot; – the preceding lines are:
if [ &quot;X$HUSHOGIN&quot; != &quot;XTRUE&quot; ]
then
[ -x /usr/bin/mail ] && {
[ -s &quot;$MAIL&quot; ] && {
dspmsg $MF_ADM –s $MS_PROFILE $MSG_MAIL '\nyou have new BLAH/BLAH
}
if [ $LOGNAME&quot; != 'root&quot; –a –x /usr/bin/news ]
then news –n
fi
fi
;;
NOTE 1 – I was trying in the previous post to limit the facts to areas I think may prove relevant – the mail message IF statements just don't seem like they could be involved in the problem. But it is always frustrating to read lines and wonder what was missing.
NOTE 2 – This is not the exact indentation and I have left out interspersed comments

DIGIBOARD, STALLION ------------------------
Your are correct - there is no Digiboard.
But...
This is a legacy application. There are thousands of irrelevant definitions, programs, etc. The TermCap file has 2,495 lines, almost all never supported or used.
But I treat legacy apps with care – if it ain't causing a problem, I leave it alone.

 
ok - problem restated

you can log x number of users into unix via tcp/ip
your terminal emulation is ansic
you can only start 7 instances of your progress application without the emulation screwing up.

you can probably ignore the termcap and the /etc/profile (which is stock except for the digi triggers). Time to start looking at the startup script for the application.
You need to look for anything relating to tty or some sort of counter. Progress itself only checks the database connection count against the -n parameter.
 
Something to think about. If you are always logging in under the SAME login, i.e., every session you start uses 'henry' as the login, you will definitely run into problems with UNIX resources. Progress relies heavily on shared memory and semaphores. Start too many processes using the same login (and every login creates 3 to 5 processes just to get into UNIX) and you saturate MAXIMUM USER processes and Share capacities pretty fast.

What I'd try would be to login multiple sessions on your PC, making sure to use a different login name for each session. If you get past 8 and can still work, then your going to have to expand some of the UNIX shared memory and semphore parameters (SHMMNI, SHMSEG, SEMMNI, etc). These used to be documented in Progress System Administration II manuals, way back when.

On the other hand, if you still can't get past 7 sessions, then forget I ever mentioned it. [shadeshappy]

It's also important to note that the UNIX tuning is strictly a trial and error type effort. So be prepared to build and relink the kernel more than once.
 
I am hard at work examining all the relevant parameter and scripts. The &quot;user&quot; idea might be important - almost everyone logs in as Pete or Bob - when I have been testing I have just used Bob repeatedly.

I will be back tomorrow with more info.

In the meantime I am printing a forest of paper so I can examine some of this at my home office. I plan on creating a clone of the Unix server in my home office tomorrow AM to simplify the search.

Fun, fun, fun! (I am learning a ton and THANKS THANKS THANKS to StanHubble and Piperent)
 
Yes I agree that you have to be careful with resources when the same user is logging in, however, our application only uses a single unix userid (every connection logs in as the same user) and then we have our own security system within the application, and the problems you are warning about do not present these symptoms.

In case you do run into resource problems, these are the parameters in stune that we modify.

NFILE 400
NPROC 200
MAXUP 100
SEMMNI 100
SEMMNU 300
SEMMSL 50
SEMMNS 300

These easily handle 20-30 users.
 
I do not know how to check the parameters listed in the preceding post (NFILE, NPROC, etc.) so I do not have those.

The script to launch the application is &quot;genadm&quot;. There are LOTS of &quot;genadm&quot; files, but I believe the master is under /var/opt/K/SCO/Unix/5.0.5.Ebtcb/files/auth/g directory. The contents are:
genadm:u_name=genadm:u_id#0:u_type=root: :u_cmdpriv=audit,audittrain,auth,su,passwd,.etc..etc..
:u_syspriv=suspendaudit,configaudit,.etc..etc..
:u_suclog#1054401703:u_suctty=ttyp1:..etc...etc...
:u_lock@:chkent:

I found a &quot;.profile&quot; file under directory /usr/genadm -
PATH=....
MAIL=....
umask 022
export PATH MAIL
stty erase
stty intr * (NOTE: the character that prints is a heart)
# this section prevents init string going to terminal
# when logging into a pseudo tty
ttyname='tty'
init=&quot;&quot;
if [ 'expr $ttyname : &quot;/dev/ttyp&quot; ' -gt &quot;0&quot; ]
then init=&quot;-I&quot;
fi
FILEBACK=&quot;. /u/xyz';export FILEBACK
XYZ=...
XYZCODE=...
DLC=...
TAPEDEV=...
exec /usr/bin/genadm

I modified the displays in the /usr/bin/genadm script to display two parameters -
PARMFILE is set to /u/xyz/xyz3.pf
SERVPARAM is set to -L 1000 -n 62

The /u/xyz/xyz3.pf file has the following definitions (each is on its own line) -
-db xyz3, -B 1800, -e 200, -k forget, -ld xyz3, -l 55, -L 3000, -Mf 10, >>> -n 62 <<<, -p M/mainmenu.p, -q [blank], -uu 1930, -cpstream iso8859-1

------------------------------

I did NOT get the clone setup at my home office today but I did get a call from my customer. One of his clients &quot;put the error message into his search engine&quot; and he immediately got a hit specifying that &quot;this was a known bug in Progress version 8 and 9.&quot;

I have not been able to contact this person or find this message - yet. The only thing I find via Google for this message is the official &quot;Progress Client Deployment Guide&quot; - nice, but not a source for finding info about bugs!

------------------------------
I have started a Progress Tech Support Incident but have yet to get any satisfaction there.
 
Those were kernel parameters. Any changes that you make to kernel parameters on a SCO Openserver system are kept in
/etc/conf/cf.d/stune

/usr/bin/genadm is the next place to look for the TERM setting.

if it is not being set or inquired anywhere then the place to look would be in /etc/ttytype. Personally I never use ttytype but I always do a inquiry in the .profile or /etc/profile

Code:
eval `tset -m scoansi:${TERM:-scoansi} -m :\?${TERM:-scoansi} -e -r -s -Q`


 
There are 3 ttytype files - they are under directories /usr/lib/dv , /opt/K/SCO/Unix/5.0.5Eb/.softmgmt/var/etc, and /var/opt/K/SCO/Unix/5.0.5Eb/etc
The third one has the newest date and is the largest so I am presenting it below -
ansic console
ansic syscon
ansic tty01 (and 11 more (up to tty12) for the server)
unknown tty1a and tty2a
dialup ttyp0 (up throught ttyp7)
NOTE: all the following are Stallion panel labels - the Stallion panels will be removed once the TCP/IP limit problem is solved)
dialup tty0A03 (I would guess this should have an &quot;a&quot;)
ansic tty0a00 (I think these are vestiges from a old Stallion panel)
wy60 tty0a01
wy60 tty0a02
ansic tty1a05
wy60 tty1a (and then entries for the other 15 ports in Stallion panel # 2 except for 03 - see 4 lines up - some ports are specifically set for Wyse 60's, but others are set to ansic to work with printers or PC's or whatever)

The contents of the /etc/conf/cf.d/stune file -
NODE &quot;XYZ&quot;
EVQUEUES 152
NSPTTYS 80
NUMSP 272
NSTREAM 1280
SECLUID 0
SECSTOPIO 1
SECCLEARID 1
NCLIST 418
NCALL 68
NHINODE 1024
NSTREVENT 2048
NMUXLINK 256
TTHOG 768
NSTRPAGES 628
NUMTRIM 256
NUMTRW 256

I am uncomfortable trying the &quot;eval&quot; program again because I am not sure exactly what I am doing. I typed the command at the / directory and got a frest line with &quot;> &quot; and the cursor in position 3. I typed &quot;l&quot; (as in list) with a CR to see what happened. A new line with &quot;> &quot;. I bailed by typing CTRL/D.
Maybe I was supposed to do this under the specific directories and the results would have been different if I had. But...

How do I arrange taking you out for a beer (metaphorically)?
 
The &quot;known bug&quot; error message =
Unable to use your terminal. Check your PROTERMCAP file. (443)
Could not find terminal type xterm in file ./term. (146)

Our error message is:
Terminal Type is Unknown - Unable to use terminal - check your PROTERMCAP file. (443)&quot;
could not find terminal type UNKNOWN in file /u/APP/APPtermcap (146)

The &quot;bug&quot; is a security issue known as: &quot;Progress Database Malicious ProTermCap File Buffer Overflow Vulnerability&quot; and the Progress patches are -
Progress Database Malicious ProTermCap File Buffer Overflow
Progress Database Multiple Buffer Overflow

FYI
(it seems like this is probably unrelated, but I admit to a lot of confusion right now...)
 
sorry the eval example should have been all one line with a space between the ? and the $. the reply box wrapped the code.

I dont like the ttytype file because it leads to sloppy login scripts. Based on what i see, it had 8 pseudo terminals defined as dialup (ttyp0 - ttyp7), which are the tty devices of the first 8 telnet sessions, so either have the terminal type inquired at login (best solution because you may not always be using the same emulator) or define more ttyp devices in the ttytype file.
 
Hey, hey, hey...
Eureka and all that...

I opted to just add another bunch of ttyp's for numbers higher than 7. Simple, just like I knew it would be - once I found out exactly where/how/why...

I personally learned a lot in this process - more vi editor, file printing, how the files are organized in this system, how some of the configuration files are setup, etc.

Thank you stanhubble - you were GREAT.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top