| 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 theserver.hostserver property is either undefined, empty, or has a value of0.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 addressWhen 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 commandhost `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.portproperty 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
monitorparameter totrue, 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.StatusandCOM.volano.Shutdownprograms 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.StatusandCOM.volano.Shutdownapplications. 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.Statusapplication. 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 offalse, only the error message text is recorded. The default value isfalse. 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 isfalse. 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
falseprevents the address information from being sent to anyone except VolanoChat monitors and administrators. A value oftruesends each visitor's IP address to all other visitors. The VolanoChat applet propertiestext.status.profileandtext.status.noprofiledetermine 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 isfalse. server.nothreadgroups=false- This property, when set to
true, works around Apple Mac Runtime for Java bug number 2232076. It should be set totruewhen running the VolanoChat server on the Mac with the Apple MRJ virtual machine in order to avoidjava.lang.IllegalThreadStateExceptionerrors. 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 isfalse. 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=200length.profile=200length.roomname=100length.username=20- These properties set the maximum length of character strings received from a VolanoChat client applet. The property
length.roomnamedefines the maximum number of characters for a room name;length.usernamedefines the maximum number of characters for a person's nickname;length.profiledefines the maximum number of characters for a profile; andlength.chattextdefines 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/ROOTlog.chat.public.suffix=.htmllog.chat.private=- These properties define the names and locations of the VolanoChatPro server chat message log files. The property
log.chat.public.dirdefines 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 thelog.chat.public.suffixproperty value. The default location is thewebapps/ROOTdirectory 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 propertylog.chat.privatedefines 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=falsetranscribe.room.dynamic=falsetranscribe.room.event=falsetranscribe.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
trueand disabled when set tofalse. The default value for each property isfalse. The properties for permanent, dynamic, and event chat rooms control the logging of public messages into the directory defined bylog.chat.public.dir. The property for private chat rooms controls the logging of private chat messages into the file defined bylog.chat.private. Permanent public rooms are those listed in therooms.txtfile by default. Dynamic public rooms are those created by access through VolanoChat applets defining thegroupapplet 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><{0}></b> {2}<br>format.chat.private={3,date,[dd/MMM/yyyy:HH:mm:ss]} <b><{0} -> {1}></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=falsemember.access=member.name=- The VolanoChat server supports connectivity to member databases. If
member.versionis set to2.1, the new interface for VolanoChat 2.1 is used instead of the older VolanoChat 2.0 member script interface. Ifmember.onlyis set tofalse, members and non-members can access the chat server. Iftrue, only members may access the VolanoChat server. Themember.accessandmember.nameproperties 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=falsemember.monitor.multiuse=falsemember.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 calledmonitors.txtcontaining the following:
matt jane
- You could place the file in the VolanoChat
confdirectory (where theproperties.txtfile is located), and then specify:
member.monitors=monitors.txt
- The property
member.monitor.matchcasedetermines whether to match the case of the member names when looking up member-monitors in the list. The default value isfalse, 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 whentrue. - The property
member.monitor.multiusedetermines whether there can be more than one connection with the same member-monitor name in the VolanoChatPro server. When set totrue, 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 isfalse, 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
truecauses all event auditoriums to remain in the server until it is stopped. A value offalseallows 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:
- access.hosts.allow
- access.hosts.deny
- access.referrers.allow
- access.referrers.deny
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:
- the server access log (defined by
log.access.*), - the error log (defined by
log.error.*), - the support information log (defined by
log.support), - the public room access log (defined by
log.public.*), - the private room access log (defined by
log.private.*), - the banned hosts log (defined by
log.banned.*), - the Tomcat Servlet Runner log (defined by
log.servlet.*), - the access log for the internal web server running through the Tomcat Servlet Runner (defined by
log.http), - the Velocity Engine log (defined by
log.velocity.*and not currently used), - the public room chat message logs (defined by
log.chat.public.*), and - the private room chat message log (defined by
log.chat.private).
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).
| XHTML 1.0 | Table of Contents |