Friday, January 18, 2008

ORA-12591 Error on Oracle 10g XE

I have oracle XE installed on a Linux Machine.
My Java Modules have been communicating with Oracle frequently and everything seemed to work fine.
When one day, out of the blue i started receiving this error:

java.sql.SQLException: Listener refused the connection with the following error:
ORA-12519,
TNS:no appropriate service handler found
The Connection descriptor used by the client was: localhost:1521:XE


After days of Googling, i finally found the answer.

The problem was related to the number of Connections.
suprisingly it seemed that my Java processes were consuming too much connections. (please note no lose cursors). The solution was that i had to increase the number of processes.

While the default number of processes correspond to 40, increase it upto 100, 200 or whatever your requirement is.

Here is how you do it:

Log into sqlplus (as user oracle):
>>sqlplus / as sysdba

This will log you on to the XE database as the sys user.

Type the following:

>>create pfile from spfile;

This will create a pfile callex initXE.ora in the following location:
OracleXEHome/server/dbs

Note: on windows oraclexehome will be
C:\oraclexe\app\oracle\product\10.2.0\server\database

Edit this file and add the following line at the bottom:
>>*.processes=100

This value may need to be increased depending on how many users you wish to connect to the database.

After you have done this, shutdown the database from the sqlprompt>

>>shutdown immediate;


We then need to create the spfile from the pfile we just edited.

Linux:
create spfile from pfile='$ORACLE_HOME\server\dbs\initXE.ora';

Windows:
>>create spfile from pfile='C:\oraclexe\app\oracle\product\10.2.0\server\database\initXE.ora';

and now we start the database up.

startup

type the following at the sqlprompt>

select value from v$parameter
where name = 'processes'


This would show the processes that you just changed.

No comments: