Hello all,
I understand how Oracle listeners work and that they are only involved in the initial handshake between the client and the database. I have a scenario where we have a "logon storm;" that is to say, a large number of people connecting in a short amount of time (think hundreds of people arriving at work and all trying to log in to the application at the same time). In our performance testing scenarios, everything is "OK" when we ensure that our performance test clients start up with a delay of at least 15 seconds or so in between initial startups. When we decrease the delay, the time it takes for the client to log on starts going up dramatically. From the tracing I have done, it appears to be the listener that is the bottleneck and not the database.
I believe that this is a scenario in which it would be appropriate to create an additional listener (on the same server) and load balance between them by configuring a load-balanced entry in TNSNAMES.ORA. I've never in my 25 years of working with Oracle had the need to create multiple listeners, so I thought I'd ping this space to see if my thinking is correct, or if I should be looking in a different direction. As far as I have been able to tell, we're not blowing out the listener's queue size (connections will all eventually succeed - they just take time). I have found plenty of documentation on how to set up multiple listeners, but no cogent discussion of when it's appropriate.
Thanks for any insight - RTFM links welcomed if I've missed something obvious.
Regards,
John