Synchronet BBS - Multinode Bulletin Board Software

Back to Table of Contents

[14.0] - Multinode Configuration (v2 Only)

Synchronet Version 2.x runs under DOS v3.0 or greater and SHARE (or NetWare).
A DOS process is required for each node on a Synchronet system (unless
running Synchronet for OS/2). You can run multiple nodes on one cpu with DOS
multitaskers such as DESQview, Windows, or OS/2 or you can run one node per CPU
and let the CPU's share the same data on a common hard disk via Local Area
Network (LAN).

[14.1] - LAN Method

Using one CPU per node is by far the fastest way to run multiple Synchronet
nodes. Since SBBS4DOS runs in 8086 real mode, any IBM PC can run Synchronet
with sufficient speed. The minimum equipment necessary for each node would be a
power supply, motherboard, at least 450k free memory, a network interface card
(NIC), floppy drive and controller (or just a boot PROM for the NIC), and a
modem. Some BIOS's require a video controller and/or a keyboard as well, but
they are not necessary for the execution of Synchronet.

To link these computers together, you will need some form of networking
software. DOS based networks (Lantastic, NetWare Lite, CBIS Network O/S, 
MainLAN etc.) are the cheapest and don't require a dedicated CPU as a file 
server, but they lack the speed of a dedicated file server and network 
operating system. The most popular Network Operating System (NOS) is Novell 
NetWare. The disk performance on a dedicated NetWare file server is often 
preferable over a local hard disk (especially on XT's) due to NetWare's high 
speed file system and dedicated memory for intelligent disk caching. Synchronet
will run on any NOS that allows multiple CPU's running DOS to access data on a 
common disk.

[14.2] - Multitasker Method

Any program that allows the simultaneous execution of multiple DOS programs
should be able to run multiple SBBS4DOS nodes per CPU. To reliably and
efficiently run multiple DOS sessions on one CPU, you will probably need an
80386 CPU (the faster, the better), and at least 2 megabytes of memory
(the more, the better). Different multitaskers will have different hardware
requirements, but the common denominator seems to be an 80386 and extended
or expanded memory.

IMPORTANT NOTE: When multitasking using Windows or OS/2, it is suggested that
		you have a minimum 80486/33mhz CPU with a minimum of 8 mega-
		bytes of memory. This is due to the requirements of the
		operating environment, not the requirements of Synchronet.

You will need a separate IRQ line and UART I/O address for each COM port in
the computer. It is recommended that you use high speed, buffered 16550A UARTs
rather than the non-buffered 16450 UARTs which some I/O cards use. If you wish
Synchronet to always use BIOS calls for screen output, you need to include the
B parameter on the SBBS command line. Normally, Synchronet uses direct video
for block text which can conflict with some multitaskers that manage a split
screen for multiple DOS sessions.

Generally, the faster the machine, the more nodes you can run. But how many
for what kind of performance is not an easy question to answer. It depends 
heavily on the multitasking software, modem speed, and hardware I/O. Under any
configuration, expect some amount of performance degradation when running
multiple nodes per CPU.

[14.3] - Is it Safe?

Many Sysops will worry how reliable the system is with multiple simultaneous
users. Rest assured that Synchronet was designed from the ground up for
multiple simultaneous users. Data integrity and system fault tolerance is never
sacrificed when adding nodes to a Synchronet system.

Users can post on the same sub-board, e-mail the same user, download the same
file, run the same external program, perform virtually any system function
simultaneously. Note: External programs must support multiple simultaneous
users if the program has been configured for multi-user access from Synchronet.

Considerations and precautions have been taken where user data is concerned
to allow changes to the real-time database to take place immediately - even if
the user is online on a node other than the one that performed the data update.
Any security, configuration, or statistics changes made remotely will take 
effect immediately.

The transfer section disallows simultaneous uploading of the same filename to
the same directory and prevents a file that is currently open (being downloaded
or just added to a user's batch download queue) from being moved, removed, or
edited while allowing simultaneous downloads.


As a general rule, no data files or records are allowed exact simultaneous 
access if one of the nodes will modify the data. Simultaneous read only access 
is allowed. Collisions (simultaneous write access requested of a file by two 
or more nodes) are logged along with the retry count. There is a retry maximum 
count (or time-out) that will deny access to the requesting node and log a 
critical error for that node. This situation should not occur, but provisions 
are made for it in case of hardware failure of a node with a file or record 
open with write access.

[14.4] - Multinode: DESQview

How many nodes?
The answer to this question depends on the speed of your machine. Here is
a table to estimate the maximum number of nodes you should run on any given
machine under DESQview:

CPU	Nodes
386-16	1
386-25	2
386-33	3
386-40	4
486-25	5
486-33	8
486-50	10

	Note: You can run more than the suggested number of nodes, but
	      performance will decrease with each additional node.
How much memory?
You will need roughly 500k of available expanded memory for each node. When
running multiple nodes, a disk cache is required. Around 1 to 2 MB should be
used in most situations. Here is another table of estimated total system memory
required in megabytes (assuming a 1MB disk cache is used):

Nodes	MB of RAM
2	3
3	4
4	4
5	5
6	5
7	6
8	6
9	7
10	7
To save memory for each node, you can reduce the "Maximum program memory size"
to something like 450k or so. If you get memory allocation errors when
running SBBS, you'll need to increase this number. You can raise it beyond 640k
and actually get more than 640k free in some situations. This number is the 
amount that DESQview will give this node if it can, or if not possible, as much
as it can. The "Memory Size" parameter is the minimum amount the program will 
require.

If you have VGA, you may want to change the Video mode to 80x50 or 80x60 with
the "Rearrange" menu, and change the "Window Positions" under DVSETUP 
(advanced) and/or the "Window Position" information for the each SBBS node
under "Change a Program Advanced Options". This way you can display multiple
80x25 windows simultaneously.

Don't forget to have a batch file execute DVANSI.COM before running Synchronet
if you have external programs that access the COM port themselves and use DOS 
for output. Example: Trade Wars uses the BIOS for output so DVANSI is not
required. Global War uses DOS for output and uses the COM port directly, so 
DVANSI is required.

You must have "Close on exit" to [N] if you are going to execute SBBS from
a batch file that executes other programs before SBBS. Here is an example
batch file which will run dvansi, then Synchronet, and closes the window after
exiting Synchronet. This example file is called SBBSDV.BAT:

---------------------------------[ Begin ]-------------------------------------
@echo off
c:\dv\dvansi
c:\sbbs\exec\sbbs %1 %2 %3 %4 %5
if errorlevel 1 pause
exit
---------------------------------[  End  ]-------------------------------------

This batch file (SBBSDV.BAT is just an example name), can be used to execute
any of the Synchronet nodes, because the "Directory" parameter determines which
node is going to run. You would have to change the "Program" parameter to
"C:\BAT\SBBSDV.BAT" if you created SBBSDV.BAT in the C:\BAT directory.

Start-up Scripts
~~~~~~~~~~~~~~~~
If you want your nodes to be automatically loaded up when running DESQview,
see "Learning Scripts" and "Start-up Scripts" in your DESQview manual.

Here is an example script (in text format) that loads two Synchronet nodes
(assuming the Open Menu keys are S1 and S2):

DESQVIEW.TXT:

---------------------------------[ Begin ]-------------------------------------
{Learn {Alt-\} "!startup"}
{DESQ}os1
{DESQ}os2
{Finish}
---------------------------------[  End  ]-------------------------------------

Here is an example script (in text format) that uses the Big DOS program to
load two Synchronet nodes:

DESQVIEW.TXT:

---------------------------------[ Begin ]-------------------------------------
{Learn {Alt-\} "!startup"}
{DESQ}obd
dvansi{Enter}
cd \sbbs\node1{Enter}
sbbs{Enter}
{DESQ}obd
dvansi{Enter}
cd \sbbs\node2{Enter}
sbbs{Enter}
{Finish}
---------------------------------[  End  ]-------------------------------------

To use this script, you MUST modify the Big DOS program parameters to match
the program setup examples given at the top of this chapter.

To use either script, you must first convert it to DESQVIEW.DVS by running the
DESQview CONVSCR program.

IMPORTANT: When running under DESQView you will be required to load DOS's SHARE
	   program.  Be sure that you do NOT load SHARE into high memory (or
	   allow any memory managers to do so)!

[14.5] - Multinode: OS/2

System Requirements
-------------------
The OS/2 operating environment requires a faster CPU and more system memory
(compared to DESQview) to run efficiently. Because of this, there are greater
system requirements for running SBBS4DOS using OS/2. First, the number of
nodes which can be run on a given CPU is approximately one half of the number
which can be run on an equivalent CPU using DESQview. Next, it is recommended
that an 80486 CPU of 33mhz (or greater), with 8 megabytes of memory (or more)
be used.

The default OS/2 communications driver is not sufficient for high speed modem
communications, it is recommended that you replace the default drivers with
a third party driver (such as SIO by Ray Gwinn). It is also recommended that
you have buffered 16550 UARTs on your I/O cards rather than the non-buffered
16450 UARTs.

You cannot use a standard DOS FOSSIL driver with OS/2. If you require the use
of a FOSSIL driver, you must use a FOSSIL driver which has been written for use
with OS/2 (such as VX00).

See the contacts reference appendix for contacting Ray Gwinn, author of SIO
and VX00 serial communications drivers for OS/2.

When running Synchronet under OS/2, be sure that you do NOT use any additional
timeslice programs such as TAME or OS2SPEED.

You should have the Win/OS2 time slice API option set to 'Yes' for all nodes
running in an OS/2 DOS session (in each node's toggle options).

Following are example settings for OS/2, you will find these settings by
clicking on the DOS Settings box for the DOS window. Settings which are not
listed should be left as default. You must run each node in its own DOS
session, consult your OS/2 user guide for more information on running multiple
DOS sessions.

DOS Settings
~~~~~~~~~~~~
COM_DIRECT_ACCESS		ON
COM_HOLD			ON
COM_SELECT			ALL
DOS_BREAK			OFF
DOS_BACKGROUND_EXECUTION	ON
IDLE_SECONDS			0
IDLE_SENSITIVITY		100
HW_TIMER			ON
INT_DURING_IO			ON

[14.6] - Multinode: Windows 3.x

System Requirements
-------------------
The Windows operating environment requires a faster CPU and more system memory
(compared to DESQview) to run efficiently. Because of this, there are greater
system requirements for running Synchronet using Windows. First, the number of
nodes which can be run on a given CPU is approximately one half of the number
which can be run on an equivalent CPU using DESQview. Next, it is recommended
that an 80486 CPU of 33mhz (or greater), with 8 megabytes of memory (or more)
be used.

Following are example settings for Windows. Settings which are not listed
should be left as default. A setting with (check) next to it means the box
for that setting should be marked, and (no check) means the setting should
not be marked.

386 Enhanced Mode Settings
~~~~~~~~~~~~~~~~~~~~~~~~~~
All com ports should be set to Never Warn.

Set the Minimum Timeslice to 15.

Exclusive in Foreground (no check).

PIF Settings
~~~~~~~~~~~~
Program Filename	: SBBS.BAT
Startup Directory	: C:\SBBS\NODE1 (modify as required)
Video Memory		: (Text should be checked)

Memory Requirements
	KB Required	: 450
	KB Desired	: 640

*EMS Memory
	KB Required	: 360
	KB Limit	: 1024

*XMS Memory
	KB Required	: 360
	KB Limit	: 1024

*NOTE: EMS and/or XMS memory will need to have a value if you wish to allow
       Synchronet to swap using either of these.

Display Usage
	Windowed	: (check)

Execution
	Background	: (check)


PIF Settings - Advanced Options
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Multitasking Options
	Background Priority	: 70
	Foreground Priority	: 70
	Detect Idle Time	: (no check)

Memory Options
	EMS Memory Locked	: (check)
	XMS Memory Locked	: (no check)
	Uses High Memory Area	: (no check)
	Lock Application Memory : (check)

Display Options
	Emulate Text Mode	: (check)
	(all remaining options) : (no check)

Other Options
	Allow Close When Active : (check)


IMPORTANT: These are settings to get you started!  Different machines and
configurations require different settings, and it may take some trial and
error with different memory and timeslice settings to get everything working
as you desire.	Also note that the default windows communications driver
probably will NOT be sufficient for high speed modems, and you will probably
want to purchase a third party communications driver that can handle higher
baud rates under windows. When running windows, be sure to load SHARE before
you run windows!

[14.7] - Multinode: Windows 9x

System Requirements
-------------------
The Windows 95 operating environment requires a faster CPU and more system
memory (compared to DESQview) to run efficiently. Because of this, there are
greater system requirements for running Synchronet using Windows 95.  You
should follow the recommendations included with Windows 95 for your system and
memory requirements, we recommend a minimum 80486 CPU of 33mhz with at least 8
megabytes of memory.

Basically Windows 95 straight out of the box will run Synchronet without any
problems.  Following is some information to help you get Synchronet set up
under Windows 95 and to help get it running a little more efficiently.

First we want to set up an ICON for each of the Synchronet nodes you plan to
run under Windows 95.  The following steps will guide you through adding one:

1) From Windows 95 Explorer go to the directory of the node you are setting up,
   (e.g. for node 1 this would normally be C:\SBBS\NODE1).

2) On the right side of Explorer you'll see SBBS.BAT, click on it with your
   RIGHT mouse button.

3) Go to NEW and click on SHORTCUT.

