Previous Next Up FAQ Table of Contents

5.2 Server Properties

The properties file itself looks like this by default. To change the server properties, simply edit the file with any plain text editor. When changes are made to any of the server configuration files, you must restart the VolanoChat server for the changes to take effect.

Property names and values

Each of the VolanoChat server properties is explained below, showing the default values defined in the sample properties file included in your download. You can let a property take on its default value by commenting out its definition, like this:

# server.port=8000

For file path names you should specify the path in Web notation using a forward slash ("/") for the path separator. There can be no spaces on either side of the equal sign when defining the property values.

Applet code base directory

applet.codebase=webapps/ROOT/vcclient
This property gives the local file path to your applet code base directory, which you moved under your Web server document directory during installation. This property allows the VolanoChat applet configuration servlet to find all the applet property files when modifying the properties through the Web page form.

General properties

server.host=
This property allows you to define the host name or IP address at which the VolanoChat server accepts connections. It can be used to direct the server to bind to a particular address when running on a multi-homed host with multiple virtual addresses. This also provides for a 0.0.0.0 "wildcard" server socket address such that it will open the chat server socket on all TCP/IP interfaces on the machine when the server.host server property is either undefined, empty, or has a value of 0.0.0.0, as in the following three examples:
    # server.host=       # Value is undefined (commented out)
    server.host=         # Value is the empty string
    server.host=0.0.0.0  # Value is a zero IPv4 address

