From your description, it sounds like individual Oracle database accounts are being locked, not the database itself since there is really no way to lock the database as you've described. I have not seen any software behave in this manner. Is it possible that within the database there are profiles enabled (other than the default) to manage password expiration and complexity.
If this is the case, an account password would expire by a certain date (depending on what the frequency is set to) and the user must change their password. If the user does not change their password, and the grace period expires, the database account is locked preventing the user from logging in until the account is unlocked by a DBA. If there are complexity rules in place, the password must be a certain length, and contain numbers of other special characters. If password expiration and complexity are used within the database, the application software must be able to handle the Oracle errors that are generated so that the message is relayed back to the user and he or she can take appropriate action.
To determine whether profiles have been created, run the following query in SQL*Plus as a privileged or DBA user:
select distinct profile from dba_profiles;
If you get back more than just DEFAULT for a profile name, then there have been profiles created. To find out what limits have been set for each profile, you can run the following query:
select resource_name, resource_type from dba_profiles where profile_name='<name of profile>';
To determine where a database account has been locked, run the following SQL:
select username, account_status from dba_users;
To unlock an account:
alter user <username here> account unlock;
This was first published in April 2007