2010-12-10 4 views
1

Ich habe eine .Net-Webanwendung von Drittanbietern (Sitecore), die eine Verbindung zu einer Oracle-Datenbank auf einem Server in meiner DMZ herstellt (getrennt von meinem LAN mit einer Firewall). Die Verbindung zwischen der Anwendung und der Datenbank ist langsam. Es scheitert nicht, der Prozess (Publishing genannt) dauert im Vergleich zu demselben Prozess, der zwischen der Anwendung (Sitecore) und einer Oracle-Datenbank in unserem LAN stattfindet (ein paar Millisekunden im Vergleich zu 20 Minuten). Interessanterweise bekomme ich das gleiche Verhalten, wenn ich Toad for Oracle verwende, um die Datenbank in der DMZ abzufragen, anstatt eine Kopie der Datenbank in meinem LAN abzufragen.Warum ist Oracle Konnektivität mit Sitecore oder Toad über eine Firewall langsamer als mit SqlPlus?

Ich habe das Setup in unserem LAN repliziert und das Problem verschwindet. Wenn ich eine MSSQL-Datenbank verwende, verschwindet auch das Problem. Wenn wir Sitecore oder Toad nicht verwenden und stattdessen einfache Abfragen in der sqlPlus-Anwendung von Oracle ausführen, tritt das Problem nicht auf.

Das weist darauf hin, dass das Problem für Anwendungen spezifisch ist, die den Oracle-Datenprovider für .Net verwenden und die in unserem LAN ausgeführt werden und versuchen, eine Oracle-Datenbank außerhalb unseres LAN abzufragen.

OS ist Windows 2008R2 64bit (Oracle DB-Server), Windows 2008 32bit (Sitecore), Win7 64bit (Toad und SqlPlus Clients). Ich bin mir nicht sicher, was die Firewall ist, aber ich denke, dass es sich um eine Art virtuelle Switch/Router-Sache handelt (ja, ich bin kein Netzwerk-Typ, wie hast du das vermutet?). Oracle ist 10g. Clients verwenden Oracle.DataAccess 2.102.4.0 oder 2.102.5.0 für 64 und 32 Bit. Kröte ist 10.6. Sitecore ist 6.2.0 rev 091012

Ich habe verschiedene Monitore wie Wireshark, Procmon und der Win7 Resource Monitor ausgeführt, aber ich bin mir nicht wirklich sicher, wonach ich suche. Alles, was ich sehen kann, ist, dass es große Zeitlücken zwischen Senden und Empfangen gibt, aber ich kann nicht feststellen, wo diese Lücken entstehen. Für mich ist das alles wirklich gruselig. Nach meiner Erfahrung funktioniert die Netzwerkverbindung entweder oder nicht, und wenn der Datenverkehr langsam ist, ist der gesamte Datenverkehr langsam.

Irgendwelche Ideen, was dieses Verhalten verursachen könnte? Insbesondere, welche Netzwerk/Router/Firewall-Einstellungen verursachen Konnektivität (über TNS & TCP-Protokolle nach Wireshark), langsam zu gehen, aber nicht vollständig für eine bestimmte Implementierung eines Oracle-Datenprovider gehen?

verwirrt und leicht verunsichert,

James.

Antwort

1

Also die Antwort ist die Firewall, die wir verwenden, verursacht das Problem. Es versucht Deep Packet Inspection auf dem Oracle-Datenverkehr (der vom ODP.net-Provider verarbeitet wurde) durchzuführen, der den Netzwerkverkehr erheblich verlangsamt, ohne ihn tatsächlich zu stoppen. Eine Firewall, die mit einer anderen Methode arbeitet, sollte das Problem beheben. Die Jungs sind Quest (Toad Support) waren sehr gut und kamen auf die Antwort. Oracle-Support war weniger hilfreich. Quest hat eine Dokumentation über das Problem, aber es ist hinter dem Support-Portal.

Verwandte Themen