When using server sockets of this type on multihomed hosts (such as those using IP-based virtual hosts for Web hosting), the primary IP address of the system must be the addresses found in the VolanoChat license key file. The primary IP address is the one that is returned when looking up the address of the system's host name, such as with the command host `hostname` on Linux.
server.port=8000
This property defines the port number at which the VolanoChat server accepts chat connections from VolanoChat client applets. This number must be the same as the VolanoChat applet server.port property value. The default is port 8000.
server.password=
This property defines the password required to monitor chat rooms when using the monitor interface of the VolanoChat applet. Monitoring capabilities are activated in the VolanoChat applet by setting the applet monitor parameter to true, although the correct password is required in order to use any of the monitoring capabilities. The default is no password, which allows no monitoring of any chat rooms.
client.authentication=true
The server can use an optional challenge and response protocol with each connecting client as an attempt to verify that the client is a VolanoChat applet delivered from the machine running the server. This setting makes it harder for people to use automated robots and other unauthorized clients to cause trouble in the chat room. Client authentication is enabled by default and requires the Microsoft virtual machine version 1.1 or later, the Apple Java virtual machine version 1.1.8 or later, or the Sun Java 2 Plug-in version 1.3 or later. It fails gracefully with the older browsers by displaying the page.java.version= page specified in your client applet properties file.
Blocked visitors can gain access simply by upgrading to a more recent browser, even on older computers with limited resources. A list of supported Web browser can be found at [3.1] System Requirements.
duplicate.addresses=true
By default, multiple connections from the same IP address are allowed. Setting this property to false will prevent more than one connection to the chat server from the same IP address. This was implemented to prevent a single person from connecting to the VolanoChat server multiple times in order to stage a coordinated attack or flood. Setting the property equal to false could prevent legitimate connections from users behind NAT firewalls or other types of connection sharing.
admin.client.host=127.0.0.1
This property defines the host name or IP address from which the COM.volano.Status and COM.volano.Shutdown programs can be executed against this VolanoChat server. The default is the IP address of the localhost, meaning the status and shutdown programs must be run on the same machine as the VolanoChat server itself.
admin.port=8001
This property defines the port number at which the VolanoChat server accepts administrative connections. The default is port 8001.
admin.password=
This property defines the password required to make administrative connections to the VolanoChat server from the COM.volano.Status and COM.volano.Shutdown applications. The default is no password, which allows no administrative connections.
status.interval=60
This property defines the interval, in seconds, at which you wish to receive status reports from the VolanoChat server when using the COM.volano.Status application. The default is 60 seconds.
server.backlog=50
This property specifies the number of incoming connections that can be queued up by your operating system while waiting for the VolanoChat server to accept them. Connections are queued when the VolanoChat server has reached the connection limit defined by the server administrator or set by your VolanoChat license key. If a connection request arrives when the queue is full, the connection is refused. The default is 50 pending connections.
server.limit=0
This property sets the limit on the total number of simultaneous chat connections to your VolanoChat server. You can use this value to control the total number of people using your VolanoChat server, thereby placing a limit on the resources used by the server. The default is zero, allowing an unlimited number of concurrent connections or the maximum number of connections allows by your VolanoChat license key.
server.timeout=10
This property defines the number of minutes before a connection is disconnected after the VolanoChat server detects the client applet is not responding. Note that this is not an idle timeout on the person actually chatting; rather, it is a dead session timeout used to clean up any connections which were not closed normally. The default is 10 minutes.
server.verbose=false
This property enables or disables verbose error logging. When the verbose error logging is enabled with a value of true, a complete Java stack trace is recorded for each error in addition to the message text. When disabled with a value of false, only the error message text is recorded. The default value is false.
server.trace=false
This property enables or disables server packet tracing. When the packet tracing is enabled with a value of true, the Java class name of each object serialized across each client network connection is written to standard output. The default value is false.
address.broadcast=false
This property determines whether the IP address or host name of each chat visitor is sent out to all other visitors along with the visitor's profile text. A value of false prevents the address information from being sent to anyone except VolanoChat monitors and administrators. A value of true sends each visitor's IP address to all other visitors. The VolanoChat applet properties text.status.profile and text.status.noprofile determine whether VolanoChat applets display the address information along with the profile text when it is received from the server. The default value of the property prevents people from obtaining IP addresses using TCP/IP trace tools or non-Volano clients.
script.timeout=10
This property defines the number of seconds that the VolanoChatPro server will wait for a response from the membership name and access scripts. If the access script times out, the requesting member name and password is denied access as a member. If the name script times out, the name is permitted even if it happens to be a member name. The default value is 10 seconds.
script.trace=false
This property enables or disables tracing of the HTTP requests and responses between the VolanoChatPro server and the member name and access scripts. When the tracing is enabled with a value of true, each HTTP request and response is written to standard output and can be used to debug problems with your membership access. The default value is false.
server.nothreadgroups=false
This property, when set to true, works around Apple Mac Runtime for Java bug number 2232076. It should be set to true when running the VolanoChat server on the Mac with the Apple MRJ virtual machine in order to avoid java.lang.IllegalThreadStateException errors.
room.limit=25
This property sets the maximum number of people allowed to enter each chat room. The default is a maximum of 25 people per room.
room.nodynamic=false
This property enables or disables the ability of client applets to create dynamic rooms in the VolanoChat server. You can normally control dynamic room creation using the Web page referrer access control. When set to true, this property will completely prevent any dynamic rooms from being created since the referrer-based access control can be defeated by imposter VolanoChat applets. The default value is false.
room.sweep.interval=15
This property defines the interval in minutes at which the list of rooms is swept for those that are empty and not referenced by visitors. Note that a room may be empty but is still referenced in the VolanoChat server as long as anyone who entered through the Web page which created the room is still connected. The default value is 15 minutes.
username.matchcase=true
This property specifies whether to match the case of nicknames when a visitors enters a chat room. The default value is true, meaning the check whether a name is already taken is case sensitive. A value of false tells the server to ignore case when checking whether a name is already in use in the chat room.
length.chattext=200
length.profile=200
length.roomname=100
length.username=20
These properties set the maximum length of character strings received from a VolanoChat client applet. The property length.roomname defines the maximum number of characters for a room name; length.username defines the maximum number of characters for a person's nickname; length.profile defines the maximum number of characters for a profile; and length.chattext defines the maximum number of characters for one chat message.
Their default values are those shown above. The values of these properties should be equal to or greater than the properties of the same name for the VolanoChat client applet, since any applet sending more characters will be disconnected and assumed not to be a VolanoChat applet.

Servlet Runner

More information on the Apache Tomcat Servlet Runner can be found here:

