2017-02-10 4 views
2

Ich habe eine Einrichtung, in der 180 Aufträge versuchen, Orakel zur gleichen Zeit zugreifen, d. H. Sie schließen Verbindungen nicht schnell, da sie auf z. Eine FTP-Verbindung zum Öffnen.Oracle: Bestimmen der maximalen Anzahl der unterstützten Verbindungen

von Oracle, erhalte ich die Fehlermeldung:

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

Ich glaube, dies ist darauf zurückzuführen, zu viele Verbindungen offen. Dies betrifft auch die GUI der Anwendung, die die Anmeldung ablehnt.

Wie kann ich eine sichere Anzahl von Jobs ermitteln, die gleichzeitig ausgeführt werden?

Wie soll ich mit dem Fehler umgehen? Ich versuchte, es durch Schlafen und Wiederholen zu behandeln, aber der einzige Effekt davon scheint zu sein, dass der TNS-Listener immer gesättigt ist und die Anzahl der gleichzeitig ausgeführten Jobs auf 180 erhöht.

+1

Warum öffnen Sie eine Verbindung zu der Datenbank, bevor der Auftrag ausgeführt werden kann? Überprüfen Sie vor dem Abfragen von Oracle, ob eine FTP-Verbindung verfügbar ist, und führen Sie den Job nur aus, wenn eine FTP-Verbindung gesichert ist. – Nathan

+0

Das ist ein guter Vorschlag, obwohl die Verbindungsdaten für den FTP-Server aus der Datenbank stammen. – Adder

+0

Verbindungspooling ist möglicherweise eine gute Idee, um die Verwendung von DB-Verbindungen durch Ihre App zu regeln. Ihr aktuelles Setup ist im Grunde ein DoS-Angriff auf Ihre eigene Datenbank. – tbone

Antwort

1

Dies ist eine sehr gute Frage. Als Faustregel empfehlen wir, dass die Anzahl der Verbindungen zu Oracle zwischen 1x und 10x der Anzahl der CPU-Kerne liegt. Werfen Sie einen Blick auf dieses Video zusammengestellt von der Oracle Real-World Performance-Team zu diesem Thema:

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

+0

Ich denke, die Frage ist, herauszufinden, welcher Wert als Maximum eingestellt wurde und nicht, was die beste Einstellung dafür ist. –

+0

@CarlosHeuberger Ja, das ist mir klar, aber ich denke immer noch, dass meine Antwort nützlich ist, da das OP fragte: "Wie kann ich eine sichere Anzahl von Jobs bestimmen, die gleichzeitig ausgeführt werden?" – BobC

Verwandte Themen