2017-02-10 3 views
2

J'ai une configuration où 180 tâches tentent d'accéder à Oracle en même temps, c'est-à-dire qu'elles ne ferment pas les connexions rapidement car elles attendent peut-être par exemple. une connexion FTP à ouvrir.Oracle: déterminez le nombre maximum de connexions suppportées

De oracle, je reçois l'erreur:

Listener refused the connection with the following error: 
ORA-12520, TNS:listener could not find available handler for requested type of server 

Je crois que cela est dû à un trop grand nombre de connexions ouvertes. Cela affecte également l'interface graphique de l'application, qui refuse la connexion.

Comment puis-je déterminer un nombre sûr de travaux à exécuter en même temps?

Comment gérer l'erreur? J'ai essayé de le gérer en dormant et en réessayant, mais le seul effet de ceci semble être que l'écouteur TNS est toujours saturé et que le nombre de jobs en cours d'exécution augmente à 180.

+1

Pourquoi vous l'ouverture d'une connexion à la base de données avant que le travail peut fonctionner? Vérifiez si une connexion FTP est disponible avant d'interroger Oracle et exécutez uniquement le travail si une connexion FTP est sécurisée. – Nathan

+0

C'est une bonne suggestion, bien que les données de connexion pour le serveur ftp proviennent de la base de données. – Adder

+0

Le regroupement de connexions peut être une bonne idée pour réguler l'utilisation des connexions DB de votre application. Votre configuration actuelle est fondamentalement une attaque DoS sur votre propre DB. – tbone

Répondre

1

Ceci est une très bonne question. En règle générale, nous recommandons que le nombre de connexions à Oracle se situe entre 1x et 10 fois le nombre de cœurs de processeur. Jetez un oeil à cette vidéo mis en place par l'équipe de Performance Real-World Oracle sur ce sujet:

https://www.youtube.com/watch?v=Oo-tBpVewP4&t=39s

+0

Je pense que la question est de savoir quelle valeur a été définie comme maximum et non ce qui est le meilleur paramètre pour cela. –

+0

@CarlosHeuberger Oui, je m'en rends compte, mais je pense toujours que ma réponse est utile, puisque l'OP a demandé "Comment puis-je déterminer un nombre de tâches à exécuter en même temps?" – BobC