http://jakarta.apache.org/tomcat/tomcat-4.0-doc/config/http11.html
servlet.port=8080
The port on which the Tomcat servlet runner starts. You should change this if you already have a program running on port 8080. If you want to disable the internal servlet runner, set servlet.port=-1.
servlet.minprocessors=5
The number of processing threads that will be created when the embedded 4.0 Tomcat Servlet Runner is first started. This attribute should be set to a value smaller than that set for maxProcessors. The default value is 5.
servlet.maxprocessors=20
The maximum number of processing threads to be created by embedded 4.0 Tomcat Servlet Runner, which therefore determines the maximum number of simultaneous HTTP requests for servlets that can be handled. If not specified, this attribute is set to 20.

Flood Control

Any delay will happen after the specified request is received by the server, and will delay the processing of any type of request from the same client. A more detailed explanation of flood control can be found on the [8.2] Flood Control Feature page.

delay.access=0
This is the first request sent in by the VolanoChat clients, in order to establish communication.
delay.authenticate=0
A delay after client-server authentication occurs, assuming authentication has been enabled.
delay.beep=1000
Defines the delay after the "ring" function.
delay.chat=1000
Defines a delay after a chat message is sent to the server.
delay.enter.private=1000
A delay after the receipt of a request to enter private chat, regardless of the success or failure of the request (due to private chat being disabled).
delay.enter.room=1000
A delay after the chatter enters a room.
delay.exit.private=0
A delay after leaving a private chat.
delay.exit.room=0
A delay after leaving a chat room.
delay.kick=0
Defines a delay after a monitor or administrator uses the kick function.
delay.ping=0
Ping is an internal request that the server sends to the client to detect dead sessions. The ping is initiated by the server, so the delay would apply only to the ping response sent from the client. Use of this delay is not recommended.
delay.room.list=0
A delay after the room list is presented or refreshed.
delay.user.list=0
Defines a delay after requesting the user list, such as when clicking on a room name in the main chat window. In most cases this is not recommended. It might be useful on an older server that can't handle the speed of requests.

Banning Control

A more detailed explanation of DNS Blacklisting can be found on the [8.4] DNS Blacklist Feature page.

dnslist.denied=
The list of blacklists against which you would like to check incoming chat connections.
dnslist.dynamic=
The list of dynamic IP lists against which you would like to check chat clients. This only applies when a chatter is banned.
ban.static.duration=1440
The time, in minutes, that a static IP address is banned. The default setting is equal to one day.
ban.dynamic.duration=60
The time, in minutes, that a dynamically assigned IP address is banned. Default is one hour.
ban.netblock.duration=60
The amount of time, in minutes, that the netblock surrounding an offending IP address is banned. This only applies to dynamic IP addresses.
ban.netblock.ipv4mask=255.255.0.0
This mask lets you define the size of a 'netblock', for use with the previous property.

Configuration files

server.key=conf/key.txt
Specifies the path to the license key text file. The path can be absolute or relative to the server startup directory.
server.rooms=conf/rooms.txt
This property defines the name and location of the file containing the list of rooms to be permanently available in the VolanoChat server. The syntax of the room list file is documented in [5.5] Permanent Rooms. The default when omitted is to have no permanent chat rooms.
access.hosts.allow=conf/hosts-allow.txt
Defines the path to your 'allowed hosts' file. See [5.3] Access Control Feature.
access.hosts.deny=conf/hosts-deny.txt
Defines the path to your 'denied hosts' file. See [5.3] Access Control Feature.
access.referrers.allow=conf/referrers-allow.txt
Defines the path to your 'allowed referrers' file. See [5.3] Access Control Feature.
access.referrers.deny=conf/referrers-deny.txt
Defines the path to your 'denied referrers' file. See [5.3] Access Control Feature.

Log files

These properties define the names and locations of the VolanoChat server log files. More detailed information on Log Files and Rotation can be found in our [5.4] Log Files Feature section. The default when a log property is undefined or omitted is to disable the corresponding log file.

