/// <exception cref="Db4objects.Db4o.Ext.Db4oIOException"></exception>
        /// <exception cref="Db4objects.Db4o.Ext.IncompatibleFileFormatException"></exception>
        /// <exception cref="Db4objects.Db4o.Ext.OldFormatException"></exception>
        /// <exception cref="Db4objects.Db4o.Ext.DatabaseFileLockedException"></exception>
        /// <exception cref="Db4objects.Db4o.Ext.DatabaseReadOnlyException"></exception>
        public virtual IObjectServer OpenServer(IConfiguration config, string databaseFileName
                                                , int port)
        {
            var container = (LocalObjectContainer)Db4oFactory.OpenFile(config
                                                                       , databaseFileName);

            if (container == null)
            {
                return(null);
            }
            var serverConfig = Db4oClientServerLegacyConfigurationBridge.AsServerConfiguration
                                   (config);

            lock (container.Lock())
            {
                return(new ObjectServerImpl(container, serverConfig, port));
            }
        }