[comp.windows.x] What is distinction between close-down modes?

JONESD@kcgl1.eng.ohio-state.edu (David Jones) (02/20/90)

Is there any distinction between close-down modes RetainTemporary and
RetainPermanent?  The description of connection close actions by the server
treats the 2 modes identically, so does it matter whether I use one or the
other?

I'll fully describe the situation since I'm not positive that SetCloseDownMode
is what I should be doing.  The software is VMS DECwindows Version 2.  I wrote
a program that is run by the DECW$SYLOGIN script which automatically gives the
user access from the workstation's boot server, via a call to XAddHost.
It soon became apparent that the running of this program sporatically caused
logins to abort, blanking the screen and returning to the login window.
The login aborts seemed to be a result of the window manager not being able
to access the server, which correlated with server resets.  I modified the
program so that it sets close-down mode to RetainTemporary and the login
aborts stopped ocurring.

David L. Jones               |      Phone:    (614) 292-6929
Ohio State Unviversity       |      Internet:
1971 Neil Ave. Rm. 406       |               jonesd@kcgl1.eng.ohio-state.edu
Columbus, OH 43210           |               jones-d@eng.ohio-state.edu

Disclaimer: A repudiation of a claim.

mouse@LARRY.MCRCIM.MCGILL.EDU (der Mouse) (02/20/90)

> Is there any distinction between close-down modes RetainTemporary
> and RetainPermanent?

Check out the ability to KillClient AllTemporary.

					der Mouse

			old: mcgill-vision!mouse
			new: mouse@larry.mcrcim.mcgill.edu

rws@EXPO.LCS.MIT.EDU (Bob Scheifler) (02/20/90)

    Is there any distinction between close-down modes RetainTemporary and
    RetainPermanent?

Technically, the only difference is KillClient with AllTemporary.
RetainTemporary is something of a hack.  The intention in putting it in
originally was for "debugging" of a sort; if you have a program that
terminates abnormally, you might want to start it with RetainTemporary
so that when it terminates the resources (e.g. the current window state)
stay around so you can see where it was at the time, then issue a KillClient
with AllTemporary to clean up.  On the other hand, RetainPermanent is for
"real" use, e.g. xsetroot uses it to retain colormap entries used for the
root background.

    I wrote a program that is run by the DECW$SYLOGIN script which automatically
    gives the user access from the workstation's boot server, via a call to
    XAddHost.

Forgive me, I know not VMS.

    It soon became apparent that the running of this program sporatically caused
    logins to abort, blanking the screen and returning to the login window.

If it's the first connection to the server, yes, this would happen, because
the server resets automatically when the last connection closes normally.
If it's sporadic, it sounds like it's running in parallel with other
connections.

    I modified the
    program so that it sets close-down mode to RetainTemporary and the login
    aborts stopped ocurring.

Yes, that's one possible solution.  In a "normal" environment, we envisioned
that "the system" always established the first connection to the server, and
maintained it for the duration of the session.  E.g., xinit and xdm both do
this.  As such, it isn't necessary for "user" session setup commands to use
RetainPermanent.  But, I'm not familiar enough with the VMS environment to
know what the situation is there.