VolanoChat Server Configuration

This page describes the VolanoChat Server settings, with the following sections:

Server Properties

The Server properties are defined in groups below, showing the default value for each property. For file path names, you must specify the path in Unix notation (using "/" instead of "\"). A relative path (one not beginning with "/") is assumed to be relative to the current working directory where the VolanoChat Server is started. There can be no spaces on either side of the equal sign.

By default, the Server reads its properties from a file called "properties.txt" in the directory where the Server is started. You may specify a different properties file when you start the Server by using the syntax:

java COM.volano.Main properties

where properties is the path to the properties file you want the Server to use.

Port number

This property is the port number at which the VolanoChat Server accepts connections from VolanoChat Client applets. This number must be the same as the VolanoChat Client server.port property value in order for the Client applet to connect to the correct port number. The default is port 8000.

server.port=8000

Backlog

This property specifies the number of incoming connections that can be queued up while waiting for the VolanoChat Server to accept them. If a connection request arrives when the queue is full, the connection is refused. The default value if this property is omitted is the default for the Java Virtual Machine (50 for Sun's JDK Version 1.0.2).

server.backlog=10

Password

This is the password required to monitor chat rooms when using the monitoring version of the VolanoChat Client applet. Monitoring capabilities are activated in the VolanoChat Client applet by setting the applet monitor parameter to true, although the password is required in order to use any of those capabilities. The default is no password, allowing no monitoring of chat rooms.

server.password=

Status port number

This property is the port number at which the VolanoChat Server accepts status reporting connections. The default is port 8001. See the Performance monitoring section for how to obtain status reports from your VolanoChat Server.

status.port=8001

Status password

This is the password required to obtain status reports from your VolanoChat Server. The default is no password, allowing no status reports from the Server.

status.password=

Connection limit

This is the doorman to your VolanoChat Server, limiting the total number of connections accepted by the Server. You can use this value to control the total number of people using your VolanoChat Server, ensuring good performance for those who are already connected and chatting. The default is 100 connections.

server.limit=100

Room limit

This property allows you to limit the number of people per room. Since every chat message must be sent to everyone else in the room, this number determines the maximum number of messages sent for every message received. You can use this number to control the amount of work your computer must do for every chat message it receives. The default is a maximum of 25 people per room.

room.limit=25

Access control file

This property gives the location of the access control file controlling user and Web page access to your VolanoChat Server. The syntax of the access control file is documented later on this page. The default is the file access.txt in the directory where the VolanoChat Server is started.

server.access=access.txt

Permanent room list

This property gives the location of the file containing a list of rooms to be permanently available in the VolanoChat Server, with one room name per line. The syntax of the room list file is documented later on this page. The default is the file rooms.txt in the directory where the VolanoChat Server is started.

server.rooms=rooms.txt

Character string limits

These properties specify the maximum length of character strings from the user, specified by the number of characters. Their default values are shown below. These value should be equal to or greater than the properties of the same name for the VolanoChat Client, since any Client sending more characters will be immediately disconnected (and assumed not to be a VolanoChat Client).

length.roomname=100
length.username=50
length.profile=200
length.chattext=600

Log files

These properties give the location and prefix of the logs files to be used by the Server. The date and time will be appended to each log file name when it is created, using the suffix .YYMMDD.HHMMSS for each of the files. The format of each log file is documented later on this page.

log.access=logs/access
log.chat=logs/chat

Access Control

The VolanoChat Server uses the same access control directives used by popular Web servers such as the NCSA HTTPd Web Server and the Apache HTTP Web Server.

There are three types of directives in the access control file:

Order

An order directive is one of the following:

  order deny,allow
  order allow,deny
  order mutual-failure
where:
deny,allow
evaluates the deny directives before the allow directives. A host or URL that does not match either list is given access. This makes the deny directives the default, and the allow directives the exceptions.
allow,deny
evaluates the allow directives before the deny directives. A host or URL that does not match either list is given access. This makes the allow directives the default, and the deny directives the exceptions.
mutual-failure
lets you specify precisely which hosts or URLs are allowed or denied. A host or URL that does not match either list is denied access. A host or URL matching both lists is denied access.

Host access

A host access directive is one of the following:

  deny  from all
  deny  from host1 host2 ... hostn
  allow from all
  allow from host1 host2 ... hostn
where:
all
means to allow or deny all hosts, and
host
is a partial domain name, a full host name, a partial IP address, or a full IP address.

Host names and domain names are compared from right to left, so that ".vip.best.com" would match all hosts in the vip.best.com domain, such as volano.vip.best.com. Begin partial domain names with a dot (".") so that comparisons will be made against complete components in the name.

Full and partial IP addresses are compared from left to right, so that "192.168." would match any IP address beginning with those two numbers, such as 192.168.0.5. End partial IP addresses with a dot (".") so that comparisons will be made against complete components in the address.

Referrer access

A referrer access directive is one of the following:

  referrer deny  from all
  referrer deny  from url1 url2 ... urln
  referrer allow from all
  referrer allow from url1 url2 ... urln
where:
all
means to allow or deny all referrers, and
url
is a Universal Resource Locator specification in the form of protocol://host/file (with no port number nor anchor reference).

For URL specifications, the comparison is from left to right, so you must specify full host names or full IP addresses in the URL.

Examples

Here are some sample access control files. This sample:

  order deny,allow
  deny  from all
  allow from .vip.best.com
  referrer deny  from all
  referrer allow from http://www.best.com/~

allows users to connect only from computers in the vip.best.com domain, and would allow those connections only through Web pages in the user directories beginning with "http://www.best.com/~".

The opposite effect would be:

  order allow,deny
  allow from all
  deny  from .vip.best.com
  referrer allow from all
  referrer deny  from http://www.best.com/~

These directives allow any user except those from vip.best.com to connect, and allows any referring Web page except those in the user directories at www.best.com.

Of course, you may also deny specific Web pages or users with:

  deny from chat.volano.com
  deny from http://www.volano.com/chat.html

Permanent Rooms

The server.rooms property allows you to specify a file containing a list of room names, one per line. Each room name in the list will create a permanent chat room when the Server is started. The following example would create six permanent rooms each time the Server is started:

  # Create chat rooms for each of the supported languages.
  English Chat Room
  French Chat Room
  German Chat Room
  Italian Chat Room
  Portuguese Chat Room
  Spanish Chat Room

Log Files

The VolanoChat Server records two log files:

All errors encountered by the Server are time stamped and written to standard error.

Access log

The access log file records each chat connection in the same format as the NCSA and Apache Web server combined log format. An entry is recorded at the end of each chat connection. This log file is suitable for any Web log analysis program such as the popular Analog program.

Each line in the log file has the following format:

  host - - [DD/Mon/YYYY:hh:mm:ss zone] "request" ddd bbbb "referrer" "agent"
where:
host
is either the host name or IP address of the remote Client.
DD
is the day.
Mon
is the month (as its calendar name).
YYYY
is the year.
hh
is the hour (24-hour format, in the Server machine's time zone).
mm
is the minutes.
ss
is the seconds.
zone
is the time zone offset from Greenwich Mean Time.
request
is the Client request, giving the codebase of the requested applet and the version of the VolanoChat Client applet.
ddd
is the connection status code, with the values:
200 - Okay
401 - Unauthorized Web page
403 - Forbidden host
505 - Wrong VolanoChat Client applet version
bbbb
is the total number of bytes sent on the chat connection.
referrer
is the referring Web page of the VolanoChat Client applet, specifying the Web page from which this connection was made.
agent
is the user agent field, providing information about the user's Java Virtual Machine in the format (all on one line):
Vendor/Version API/Version (OS/Version Architecture) URL

Here is a sample log entry (all on one line in the actual log file):

  localhost - - [04/Dec/1996:17:31:19 -0800]
  "GET http://localhost/volano/ HTTP/1.06" 200 623
  "http://localhost/volano/index.html"
  "Netscape Communications Corporation/1.02 API/45.3 (Windows 95/4.0 Pentium)
   http://home.netscape.com"

Chat log

The chat log records extra information not found in the access log file, in the format:

  [DD/Mon/YYYY:hh:mm:ss zone] host hh:mm:ss connections private kicker
where:
date
is the same format as in the access log file.
host
is the same host as in the access log file.
hh:mm:ss
is the duration of the chat connection, in hours, minutes, and seconds.
connections
is the number of active chat connections when this connection ended.
private
is the number of private chat rooms when this connection ended.
kicker
is the host of the monitor who kicked or banned this connection, or blank if this connection ended normally.

Performance monitoring

You must set the status.password property before starting your VolanoChat Server in order to enable status reporting. Once the status password is set, you can obtain reports by running the Status application from your VolanoChat Server directory as follows:

java COM.volano.Status host port password interval

where:

host
is the name of the host running your VolanoChat Server.
port
is the port number at which your VolanoChat Server accepts status connections. This port number is set by the status.port Server property.
password
is the password for status connections. This password is set by the status.password Server property.
interval
is the interval, in seconds, at which you want the Server's status reported.

The format of the status reports are (all on one line):

  DD/MM/YY HH:MM:SS used available %used threads
                    connections rooms private received sent total
where:
used
is the number of kilobytes used in the Java Virtual Machine.
available
is the total number of kilobytes available in the Java Virtual Machine.
%used
is the percentage of the memory used.
threads
is the number of active threads in the Java Virtual Machine.
connections
is the number of active chat connections.
rooms
is the number of chat rooms.
private
is the number of private chat sessions.
received
is the average number of received messages per second over the interval.
sent
is the average number of sent messages per second over the interval.
total
is the average total number of messages per second over the interval.

A sample status report is:

  02/21/97 18:47:35 175KB 381KB 46% 44 12 6 0 1 5 6

Copyright © 1997 Volano. All rights reserved.
Contact support@volano.com with questions or comments.