- Community Home
- >
- Servers and Operating Systems
- >
- Operating Systems
- >
- Operating System - OpenVMS
- >
- Re: VMS processes left hanging
Categories
Company
Local Language
Forums
Discussions
Forums
- Data Protection and Retention
- Entry Storage Systems
- Legacy
- Midrange and Enterprise Storage
- Storage Networking
- HPE Nimble Storage
Discussions
Forums
Discussions
Discussions
Discussions
Forums
Discussions
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
- BladeSystem Infrastructure and Application Solutions
- Appliance Servers
- Alpha Servers
- BackOffice Products
- Internet Products
- HPE 9000 and HPE e3000 Servers
- Networking
- Netservers
- Secure OS Software for Linux
- Server Management (Insight Manager 7)
- Windows Server 2003
- Operating System - Tru64 Unix
- ProLiant Deployment and Provisioning
- Linux-Based Community / Regional
- Microsoft System Center Integration
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Community
Resources
Forums
Blogs
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-05-2009 10:51 AM
03-05-2009 10:51 AM
Subsequently, it is necessary for them to undock, automatically switching them to Wireless, and dropping their telnet sessions as a new IP is acquired.
When they attempt to reconnect, the connection fails because
Username: baxterd
Password:
You are at maximum allowed processes for your user name
(This is a company-wide restriction (to 2 sessions per node) to stop licenses being locked up in idle sessions)
The salient point however is that, although undocking caused the telnet sessions to terminate, the VMS processes did/do not hangup, therefore requiring intervention by an admin to remove them.
Is there a System Parameter or TCPIP Sysconfig parameter that can be set to cause these sessions to hang up when the Telnet session terminates???
I know that Virtual Terminals are generally an option, however there have been bad experiences (before my time) here, which takes them off the table, at least for the time being. I will be more than happy to listen to conversations about Virtual Terminals, however I would really like to concentrate on alternative methods of fixing the problem, if there are any.
Thanks
Dave.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-05-2009 01:11 PM
03-05-2009 01:11 PM
Re: VMS processes left hanging
Unless VMS' TCP stack is notified that the other end has disconnected it can't do anything - and evidently this is not occurring. Keepalives are a common method for controlling this but unfortunately Reflection (and many other emulators as well) does not support them directly though I think that you can modify something in the Windows registry to enable/control them.
> I would really like to concentrate on alternative methods of fixing the problem
Perhaps a workaround rather than a cure?
Have you considered possibly writing a bit of code - could even be DCL - that would run detached and perhaps PING your terminals' source addresses on some regular cycle and if not responsive take whatever remedial steps your admins currently do to terminate them?
Or perhaps you could have your SYLOGIN determine the maximum number of terminal sesssions the user was permitted, and, if they were exceeding, that offer them the opportunity to terminate one (or more)?
I suspect that there are numerous other ways to deal with this as well. You didn't say what state you find the processes in when the terminal has been disconnected nor how you terminate them. I presume that VMS is fat, dumb, and happy with a process in LEF or HIB and you need only STOP/ID or perhaps issue some database termination command?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-05-2009 01:46 PM
03-05-2009 01:46 PM
Re: VMS processes left hanging
What I don't understand is that we just migrated from Alpha to Itanium and changed stack from TCPWare to TCPIP Services.
Since the migration, this issue has arisen, and also a related issue where Telnet sessions appear to timeout after ~2 hours. This normally happens if the sessions are idle, however they don't have to be (although I have not seen one drop while actually entering commands). It is possible that the "timeout" issue is firewall-related.
To return to the initial problem. I will look into your suggestion of setting up a detached process to watch for dropped sessions, however this seems to be a very risky approach, i.e. could kill an important process.
Dave.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-05-2009 01:52 PM
03-05-2009 01:52 PM
Re: VMS processes left hanging
I'd bet on it. Leave a telnet session logged in and idle that does not have its connection pass through the firewall and see what happens.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-05-2009 01:57 PM
03-05-2009 01:57 PM
Re: VMS processes left hanging
It is possible that the act of PINGing the source of a disconnected telnet session will clue the TCP stack in to the fact that the remote end is gone and drop the telnet session. You might just experiment with PING and wait and see if after a short time - or maybe even immediately - the telnet session drops. You might also try broadcasting something to the session that you suspect is gone. Or maybe use the SHARE privilege to open a channel to it and write something, anything, like a nul character perhaps and that might cause the session to drop.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-05-2009 01:59 PM
03-05-2009 01:59 PM
Re: VMS processes left hanging
Is this related to your earlier ....
http://forums11.itrc.hp.com/service/forums/questionanswer.do?threadId=1317706
The use of telnet-based virtual terminals and keepalive settings does look applicable here.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-05-2009 03:30 PM
03-05-2009 03:30 PM
Re: VMS processes left hanging
Anyway, maybe you can have your SYLOGIN attempt to contact any connections already owned by someone logging in interactively and if they appear not viable let the user decide whether or not to terminate them. Or maybe just probing them will result in the stack terminating them for you.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-05-2009 03:33 PM
03-05-2009 03:33 PM
Re: VMS processes left hanging
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-06-2009 03:43 AM
03-06-2009 03:43 AM
Re: VMS processes left hanging
While I agree that VT might be the most appropriate way to go, I am struggling with the problem "This didn't happen before the cutover, and we weren't using VT's then"
I guess my attitude is that we shouldn't have to go that route to stop something that wasn't happening before.
At the moment, I am looking at the settings of
tcp_keepalive_default = 0
tcp_keepcnt = 8
tcp_keepidle = 14400
tcp_keepinit = 150
tcp_keepintvl = 150
in sysconfig. These values are the defaults. In particular, "tcp_keepalive_default = 0" (turned off ???)
would you have any recommendations for appropriate values??
Dave
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-06-2009 04:46 AM
03-06-2009 04:46 AM
Re: VMS processes left hanging
When turning this knob one has to weigh the possibility of terminating a valid process against discovery of no longer viable connections in a timely manner. How quickly do you need to discover that a process has been disconnected? Keepalives are generally not used for rapid response situations. I would expect that your current values, if enabled, are interpretted thusly
tcp_keepidle = 14400
tcp_keepintvl = 150
tcp_keepcnt = 8
After 14400 half seconds (2 hours) of idleness, begin sending keepalive polls every 150 half seconds (75 seconds) as many as 8 times hoping to get a response (times are in 500 millisecond or half second units). If this total time passes without a response back then terminate the connection. With this config it would take 2:10 minutes of idle time before a session would drop.
I suspect that tcp_keepalive_default = 0 does indicate that keepalives are "off". That is the default behaviour from most stacks. It is usually enable on an application by application basis - in this instance "telnet".
I do think that enabling keepalives for telnet will help you with catching and terminating disconnected sessions. But, you need to consider the reliablility of your network when lowering these values or risk terminating viable telnet connections. You don't want a short network hiccup to result in all telnet sessions being terminated because they couldn't respond during a too short keepalive idle+intervals duration. If you're trying to catch a disconnect immediately in order to permit a user to disconnect from their docking station and immediately re-connect then this probably isn't the right tool. You want to be fairly conservative in configuring it and be considerate of the health of the networks that your telnet users traverse.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-06-2009 06:43 AM
03-06-2009 06:43 AM
Re: VMS processes left hanging
And I'd tend to enable the virtual terminals in any case.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-08-2009 04:47 PM
03-08-2009 04:47 PM
SolutionVirtual Terminals
=================
Overview
--------
Virtual terminals allow a user to seamlessly continue an interactive
terminal session across a network disconnect. This is achieved by the
system saving the virtual terminal's process context at the time of the
disconnect. When the user establishes a new login session, they will
be prompted to connect to any pre-existing virtual terminals, and so
seamlessly continuing their session.
Both TELNET and RLOGIN may be configured to use virtual terminals.
When virtual terminals have been enabled, the user's terminal will now
appear as a VTA device, rather than a TNA device. This can be observed
using the SHOW TERMINAL command.
NOTE: Virtual terminals will not be created for users with
communication proxies. The terminal type will continue to be TNA.
Managing Virtual Terminals and Logical Names
--------------------------------------------
Follow the steps below to enable and manage virtual terminals:
1) Create the VTA device (if it is not already created)
The TTDRIVER may be loaded dynamically via:
$ SHOW DEV VTA0:
%SYSTEM-W-NOSUCHDEV, no such device available
If the VTA0 device does not exist, then create it using SYSMAN:
$ RUN SYS$SYSTEM:SYSMAN
SYSMAN> IO CONNECT VTA0 /NOADAPTER /DRIVER=SYS$TTDRIVER
The SYS$STARTUP:SYSTARTUP.COM procedure contains the template for
loading the TTDRIVER during system startup.
2) Enable virtual terminals for the service
For TELNET, use:
$ DEFINE/SYSTEM/EXEC TCPIP$TELNET_VTA "TRUE"
For RLOGIN, use:
$ DEFINE/SYSTEM/EXEC TCPIP$RLOGIN_VTA "TRUE"
It is recommended this be placed in one of the system startup
command procedures, e.g. SYS$STARTUP:TCPIP$SYSTARTUP.COM.
3) Allow Terminal Disconnect when a Hangup Occurs
This is achieved by modifying the SYSGEN parameter, TTY_DEFCHAR2 to
enable the TT2$M_DISCONNECT feature on the terminal.
Edit MODPARAMS.DAT to set the TT2$M_DISCONNECT bit. For example, in
MODPARAMS.DAT add a line similar to:
! Set AUTOBAUD + EDITING + DISCONNECT.
MIN_TTY_DEFCHAR2 = 2 + %X1000 + %X20000
To take affect, this will require an AUTOGEN and reboot of
the system.
4) Disconnected terminals are deleted after TTY_TIMEOUT
Virtual terminals in the disconnected state will be automatically
deleted after the sysgen TTY_TIMEOUT interval has expired.
By default, the TTY_TIMEOUT value is 900 seconds, (15 minutes).
This means that after the TCP keepalive has expired and the TCP
connection closes, the user has an additional 15 minutes to
reestablish the virtual terminal before it is disconnected.
If this is inadequate, it may be modified by editing MODPARAMS.DAT
and using AUTOGEN. Note that this parameter can be modified
dynamically. For example edit MODPARAMS.DAT with a line similar to:
MIN_TTY_TIMEOUT = 60 * 60 * 24 * 14 ! 14 days
Modifying Disconnect Time
-------------------------
When a communication path is broken, the time it takes for TCP connections
to be closed is affected by several factors. The network administrator
can modify the time it takes for TCP to detect a network outage by
adjusting the keepalive attributes.
Faster detection of network outages may be desirable when using virtual
terminals. For instance, after the keepalive timeout, the user can telnet
back into the system, (probably via another path), to continue working in
the previously disconnected session.
For more information, refer to the tuning and troubleshooting guide where it
discusses the keepalive attributes, tcp_keepidle, tcp_keepintvl, tcp_keepcnt.
Note that these attributes will affect all subsequent connections on the
system.
To dynamically modify the sysconfig attributes, use:
$ @sys$manager:tcpip$define_commands
$ sysconfig -r inet tcp_keepalive_default=1 ! Enable keepalives
$ sysconfig -r inet tcp_keepidle=150 ! 75 seconds
The services must be restarted to make use of these dynamically modified
attributes. E.g. to restart TELNET:
$ @SYS$STARTUP:TCPIP$TELNET_SHUTDOWN
$ @SYS$STARTUP:TCPIP$TELNET_STARTUP
For permanent changes, it is recommended that the sysconfig attributes be
modified in TCPIP$ETC:SYSCONFIGTAB.DAT. E.g. add a stanza similar to:
inet:
tcp_keealive_default=1
tcp_keepidle=150
Example of Virtual Terminals
----------------------------
With virtual terminals enabled, a user's interactive login session
will display a VTA terminal type.
$ telnet hang10
Username: rider
Password: xxxx
HANG10> write sys$output f$getdvi("TT", "DEVNAM")
_VTA1:
HANG10> disconnect
By disconnecting the session without logging out, (e.g. close the
window or issue DISCONNECT), the VTA1: will persist. When a subsequent
login occurs, the user is prompted to reestablish their connection to
the virtual terminal, e.g.:
$ telnet hang10
Username: rider
Password: xxxx
You have the following disconnected process:
Terminal Process name Image name
VTA1: _VTA1: (none)
Connect to above listed process [YES]:
In addition, you may use the DCL commands DISCONNECT and CONNECT. For
example:
$ show device vt
Device Device Error
Name Status Count
VTA0: Offline 0
VTA2: Online 0
VTA3: Disconnected 0
$ connect vta3
HANG10> write sys$output f$getdvi("TT", "DEVNAM")
_VTA3:
From this point onward, you are now in the VTA3: process context.
Refer to the DCL help for more information on the CONNECT and
DISCONNECT commands.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-08-2009 06:41 PM
03-08-2009 06:41 PM
Re: VMS processes left hanging
Thanks for the heads up in the ITRC Forum!
A few quick question (Sorry Dave for hijacking the topic a little)
1) You mention TELNET and RLOGIN, but not SSH.
Maybe you want to be explicit about SSH in the article?
2) I often see TT2$M_HANGUP recommended along with TT2$M_DISCONNECT.
That may be misinformed. And it maybe a cause / effect confusion.
It maybe good to indicate whether it is relevant or not for a TCP/IP connection.
3) I much like the self-documenting definition: 2 + %X1000 + %X20000
But why not have the decimal result there as well ( = 135170 ) for the hardcore direct SYSGEN users to set it, but more importantly for folks who want to see whether the current definition matches the recommended definition
Thanks!
Hein.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-08-2009 08:13 PM
03-08-2009 08:13 PM
Re: VMS processes left hanging
>loading the TTDRIVER during system startup.
Of course, that should have been SYS$STARTUP:SYSTARTUP_VMS.COM.
Matt.
PS: Thanks to Heins feedback. We have taken that up in email and I've incorporated feedback where applicable.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-09-2009 05:55 AM
03-09-2009 05:55 AM
Re: VMS processes left hanging
Kelly