The Station ID

Apart from app.cfg (see Configuring the Magnolia Runtime), the runtime uses another bit of configuration, stored locally in the machines registry: the Station ID.

This ID is set on first start of MagRuntime, and can be altered using the MagSetStationId helper program.

Purpose

In ML3 programs it was common practice to store shared database files in a central network location, and user specific database files (or “temporary” database files) on the C: drive.

As Magnolia does not use database files, but instead is backed by a PostgreSQL database, user specific data also gets stored on the central database. The Station ID is used to associate the user specific data in the central database to a specific machine.

See db.emulation for details on configuring this association.

Using MagSetStationId

MagSetStationId accepts exactly one argument: the new Station ID. If no ID is specified, the default machine Station ID will be used.

Example:

C:\Program Files (x86)\Magnolia>MagSetStationId 4
Magnolia SetStationId  Version 1.6.9.0
Copyright 2010-2013 Christian Hofstaedtler. All rights reserved.
New StationId: 4

Registry location

The Station ID is stored in the machine registry, in:

HKEY_LOCAL_MACHINE\SOFTWARE\Magnolia
  StationID (REG_DWORD)

(Note that this is the 32-bit path. On 64-bit machines, the path changes accordingly.)

On Terminal Servers, the runtime also looks in this place:

HKEY_CURRENT_USER\SOFTWARE\Magnolia
  StationID (REG_DWORD)

MagSetStationId can not be used to write to the HKCU place. Instead, use REG.EXE. Example:

REG ADD HKCU\SOFTWARE\Magnolia /v StationID /t REG_DWORD /d <StationId>

Default machine ID

The default machine ID equals to the last 4 bytes of the MAC address of the first installed Ethernet Adapter.