Problems Deleting a file in IFS directory?

pts.
Tags:
Hardware
i5
iSeries
OS/400
Servers
I have look all over the internet and found a couple of useful tips. I tried them all and this file refuses to delete. The file is in /qdls/hdrpprt/ and is named ~$100028.htm This file is definately corrupt. I have tried the following 1-I installed PTF MF34337 with no help 2-RMVLNK OBJLNK('/qdls/hdrpprt/~$100028.HTM') 3-WRKFLR to check the folder and document object name. DSPDLONAM DLO(document-name) FLR(Folder_name) Note down System Object Name. WRKOBJLCK OBJ(QDOC/system-object-name) OBJTYPE(*DOC) If you see any jobs then you need to end them to unlock the object (use option-4 to end the job). 4- tried deleting on AS400 (wrklnk and iseries nav and ftp) get this message when try to delete on 400 Message ID . . . . . . : CPFA09E Severity . . . . . . . : 40 Message type . . . . . : Diagnostic Date sent . . . . . . : 04/25/05 Time sent . . . . . . : 10:15:51 Message . . . . : Object in use. Object is /QDLS/HDRPPRT/~$100028.HTM. Cause . . . . . : An operation attempted to use object /QDLS/HDRPPRT/~$100028.HTM. This object is currently in use. Recovery . . . : Allow time for the current operation to complete and then retry. To determine what is currently using the object, you can use the Retrieve Object References (QP0LROR) API, or examine the objects properties using iSeries Navigator. I do not know how to write code (Api's) I appreciate if anyone out there can help me with this Thanks in advance

Answer Wiki

Thanks. We'll let you know when a new response is added.

Try stopping your services for Web application, when applicable, then either trying again, or see if you can map a Windows drive to it and move it off that way. There is some subsystem using this file, or library, so try and track that down first.

Discuss This Question: 6  Replies

 
There was an error processing your information. Please try again later.
Thanks. We'll let you know when a new response is added.
Send me notifications when members answer or reply to this question.

REGISTER or login:

Forgot Password?
By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy
  • Addisonm
    Try to delete it with DLTDLO...
    0 pointsBadges:
    report
  • Sherrym
    Along these same lines: We recieve "Error Deleting File or Folder. The source or destination file may be in use." when trying to delete the file on QDLS using a windows mapped drive. We have been able to delete the file using wrklnk. Any suggestions as to why we can no longer delete using the windows mapped drive. Thanks!
    0 pointsBadges:
    report
  • Mbelle
    Have you tried to run RCLDLO(Reclaim DLO) or RCLSTG (Reclaim Storage)?
    45 pointsBadges:
    report
  • TomLiotta
    Any suggestions as to why we can no longer delete using the windows mapped drive. A likely possibility is that the object is in the /QDLS file system which is an old DOS 8.3 file system. More recent versions of Windows have been dropping support for those file systems over network interfaces. Combinations of Microsoft patches and IBM PTFs have kept up most support, but warnings have been coming out for more than a decade to stop using /QDLS. At some point, it simply will no longer work at all across a network through Windows, and neither Microsoft nor IBM will have a fix. Leave it behind now. Tom
    125,585 pointsBadges:
    report
  • Stiloabarthian
    You could try qshell:-
    qsh
    rm /qdls/hdrpprt/~$100028.HTM
    175 pointsBadges:
    report
  • TomLiotta
    ...you can use the Retrieve Object References (QP0LROR) API, or examine the objects properties using iSeries Navigator. I do not know how to write code (Api's) APIs are just programs or procedures, called the same ways that you call programs or procedures that you might write yourself. Documentation is standard among all similar APIs; so once you understand one, a bunch of others become meaningful. The Info Center has examples of Using APIs, and lots of examples are out on the internet. The section on Common API programming errors covers almost everything you'll run into. Here's a basic example for QP0LROR written in V5R3 CL:
    pgm    ( +
             &pPath       +
           )
    
       dcl   &pPath       *char  128
    
    
       dcl   &rcvvar      *char 1024     value( ' ' )
       dcl   &lrcvvar     *uint
       dcl   &path_t      *char  512     value( ' ' )
       dcl   &CCSID       *char    4     value( x'00000000' )
       dcl   &country     *char    2     value( x'0000' )
       dcl   &lang        *char    3     value( x'000000' )
       dcl   &pathtyp     *char    4     value( x'00000000' )
       dcl   &path        *char  128
       dcl   &lPath       *char    4     value( x'00000000' )
       dcl   &LenPath     *dec (   5 0 ) value( 0 )
       dcl   &rsv3        *char    3     value( x'000000' )
       dcl   &rsv10       *char   10     value( x'00000000000000000000' )
    
       dcl   &nRef        *dec (   5 0 ) value( 0 )
       dcl   &oJobL       *dec (   5 0 ) value( 0 )
       dcl   &dJobLE      *dec (   5 0 ) value( 0 )
       dcl   &oJobLE      *dec (   5 0 ) value( 0 )
       dcl   &qjob        *char   26     value( ' ' )
    
       dcl   &x00         *char    4     value( x'00000000' )
    
    
    /* Get the value away from the parm... */
       chgvar            &path            &pPath
    
    /* Use this to determine length...     */
       rtvmsg     msgid( cpf9897 ) msgf( QSYS/QCPFMSG ) +
                    msgdta( &path )   +
                    msglen( &LenPath )
    
    /* Set up the path.name structure...   */
       chgvar      %bin( &lPath )         &LenPath
    
       chgvar            &path_t        ( +
                                          &CCSID       *cat  +
                                          &country     *cat  +
                                          &lang        *cat  +
                                          &rsv3        *cat  +
                                          &pathtyp     *cat  +
                                          &lPath       *cat  +
                                          '/ '         *cat  +
                                          &rsv10       *cat  +
                                          &path              +
                                        )
    
    /* Call the API...                     */
       chgvar            &lrcvvar       ( 1024 )
       call        QP0LROR     ( +
                                 &rcvvar      +
                                 &lrcvvar     +
                                 RORO0200     +
                                 &path_t      +
                                 x'00000000'  +
                               )
    
    /* If 'in use'...                      */
       if ( %sst( &rcvvar  13  4 ) *ne &x00 )  do   /* In-use indicator... */
    
       /* Find a job reference...             */
          chgvar         &nRef      %bin( &rcvvar   9  4 )
    
          if ( &nRef *gt 0 )  do
             chgvar      &oJobL     %bin( &rcvvar  33  4 )
             chgvar      &oJobL         ( &oJobL + 1 )
             chgvar      &oJobLE        ( &oJobL + 16 )
             chgvar      &dJobLE    %bin( &rcvvar &oJobLE 4 )
             chgvar      &oJobLE        ( &oJobL + 20 )
             chgvar      &qjob      %sst( &rcvvar &oJobLE 26 )
    
          enddo
       enddo
    
    dmpclpgm
    
       return
    
    endpgm
    It accepts a path as a parm. The path is passed to QP0LROR to see if there are any active references. If the number of references is not zero, the first job from the returned list is extracted. A dump is then produced before exiting, so you can see what's in the returned structure and in other variables. Create any streamfile in your home directory. Then open it with EDTF and start doing some edits. In a second session, call the example program with the full path to your streamfile as the parm. (Note that the parm is 128-bytes, so include enough trailing spaces.) That's about all that's needed for this API. The Info Center documentation for QP0LROR should answer most questions about what you see when it runs. If not, well, that's what sites like this one are for. Tom
    125,585 pointsBadges:
    report

Forgot Password

No problem! Submit your e-mail address below. We'll send you an e-mail containing your password.

Your password has been sent to:

To follow this tag...

There was an error processing your information. Please try again later.

REGISTER or login:

Forgot Password?
By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy

Thanks! We'll email you when relevant content is added and updated.

Following