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)