Why Was a Database Change Not Applied?
When a recommended change on the Database screen is not made, the screen says why on that change's own line and in the heading, such as 2 of 3 changes applied. A change that was not made has changed nothing in your database, and it is always safe to try one again: a change that turns out to be in place already is simply marked Already there. Open the menu and, under Administration, select Database to see what is still waiting.
Why were only some of the database changes applied?
When the Database screen's heading says something like 3 of 5 changes applied, only those changes were confirmed as made, and each other change's own line on the Database screen says what happened to it. A change that was not made changed nothing, and you can apply the others again with Apply the remaining (the button says how many; once you have left the Database screen and come back, the same button reads Apply with the count, such as Apply 2 changes). There are four reasons a change is left out:
- Not done: its table was busy — somebody was using that table when its turn came, so ABM Service stepped aside rather than hold everybody up. Try again at a quieter time.
- Not done, with the sentence under the heading saying one was refused by SQL Server followed by a reason — the database software would not make the change, most often because the database sign-in ABM Service uses is not allowed to change the structure of tables. Trying again will not help until whoever looks after your database server fixes that; give them the exact reason.
- Not started — the run ended before that change's turn, because you selected Stop after this one, or because another process was already changing the database. Apply the remaining ones whenever you are ready. When you stopped the run and nothing else went wrong, the heading says Stopped after and how many changes were made, rather than a count of changes applied.
- Not done, with the reason The server did not answer. Check your connection and try again. — your computer lost touch with ABM Service at that moment. That change may in fact have been made in the database before the answer was lost, so Not done here only means it could not be confirmed.
A change marked Already there counts as applied: somebody else made it first. A busy table and a refusal by SQL Server are also kept in the History section of the Database screen as Failed, with the reason. A run stopped because another process was changing the database, a change that was never started, and a lost connection may leave no entry there, so note the message while it is on screen. If you are unsure what the database has now, select Check again at the top of the Database screen: a change that was made is no longer listed as waiting.
What does "Not done: its table was busy" mean?
Not done: its table was busy on the Database screen means somebody was using that change's table when its turn came, and ABM Service stepped aside after a few seconds rather than make everybody wait behind it. Nothing was changed on that table. Apply it again at a quieter time.
The line underneath the change on the Database screen gives the full reason: Its table was in use and did not come free within 5 seconds, so it stepped aside rather than hold everyone up. Nothing was changed. Try it again when it is quieter. The heading counts what did work, for example 2 of 3 changes applied, and the sentence under it ends with Try again when it is quieter.
To try again, select Apply the remaining changes on the Database screen (the button says how many) at a quieter moment. If you have left the Database screen since, the button reads Apply with the count instead.
A busy table is not a fault. It usually happens during a busy part of the day, or when somebody has a long piece of work in progress in ABM or another program that uses the same tables. The attempt is also written in the History section as Failed, so you can see later when it was tried.
What does it mean when a change was refused by SQL Server?
A change marked Not done on the Database screen, with the sentence under the heading saying one was refused by SQL Server followed by a reason, means the database software (SQL Server) would not make the change. Nothing was changed. The reason, shown under the change's own line too, is SQL Server's own words.
Most often this is about permissions: the database sign-in ABM Service uses is allowed to read and write your data but not to change the structure of tables, which adding an index needs. It will keep being refused until whoever looks after your database server gives that sign-in the permission, or makes the change for you.
What to do: copy or note the exact sentence under the change and give it to your software supplier's support team or your IT contact. The same sentence is kept in the History section of the Database screen, marked Failed, so it is still there later if you did not note it at the time. ABM Service goes on working normally without the change, only more slowly on the screen it would have sped up.
The Database screen marks a change Not done in the same way when your computer could not reach ABM Service at that moment, or when ABM Service could not finish recording the result. For a lost connection, the reason under the line is The server did not answer. Check your connection and try again., even though the sentence under the heading still says it was refused by SQL Server. The run carries on with the next change. In this case the change may in fact have been made in the database before the answer was lost, so Not done only means it could not be confirmed. Check your connection, then select Check again on the Database screen to see what the database really has: a change that was made is no longer listed as waiting.
What does "Another process is changing this database right now" mean?
Another process is changing this database right now on the Database screen means somebody or something else was already changing your company's database when you selected Apply, so ABM Service did not start. The heading reads Nothing was applied (or says how many had already been applied before this happened), and the rest of the run is marked Not started.
The full sentence explains the two usual causes: someone else applying these changes, or a new version bringing its own tables up to date. Nothing was started. Try again in a minute. Only one of these can happen at a time, across every computer that uses the database, so two of them never collide.
Wait a minute, then select Apply the remaining changes (the button says how many). If you are not sure whether somebody else is on the Database screen, remember that only user 1 can open it, so it may be you in another browser tab or in the ABM Service desktop app.
What do "Already there" and "Not started" mean?
Already there on a change's line on the Database screen means that, by the time its turn came, the index was already as recommended, because somebody else applied it after your page was drawn. ABM Service checks the database again just before each change, so nothing is ever built twice. It counts as applied.
Not started means the run ended before that change's turn: you selected Stop after this one, or another process was changing the database. Nothing was done to it. The heading then reads, for example, Stopped after 1 change with 2 changes were not started. Apply them whenever you are ready. Select Apply the remaining 2 to carry on.
If you are unsure what the database really has now, select Check again at the top of the Database screen. It reads the database afresh and shows only what is still waiting.
Is anything harmed when a database change fails?
No. A recommended change on the Database screen is either made completely or not made at all, and one that was not made leaves its table exactly as it was. None of these changes touches your data: they only make screens faster, so a change that is still waiting just means that screen stays at its old speed.
The reminder banner at the top of every screen stays until every waiting change is applied, so you will not forget one. You can try again as often as you like.