JanuaR Geschrieben 24. Juni 2008 Geschrieben 24. Juni 2008 Guten Tag, ich weiß gerade nicht, ob ich den richtigen Bereich für mein Problem gewählt habe, denn es ist eine Mischung aus PHP und Oracle Problem. Zumindest scheint es dies zu sein. Das nachfolgende Problem beschäftigt mich schon mehrere Tage und ich finde einfach keine Lösung. Folgende Situation. Im Moment gibt es zwei Server. Einer dieser Server ist der Datenbank-Server auf dem Oracle 10g (Version: 10.2.0.3) läuft. Der zweite Server dient als Web-Server (httpd-Version: 2.2.3-11.el5_1.3; PHP-Version: 5.1.6-20). Auf beiden Server läuft als Betriebssystem CentOS 5.1. Über PHP wird auf dem Oracle Datenbank-Server zugegriffen. Dies funktioniert auch soweit, aber manchmal, nur sporadisch, tritt folgender Fehler auf: Array ( [code_] => 604 [message] => ORA-00604: error occurred at recursive SQL level 1 ORA-12705: Cannot access NLS data files or invalid environment specified [offset] => 0 [sqltext] => ) Manchmal tritt auch dieser Fehler auf: Warning: ociplogon() [function.ociplogon]: OCIEnvNlsCreate() failed. There is something wrong with your system - please check that LD_LIBRARY_PATH includes the directory with Oracle Instant Client libraries in /usr/local/powerslave/ps/inc/sql.inc on line 161 Ich versteh das nicht. Es gibt Zeiten, da tritt innerhalb 2 Stunden keiner dieser Fehler auf und manchmal alle 10 Sekunden. Auch konnte ich feststellen, dass nach einem httpd-Neustart der Fehler für eine gewisse Zeit verschwindet. OCI-8-Konfiguration oci8 OCI8 Support enabled Revision $Revision: 1.269.2.18 $ Active Persistent Connections 0 Active Connections 0 Oracle Instant Client Version 10.2 Temporary Lob support enabled Collections support enabled PHP-Environment TERM xterm SHELL /bin/bash HISTSIZE 1000 NLS_LANG GERMAN_GERMANY.UTF8 LC_ALL de_DE.UTF-8 USER root LS_COLORS no=00:fi=00:di=00;34:ln=00;36:pi=40;33:so=00;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=00;32:*.cmd=00;32:*.exe=00;32:*.com=00;32:*.btm=00;32:*.bat=00;32:*.sh=00;32:*.csh=00;32:*.tar=00;31:*.tgz=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.zip=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.bz=00;31:*.tz=00;31:*.rpm=00;31:*.cpio=00;31:*.jpg=00;35:*.gif=00;35:*.bmp=00;35:*.xbm=00;35:*.xpm=00;35:*.png=00;35:*.tif=00;35: LD_LIBRARY_PATH /usr/lib/oracle/10.2.0.3/client/lib SUDO_USER fd SUDO_UID 505 MAIL /var/spool/mail/fd PATH /sbin:/usr/sbin:/bin:/usr/bin TNS_ADMIN /usr/oracle/tns INPUTRC /etc/inputrc PWD /home/fd LANG C HOME /home/fd SUDO_COMMAND /etc/init.d/httpd start SHLVL 2 LOGNAME root SUDO_GID 505 _ /usr/sbin/httpd Vielleicht hat schon jemand von solch einem oder Ähnlichem Problem gehört. Ich bin zumindest mit meinen Ideen am Ende. MfG Jan Bücker Zitieren
kills Geschrieben 24. Juni 2008 Geschrieben 24. Juni 2008 Ins blaue geraten: - zu viele connections zugleich? - irgendwelche timeouts? - evtl sporadisch dns probleme? Zitieren
JanuaR Geschrieben 24. Juni 2008 Autor Geschrieben 24. Juni 2008 hi, danke für die schnelle Antwort! - zu viele connections zugleich? unwahrscheinlich, da die Verbindung nach dem Aufruf, wenn er geglückt ist, wieder beendet wird. - irgendwelche timeouts? in wie fern timeouts? - evtl sporadisch dns probleme? auch bei IP-Zuweisung, bleibt der Fehler Weitere Ideen? Gruß, Jan Zitieren
kills Geschrieben 24. Juni 2008 Geschrieben 24. Juni 2008 unwahrscheinlich, da die Verbindung nach dem Aufruf, wenn er geglückt ist, wieder beendet wird. glaubst du das, oder weißt du das? evtl arbeiten andere tools auf der gleichen db? ggf bleiben in manchen situationen connections offen oder werden nicht richtig freigegeben? repair table/database o.ä. mal versucht? in wie fern timeouts? - verbindungsaufbau dauert zu lange? - evtl loops im netz? Andere Ideen: - Kontigente erschöpft? - Platte voll? - Andere Prozesse verbrauchen die ganzen Ressourcen (Speicher/CPU) Zitieren
JanuaR Geschrieben 24. Juni 2008 Autor Geschrieben 24. Juni 2008 glaubst du das, oder weißt du das? evtl arbeiten andere tools auf der gleichen db? ggf bleiben in manchen situationen connections offen oder werden nicht richtig freigegeben? repair table/database o.ä. mal versucht? - verbindungsaufbau dauert zu lange? - evtl loops im netz? Andere Ideen: - Kontigente erschöpft? - Platte voll? - Andere Prozesse verbrauchen die ganzen Ressourcen (Speicher/CPU) Die Platte ist nicht voll und hat mehrere GB frei. Das Einzige, was auf der Maschine läuft, ist die Datenbank. Somit können wir das Performance-Problem ausschließen. Der Verbindingsaufbau ist auch ruckzuck aufgebaut und macht keinerlei timeouts. Loops sind auch auszuschließen. Welches Repair-Paket meinst du? DBMS_Repair? Zitieren
kein-tee Geschrieben 24. Juni 2008 Geschrieben 24. Juni 2008 unwahrscheinlich, da die Verbindung nach dem Aufruf, wenn er geglückt ist, wieder beendet wird. Interessant. Wenn der jeweilige Aufruf glückt, schliesst du explizit die Verbindung (ocilogoff) ? Interassant deswegen, weil du ociplogon nutzt. Diese Funktion macht dir eine dauerhafte Datenbankverbindung auf, d.h. wenn du Sie nicht explizit schliesst, bleibt Sie zwischen Requests erhalten. Das würde zumindest erklären, warum es nach einem httpd Neustart wieder läuft, denn dann gehen alle offenen Session verloren ... Gruß Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.