We have dedicated oracle 10g server running on win2k server, 3gb m/c, which suddenly started throwing ORA-12518, after no. of connections reached ~100. I tried increasing sga memory, sessions, processes, open_cursors, but to no success.
But when I reduced sga memory from 1.1gb to 0.8gb, it allowed connections upto 225, before throwing ORA-12518. Now I am wondering what sga memory has to do with connections ??? and that too after decreasing sga memory it allows more connections.

The server machine has almost 2gb free memory, hence there is no problem of memory allocation. Someone please solve my doubt.

12518, 00000, "TNS:listener could not hand off client connection"
// *Cause: The process of handing off a client connection to another process
// failed.
// *Action: Turn on listener tracing and re-execute the operation. Verify
// that the listener and database instance are properly configured for
// direct handoff. If problem persists, call Oracle Support.
// *Comment: The problem can be worked around by configuring dispatcher(s)
// to specifically handle the desired presentation(s), and connecting
// directly to the dispatcher, bypassing the listener.

yes. i tried configuring direct handoff too. But it couldnt solve my problem. I turned on listener tracing, and saw its trace file, which was printing lot of line, which I could hardly understand. It was print "error 233" lot of time. I searched on the net but found no relevant info. If you want I can post trace file in this thread.
But still my question remains is why decreasing SGA memory has increased no. of connections ??