# Step 1: Startup

> xSQL is an interactive tool for processing SQL statements. It can be run as a server to provide access to eXtremeDB databases from local or remote clients. For example from directory `target/bin` type the following command to open an in-memory database with size `100 Mb` and start a server session listening on port `5000` of the host computer:

>         xsql -size 100m -p 5000

> xSQL responds with the line

>         press Enter to stop SQL server

> indicating that it is running in server mode. A client can be another instance of xSQL that connects to the port specified by the server, or it can be any application using the eXtremeSQL API. To start xSQL as a client process on the same host computer, connecting to the server instance above, use the following command:

>         xsql @127.0.0.1:5000

> xSQL responds with the following lines indicating that it is in client mode, ready to accept interactive commands:

>         xsql started
>         Runtime configuration
>          Remote node(s)        : 127.0.0.1:5000
>          Runtime                          : Release
>         XSQL>

> To end the client/server session, first close the client by typing the command `exit`.

>         XSQL>exit

> Then close the server by pressing <Enter>.

> xSQL can be opened in a single interactive server process, so that a separate client process is not necessary, by simply typing `xsql` from directory `target/bin`:

>         xsql

>         Simple interactive configuration is started
>         To run as a server, type, for example: 'xsql -size 100m -p 5000'
>         Then to connect as a client, use 'xsql @127.0.0.1:5000'
>         Type 'xsql -h' for more details

>         xsql started
>         Runtime configuration
>           Transaction manager  : MURSIW
>          Storage (transient)  : Conventional memory, 100M
>          Storage (persistent) : Not supported
>          Runtime                     : Release
>         XSQL>

> Note that, if no command line arguments are specified the default options are equivalent to running with the command line `xsql –i –size 100m`. As the display indicates, xSQL is running in interactive mode with the following characteristics:

> - 100 Megabytes for database storage - the space to be allocated for the database.
> - `MURSIW` is the transaction manager
> - `transient` database objects will be created in conventional memory (RAM)
> - `persistent` (disk-based) database objects are not supported
> - the eXtremeDB release mode libraries are loaded

> (Note that xSQL can be started with a variety of command-line configuration options, including the `-c` option to read configuration specifications from a `config.file`, in addition to the “server” and “client” examples above. All command-line options and configuration file specifications can be viewed here.)

> Now we can execute SQL commands interactively. Use this link to view some examples.