What ABM Service Changes in the Company Database
ABM Service never changes the tables, procedures or views that belong to ABM (Advanced Business Manager) itself. It adds a small number of tables of its own to each company database, the first time a version that needs them is used, and after any later update that needs more. Separately, the system administrator can add recommended indexes to speed up ABM's largest tables, but only by choice, from the Administration menu.
What does ABM Service add to the company database?
ABM Service adds tables of its own, every one named with the prefix ABM2_, and nothing else happens to the database's structure without the system administrator's say-so. ABM's tables, and the tables of the older service program, keep exactly their shape.
The first tables it creates are ABM2_DbVersion, which holds a single row with the version number of ABM Service's own tables and who last moved it, and ABM2_IndexHistory, which records the recommended indexes applied. Later versions add tables for web sign-in settings and authenticator apps, and for Customer portal sign-ins and the calls they log. A new version may add more tables of its own, or columns and indexes on them; a change that has shipped is never rewritten, only followed by a new one.
If the company database also holds the tables of the older ABM web portal, the step that creates the Customer portal tables copies the older portal's customer sign-ins, the calls they logged and its portal settings into ABM Service's own tables, so those customers keep the same email address and password. The older portal's tables are only read, never changed.
Every change is kept small and quick, because all of them run as one step while people wait. Every site gets exactly the same tables, whatever its size or country.
Nothing that removes ABM Service takes these tables out again: Remove in ABM Service Server Manager, a company's own Apps & Features entry, and uninstalling ABM Service Server or the ABM Service desktop app all leave the company database exactly as it is, with the ABM2_ tables and what is in them. To have them taken out, ask your software supplier.
When does ABM Service change the company database?
The changes are made the first time somebody signs in, or opens a screen, after a version that needs them has started, not when the Windows service starts. So after a new company is added, or after the nightly update of the web application, the first person to sign in triggers them, and usually does not notice. There is no setting to skip them or to leave them for a database administrator to run by hand.
- All the changes happen in one step. Either every change for that version is made, or none is and the database is left exactly as it was.
- Only one program makes them at a time. If a colleague's ABM Service desktop app, or another server, is already making the same changes, ABM Service waits for it, for up to two minutes, rather than making them twice.
- The web server keeps answering its health check meanwhile, so the changes can never make an update look broken and be put back.
The ABM Service desktop app makes the same changes the same way, so whichever runs the new version first brings the database up to date for everyone.
What rights does the SQL Server login need for these changes?
The SQL Server login given to the company in ABM Service Server Manager needs permission to create tables, and to add columns and indexes to them, in the company database, as well as to read and write ABM's data. Without it, the changes fail each time they are tried, and nobody can use the company, until a database administrator grants the permission.
The login for ABM's control database needs only to read it.
The Test in Add a company checks that the company database answers and looks like an ABM database, but not that the login may create tables. The first real use is where a missing permission shows.
What do people see while the database is being updated?
People see a window titled The database is being updated, with a sentence saying which version the database is on and which this version of ABM Service needs, and a Try again button. While the changes are being made the sentence ends it is being brought up to date now. Try again in a moment.
- another process is bringing it up to date: a desktop app or another server is making the changes. Press Try again in a moment.
- another process has been bringing it up to date for more than 2 minutes: whatever was making the changes has taken too long. Press Try again; if it keeps happening, find what is holding the database.
- and it could not be brought up to date, followed by SQL Server's own message and which change failed: the changes were undone and nobody can use the company until the cause is fixed. It is almost always a login without permission to create tables.
The sign-in page still lists the names and checks the password meanwhile, but finishing a sign-in shows the same sentence until the database is up to date. The server manager's company line may still show Running, because the web server itself is fine.
What are the recommended indexes, and who applies them?
The recommended indexes are extra indexes on ABM's largest tables that make ABM Service's screens faster. They are never added automatically: only the system administrator, ABM user 1, can apply them, one at a time, from the Database screen under the Administration menu in ABM Service.
They are kept separate because each table is locked while its index is built, usually for a few seconds, so the administrator chooses a quiet time. Until they are applied, everything works, only more slowly, and the administrator sees a reminder. Their names start with IX_abm2_. The Database screen removes only an index the current version no longer uses, and only when the administrator ticks Remove it too; your software supplier can remove the others if that is ever needed.