Installation Guide

Installing and configuring the MS Access Endpoint on Windows

Prerequisites

ACE required. If the Access Database Engine is not installed, the installer will warn you and offer to continue, but the endpoint will not start. Install ACE before proceeding.

Running the Installer

The MS Access Endpoint ships as a single MSAccess-Endpoint-0.3.0-setup.exe file — a self-contained 64-bit Windows installer built with Inno Setup. Administrator privileges are required.

⬇ Download Installer

What the Installer Asks

The installer wizard walks through several configuration screens:

StepWhat You Configure
Install directoryWhere to install the server. Default: C:\Program Files\JetEndpoint
NetworkPort (default 9432), max connections (255), idle timeout (300 seconds), bind address (0.0.0.0)
DiagnosticsLogging level: none (warnings only), normal (connections + queries), or verbose (full detail). Log retention in days (7 default).
MSys TablesWhether to show or hide (default) MS Access system tables (MSys*) in client queries and schema introspection.
AuthenticationMode: accept_all (any credentials) or simple (username + password). In simple mode, you enter the credentials during install.
Windows ServiceOptionally install as a Windows Service (auto-start on boot). You can also choose to start it immediately after install.

What the Installer Does

  1. Places files — copies jet-server.exe and supporting files to the install directory.
  2. Writes configuration — generates jet-endpoint.toml from your wizard choices and places it in %PROGRAMDATA%\JetEndpoint\. If a config already exists, it is never overwritten — upgrades preserve your settings.
  3. Creates runtime directorieslogs\ and schema_cache\ under %PROGRAMDATA%\JetEndpoint\.
  4. Registers service (if selected) — creates the JETEndpoint Windows Service with auto-start and automatic restart on failure.
Upgrades are safe. Re-running the installer overwrites the program files but preserves your existing jet-endpoint.toml config and cache.

Configuration File

All server behaviour is controlled by a single file: jet-endpoint.toml, located in %PROGRAMDATA%\JetEndpoint\ (typically C:\ProgramData\JetEndpoint\). You can edit it with any text editor.

SectionKeyDescriptionDefault
[network]portTCP port the server listens on9432
max_connectionsMaximum simultaneous client connections255
idle_timeout_secondsClose idle connections after this many seconds300
bind_addressIP address to bind (0.0.0.0 = all interfaces, 127.0.0.1 = localhost only)0.0.0.0
[auth]mode"accept_all" (any credentials) or "simple" (username/password)accept_all
usersFor simple mode: list of ["username", "password"] pairs[]
[debug]diagnostics"none", "normal", or "verbose"none
log_dirCustom log directory (default: %PROGRAMDATA%\JetEndpoint\logs)
log_retention_daysDays to keep rotated logs (0 = unlimited)7
log_max_file_size_mbMax MB before daily rotation (0 = no limit)10
log_msg_max_lenMax characters of SQL to include in log messages200
[msys]visibility"hide" (default) or "show" — controls whether MS Access system tables (MSys*) are visible to clientshide
[tls]enabledEnable TLS encryption (self-signed ECDSA P-256)true
cert_file / key_fileCustom certificate and key paths (generated automatically if absent)

Example Configuration

[network]
port = 9432
max_connections = 255
idle_timeout_seconds = 300
bind_address = "0.0.0.0"

[auth]
mode = "simple"
users = [["admin", "my-secure-password"]]

[debug]
diagnostics = "normal"
log_retention_days = 14
log_msg_max_len = 500
[msys] visibility = "hide"

Running the Server

As a Windows Service (recommended for production)

If you selected "Install as Windows Service" during setup, the endpoint runs automatically on boot and restarts on failure. Manage it through services.msc or PowerShell:

sc query JETEndpoint
sc stop JETEndpoint
sc start JETEndpoint

The service logs to the Windows Event Log as source "JETEndpoint" and also writes jet-server.log to the log directory.

Console Mode (for testing)

Run the server directly from a command prompt. Useful for seeing live output during initial setup:

"C:\Program Files\JetEndpoint\jet-server.exe"

Press Ctrl+C to stop. Log output appears in the console window. Console mode reads the same jet-endpoint.toml from %PROGRAMDATA%\JetEndpoint\.

Logging

Logs are written to %PROGRAMDATA%\JetEndpoint\logs\jet-server.log by default. The file is rotated daily or when it exceeds log_max_file_size_mb (default 10 MB). Rotated logs are named jet-server.YYYY-MM-DD.log.

What gets logged depends on the diagnostics setting:

LevelWhat You See
noneWarnings and errors only — startup, shutdown, connection failures
normalAbove + every connection event (startup, auth result, TLS status), cache lifecycle, and query text
verboseAbove + function resolution details, schema lookup internals, SQL normalisation traces
Normal startup output (console mode or log):
Console mode — port 9432, max 255 connections, idle timeout 300s
JET endpoint listening on 0.0.0.0:9432
Max connections: 255

Connecting

Once the server is running, connect any PostgreSQL-compatible client to the host and port. The "database name" is the full Windows path to your .accdb file:

psql -h localhost -p 9432 -U admin -d "C:/Users/Public/Documents/test.accdb"

From Python:

import pymsaccess
conn = pymsaccess.connect(host="localhost", port=9432, user="admin",
                          dbname="C:/data/mydb.accdb")
cur = conn.cursor()
cur.execute("SELECT * FROM [bi_date]")
for row in cur:
    print(row)

From DBeaver, LibreOffice Base, or any JDBC tool — use the standard PostgreSQL JDBC driver with jdbc:postgresql://host:9432/. DBeaver works with both preferQueryMode=simple and preferQueryMode=extended (recommended for full metadata support).

Troubleshooting

ProblemLikely CauseSolution
"DAO.DBEngine.120 not resolved"ACE not installedInstall Microsoft Access Database Engine
"Could not find file"Wrong path or file permissionsCheck the .accdb path in your connection string
Connection refusedServer not running or wrong portCheck the service is started; verify firewall allows port 9432
Config not loadedConfig not found by serverEnsure jet-endpoint.toml is in %PROGRAMDATA%\JetEndpoint\
256th connection rejectedConnection limit (255) reachedExpected — Jet lock-file ceiling. Wait for idle connections to close.
SSL / TLS errorsClient requires TLS but server has it disabledSet tls.enabled = true in config, or use sslmode=disable in client
Service won't startACE missing or config errorCheck Windows Event Log → Application for "JETEndpoint" entries