<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: File locked after using SYS$OPEN and SYS$CLOSE in Operating System - OpenVMS</title>
    <link>https://community.hpe.com/t5/operating-system-openvms/file-locked-after-using-sys-open-and-sys-close/m-p/5299101#M27888</link>
    <description>The file is open by a process. Use "$ SHOW DEVICE/FILE disk:" to find the process ID (PID) of the process which has this file listed.&lt;BR /&gt;&lt;BR /&gt;/Guenther</description>
    <pubDate>Fri, 12 Aug 2011 18:16:35 GMT</pubDate>
    <dc:creator>GuentherF</dc:creator>
    <dc:date>2011-08-12T18:16:35Z</dc:date>
    <item>
      <title>File locked after using SYS$OPEN and SYS$CLOSE</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/file-locked-after-using-sys-open-and-sys-close/m-p/5299065#M27886</link>
      <description>&lt;P&gt;I was trying to write a program to show a selected list of files with the file creation date and then allow the user to open and read a selected file.&amp;nbsp; I used SYS$OPEN and got the FAB and XABDAT info I needed and then did a SYS$CLOSE.&amp;nbsp; However, when I try to open one of the files, they all are currently opened and locked!&lt;/P&gt;&lt;P&gt;What system service call or option do I need to use to release the file lock so that I can open the file from my BASIC application program?&lt;/P&gt;</description>
      <pubDate>Fri, 12 Aug 2011 17:23:49 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/file-locked-after-using-sys-open-and-sys-close/m-p/5299065#M27886</guid>
      <dc:creator>Dennis Piepel</dc:creator>
      <dc:date>2011-08-12T17:23:49Z</dc:date>
    </item>
    <item>
      <title>Re: File locked after using SYS$OPEN and SYS$CLOSE</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/file-locked-after-using-sys-open-and-sys-close/m-p/5299097#M27887</link>
      <description>&lt;P&gt;When you close an OpenVMS file using $close, the file is closed, and all locks are released. &amp;nbsp;There are no dangling locks. &amp;nbsp; For all its problems and its baroque API, RMS calls are expressly synchronous, unless you have explicitly specified otherwise. &amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The&amp;nbsp;$open and $close calls are two of the most heavily used calls in all of VMS and in most every OpenVMS application that runs on VMS. &amp;nbsp;While bugs are possible, your BASIC code is the immediate suspect.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It is likely that the BASIC code contains an error. &amp;nbsp;Likely around the close, of course. &amp;nbsp;Ensure that the error status values are uniformly checked, and use the debugger to take a look at the flow of the program execution.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If you want to pursue this here, please&amp;nbsp;post the VMS version information, the BASIC version information, and the source code of a (preferably concise) reproducer.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 12 Aug 2011 18:11:54 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/file-locked-after-using-sys-open-and-sys-close/m-p/5299097#M27887</guid>
      <dc:creator>Hoff</dc:creator>
      <dc:date>2011-08-12T18:11:54Z</dc:date>
    </item>
    <item>
      <title>Re: File locked after using SYS$OPEN and SYS$CLOSE</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/file-locked-after-using-sys-open-and-sys-close/m-p/5299101#M27888</link>
      <description>The file is open by a process. Use "$ SHOW DEVICE/FILE disk:" to find the process ID (PID) of the process which has this file listed.&lt;BR /&gt;&lt;BR /&gt;/Guenther</description>
      <pubDate>Fri, 12 Aug 2011 18:16:35 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/file-locked-after-using-sys-open-and-sys-close/m-p/5299101#M27888</guid>
      <dc:creator>GuentherF</dc:creator>
      <dc:date>2011-08-12T18:16:35Z</dc:date>
    </item>
    <item>
      <title>Re: File locked after using SYS$OPEN and SYS$CLOSE</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/file-locked-after-using-sys-open-and-sys-close/m-p/5299105#M27889</link>
      <description>OK, I think I figured it out.&lt;BR /&gt;If I setup a USEROPEN function to get the FAB and XABDAT attributes then I can read the file from my BASIC program normally and still get the file attributes that I needed!</description>
      <pubDate>Fri, 12 Aug 2011 18:18:34 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/file-locked-after-using-sys-open-and-sys-close/m-p/5299105#M27889</guid>
      <dc:creator>Dennis Piepel</dc:creator>
      <dc:date>2011-08-12T18:18:34Z</dc:date>
    </item>
    <item>
      <title>Re: File locked after using SYS$OPEN and SYS$CLOSE</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/file-locked-after-using-sys-open-and-sys-close/m-p/5299149#M27890</link>
      <description>&lt;P&gt;So you were opening an already-open file, probably from the same application? &amp;nbsp;(And FWIW, that lock will blocks the subsequent $open calls, and not the $close.) &amp;nbsp;To resolve that, set file sharing on the first open, and Bob's your uncle. &amp;nbsp;(This is also the general technique used to allow logs to be visible, while being written.)&lt;/P&gt;</description>
      <pubDate>Fri, 12 Aug 2011 18:57:28 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/file-locked-after-using-sys-open-and-sys-close/m-p/5299149#M27890</guid>
      <dc:creator>Hoff</dc:creator>
      <dc:date>2011-08-12T18:57:28Z</dc:date>
    </item>
    <item>
      <title>Re: File locked after using SYS$OPEN and SYS$CLOSE</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/file-locked-after-using-sys-open-and-sys-close/m-p/5299171#M27891</link>
      <description>&lt;P&gt;No, I did not already have the file open.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Following is the FILE_INFO function I was trying to use.&lt;/P&gt;&lt;P&gt;AFTER calling that function and trying to do an OPEN command in a BASIC program is when I got the File is locked error.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FUNCTION LONG FILE_INFO(&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ! Get File information: &amp;amp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STRING myFile&amp;nbsp; ! RMS file to open &amp;amp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,FABDEF myFab&amp;nbsp;&amp;nbsp; ! Returns initialized FAB &amp;amp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OPTION TYPE=EXPLICIT&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %INCLUDE "SCS$LB:FILE_INFO.INC" ! COMMON variables to set&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %INCLUDE "$SSDEF"&amp;nbsp;&amp;nbsp; %FROM %LIBRARY&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %INCLUDE "$RMSDEF"&amp;nbsp; %FROM %LIBRARY&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %INCLUDE "$FABDEF" %FROM %LIBRARY "SYS$LIBRARY:BASIC$STARLET"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %INCLUDE "$RABDEF" %FROM %LIBRARY "SYS$LIBRARY:BASIC$STARLET"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %INCLUDE "$XABDEF" %FROM %LIBRARY "SYS$LIBRARY:BASIC$STARLET.TLB"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %INCLUDE "$XABDATDEF" %FROM %LIBRARY "SYS$LIBRARY:BASIC$STARLET.TLB"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RECORD XABDAT&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VARIANT&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CASE&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XABDEF XXAB ! Shared part for COD, BLN, SPARE AND NXT&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CASE&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XABDATDEF XXABDAT ! specific part&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; END VARIANT&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; END RECORD XABDAT&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DECLARE XABDAT XAB_DAT&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXTERNAL LONG FUNCTION&amp;nbsp; SYS$OPEN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SYS$CONNECT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SYS$CLOSE&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXTERNAL INTEGER FUNCTION STR$ANALYZE_SDESC(STRING,WORD,LONG)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DECLARE LONG&amp;nbsp;&amp;nbsp;&amp;nbsp; STATUS_L&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ! return status &amp;amp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XABFHC_L&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ! XAB file header characteristic &amp;amp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ! Setup FAB block...&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myFab::fab$b_bid = FAB$C_BID&amp;nbsp;&amp;nbsp;&amp;nbsp; ! initialize FAB for open&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myFab::fab$b_bln = FAB$C_BLN&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myFab::fab$l_fop = FAB$M_UFO&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myFab::fab$b_fac = FAB$M_GET OR FAB$M_PUT&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myFab::fab$b_shr = FAB$M_UPI &amp;amp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OR FAB$M_SHRGET &amp;amp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OR FAB$M_SHRPUT &amp;amp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OR FAB$M_SHRUPD &amp;amp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OR FAB$M_SHRDEL&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myFab::fab$b_fns = STR$ANALYZE_SDESC(myFile,0%,myFab::FAB$L_FNA)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ! Setup XAB block...&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XABFHC_L = myFab::FAB$L_XAB&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myFab::FAB$L_XAB = LOC(XAB_DAT) ! Me first, me first&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XAB_DAT::XAB$B_COD = XAB$C_DAT ! Make it real&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XAB_DAT::XAB$B_BLN = XAB$C_DATLEN&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XAB_DAT::XAB$L_NXT = XABFHC_L&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;! Open the file...&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STATUS_L=SYS$OPEN(myFab,,)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXIT FUNCTION (STATUS_L) UNLESS (STATUS_L and 1%)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ! Set CMN_FILE_INFO common block variables to return to main program...&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FILE__ORG = myFab::FAB$B_ORG&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FILE__RAT = myFab::FAB$B_RAT&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FILE__MRS = myFab::FAB$W_MRS&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FILE__ALQ = myFab::FAB$L_ALQ&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FILE__RFM = myFab::FAB$B_RFM&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myFab::FAB$L_XAB = XABFHC_L&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALL SYS$ASCTIM(0% BY VALUE, FILE__CDT, XAB_DAT::XAB$Q_CDT, 0%)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STATUS_L=SYS$CLOSE(myFab,,)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXIT FUNCTION (STATUS_L) UNLESS (STATUS_L and 1%)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 12 Aug 2011 19:19:22 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/file-locked-after-using-sys-open-and-sys-close/m-p/5299171#M27891</guid>
      <dc:creator>Dennis Piepel</dc:creator>
      <dc:date>2011-08-12T19:19:22Z</dc:date>
    </item>
    <item>
      <title>Re: File locked after using SYS$OPEN and SYS$CLOSE</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/file-locked-after-using-sys-open-and-sys-close/m-p/5299179#M27892</link>
      <description>&lt;P&gt;Right, you can hook up an XABDAT in the useropen, before the call to open and it will be filled in.&lt;/P&gt;&lt;P&gt;BASIC already hooks up an XABFHC and XABSUM, so if you needed those you would want to find them, not add them.&lt;/P&gt;&lt;P&gt;Basic uses a static FAB, FHC and SUM, but dynamic XABKEY, which are freed when done.﻿&lt;/P&gt;&lt;P&gt;While an XABDAT is a 'safe' addition today, as a matter of&amp;nbsp;principle&amp;nbsp;you still want to keep&lt;/P&gt;&lt;P&gt;the XAB chain clean, no duplicates, and return as found.&lt;/P&gt;&lt;P&gt;To hook up that XABDAT I would put it as first XAB, and restore when done&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;XABDAT::XAB$L_NXT = FAB::FAB$L_XAB&lt;/P&gt;&lt;P&gt;FAB::FAB$L_XAB﻿ = LOC ( XABDAT )&amp;nbsp;&lt;/P&gt;&lt;P&gt;:&lt;/P&gt;&lt;P&gt;stat = SYS$OPEN...&lt;/P&gt;&lt;P&gt;:&lt;/P&gt;&lt;P&gt;FAB::FAB$L_XAB﻿ =﻿&amp;nbsp;XABDAT::XAB$L_NXT﻿&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The original program must have failed the close.&amp;nbsp;Did you check the return status?&lt;/P&gt;&lt;P&gt;As Hoff indicates, $CLOSE works. Period.&amp;nbsp;&lt;/P&gt;&lt;P&gt;As Guenther indicates, SHOW DEV/FILE can show who still has it open.&lt;/P&gt;&lt;P&gt;Having CMKRNL privs I prefer ANALYZE/SYSTEM ... SET PROC... SHOW PROC /CHAN, SHOW PROC/RMS=FAB&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Finally see below for a working BASIC calling SYS$OPEN (Not close :-) example using XABDAT.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Cheers,&lt;/P&gt;&lt;P&gt;Hein&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt; 1      OPTION TYPE = EXPLICIT, CONSTANT TYPE = INTEGER
 !
 !      Get_file_dates.bas       Hein van den Heuvel, Feb-2007
 !
        On error go to hell!

        EXTERNAL LONG FUNCTION  SYS$OPEN(FABDEF), LIB$GET_FOREIGN(STRING,STRING)
        EXTERNAL LONG CONSTANT  RMS$_NORMAL
       %INCLUDE "$FABDEF" %FROM %LIBRARY "SYS$LIBRARY:BASIC$STARLET.TLB"
       %INCLUDE "$RABDEF" %FROM %LIBRARY "SYS$LIBRARY:BASIC$STARLET.TLB"
       %INCLUDE "$XABDEF" %FROM %LIBRARY "SYS$LIBRARY:BASIC$STARLET.TLB"
       %INCLUDE "$XABDATDEF" %FROM %LIBRARY "SYS$LIBRARY:BASIC$STARLET.TLB"

        DECLARE STRING  FILE_NAME, TXT
        DECLARE INTEGER STAT, DATE_OFFSET, DATE_POINTER
        MAP (RMS_BLOCKS) XABDATDEF XABDAT, RABDEF RAB, FABDEF FAB, &amp;amp;
                         STRING DATE_TIME = 23, NAME_BUFFER = 80
        MAP (RMS_BLOCKS) XABDEF XAB ! Yuck

        STAT = LIB$GET_FOREIGN (FILE_NAME, 'File name: ')

        NAME_BUFFER = FILE_NAME         !Move into static string for LOC().
        FAB::FAB$B_BID = FAB$C_BID      !Make this a real FAB
        FAB::FAB$B_BLN = FAB$C_BLN      !Make this a real FAB
        FAB::FAB$L_FNA = LOC(NAME_BUFFER)       !Put Address of name_buf in Fab
        FAB::FAB$B_FNS = LEN(FILE_NAME) !Put Lenght of file_name in Fab
        FAB::FAB$B_FAC = FAB$M_GET      !READ access
        FAB::FAB$B_SHR = FAB$M_UPI      !No locking what so ever needed
        RAB::RAB$L_FAB = LOC(FAB)       !Put Address of Fab in Rab
        FAB::FAB$L_XAB = LOC(XAB)       !Put Address of Xab in Fab
        XAB::XAB$B_COD = XAB$C_DAT      !Make this a DAT XAB
        XAB::XAB$B_BLN = XAB$C_DATLEN   !Make this a DAT XAB

        STAT = SYS$OPEN(FAB)    !Open the file
                CALL sys$exit(STAT BY VALUE) IF STAT &amp;lt;&amp;gt; RMS$_NORMAL

 ! Like to get OFFSETs, rather than fiels for the dates. Cheat:
 ! $ pipe libr/out=sys$output:/extr=$xab*def -
 !     SYS$LIBRARY:STARLET.mlb | search sys$pipe: t_overlay

        DATA 12,"RDT",20,"CDT",28,"EDT",36,"BDT",0
        READ DATE_OFFSET
        WHILE (DATE_OFFSET)
             DATE_POINTER = LOC(XABDAT) + DATE_OFFSET
             CALL sys$asctim (0 BY VALUE, DATE_TIME, &amp;amp;
                 DATE_POINTER BY VALUE, 0 BY VALUE)
             READ TXT
             PRINT TXT, DATE_TIME
             READ DATE_OFFSET
       NEXT
       GOTO 2

 HELL:  PRINT ERT$(ERR) UNLESS ERR = 11
        RESUME 2
 2       END&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 12 Aug 2011 19:29:15 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/file-locked-after-using-sys-open-and-sys-close/m-p/5299179#M27892</guid>
      <dc:creator>Hein van den Heuvel</dc:creator>
      <dc:date>2011-08-12T19:29:15Z</dc:date>
    </item>
    <item>
      <title>Re: File locked after using SYS$OPEN and SYS$CLOSE</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/file-locked-after-using-sys-open-and-sys-close/m-p/5299189#M27893</link>
      <description>&lt;P&gt;&lt;FONT color="#000000"&gt;Ah... your reply 'snuck' in.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000"&gt;I see you already know the 'hook me up first and clean up later method. good.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000"&gt;&lt;BR /&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000"&gt;Here is the problem: &amp;nbsp;&amp;nbsp;&lt;STRONG&gt;myFab::fab$l_fop = FAB$M_UFO﻿&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000"&gt;&lt;SPAN class="Apple-style-span"&gt;That tells RMS NOT to open the file as usual, but only to assign a channel.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000"&gt;&lt;SPAN class="Apple-style-span"&gt;You can not $CLOSE but must use SYS$DASSGN passing FAB$L_STV (which has the channel after open)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000"&gt;&lt;SPAN class="Apple-style-span"&gt;The CLOSE would have failed with&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN class="Apple-style-span"&gt;status = 99684 &amp;nbsp;(%x18564﻿)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="Apple-style-span"&gt;--&amp;gt; %RMS-F-IFI, invalid internal file identifier (IFI) value﻿&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000"&gt;&lt;SPAN class="Apple-style-span"&gt;You may want to check your error handling if that was not reported.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000"&gt;&lt;SPAN class="Apple-style-span"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000"&gt;&lt;SPAN class="Apple-style-span"&gt;Also, you should drop the&amp;nbsp;&amp;nbsp;&lt;STRONG&gt;OR FAB$M_PUT﻿ &lt;/STRONG&gt;unless you want to make sure you do have write access.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000"&gt;&lt;SPAN class="Apple-style-span"&gt;Adding that access, will cause the revision date and number to be changed on close.&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000"&gt;&lt;SPAN class="Apple-style-span"&gt;Is that what you wanted?&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Cheers,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000"&gt;&lt;SPAN class="Apple-style-span"&gt;Hein&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000"&gt;&lt;SPAN class="Apple-style-span"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000"&gt;&lt;SPAN class="Apple-style-span"&gt;&lt;STRONG&gt;&lt;BR /&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 12 Aug 2011 19:56:05 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/file-locked-after-using-sys-open-and-sys-close/m-p/5299189#M27893</guid>
      <dc:creator>Hein van den Heuvel</dc:creator>
      <dc:date>2011-08-12T19:56:05Z</dc:date>
    </item>
    <item>
      <title>Re: File locked after using SYS$OPEN and SYS$CLOSE</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/file-locked-after-using-sys-open-and-sys-close/m-p/5299249#M27894</link>
      <description>&lt;P&gt;Thanks Hein.&lt;/P&gt;&lt;P&gt;You are correct.&amp;nbsp; I was getting the RMS-F-IFI error and just did not check for it.&lt;/P&gt;&lt;P&gt;I removed the problem line with the FAB$L_FOP and then the SYS$CLOSE worked.&lt;/P&gt;&lt;P&gt;I also removed the OR FAB$M_PUT because it was not needed in a function whose only purpose&lt;/P&gt;&lt;P&gt;was to get file attributes.&lt;/P&gt;</description>
      <pubDate>Fri, 12 Aug 2011 21:17:50 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/file-locked-after-using-sys-open-and-sys-close/m-p/5299249#M27894</guid>
      <dc:creator>Dennis Piepel</dc:creator>
      <dc:date>2011-08-12T21:17:50Z</dc:date>
    </item>
  </channel>
</rss>

