HP OpenVMS Systemsask the wizard |
The Question is: We are experiencing intermittent problems opening VMS files, the error code is 114690 which translates to "%RMS-E-ACC, ACP file access failed" Any pointers as to the possible causes of this error message would be much appreciated. Regs, Clive The Answer is :
Please check the STV field within the associated FAB for additional
details on the error.
ACC, ACP file access failed
Facility: RMS, OpenVMS Record Management Services
Explanation: An error occurred during an attempt to open a file. This
message is associated with a status code returned from a file
system ACP QIO request made by the RMS file system.
User Action: The status value (STV) field of the FAB contains a system
status code that provides more information about the
condition. Take action based on this status code.
An example of calling RMS services follows, and the example includes
a check of the FAB$L_STV field.
--
#pragma module XABPRO "V1.1-000"
//
// Copyright 2001 by Compaq Computer Corporation
//
//
//
// Facility:
//
// Examples
//
// Version: V1.1
//
// Abstract:
//
// Example of the RMS protection XAB
//
// Author:
// Stephen Hoffman
//
// Creation Date: 1-Jan-1990
//
// Modification History:
//
// 5-Sep-2001 Stephen Hoffman
// V1.1 Updated for Compaq C, switched to CLASS_D
//
//
#include <descrip.h>
#include <lib$routines.h>
#include <rms.h>
#include <ssdef.h>
#include <starlet.h>
#include <stdio.h>
#include <stsdef.h>
main()
{
struct dsc$descriptor_s fname_d =
{ 0, DSC$K_DTYPE_T, DSC$K_CLASS_D, NULL };
$DESCRIPTOR( prompt_d, "FILENAME: ");
struct FAB fab;
struct XABPRO xabpro;
int RetStat;
RetStat = lib$get_input( &fname_d, &prompt_d, &fname_d.dsc$w_length );
// Initialize the FAB and XABPRO structures.
//
fab = cc$rms_fab;
xabpro = cc$rms_xabpro;
fab.fab$l_fna = fname_d.dsc$a_pointer;
fab.fab$b_fns = fname_d.dsc$w_length;
fab.fab$b_fac = FAB$M_PUT;
// Open the file, then hook in the XABPRO.
//
RetStat = sys$open( &fab );
printf("$OPEN = 0x0%08.8x\n", RetStat );
printf(" stv = 0x0%08.8x\n", fab.fab$l_stv );
if (!$VMS_STATUS_SUCCESS( RetStat ))
lib$signal( RetStat );
fab.fab$l_xab = &xabpro;
xabpro.xab$w_pro = (XAB$M_NOWRITE|XAB$M_NODEL)<<XAB$V_WLD;
xabpro.xab$l_nxt = 0;
// Close the file.
//
RetStat = sys$close( &fab );
printf("$CLOSE = 0x0%08.8x\n", RetStat );
printf(" stv = 0x0%08.8x\n", fab.fab$l_stv );
// Clean up and leave...
//
RetStat = lib$sfree1_dd( &fname_d );
if (!$VMS_STATUS_SUCCESS( RetStat ))
lib$signal( RetStat );
return SS$_NORMAL;
}
$ dir/sec x.x
Directory DISK:[EXAMPLES]
X.X;1 [SYSTEM] (RWED,RWED,RWED,RWED)
Total of 1 file.
$ r xabpro
FILENAME: x.x
$OPEN = 0x000010001
stv = 0x0000000d0
$CLOSE = 0x000010001
stv = 0x000000000
$ dir/sec x.x
Directory DISK:[EXAMPLES]
X.X;1 [SYSTEM] (RWED,RWED,RWED,RE)
Total of 1 file.
|