4) Click on BROWSE, find the SBBS.BAT file in the sub-directory for this node
   and DOUBLE CLICK on it.

5) Click on NEXT.

6) Click on CHOOSE ICON and select the ICON you wish to use for this node.

7) Click FINISH.

That's all there is to creating an ICON (shortcut) for Synchronet.  Do this for
each of your Synchronet nodes.	Now there are a couple of settings you'll want
to change for better efficiency:

1) For each node set the IDLE SENSITIVITY to it's lowest (all the way to the
   left-hand side).

2) In SCFG under each node, set the toggle option 'Windows/OS2 Time Slice API'
   to 'YES'.

[14.8] - Multinode: LAN

Most of the information necessary for setting up your nodes on a LAN will be
provided by the documentation for your Network Operating System. All that
Synchronet requires is that each node have access to the SAME drive for
data storage. ALL Synchronet directories must be accessible by ALL nodes as
the SAME drive letter (if multiple drives are in use). If one drive is used
for all BBS data, then simply remove all drive letters from the configured
paths in SCFG (and each workstation can use different drive letters if
necessary).

You may mix the LAN multinode method with the multitasker method to get more
than one node on each workstation.

NOTE: When using Netware 3.x or 4.x you should create a SHELL.CFG or NET.CFG in
      the directory where your workstation loads your network files.  In the
      SHELL.CFG or NET.CFG file you should have the line: SHARE=OFF.  You will
      also need to load the SHARE program that comes with DOS. Most other
      networks also require that you use the SHARE program that is included
      with DOS.

*** IMPORTANT ***

Do not give ANY of the files associated with Synchronet a sharable file
attribute. Synchronet uses file and record locking to handle multiple
simultaneous file access requests and maintain data integrity. "Flagging"
a file "sharable" overrides these locking methods and will cause Synchronet
to corrupt your data in a multinode system.

Back to Top


Copyright © 2000 by Rob Swindell

Synchronet BBS Software
(Synchronet) Version 3 is comprised of several documentation,
library, executable, and source code files, all of which are covered by the
GNU General Public License
with the exception of the following portions covered by
the GNU Lesser General Public License: SMBLIB and XSDK.

Synchronet Version 2 (for DOS and OS/2) and its source code was released to the
Public Domain
by Digital Dynamics in 1997 and remains Public Domain software today.
Synchronet Version 3 is not Public Domain software.

Rob Swindell
PO Box 501
Yorba Linda, CA 92885
http://www.synchro.net

For the complete Copyright Information please read the Copyright Documentation .