# Runtime Environment Control

> The eXtremeDB runtime environment must be initialized before performing any database actions. This startup procedure initializes one or more semaphores that coordinate access to the database between multiple processes, or between multiple threads of a single process. Each process must initialize the runtime once, and only once, then terminate the runtime to clean up semaphores and perform an orderly shutdown. APIs are provided to obtain information about the runtime environment, as well as a mechanism for registering a fatal error handler to trap error conditions that would appear to hang the application in a frozen state. Also, there are APIs to set a number of runtime options available to configure specific runtime behaviors.

> The eXtremeDB runtime is also configurable to support specific features by linking specific libraries. The library options and runtime control APIs are specific to the programming language used. Please use the links below to view detailed explanations and examples for your development environment:

> C | C language libraries and runtime control APIs
> C++ | C++ libraries and runtime control APIs
> Java | Java libraries and runtime control APIs
> Python | Python libraries and runtime control APIs
> C# | C# libraries and runtime control APIs