A veces ocurre algo extraño. Algunos usuarios trabajan sin problemas con la base de datos, pero hay usuarios que se quejan de errores en las aplicaciones. El mensaje "debidamente" o no traducido por la aplicación dirá algo así: "Oracle rechaza la conexión", "No se puede conectar a la base de datos", o lo que se la haya ocurrido al programador.
Consejo para desarrolladores: Estaría bien que cuando se captura un error provocado por otro sistema, además de la interpretación de lo que ocurre se ofrezca el error exacto que en caso de Oracle tiene que ser un error ORA-número.
Si nos conectamos sysdba el error en Oracle11.2 es el siguiente:
$sqlplus "/as sysdba"
Connected
SQL> ponemos cualquier sentencia válida
ERROR al line 1:
ORA-01012: not logged on
Lo que ocurre es que hemos llegado al número de procesos máximos definido en nuestra base de datos. La solución es ver los que tenemos y aumentarlos.
Nota: para poder conectarnos, cambiar el parámetro, y reiniciar la base de datos, tendremos que matar procesos desde el sistema operativo. Obtener los procesos Oracle de usuario haciendo:
ps -ef|grep LOCAL=NO
Para ver el valor del parámetro de procesos máximos:
SQL> show parameter processes;
Para aumentarlo (requiere reinicio):
SQL>alter system set processes=5000 scope=spfile;
SQL>shutdown immediate;
SQL>startup
Saludos.