| Previous: Batch Operation | Next: The Handle HTTP Proxy | Table of Contents |
A handle server can be further configured through the `config.dct' file in its installation directory. This file is divided into sections, each of which contain a set of key-value configuration setting pairs.
This section is the configuration for the HTTP interface to the handle server. You can access this interface by pointing a web browser at your server's IP and HTTP port.
bind_address: The IP address this interface should use.
num_threads: How many threads should be reserved for answering
requests.
bind_port: Which port this interface should use.
backlog: How many incoming connections can be queued while
all threads are in use.
log_accesses: "yes" or "no". Whether or not to log each
access on this interface.
track_threads: "yes" or"no". If enabled, debugging messages
concerning interface thread usage on this interface will be printed to
stdout periodically.
query_page: Full path and name of a HTML file that your
HTTP proxy should use as the upfront query page. If omitted, the
Handle System query page will be the default.
response_page: Full path and name of a HTML file that your
HTTP proxy should use as the data response page. If omitted, the
Handle System response page will be the default.
error_page: Full path and name of a HTML file that your
HTTP proxy should use as error page. If omitted, the
Handle System error page will be the default.
virtual_hosts: One or more virtual host name and corresponding
pages can be specified in this entry. Details of virtual hosts are
specified by sub-entries inside.
An example of virtual host setting would be:
"virtual_hosts"=
{ "hostname"="significant.myvirtualhost.com"
"query_page" = "/home/www/query_page.html"
"response_page" = "/home/www/response_page.html"
"error_page" = "/home/www/error_page.html"
}
|
This section is the configuration for the TCP interface to the handle server. The TCP interface is required for handle administration.
bind_address: The IP address this interface should use.
num_threads: How many threads should be reserved for answering
requests.
bind_port: Which port this interface should use.
backlog: How many incoming connections can be queued while
all threads are in use.
log_accesses: "yes" or "no". Whether or not to log each
access on this interface.
track_threads: "yes" or"no". If enabled, debugging messages
concerning interface thread usage on this interface will be printed to
stdout periodically.
This section is the configuration for the UDP interface to the handle server.
bind_address: The IP address this interface should use.
num_threads: How many threads should be reserved for answering
requests.
bind_port: Which port this interface should use.
backlog: How many incoming connections can be queued while
all threads are in use.
log_accesses: "yes" or "no". Whether or not to log each
access on this interface.
track_threads: "yes" or"no". If enabled, debugging messages
concerning interface thread usage on this interface will be printed to
stdout periodically.
server_admins: A list of administrators with permission to
un/home naming authorities, perform replication, and perform database backups.
backup_admins: A list of administrators with permission to
checkpoint the database.
replication_admins: A list of administrators with permission
to replicate handles on the server.
replication_interval: Time interval in milliseconds between
mirror server updates.
replication_authentication: On mirror handle servers, this
setting indicates the authentication handle that the primary server will use
when performing handle replication. Should be in the format
handle:index.
this_server_id: The identification number of this particular
server. Used to distinguish from other servers within the same site.
max_auth_time: The number of seconds to wait for a client
to respond to an authentication challenge.
case_sensitive: Whether or not handles are case sensitive. It
is highly recommended to always leave this set to "no".
allow_recursion: If set to "yes", the server will act as a proxy
for resolving external handles. When a client requests a handle that the
server is not responsible for, the server will resolve the handle and return
the results, just as if it were stored locally. If allow_recursion is
set to "no", the proxy will only allow resolution of handles stored on the
local handle server. It is usually safe to set this to "yes", which is the
default value.
preferred_global: A handle server will often need to resolve
naming authority handles from one of the global handle servers. Setting this
configuration variable to the IP address of a particular global handle server
will force the handle server to always use that handle server or another
server within its site Storage. This may be desirable to reduce
latencies if there is a global handle server that is significantly closer
geographically than the others.
max_session_time: Time in milliseconds that an authenticated
client session can persist. Minimum is one minute. See the description of
sessions in Using Sessions, for more information. Defaults to 24
hours.
replication_timeout: Time in milliseconds before an unresponsive
replication operation will timeout. Defaults to 5 minutes.
storage_type: This allows manual selection of the storage
mechanism used by the server. Can be one of jdb, sql, or
custom. The jdb storage option is a custom hash style database
that comes included with the Handle System Server distribution. This is the
default storage type. The sql option allows use of a SQL database for
handle storage. See section 12. Using a SQL Database for Storage, for more
information. Finally, the custom setting directs the handle server to
use an external JavaTM class specified using the storage_class setting.
storage_class: The name of the JavaTM class that should be used
when storage_type is set to custom. This class must implement
the net.handle.hdllib.HandleStorage interface included with the
distribution. It must also be in the JavaTM classpath when the handle server
is started.
server_admin_full_access: If set to "no" the "server_admins" will
have default permissions at the naming authority level. These include the
ability to home and unhome naming authorities, perform replication, and perform
database backups. If set to "yes" the "server_admins" will have the default
permissions to do any naming authority level operations as well as handle level
operations, such as creating, deleting, and modifying handles. When
server_admin_full_access is enabled, server admins will be able to
modify and delete existing handles, even if they are not explicitly given
permission in the handle.
allow_list_hdls: If set to "no" the 'list handles' operation will
be disabled on the server.
These setting belong at the top level, as they do not belong in any particular section.
server_type: This is not actually a section, but a single
setting. This can be either "server", "cache", or "hdlgateway".
A cache server does not store any handles or answer for a particular naming authority, it just acts as a caching gateway. The benefit of clients using a caching server is that they can all make use of the single cache that the caching server provides. A regular handle server will behave just like a caching server if it does not have any naming authorities homed to it.
A hdlgateway server serves as a gateway between the current Handle System, and the antiquated version 4 of the Handle System.
interfaces: This is a list of interfaces that the server should
answer on. It should contain one or more of "hdl_tcp", "hdl_udp", and
"hdl_http". If you wish to disable access via a protocol, remove that protocol
from this list.
trace_resolution: Setting this to "yes" will cause the
handle server to print out debugging messages concerning handle resolution.
tcp_timeout: This is the number of milliseconds that will
pass before an outgoing TCP connection fails. This number can be set lower to
avoid wasting threads due to broken connections. However, setting too low
will cause slow connections to fail unnecessarily.
no_udp_resolution: Setting this to "yes" will prevent the
server from resolving external handles using the UDP based handle protocol.
This may be necessary to run a handle server from behind a firewall.
| Previous: Advanced Server Configuration | Next: The Handle HTTP Proxy | Table of Contents |