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)