A very quick post on a perennial Essbase problem: the application that refuses to be deleted. Generally this happens when an application has been corrupted, due either to a bug, a crash or some clown’s1 too-smart-for-own-good file system monkey business. The application then can’t be started, and deleting an application requires that it be started first. I ran into this today with an application that had somehow been created as BSO before an ASO backup was restored into its folder structure.
Simply deleting the application directories from the file system is not an effective solution, since Essbase tracks applications in the Essbase.sec file and does not understand what has happened on the back end; the zombie application will remain in the EAS treeview and Essbase won’t let you create another with the same name. A reliable (but long-winded) option is to create the same application / database on another server, and move all the files over. Jason Jones describes this process in detail here.
However, in 126.96.36.199 onwards there is an easier way. I hesitated to write this post — since the ‘new feature’ is pushing four years old — but a quick search on the syntax revealed literally nothing outside official Oracle documents (and copies of them). There are two new pieces of syntax in the ‘alter system’ MaxL command:
alter system reconcile; alter system reconcile force;
The ‘reconcile’ command inspects the Essbase.sec list of applications, compares it to what is actually found on the disk, and reports any discrepancies – applications that appear in Essbase.sec but not on disk, and vice versa. The ‘reconcile force’ command is where the magic happens, since it will remove from the Essbase.sec file any applications that don’t exist on disk.
The process for deleting (and, optionally, recreating) a ‘stuck’ application then becomes quite simple:
- Delete the application directory and all sub-directories via the file system2.
- Run ‘alter system reconcile force;’ to remove the application from the Essbase.sec file.
- Optionally, recreate the application as normal via EAS.
Much easier, and I can attest that it really works.