Products Downloads Prices Support Company
Index FAQ Configs Feeds In Feeds Out Feeds Out  

DMULTI Installation and use

DMULTI is a mechanism for running multiple DNews processes. This is ONLY worthwhile if you have more than 50 concurrent users.

You will also need 'more RAM' and preferably more than one spool drive or the gains will be very minor.

DMULTI installation for Windows NT

Click on dadmin, Configure/Dmulti, and select a slave_n setting greater than 1.

In access.conf ensure you have ip numbers listed for your IHAVE feed, this is necessary for dmulti to correctly connect your incoming feed to the master DNews process (s0).

If you add an additional IHAVE feed in the future to access.conf, you will need to restart DNews not just do a reload for the new settings to be picked up (because dmulti needs to re-read the file, not just dnews).

If you use authentication insure your localhost 127.0.0.1 does not require authentication to do that add this entry to the end of access.conf:

    127.0.0.1:read,post,ihave:::*

Done!!, see below for a manual description of what dadmin does on NT when you do this.

DMULTI installation for Unix and NT (manual)

First, upgrade to DNews 5.0  or later

Configure your system to startup DMULTI instead of DNews:

  Unix: Use dmulti_start.sh, instead of dnews_start.sh
  NT: Use dadmin, click on config/Dmulti and select a number of slaves
  NT: tellnews exit
  NT: addsvc -del dnewssvc
  NT: addsvc -add dnewssvc dmulti.exe "DNEWS Multi Process Manager"

Configure the new slave parameters in dnews.conf

  slave_n 3     # Number of DNews processes to run 2-4

In access.conf ensure you have ip numbers listed for your IHAVE feed, this is necessary for dmulti to correctly connect your incoming feed to the master DNews process (s0).

If you add an additional IHAVE feed in the future to access.conf, you will need to restart DNews not just do a reload for the new settings to be picked up (because dmulti needs to re-read the file, not just dnews).

If you use authentication insure your localhost 127.0.0.1 does not require authentication to do that add this entry to the end of access.conf:

    127.0.0.1:read,post,ihave:::*

NOTE: On unix it is critical that incoming newsfeeds be sent direct to port 7500 for good performance (instead of port 119)

Startup the dmulti process:

NT: net start dnewssvc (or click on start in DNews manager)
UNIX: /usr/local/dnews/dmulti_start.sh

There is a log file dmulti.log which will show you if anything goes wrong.

We currently recommend using this setting in dnews.conf with dmulti:

 		slave_byfile true

This generally seems to fix some problems with new messages being incorrectly 
  reported in slaves too early before the data is on disk. We may change this 
  to be the default in future, but it won't hurt to set it manually.

Also we recommend this setting which greatly improves performance as it prevents cache invalidation occuring.

 		index_changes true

slave_feed setting obsolete

Since version 5.0 if slave_feed is NOT defined DNews will read access.conf and look for 'ihave' access rules to figure out who should be connected to the master DNews process and who should get connected to readers.  Note that the slave_feed setting had a line length limit so if you have lots of incoming feeds you probably need to remove slave_feeder and use normal access.conf rules instead.  The only 'gotcha' involved is that wild card 'name' entries are not acceptable, e.g. 

1.2.3.*:ihave:::* (works)
x.y.z:ihave:::* (works)
*.x.y:ihave:::* (DOESN'T work)

How dmulti works

DMULTI starts up 'slave_n' DNews processes (typically 2 or 3) the first one S0, is the master process, this is the one that accepts incoming news feeds, and this is the one your tellnews commands will go to. The others, S1-Sn, are reader processes, each one might have 30 news readers on it. DMULTI acts as a gateway, routing the incoming connections to the correct DNews process.

You can communicate with each slave individually using a new tellnews option. The first status line shows which process s0-sn is talking to you:

(Master process) tellnews -s 0 status 
(First reader) tellnews -s 1 status

You should always ensure that all the processes have closed before re-starting dnews/dmulti

If a problem develops, establish 'which' slave is not responding using 'tellnews -sN' and then copy the dnews.log from the faulty slave before restarting DNews.

To uninstall dmulti

Remove the slave parameters from dnews.conf and then replace the original DNews service (or startup script)

Uninstall NT: tellnews exit
Uninstall NT: addsvc -del dnewssvc
Uninstall NT: addsvc -add dnewssvc dnews.exe "DNEWS News Server"
And remove the slave_n setting from dnews.conf
<<<<<<< dmulti.htm