####################################### # # Firebird configuration file # # Comments # -------- # The # character is used for comments and can be placed anywhere on a # line. Anything following the # character on a line is considered a # comment. # # Examples: # # # This is a comment # DefaultDbCachePages = 8192 # This is an end-of-line comment # # Entries # ------- # The default value for each entry is listed to the right of the "=". # To activate an entry, remove the leading "#"s and supply the desired # value. # # Please note, a number of the values are specified in **Bytes** (Not KB). # Accordingly, we have provided some simple conversion tables at the bottom # of this file. # # There are three types of configuration values: integer, boolean and string. # # Integer # -------- # Integers is what they sound like, an integral value. Examples: # 1 # 42 # 4711 # # Boolean # ------- # Boolean is expressed as integer values with 0 (zero) being "false" and # non-zero is taken to mean "true". For consistency we recommend you # only use 0/1. # # String # ------ # Strings are also what they sound like, strings. Examples: # RootDirectory = /opt/firebird # RemotePipeName = pipe47 # # # Portions of this file have been reproduced/made available with the # permission of Ann Harrison @ IBPhoenix. # ####################################### # ================================== # Settings for all platforms/engines # ================================== # # ---------------------------- # Specify the root directory under which Firebird is installed. # Can be used to override the OS-specifically determined one. # # Type: string # #RootDirectory = # ---------------------------- # Database Paths/Directories # # DatabaseAccess may be None, Full or Restrict. If you choose Restrict, # provide ';'-separated trees list, where database files are stored. # Relative paths are treated relative to RootDirectory entry # (see above). Default value 'Full' gives full access to all files # on your site. To specify access to specific trees, enum all required # paths (for Win32 this may be something like 'C:\DataBase;D:\Mirror', # for unix - '/db;/mnt/mirrordb'). If you choose 'None', then only # databases listed in aliases.conf can be attached. # # UNCONTROLLED DATABASE ACCESS MAY COMPROMISE YOUR SYSTEM! # IT IS STRONGLY RECOMMENDED THAT THIS SETTING BE USED TO LIMIT # DATABASE LOCATIONS! # # Type: string (special format) # #DatabaseAccess = Full # ---------------------------- # External File Paths/Directories # # ExternalFileAccess may be None, Full or Restrict. If you choose # Restrict, provide ';'-separated trees list, where external files # are stored. Relative paths are treated relative to RootDirectory entry # (see above). Default value 'None' disables any use of external files # on your site. To specify access to specific trees, enum all required # paths (for Win32 this may be something like 'C:\ExternalTables', # for unix - '/db/extern;/mnt/extern'). # # NOTE: THE EXTERNAL TABLE ENGINE FEATURE COULD BE USED TO COMPROMISE # THE SERVER/HOST AS WELL AS DATABASE SECURITY!! # # IT IS STRONGLY RECOMMENDED THAT THIS SETTING BE USED TO LIMIT # EXTERNAL TABLE LOCATIONS! # # Type: string (special format) # #ExternalFileAccess = None # ---------------------------- # External Function (UDF) Paths/Directories # # UdfAccess may be None, Full or Restrict. If you choose # Restrict, provide ';'-separated trees list, where UDF libraries # are stored. Relative paths are treated relative to RootDirectory entry # (see above). Default value 'Restrict UDF' provides the same restrictions # as in FB 1.0. To specify access to specific trees, enum all required # paths (for Win32 this may be something like 'C:\ExternalFunctions', # for unix - '/db/extern;/mnt/extern'). # # NOTE: THE EXTERNAL FUNCTION ENGINE FEATURE COULD BE USED TO COMPROMISE # THE SERVER/HOST AS WELL AS DATABASE SECURITY!! # # IT IS STRONGLY RECOMMENDED THAT THIS SETTING BE USED TO LIMIT # EXTERNAL FUNCTION LOCATIONS! # # Type: string (special format) # #UdfAccess = Restrict UDF # ---------------------------- # Temporary directories # # Provide ';'-separated trees list, where temporary files are stored. # Relative paths are treated relative to RootDirectory entry # (see above). Default value is determined using FIREBIRD_TMP, # TEMP or TMP environment options. Every directory item may have optional # size argument to limit its storage, this argument follows the directory # name and must be separated by at least one space character. If the size # argument is omitted or invalid, then all available space in this # directory will be used. # # E.g.: # TempDirectories = c:\temp # or # TempDirectories = c:\temp;d:\temp # or # TempDirectories = c:\temp 100000000;d:\temp 500000000;e:\temp # # Type: string (special format) # #TempDirectories = # ---------------------------- # Legacy hash makes possible use of old security.fdb # after running misc/upgrade/security_database.sql. # If you want to disable logons with old passwords # after users' migration, set it to 0 (false). # Makes no difference when used with original # security2.fdb - it can't contain DES hash. # # Type: boolean # #LegacyHash = 1 # ---------------------------- # Number of cached database pages # # This sets the number of pages from any one database that can be held # in cache at once. If you increase this value, the engine will # allocate more pages to the cache for every database. By default, the # SuperServer allocates 2048 pages for each database and the classic # allocates 75 pages per client connection per database. # # Type: integer # #DefaultDbCachePages = 8192 # ---------------------------- # In-memory sorting module # # The amount of memory allocated for each sort block. # # Type: integer # #SortMemBlockSize = 1048576 # # The maximum amount of memory to be allocated by the in-memory # sorting module. # # For Classic servers, this setting is defaulted to 8 MB. # Although it can be increased, the value applies to each client # connection/server instance and thus consumes a lot of memory. # # Type: integer # #SortMemUpperLimit = 67108864 # ---------------------------- # Backward-compatible parameter ordering as it was in FB v1/IB # # Type: boolean # #OldParameterOrdering = 0 # ---------------------------- # Boolean evaluation method (complete or shortcut) # # If your SQL code depends on side-effects of full evaluation of OR # and AND statements (right-hand-side terms), even if the expressions # final result could be determined by just examining the value of the # first term, you might need to turn this on. # # Type: boolean # #CompleteBooleanEvaluation = 0 # ---------------------------- # # Determines the number of seconds that the lock manager will wait after a # conflict has been encountered before purging locks from dead processes # and doing extra deadlock scan cycle. Engine detects deadlocks instantly # in all normal cases, so this value affects things only if something goes # wrong. Setting it too low may degrade system performance. # # Type: integer # #DeadlockTimeout = 10 # ---------------------------- # # How often the pages are flushed on disk # (for databases with ForcedWrites=Off only) # # Number of unflushed writes which will accumulate before they are # flushed, at the next transaction commit. For non-Win32 ports, # the default value is -1 (Disabled) # # Type: integer # #MaxUnflushedWrites = 100 # # Number of seconds during which unflushed writes will accumulate # before they are flushed, at the next transaction commit. For non-Win32 # ports, the default value is -1 (Disabled) # # Type: integer # #MaxUnflushedWriteTime = 5 # ---------------------------- # # This option controls whether to call abort() when internal error or BUGCHECK # is encountered thus invoke post-mortem debugger which can dump core suitable # for off-line analysis. When disabled engine tries to minimize damage and # continue execution. # # Note that setting this option to 1 makes engine produce traceable coredumps # when something nasty like SIGSEGV happens inside UDF. On Windows enabling # this option makes engine invoke JIT debugger facilities when errors happen. # # For debugging builds (DEV_BUILD), default value is 1 (Enabled) # # Type: boolean # #BugcheckAbort = 0 # Prior to Firebird 1.5 various SELECT expressions generated unnamed # columns. This did not conform to the SQL standard. Fb 1.5 saw the # introduction of default aliases for these unnamed columns. In some # cases, particularly if string concatenation is used (via the || # operator) this breaks existing scripts. # # This setting will affect aliases generated via CONCATENATION, # CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP and EXTRACT. Setting # the value to true will disable the alias generation. It is only # recommended to be used where legacy scripts need to be supported. # It will be marked deprecated in Firebird 2.0 and removed in # Firebird 3.0. # # Type: boolean # #OldColumnNaming = 0 # ---------------------------- # Client Connection Settings (Basic) # # Seconds to wait before concluding an attempt to connect has failed. # # Type: integer # #ConnectionTimeout = 180 # # Seconds to wait on a silent client connection before the server sends # dummy packets to request acknowledgment. # # DO NOT USE THIS OPTION. It may hang or crash Windows on the client side as # explained here: http://support.microsoft.com/default.aspx?kbid=296265 # or may not prevent eventual inactive client disconnection for other OS. # # Normally, Firebird uses SO_KEEPALIVE socket option to keep track of # active connections. If you do not like default 2-hour keepalive timeout # then adjust your server OS settings appropriately. On UNIX-like OS's, # modify contents of /proc/sys/net/ipv4/tcp_keepalive_*. On Windows, # follow instrutions of this article: # http://support.microsoft.com/default.aspx?kbid=140325 # # Type: integer # #DummyPacketInterval = 0 # ---------------------------- # TCP Protocol Settings # # The TCP Service name/Port number to be used for client database # connections. # # It is only necessary to change one of the entries, not both. The # order of precendence is the 'RemoteServiceName' (if an entry is # found in the 'services.' file) then the 'RemoteServicePort'. # # Type: string, integer # #RemoteServiceName = gds_db #RemoteServicePort = 3050 # # The TCP Port Number to be used for server Event Notification # messages. The value of 0 (Zero) means that the server will choose # a port number randomly. # # Type: integer # #RemoteAuxPort = 0 # # TCP/IP buffer size for send and receive buffers of both the client # and server. The engine reads ahead of the client and can send # several rows of data in a single packet. The larger the packet size, # the more data is sent per transfer. Range is 1448 to 32767 (MAX_SSHORT). # # Type: integer # #TcpRemoteBufferSize = 8192 # # Either enables or disables Nagle algorithm (TCP_NODELAY option of # socket) of the socket connection. # # Note: Currently is a default for classic and super servers. # # Type: boolean # #TcpNoNagle = 1 # # Allows incoming connections to be bound to the IP address of a # specific network card. It enables rejection of incoming connections # through any other network interface except this one. By default, # connections from any available network interface are allowed. # # Type: string # #RemoteBindAddress = # ---------------------------- # Locking and shared memory parameters # # Bytes of shared memory allocated for lock manager. # In Classic mode, the size given is used for the initial allocation. The # table expands dynamically up to the limit of memory. In SuperServer, the # initial size is also the final size. # Default is 96K on Linux and Solaris, 256K on Windows. # # Type: integer # #LockMemSize = 262144 # # Number of semaphores for interprocess communication. # In non-threading environments, this sets the number of semaphores # available # # Type: integer # #LockSemCount = 32 # # When a connection wants to lock an object, it gets a lock request # block which specifies the object and the lock level requested. Each # locked object has a lock block. Request blocks are connected to those # lock blocks either as requests that have been granted, or as pending # requests. # # The settings: # 1 means locks are granted first come, first served. # 0 means emulate InterBase v3.3 behavior, where locks are granted # as soon as they are available; can result in lock request # starvation. # # Type: integer/boolean # #LockGrantOrder = 1 # # In Classic, only one client process may access the lock table at any # time. Access to the lock table is governed by a mutex. The mutex can # be requested conditionally - a wait is a failure and the request must # be retried - or unconditionally - the request will wait until it is # satisfied. This parameter establishes the number of attempts that # will be made conditionally. Zero value means unconditional mode. # Relevant only on SMP machines. # # Type: integer # #LockAcquireSpins = 0 # # Tune lock hash list; more hash slots mean shorter hash chains. Only # necessary under very high load. Prime number values are recommended. # # Type: integer # #LockHashSlots = 101 # ---------------------------- # # Bytes of shared memory allocated for event manager. # # Type: integer # #EventMemSize = 65536 # =========================== # SuperServer Engine Settings # =========================== # # ---------------------------- # Which CPUs should be used (Windows Only) # # In an SMP system, sets which processors can be used by the server. # The value is taken from a bit map in which each bit represents a CPU. # Thus, to use only the first processor, the value is 1. To use both # CPU 1 and CPU 2, the value is 3. To use CPU 2 and CPU 3, the value # is 6. The default value is 1. # # Type: integer # #CpuAffinityMask = 1 # ---------------------------- # Settings for the thread scheduler (Windows Only) # # If you have problems with computer response time, running firebird # on workstation, turn off thread scheduler. # # Type: boolean # #UsePriorityScheduler = 1 # # The wait time, in milli-seconds (ms), before the priority of: # - an active thread is reduced to 'Low', or # - an inactive thread is increased to 'High' # # Note: The default value was chosen based on experiments on Intel # PIII/P4 processors. It should be increased for using in the computer # with lower speed processors. # # Type: integer # #PrioritySwitchDelay = 100 # # Number of additional 'intervals' given to a 'High' priority thread. # # Type: integer # #PriorityBoost = 5 # ---------------------------- # Garbage collection policy # # Defines how engine does garbage collection. Valid values are : # cooperative # background # combined # # Superserver has by default "combined" policy # Classic has by default "cooperative" policy. # Other values are ignored by classic server build # # Type: string (special format) # #GCPolicy = combined # ============================== # Classic Server Engine Settings # ============================== # # ============================== # Settings for Windows platforms # ============================== # # ---------------------------- # Does the guardian restart the server every time it crashes? # 0 - only start the engine/service once # 1 - always restart the engine/service if it terminates # # Type: integer/boolean # #GuardianOption = 1 # # ---------------------------- # Priority level/class for the server process. # # The values are: # 0 (Zero) - normal priority, # positive value - high priority (same as -B command line option) # negative value - low priority. # # Note: All changes to this value should be carefully tested to ensure # that engine is more responsive to requests. # # Type: integer # #ProcessPriorityLevel = 0 # ---------------------------- # Local Connection Settings # # The name of the shared memory area used as a transport channel in local protocol. # Note that the local protocol in v2.0 is not compatible with any previous version # if Firebird or InterBase. # # IMPORTANT! If your host OS is Windows 2003 or Windows XP with the terminal # services enabled and you need the local connection to work, you should prefix # the below value with "Global\", i.e. it should be "Global\FIREBIRD". Please note # that the prefix is case-sensitive. # # Type: string # #IpcName = FIREBIRD # # The name of the pipe used as a transport channel in NetBEUI protocol. # Has the same meaning as a port number for TCP/IP. The default value is # compatible with IB/FB1. # # Type: string # #RemotePipeName = interbas # ============================ # Settings for Unix/Linux platforms # ============================ # # # UNIX signal to use for interprocess communication # # Type: integer # #LockSignal = 16 # ---------------------------- # Remove protection against opening databases on NFS mounted volumes # # ***WARNING*** ***WARNING*** ***WARNING*** ***WARNING*** # # This option removes an important safety feature of Firebird and can # cause irrecoverable database corruption. Do not use this option unless # you understand the risks and are prepared to accept the loss of the # contents of your database. # Unless this configuration option is changed from 0 to 1, Firebird can # open a database only if the database is stored on a drive physically # attached to the local computer - the computer running that copy of # Firebird. Requests for connections to databases stored on NFS mounted # drives are redirected to a Firebird server running on the computer that # "owns" the disk. # This restriction prevents two different copies of Firebird from opening # the same database without coordinating their activities. Uncoordinated # access by multiple copies of Firebird will corrupt a database. On a local # system, the system-level file locking prevents uncoordinated access to # the database file. # NFS does not provide a reliable way to detect multiple users of a file on # an NFS mounted disk. If a second copy of Firebird connects to a database on # an NFS mounted disk, it will corrupt the database. # Under some circumstances, running a Firebird server on the computer that # owns NFS mounted volumes is inconvenient or impossible. Applications that # use the "embedded" variant of Firebird and never share access to a database # can use this option to permit direct access to databases on NFS mounted # volumes. # DO NOT ENABLE THIS OPTION UNLESS YOU REALLY KNOW WHAT YOU ARE DOING. # # Type: boolean # #RemoteFileOpenAbility = 0 # ---------------------------- # Remove protection against redirecting requests to other servers # # ***WARNING*** ***WARNING*** ***WARNING*** ***WARNING*** # # Ability to redirect requests to other servers was initially present # in Interbase, but was broken by Borland in Interbase 6.0, when # they added SQL dialects. Request redirection was fixed in firebird 2.0, # but today such behaviour (proxy) seems to be dangerous from security # point of view. Imagine, you have one carefully protected firebird server, # access to which is possible from global net. But in case when this server # has access to your internal LAN (may and should be restricted, # but often possible), it will work as a gateway for incoming requests like: # firebird.your.domain.com:internal_server:/private/database.fdb # It's enough to know name/IP of some internal server on your LAN, and for # this connection one even need not know login/password on external server. # Such gateway easily overrides firewall, installed to protect your LAN # from outside attack. # # DO NOT ENABLE THIS OPTION UNLESS YOU REALLY KNOW WHAT YOU ARE DOING. # # Type: boolean # #Redirection = 0 ####################################### # # KB to Bytes Conversion table # ####################################### # # KB Bytes KB Bytes # ---- --------- ---- --------- # 1 1024 32 32768 # 2 2048 64 65536 # 4 4096 128 131072 # 8 8192 256 262144 # 16 16384 512 524288 # ####################################### # # MB to Bytes Conversion table # ####################################### # # MB Bytes MB Bytes MB Bytes # --- --------- --- ----------- --- ----------- # 1 1048576 64 67108864 448 469762048 # 2 2097152 128 134217728 512 536870912 # 4 4194304 192 201326592 640 671088640 # 8 8388608 256 268435456 768 805306368 # 16 16777216 320 335544320 896 939524096 # 32 33554432 384 402653184 1024 1073741824 # RemoteServicePort = 3051