[mod.computers.vax] VMS - RMS question

XBR1YD14@DDATHD21.BITNET (Reinhard Goeth - TH Darmstadt HRZ) (05/10/86)

I've a program (installed with SYSPRV) that creates a file on the
directory of the account MAILER. After closing the file it is renamed
and processed by the MAILER process.
If my program is interrupted (because of an error or because someone
pressed CONTROL/Y) while writing the file I'll get a file that's
uselessm and must be deleted by the system manager. I've experimented with
several RMS options (for example FAB$M_DLT, FAB$M_TMD, FAB$M_TMP) to get
the file deleted if the program is interrupted but I'd no success. Either
the file was not deleted after interrupting the program or the file was
always deleted after closing it.
Which RMS option can I use before/after $OPEN/$CONNECT/$PUT/$CLOSE ?

Thanks Reinhard Goeth (TH Darmstadt Comp. Center)

LEICHTER-JERRY@YALE.ARPA (05/13/86)

    I've a program (installed with SYSPRV) that creates a file on the
    directory of the account MAILER. After closing the file it is renamed
    and processed by the MAILER process.
    If my program is interrupted (because of an error or because someone
    pressed CONTROL/Y) while writing the file I'll get a file that's
    useless and must be deleted by the system manager. I've experimented with
    several RMS options (for example FAB$M_DLT, FAB$M_TMD, FAB$M_TMP) to get
    the file deleted if the program is interrupted but I'd no success. Either
    the file was not deleted after interrupting the program or the file was
    always deleted after closing it.
    Which RMS option can I use before/after $OPEN/$CONNECT/$PUT/$CLOSE ?
    
    Thanks Reinhard Goeth (TH Darmstadt Comp. Center)
There are at least two ways to do this:

	- Open the file with the DLT bit set in the FAB, but change that
		just before closing the file; it's the final value that
		matters.  (TMP means that no directory entry is to be
		made for the file, so you can't expect to ever get it back.
		TMD means make a directory entry but mark it for delete.
		I THINK DLT will do what you want, but its possible that
		RMS rundown will NOT delete the file if the program fails;
		in that case, try TMD.)

		The important point is just that you can change the bit
		before the file is closed.

	- Establish an exit handler that deletes the file if the program
		hasn't completed execution.  (Basically, if at the time
		the exit handler runs, the file is still open, kill it.)

							-- Jerry
-------