Any workaround for Norgate not running maintenance when another AmiBroker instance is running?

I run multiple instances of AmiBroker to capture RT data, but also use Norgate for my EOD data.

This is problematic because Norgate won't run maintenance if there is another AmiBroker instance running, presumably because we would not want to make changes to a DB that is being used by another AB instance.


Is there a workaround? Perhaps if I run Norgate in a 64-bit instance and update the RT DBs in 32-bit, would that allow me to run both on the same machine and in the same Windows user account at the same time?

Hi Peter - there is no workaround. The reason maintenance cannot be performed is that we use a handful of routines that are only available via OLE commands for database maintenance. When two (or more) instances of AmiBroker are running, it's not possible for us to only send the OLE command to the instance we're running database maintenance on - it goes to the first-started instance. These commands are fairly critical to operations - such as delete stock, save database and refreshing the watchilsts that we maintain. Running them on the wrong database is obviously an issue.

As an alternative, you might like to consider running maintenance at a certain time(s) of the day using AmiBroker's batch capabilities when you don't have your other instance running. Also take note of Amibroker's command-line parameters that allow you to load a specific database and also run a batch file on it.


1 Like

@PeterD, could you run your EOD instance within a virtual machine, thereby separating it from your real-time operations?

Thanks, Richard, I appreciate your fast response!

  • Peter

@ghanson, I could run it separately, but was hoping to avoid getting into VMs/containers just yet.

Thanks for your input!

You can just run RT instance and EOD instance on separate Windows user account.

Definitely the simplest way. Thanks, Tomasz!