Hi,
Recently we have many performance problems with a Java (jboss server) aplication working with Oracle Database 10.2. In the moments of maximum load, with many concurrent users, the aplication were almost useful. While looking for the errors (both teams, devs and server admins), the client priority was to have the service operational. We added a new node for the jboss 'cluster' (is not a real cluster; the application is balanced with two apache servers), and, probably by some mistake, we configured the jdbc connections with 'server=dedicated' only in that new node (the database is configured with shared server connections). From that moment we noticed that the performance of the new node was better. So, we decided to change the configuration in the other three nodes. And that was like magic; the performance was better from that moment, and users are now happy.
In Oracle documentation i can read "In general, it is better to be connected through a dispatcher and use a shared server process. A shared server process can be more efficient because it keeps the number of processes required for the running instance low." (https://docs.oracle.com/cd/B19306_01/server.102/b14231/manproc.htm). There are only two recomended scenarios for dedicated server: when submitting a batch job, or when using rman. But there are some places in the web where i can read
"a shared server connection is by design "slower" than a dedicated server (more stuff goes on, more complex) it is most likely only getting in the way" or "Shared Servers model is largely obsolete for today's 64-bit servers with lots of inexpensive RAM resources" or "
o use DEDICATED process with Application tier connection pool is a Oracle Best Practice."
In my case the change from shared to dedicated was a good decision, by i don't know really why. Is there any document (white paper, oracle support kb, ...) where i can read the best practices to configure jdbc with shared or dedicated connections?
Thanks in advance.