When trying to publish an eSpace (via LifeTime, Service Center or Service Studio) the following error is presented.
ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired
The error may also present in other situations where the platform needs to change the data model.
The environment runs on an Oracle database.
This error happens when a ALTER statement is run in an Oracle database and other transactions hold locks to that object. It can happen if you are trying to change a heavily used table during peak hours, or simply because the database is slightly slow.
To resolve this issue, one should increase the Oracle DDL Timeout setting. This can be done in the platform configuration, and must be done in all front-ends of the same environment:
Open file server.hsconf in a text editor (e.g. notepad or vim). This file can be found in the platform installation folder:
For .NET, typically
C:\Program Files\OutSystems\Platform Server
For Java, typically
Locate setting DDLLockTimeout under
<PlatformDatabaseConfiguration ProviderKey="Oracle">. You should find a line similar to this:
Note that there is a similar setting for
<SessionDatabaseConfiguration ProviderKey="Oracle">. Typically you don't want to change this one.
Increase the value in the setting. E.g. change
Run the configuration tool:
For .NET, locate the shortcut in the Start menu. After opening the Configuration Tool, click "Apply and Exit". Allow restart of all services.You do not need to execute installation of Service Center;
For Java, run /opt/outsystems/platform/configurationtool.sh. Do not change any settings. Allow restart of all services. You do not need to execute installation of Service Center.
For more information on this topic, we suggest the following article on ORA-00054:
Applies to Platform 9 and above, .NET and Java stack running on Oracle database.
Last reviewed under 10.0.105.0