/* This file is part of the db4o object database http://www.db4o.com Copyright (C) 2004 - 2011 Versant Corporation http://www.versant.com db4o is free software; you can redistribute it and/or modify it under the terms of version 3 of the GNU General Public License as published by the Free Software Foundation. db4o is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/. */ package com.db4o.cs.config; import com.db4o.config.*; /** * Configuration interface for db4o servers. * @since 7.5 */ public interface ServerConfiguration extends FileConfigurationProvider, NetworkingConfigurationProvider, CommonConfigurationProvider , CacheConfigurationProvider, IdSystemConfigurationProvider{ /** * adds ConfigurationItems to be applied when * an ObjectServer is opened. * @param configItem the {@link ServerConfigurationItem} * @since 7.12 */ public void addConfigurationItem(ServerConfigurationItem configItem); /** * configures the timeout of the server side socket. <br> * <br> * The server side handler waits for messages to arrive from the client. * If no more messages arrive for the duration configured in this * setting, the client will be disconnected. * <br> * Clients send PING messages to the server at an interval of * Math.min(timeoutClientSocket(), timeoutServerSocket()) / 2 * and the server will respond to keep connections alive. * <br> * Decrease this setting if you want clients to disconnect faster. * <br> * Increase this setting if you have a large number of clients and long * running queries and you are getting disconnected clients that you * would like to wait even longer for a response from the server. * <br> * Default value: 600000ms (10 minutes)<br> * <br> * It is recommended to use the same values for {@link ClientConfiguration#timeoutClientSocket(int)} * and {@link #timeoutServerSocket(int)}. * <br> * This setting can be used on both client and server.<br><br> * @param milliseconds * time in milliseconds * * @sharpen.property */ public void timeoutServerSocket(int milliseconds); }