TCPIP SMTP receiver issues (SYSTEM-F-NOLINKS) - VMS

This is a discussion on TCPIP SMTP receiver issues (SYSTEM-F-NOLINKS) - VMS ; Investigating while I wasn't getting emails from a specific store, I first found that my TCPIP$SMTP_RECV_RUN.LOG log files were at version 32767 ... :-( so no new logfiles were being created (but I am still receiving new mail though , ...

+ Reply to Thread
Results 1 to 10 of 10

Thread: TCPIP SMTP receiver issues (SYSTEM-F-NOLINKS)

  1. TCPIP SMTP receiver issues (SYSTEM-F-NOLINKS)

    Investigating while I wasn't getting emails from a specific store, I
    first found that my TCPIP$SMTP_RECV_RUN.LOG log files were at version
    32767 ... :-( so no new logfiles were being created (but I am still
    receiving new mail though , interesting development !)

    Once I fixed this, the first incoming email got the following:


    TCPIP/VMS version info: V5.6-9, OpenVMS V8.3 Alpha
    SMTP_RECV_MAIL: local name is chain.vaxination.ca
    SMTP_RECV_MAIL: calling socket(TCPIP$C_AUXS)
    SMTP_RECV_MAIL: socket: 3
    SMTP_RECV_MAIL: getpeername failed: vaxc$errno: %SYSTEM-F-NOLINKS,
    maximum netwo
    rk logical links exceeded
    %SYSTEM-F-NOLINKS, maximum network logical links exceeded
    TCPIP$SMTP job terminated at 8-OCT-2007 14:51:36.75


    Does anyone know which TCPIP/BIND/whatever parameter would be needed to
    increase the number of permissible links ? (this appears to have
    happened while the receiver wanted to DNS lookup the IP address of the
    remote SMTP sender).


    (this appears to have been a sporadic thing though).

  2. Re: TCPIP SMTP receiver issues (SYSTEM-F-NOLINKS)

    In article <18c03$470a825e$cef8887a$789@TEKSAVVY.COM>, JF Mezei
    writes:

    > Investigating while I wasn't getting emails from a specific store, I
    > first found that my TCPIP$SMTP_RECV_RUN.LOG log files were at version
    > 32767 ... :-( so no new logfiles were being created (but I am still
    > receiving new mail though , interesting development !)


    From my nightly batch job:

    $ @ CLUSTER_MANAGER:LOWER_VERSIONS.COM -
    DISK$ALPHASYS_3:[SYS0.TCPIP$SMTP]TCPIP$SMTP_RECV_RUN.LOG

    (See below for the code, handy in other places as well.) I get up to
    5000 or 6000 in a day.

    > SMTP_RECV_MAIL: getpeername failed: vaxc$errno: %SYSTEM-F-NOLINKS,


    I asked the same question here a while back.

    ---------8<-------------------------------------------------------------------

    $ IF P1 .EQS. "" .OR. F$ELEMENT(1,";",P1) .NES. ";" .OR. -
    F$LOCATE("*",P1) .NES. F$LENGTH(P1) .OR. -
    F$LOCATE("%",P1) .NES. F$LENGTH(P1) -
    THEN GOTO USAGE
    $ LV := SYS$SCRATCH:LV.TMP
    $ DIR/NOHEA/NOTRAI/OUT='LV' 'P1'
    $ CLOSE/NOLOG LV
    $ OPEN/READ LV 'LV'
    $ I = 0
    $LOOP1:
    $ READ/END=DONE1 LV FILENAME
    $ I = I + 1
    $ FILENAME'I' = FILENAME
    $GOTO LOOP1
    $DONE1:
    $ CLOSE/NOLOG LV
    $ DELETE 'LV';*
    $ J = 0
    $LOOP2:
    $ J = J + 1
    $ RENAME/LOG &FILENAME'I' 'F$ELEMENT(0,";",FILENAME)';'J' ! quick hack
    $ I = I - 1
    $ IF I .EQ. 0 THEN GOTO DONE2
    $GOTO LOOP2
    $DONE2:
    $ EXIT
    $USAGE:
    $ TYPE SYS$INPUT

    P1 (required): name of file (no wildcards, no version numbers)

    This procedure will rename file ;N to ;1, ;N+1 to ;2 etc (N: lowest version)
    $ EXIT


  3. Re: TCPIP SMTP receiver issues (SYSTEM-F-NOLINKS)

    JF Mezei writes:

    >Investigating while I wasn't getting emails from a specific store, I
    >first found that my TCPIP$SMTP_RECV_RUN.LOG log files were at version
    >32767 ... :-( so no new logfiles were being created (but I am still
    >receiving new mail though , interesting development !)


    $! REVERSION.COM - Renames the versions of a file to be sequential starting
    $! at version ;1. Useful to prevent frequently created log files, etc. from
    $! reaching version ;32767, at which point no more versions can be created.
    $! To use: $ PURGE/KEEP=n file.ext (suggested), then $ @REVERSION file.ext
    $! After this, the versions of the file are numbered ;1, ;2, ... ;n.
    $! Author: Michael Moroney Aug. 2007
    $!--------------------------------------------------------------------------
    $ if p1.eqs."" then goto usage ! No null filenames
    $ if f$locate(";",p1) .ne. f$length(p1) then goto usage ! No versions
    $ file = p1 + ";" ! Base filename
    $ f1 = f$search(file)
    $ if f1 .eqs. "" then goto fnf ! Quit if nonexistent
    $ f2 = f$search(file + "-0")
    $ v1 = f$integer(f$parse(f1,,,"version")-";") ! v1 = highest version
    $ v2 = f$integer(f$parse(f2,,,"version")-";") ! v2 = lowest version
    $ k = v1-v2+1 ! Max. # of files
    $ i = 1 ! i=new version
    $ j = v2 ! j=old version
    $loop:
    $ g1 = f$search(file+f$string(j))
    $ if g1 .eqs. "" then goto skip1 ! ignore any gaps
    $ if i .eq. j then goto skip2 ! skip no-op rename
    $ g2 = ";" + f$string(i)
    $ rename/nolog 'g1 'g2 ! rename one file
    $skip2:
    $ i = i+1 ! increment new vers.
    $skip1:
    $ j = j+1 ! increment old vers.
    $ k = k-1
    $ if k .gt. 0 then goto loop ! loop til done
    $ exit
    $usage:
    $ write sys$output "@REVERSION filename.ext (no versions or wildcards)"
    $ exit %x28
    $fnf:
    $ exit %x18292

  4. Re: TCPIP SMTP receiver issues (SYSTEM-F-NOLINKS)

    Michael Moroney wrote:
    > JF Mezei writes:
    >
    >> Investigating while I wasn't getting emails from a specific store, I
    >> first found that my TCPIP$SMTP_RECV_RUN.LOG log files were at version
    >> 32767 ... :-( so no new logfiles were being created (but I am still
    >> receiving new mail though , interesting development !)

    >
    > $! REVERSION.COM - Renames the versions of a file to be sequential starting
    > $! at version ;1. Useful to prevent frequently created log files, etc. from
    > $! reaching version ;32767, at which point no more versions can be created.
    > $! To use: $ PURGE/KEEP=n file.ext (suggested), then $ @REVERSION file.ext
    > $! After this, the versions of the file are numbered ;1, ;2, ... ;n.
    > $! Author: Michael Moroney Aug. 2007
    > $!--------------------------------------------------------------------------
    > $ if p1.eqs."" then goto usage ! No null filenames
    > $ if f$locate(";",p1) .ne. f$length(p1) then goto usage ! No versions
    > $ file = p1 + ";" ! Base filename
    > $ f1 = f$search(file)
    > $ if f1 .eqs. "" then goto fnf ! Quit if nonexistent
    > $ f2 = f$search(file + "-0")
    > $ v1 = f$integer(f$parse(f1,,,"version")-";") ! v1 = highest version
    > $ v2 = f$integer(f$parse(f2,,,"version")-";") ! v2 = lowest version
    > $ k = v1-v2+1 ! Max. # of files
    > $ i = 1 ! i=new version
    > $ j = v2 ! j=old version
    > $loop:
    > $ g1 = f$search(file+f$string(j))
    > $ if g1 .eqs. "" then goto skip1 ! ignore any gaps
    > $ if i .eq. j then goto skip2 ! skip no-op rename
    > $ g2 = ";" + f$string(i)
    > $ rename/nolog 'g1 'g2 ! rename one file
    > $skip2:
    > $ i = i+1 ! increment new vers.
    > $skip1:
    > $ j = j+1 ! increment old vers.
    > $ k = k-1
    > $ if k .gt. 0 then goto loop ! loop til done
    > $ exit
    > $usage:
    > $ write sys$output "@REVERSION filename.ext (no versions or wildcards)"
    > $ exit %x28
    > $fnf:
    > $ exit %x18292


    I do (for a file named FILE.LOG) :

    $ rename FILE.LOG.* FILE.TMP.0
    $ rename FILE.TMP.* FILE.LOG.0

    The result is FILE.LOG's starting on ;1.
    The app that create FILE.LOG should probably
    be stalled/blocked during the rename's.

    Now, it's not clear top me what the DCL script
    above does that my two commands doesn't. I'm sure
    I must be missing something...

    Jan-Erik.

  5. Re: TCPIP SMTP receiver issues (SYSTEM-F-NOLINKS)

    In article ,
    =?ISO-8859-1?Q?Jan-Erik_S=F6derholm?=
    writes:

    > I do (for a file named FILE.LOG) :
    >
    > $ rename FILE.LOG.* FILE.TMP.0
    > $ rename FILE.TMP.* FILE.LOG.0
    >
    > The result is FILE.LOG's starting on ;1.
    > The app that create FILE.LOG should probably
    > be stalled/blocked during the rename's.
    >
    > Now, it's not clear top me what the DCL script
    > above does that my two commands doesn't. I'm sure
    > I must be missing something...


    I think that WE are missing something---namely that there is a much
    better way to do what we want to do!

    Suggestion: replace "rename" with "backup/delete" and you get the same
    effect without changing the modified date!

    My guess is that your code is not 100% officially supported for doing
    what you are doing with it (renumbering files starting at 1), but that
    DCL is built such that one can always count on this working!


  6. Re: TCPIP SMTP receiver issues (SYSTEM-F-NOLINKS)

    Phillip Helbig---remove CLOTHES to reply wrote:
    > In article ,
    > =?ISO-8859-1?Q?Jan-Erik_S=F6derholm?=
    > writes:
    >
    >> I do (for a file named FILE.LOG) :
    >>
    >> $ rename FILE.LOG.* FILE.TMP.0
    >> $ rename FILE.TMP.* FILE.LOG.0
    >>
    >> The result is FILE.LOG's starting on ;1.
    >> The app that create FILE.LOG should probably
    >> be stalled/blocked during the rename's.
    >>
    >> Now, it's not clear top me what the DCL script
    >> above does that my two commands doesn't. I'm sure
    >> I must be missing something...

    >
    > I think that WE are missing something---namely that there is a much
    > better way to do what we want to do!
    >
    > Suggestion: replace "rename" with "backup/delete" and you get the same
    > effect without changing the modified date!


    The nice thing with "rename" is that no data is moving around,
    so it runs quite fast. "Backup/delete" will shuffle all data
    around two times, right ?

    >
    > My guess is that your code is not 100% officially supported for doing
    > what you are doing with it (renumbering files starting at 1), but that
    > DCL is built such that one can always count on this working!
    >


    It's been run for well over 5 years in prod each night
    re-versioning (?) aprox 2000 files each time. I've seen
    no problems so far. The job is run on the same batch
    queue where the jobs that creates the logs are running,
    so they are stalled during the process.

    Jan-Erik.

  7. Re: TCPIP SMTP receiver issues (SYSTEM-F-NOLINKS)

    briggs@encompasserve.org wrote:

    > I see two significant differences. Three if you want to quibble about
    > performance of a two pass rename in the context of a very large directory.


    It would surprice me a lot of not 2 wildcarded renames didn't
    run faster then an aprox 10 line DCL loop for each file, including
    one of the renames anyway.

    > 1. What happens if you don't block the app creating FILE.LOG?


    Well, *I* don't care, since *I* do block the batchjob creating
    the LOGs. :-) YMMM, of course...

    > As I trace the two-command approach, the first rename starts from
    > the newest version and works its way down. Any files created
    > during this rename are going to be interleaved with the other renamed
    > files. Chronological order may be destroyed during the first rename.


    If the creating job is blocked, it is preserved, but reversed.

    > The second rename starts from the newest renamed version (typically
    > the oldest original version) and works its way down. Any files created
    > during this rename are going to be interleaved with the other renamed
    > files. Chronological order may be destroyed during the second rename.


    The cronological order is recreated.

    >
    > If either rename is interrupted, you end up with temporary files laying
    > around. If you try to repair this situation, you'll probably do more
    > damage to the chronological version number order.


    And in *my* case my main concern is to have the logs *at all*.
    The cronological order is of no importance to me, the *content* is.

    As a side note about logs, and as far as I know, if FTP, SMTP, REXEC
    (and also the NETSERVER.LOG if I'm not wrong) gets to the highest
    versions number, that's no big deal, everything just runs as usual
    anyway.

    I actualy have a faint recollection of seeing a performance hint that
    said that one can pre-allocate the LOG files with the highest version,
    and then save one file allocation in the startup of each of
    the services. Save a few I/O's I guess...

    Jan-Erik.

  8. Re: TCPIP SMTP receiver issues (SYSTEM-F-NOLINKS)

    In article , moroney@world.std.spaamtrap.com (Michael Moroney) writes:
    > briggs@encompasserve.org writes:

    [snip]
    >>Intentional or not, this is a rather nifty feature -- if log files are
    >>rarely created on the fly, log files that are created during a
    >>run will normally be left alone. But if log files are often created
    >>on the fly, log files that are created during a run will normally
    >>be processed. A self-tuning application.

    >
    > (Unfortunately) it doesn't do this. New versions created after the script
    > determines which version corresponds to ";" will not be reordered. The
    > renames stop when this version is reached.


    Ahh, right. You're processing 'file' version j at each step rather
    than 'file' version -0. So you'll stop when j = highest
    pre-existing version.

  9. Re: TCPIP SMTP receiver issues (SYSTEM-F-NOLINKS)

    In article , helbig@astro.multiCLOTHESvax.de
    (Phillip Helbig---remove CLOTHES to reply) writes:

    > In article ,
    > =?ISO-8859-1?Q?Jan-Erik_S=F6derholm?=
    > writes:
    >
    > > I do (for a file named FILE.LOG) :
    > >
    > > $ rename FILE.LOG.* FILE.TMP.0
    > > $ rename FILE.TMP.* FILE.LOG.0


    > Suggestion: replace "rename" with "backup/delete" and you get the same
    > effect without changing the modified date!


    Of course, this won't work if the file is in use!


  10. Re: TCPIP SMTP receiver issues (SYSTEM-F-NOLINKS)

    In article ,
    =?ISO-8859-1?Q?Jan-Erik_S=F6derholm?=
    writes:

    > The nice thing with "rename" is that no data is moving around,
    > so it runs quite fast. "Backup/delete" will shuffle all data
    > around two times, right ?


    Right. The advantage with BACKUP is that it keeps the timestamps.

    Best is probably more complex code after all, do the RENAME, then call a
    program to re-set the modified timestamp back to the original value.


+ Reply to Thread