log.directory=logs
The directory where logfiles will be saved.
log.access.prefix=access-
log.access.suffix=.log
These properties define the prefix and suffix to add to the name of the server access log file.
log.error.prefix=error-
log.error.suffix=.log
These properties define the prefix and suffix to add to the name of the error log file.
log.public.prefix=
log.public.suffix=.log
These properties define the prefix and suffix to add to the name of the public room access log file.
log.private.prefix=
log.private.suffix=.log
These properties define the prefix and suffix to add to the name of the private room access log file.
log.banned.prefix=banned-
log.banned.suffix=.log
These properties define the prefix and suffix to add to the name of the banned chatter log file.
log.servlet.prefix=servlet-
log.servlet.suffix=.log
These properties define the prefix and suffix to add to the name of the messages log for the internal Tomcat Servlet Runner.
log.http.prefix=http-
log.http.suffix=.log
These properties define the prefix and suffix to add to the name of the access log for the internal Web server.
log.velocity.prefix=velocity-
log.velocity.suffix=.log
These two properties are for future use with the Velocity Template Engine. They are not currently implemented.
log.support=logs/support.log
This property defines the location and name of the log file used for support information. Changing the name or location of this file could make support issues more difficult.
log.chat.public.dir=webapps/ROOT
log.chat.public.suffix=.html
log.chat.private=
These properties define the names and locations of the VolanoChatPro server chat message log files. The property log.chat.public.dir defines the directory where each of the public room chat transcription files are stored, with the file name equal to the room name followed by the suffix defined by the log.chat.public.suffix property value. The default location is the webapps/ROOT directory located under the VolanoChat server installation directory, and the default suffix is .html. This will allow you to use the internal HTTP server to pull the files. If you're going to make the files available on your website, you should set this value to a directory that resides within your public HTML structure and use your own webserver to serve the pages. The property log.chat.private defines the name of the single file containing the chat messages from all private rooms. Omitting a public message log directory location or a private message log file name disables the message logging. Message logging may also be enabled or disabled through the room transcription properties below.
Note: Chat message logging is only available with VolanoChatPro.

Room transcriptions

transcribe.room.permanent=false
transcribe.room.dynamic=false
transcribe.room.event=false
transcribe.room.private=false
These properties enable or disable the transcription of messages in the public and personal chat rooms. Transcription is enabled when set to true and disabled when set to false. The default value for each property is false. The properties for permanent, dynamic, and event chat rooms control the logging of public messages into the directory defined by log.chat.public.dir. The property for private chat rooms controls the logging of private chat messages into the file defined by log.chat.private. Permanent public rooms are those listed in the rooms.txt file by default. Dynamic public rooms are those created by access through VolanoChat applets defining the group applet parameter, and event rooms are auditoriums created for moderated events.

Log file formats

