[news.software.anu-news] Problems reaching NEWS Server via DECNET NNTP

elsen%esat.kuleuven.ac.be@BLEKUL60.BITNET (02/24/89)

    I am trying to install NEWS V5.9C at various nodes along our campus
DECnet network, with our site being the server.
     
    All newsgroups on the CLIENT nodes are created with
    .../NODE='SERVERNAME'/PROTOCOL=DECNET.
    I am having a problem with this setup : that is
     
          1) when a group is created in this fashion, 7 out of 10
             times I get : "Lost Link to NEWS Server on 'Servername' "
     
             Example :
             ---------
     
            NEWS> create newsgr eunet.general/server=haydn/proto=decnet
                  Newsgroup: eunet.general
                  Create Newsgroup? [n]:y
     
                  eunet.general - Prot:RWX Srv:HAYDN::,(cache:2),
                  Hold:(Itm:[25],Grp:[Perm]),
                  /SERVED - remote server scan:
                  Working on eunet.general (Served on HAYDN::)
                  Lost link (8) to NEWS Server on haydn
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                  /SERVED - local verify pass
                  Working on eunet.general
     
     
     
          2) users on the client nodes trying to read an item get the
             same error message more then 50% of the time ,so many
             retries are needed in order to view an item !
     
             Example :
             ---------
     
             NEWS>READ
             Connecting to NEWS SERVER on node ESAT:: ...
             ERROR - Lost link (1) to NEWS SERVER on node esat::
             Error: Display - Cannot access item text
     
     
   As it is I won't release NEWS officialy on these nodes until I
have solved this problem, so I need your help badly because they
are all waiting to use it.
     
I think I have narrowed the problem down using the following steps :
     
  I use the TASK object on the client side and the default NNTP object
at the server side.
Here's how the NNTP object is configured at the server's side :
     
     
--------------------------------------------------------------------------------
Object Permanent Characteristics as of 20-FEB-1990 14:39:49
     
Object = NNTP
     
     
Number                   = 0
File id                  = NEWS_MANAGER:NNTP_DEC.EXE
User id                  = NEWSRX
Password                 = no access rights
--------------------------------------------------------------------------------
     
    Since , I don't want the TASK object ENABLED on the client side
(for reasons of security) ,
I defined it on those systems using a dummy password and username ;
I presume this is allowed ? Please correct me  if I am wrong.
     
  I did notice earlier that TASK must be present on the client nodes
otherwise the server can't be reached at all.
     
           As you can see , user 'NEWSRX' is used at the server's side
in order to allow incoming connect requests.
This setup seems to work fine as can be seen from the following extract
for typical NETSERVER.LOG files :
     
     
--------------------------------------------------------------------------------
     
>...
>$ COUNT = F$LOGICAL("NETSERVER$SERVERS_NEWSRX")
>$ IF COUNT .EQS. "" THEN GOTO LOOP
>$LOOP:
>$ TEMP = F$SETPRV("ALL")
>$ SET PROCESS/PRIORITY=4
>$ IF F$USER() .NES. DEFUIC THEN SET UIC [NEWS,NEWSMGR]
>$ TEMP = F$SETPRV(DEFPRV)
>$ RUN SYS$SYSTEM:NETSERVER
     
>        --------------------------------------------------------
     
>        Connect request received at 20-FEB-1990 04:36:46.94
>            from remote process POPEYE::"0=NEWSMGR"
>            for object "NEWS_MANAGER:NNTP_DEC.EXE"
>
>        --------------------------------------------------------
     
>$ IF     = "IF"
>...
     
     
--------------------------------------------------------------------------------
     
     
       I could also prove that NNTP_DEC.EXE is run in all cases
even if I get the 'lost link' error : I installed NNTP_DEC.EXE /ACCOUNTING
and I always get accounting records
indicating 'Normal successfull completion' ... for this image.
     
     
     
     
       I then started looking at NEWSTEMCLIENT.C the only source module
which contains output statements for 'Lost link to NEWS Server...'.
It seemed that this line appeared several times.So I edited the
source and included a number for each occurence of this string.
     
As a result I was able to conclude that 'my message' is a result
of the following parts in NEWSREMCLIENT.C
     
--------------------------------------------------------------------------------
     
For message : Lost link (1) to NEWS Server on haydn
     
  sprintf(cmd,"ARTICLE %s",id);
  if (!nntp_write(cmd) || (wait_net_response(CLIENT_TIMER,1) != 220)) {
    if (screen_active) {
      smg$end_pasteboard_update(&pid);
      smg$begin_pasteboard_update(&pid);
      }
    sprintf(err_oline,"\tERROR - Lost link (1) to NEWS SERVER on node %s::\n",n
    err_line(err_oline);
    if (screen_active) {
      smg$end_pasteboard_update(&pid);
      smg$begin_pasteboard_update(&pid);
      }
    return(0);
    }
     
     
For message : Lost link (8) to NEWS Server on haydn
     
          sprintf(cmd,"NEWNEWS %s %02d%02d%02d %02d%02d%02d",reply->grpname,stm-
          if (nntp_write(cmd) && (wait_net_response(CLIENT_TIMER,1) == 230)) {
            while (wait_net_response(RESP_TIMER,0) == 1) {
              if (!strcmp(ibuf,".\n")) break;
              tmp = malloc(sizeof *tmp);
              tmp->itmsnext = reply->idr;
              reply->idr = tmp;
              sscanf(ibuf,"%s",tmp->itmid);
              time(&tmp->itmdate);
              tmp->itmsize = 0;
              }
            }
          else printf("\t\tLost link (8) to NEWS Server on %s\n",reply->grpnode)
          }                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     
--------------------------------------------------------------------------------
     
     
     
     
         This is where my expertise ends. I have some questions here.
         Do I need to change the values of CLIENT_TIMER and or RESP_TIMER ?
         I can see that these variables are defined  at the beginning
         of NEWSREMCLIENT.C
         In what units are they expressed ?
         What do they mean ?
     
     
     
   P.s: the client node is running VMS V5.1-1 ,the server is running VMS V5.3,
        in both cases VAXC V3.0 was used.
        An async. DDCMP link exists between these 2 nodes running 9600b
        (they are not in the same DECnet area)
     
     
                      Thanks for all hints & suggestions,
     
     
     
  Marc Elsen (System Manager/Software Engineer)
  Katholieke Universiteit Leuven
  Dep. E.S.A.T.
  Kard. Mercierlaan 94
  3030 HEVERLEE
  Belgium
              tel. 32(0)16220931(ext. 1080)
     
               EMAIL : elsen@esat.kuleuven.ac.be
     
                       ...!kulcs!kulesat!elsen (UUCP)
                       elsen%kulesat.uucp@blekul60 (BITNET)
                       psi%02062166012::elsen  (PSI MAIL)