format.date=
[dd/MMM/yyyy:HH:mm:ss z]
format.access=
{0} - - {1} "GET {2} HTTP/{3}" {4,number,0} {5,number,0} "{6}" "{7}" {8}
format.access.agent=
{0}/{1} API/{2} ({3}/{4} {5}) {6}
format.access.extra=
{0,number,0} {6}
format.public=
{0} {1,number,0} "{2}" "{3}" {4}
format.private=
{0} {1,number,0} "{2}" "{3}" {4} "{5}" {6}
format.banned=
{1}\={2,choice,0\#Static|1\#Dynamic|2\#Netblock} address banned at {0} as {4} in {3} by {5}
format.status=
{0} {1} {2} {3,number,0} {4,number,0} {5,number,0} {6,number,0} {7,number,0} {8,number,0}
format.status.memory=
{0,number,0}KB/{1,number,0}KB {2,number,0%}
format.status.resources=
{0,number,0} {1,number,0} ({2,number,0})

These properties define the message format templates of the server, public, and private access log files, and the banned host log. They also define the templates used by the COM.volano.Status application to format status reports from the server. The message formats allow the server administrator to create log files for any log analysis program or for importing into any spreadsheet program. The defaults are the message format templates shown for each property above. See the [5.6] Report Formats section later in this chapter for details on the message format templates.

format.chat.public=
{3,date,[dd/MMM/yyyy:HH:mm:ss]} <b>&lt;{0}&gt;</b> {2}<br>
format.chat.private=
{3,date,[dd/MMM/yyyy:HH:mm:ss]} <b>&lt;{0} -&gt; {1}&gt;</b> {2}<br>

These properties define the format for logging public and private chat messages, where {0} is the name of the sender, {1} is the name of the receiver, and {2} is the chat message text. You can add the variable {3} as a formatted time stamp, such as {3,date,[dd/MMM/yyyy:HH:mm:ss]}. With the default definitions above, public chat messages are saved like the following two examples:

[27/November/2002:14:42:22] <John> Hi there!
[27/November/2002:14:42:30] <Mark> Hi, John. What's up?

and private chat messages are saved like the following:

[27/November/2002:14:42:22] <John -> Mark> What's up?
[27/November/2002:14:42:30] <Mark -> John> Not much here. And you?

Member access

member.version=
member.only=false
member.access=
member.name=
The VolanoChat server supports connectivity to member databases. If member.version is set to 2.1, the new interface for VolanoChat 2.1 is used instead of the older VolanoChat 2.0 member script interface. If member.only is set to false, members and non-members can access the chat server. If true, only members may access the VolanoChat server. The member.access and member.name properties allow you to define Uniform Resource Locators (URLs) for the scripts that access information in your member database. The defaults are shown above, using the older version 2.0 interface, allowing access to non-members, and defining no database access scripts. See the [5.7] Member Database Support chapter for details on the database interface.

Member monitors

member.monitor.matchcase=false
member.monitor.multiuse=false
member.monitors=
Note: These properties work only in conjunction with a membership database in a VolanoChatPro server.
These properties allow you to specify a list of members who may act as monitors in the VolanoChatPro server. Define the list of member-monitors in a file with one name per line, and specify the path to the file with the property member.monitors. For example, if your member-monitors are Matt and Jane, you could create a file called monitors.txt containing the following:
matt
jane
You could place the file in the VolanoChat conf directory (where the properties.txt file is located), and then specify:
member.monitors=monitors.txt
The property member.monitor.matchcase determines whether to match the case of the member names when looking up member-monitors in the list. The default value is false, in which case both the requested member name and the list are converted to lower case characters before comparing their values. Otherwise, the names are matched in a case-sensitive manner when true.
The property member.monitor.multiuse determines whether there can be more than one connection with the same member-monitor name in the VolanoChatPro server. When set to true, the property allows more than one person with the same member name to be signed into the server as a monitor at the same time. The default value is false, which disconnects any other person using the same member-monitor name when a member signs in as a monitor.

Auditorium access and creation

auditoriums.permanent=false
This property determines whether event auditoriums remain permanently available in the VolanoChat server once they're created. A value of true causes all event auditoriums to remain in the server until it is stopped. A value of false allows the event auditorium to be removed from the server once all the guests and moderators on stage have left the room.
entrance.stage=
This property defines a Uniform Resource Locator (URL) prefix which must match any VolanoChat applet attempting to create an event auditorium. In this way, you can define a part of your Web site as the stage entrance for guests and moderators of live events, while not allowing any other Web site or location to create event auditoriums in your server.
For more information about implementing these features, see [8.6] VolanoChatPro Auditorium or Moderated Event.

Access to server events

event.callback.prefix=
This property defines a Uniform Resource Locator (URL) prefix which must match the callback location of any server-side event listeners registering with your VolanoChat server. In this way you can restrict server-side event notifications to only those URLs which are authorized by your VolanoChat server.

Secondary files

The VolanoChat server properties file gives the location of four access control files:

and the list of permanent rooms (defined by server.rooms).

In addition, it specifies the location of as many as eleven sets of optional log files:

You may specify absolute or relative paths to these secondary files and directories. If the file paths are not absolute, they are assumed to be relative to the VolanoChat server base directory (default installation directory).


Previous Next Up FAQ XHTML 1.0 Table of Contents

2014-07-11 — An updated version of the VOLANO chat server that supports the latest Java 8 Plug-in is now available. More…

The VOLANO® chat software for the Java™ platform lets you build on-line communities and add real-time social networking to your Web site. More…

John Neffenger <john@status6.com>
More…

A PROJECT OF STATUS:6®