habe zu dem Thema leider nichts in diesem Forum gefunden. Habe derzeit ein gravierendes Problem, weiß allerdings nicht ob es an OTRS oder am Apache2 liegt.
Die Maschine auf der ich das OTRS aufgesetzt habe ist eine VM mit folgenden Daten:
OS: Debian 5 Lenny
Kernel: Linux 2.6.26-2-686 i686 GNU/Linux
Webserver: Apache/2.2.9 (Debian) mod_perl/2.0.4
Interpreter: Perl/v5.10.0
Ich habe das System folgendermaßen aufgesetzt:
1. Alle wichtigen Pakete installiert (Apache, MySQL, Perl, etc.)
2. Oracle Instant Client entpackt und $ORACLE_HOME, $LD_LIBRARY_PATH angepasst
3. über die CPAN shell habe ich dann folgende Module kompiliert: YAML, PDF:API2, DBI, DBD::Oracle
4. OTRS 2.4.3 entpackt (/opt/otrs) und Config.pm für das externe Backend folgendermaßen angepasst:
4.1 SetPermission.sh ausgeführt.
Code: Select all
. . .
# (customer user database backend and settings)
$Self->{CustomerUser} = {
Name => ' xxxxxx ',
Module => 'Kernel::System::CustomerUser::DB',
# Konfigurationsparameter um auf View zuzugreifen
Params => {
# if you want to use an external database, add the required settings
DSN => 'DBI:Oracle:host=192.168.10.8;port=1521;sid=xxxx',
User => 'xxxxx',
Password => 'xxxxxx',
Table => 'xxxxxxx',
},
. . .
Code: Select all
ScriptAlias /otrs "/opt/otrs/bin/cgi-bin/"
Alias /otrs-web/ "/opt/otrs/var/httpd/htdocs/"
<IfModule mod_perl.c>
Perlrequire /opt/otrs/scripts/apache2-perl-startup.pl
<IfModule Apache2/Reload.pm>
PerlModule Apache2::Reload
PerlInitHandler Apache2::Reload
</IfModule>
PerlModule Apache2::RequestRec
<Location /otrs>
ErrorDocument 403 /otrs/index.pl
ErrorDocument 404 /otrs/index.pl
SetHandler perl-script
PerlResponseHandler ModPerl::Registry
Options +ExecCGI +FollowSymLinks
PerlOptions +ParseHeaders
PerlOptions +SetupEnv
Order allow,deny
Allow from all
</Location>
</IfModule>
<Directory "/opt/otrs/bin/cgi-bin/">
AllowOverride None
Options +ExecCGI -Includes
Order allow,deny
Allow from all
</Directory>
<Directory "/opt/otrs/var/httpd/htdocs/">
AllowOverride None
Order allow,deny
Allow from all
</Directory>
6. Apache neu gestartet und alles lief zufriedenstellend bis auf mein Problem.
Mein Problem ist, dass jedesmal wenn die index.pl aufgerufen wird eine Verbindung zur Backend Datenbank aufgebaut wird (Oracle DB 10.2) und diese Verbindung dann stetig offen bleibt. Nach kurzer Zeit hat der Oracle Listener natürlich keine Ressourcen mehr und verweigert jede weitere Verbindung. Starte ich den Apache neu, läuft wieder alles super bis zum nächsten Überlauf. Lasse ich mir per netstat die verbindungen anzeigen, sehe ich die DB Verbindungen ohne irgend einen Timeout, als ob diese bei jedem Aufruf der index.pl erneut persistent geöffnet werden.
Code: Select all
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name Timer
. . .
tcp 0 0 ticketing.tvo.loc:49354 192.168.10.8:1521 VERBUNDEN 12416/apache2 aus (0.00/0/0)
tcp 0 0 ticketing.tvo.loc:49358 192.168.10.8:1521 VERBUNDEN 12419/apache2 aus (0.00/0/0)
" " "
tcp 0 0 ticketing.tvo.loc:49361 192.168.10.8:1521 VERBUNDEN 12419/apache2 aus (0.00/0/0)
tcp 0 0 ticketing.tvo.loc:49363 192.168.10.8:1521 VERBUNDEN 12416/apache2 aus (0.00/0/0)
. . .
Code: Select all
. .
[Thu Sep 3 13:27:52 2009][Error][Kernel::System::DB::new][188] ORA-12519: TNS:no appropriate service handler found (DBD ERROR: OCIServerAttach)
. . .
[Thu Sep 3 13:27:54 2009][Error][Kernel::System::DB::new][188] ORA-12519: TNS:no appropriate service handler found (DBD ERROR: OCIServerAttach)
. . .
Code: Select all
[Thu Sep 03 13:27:54 2009] [error] Can't connect to database! at /opt/otrs//Kernel/System/CustomerUser/DB.pm line 97.\n
[Thu Sep 3 13:27:54 2009] -e: DBI connect('host=192.168.10.8;port=1521;sid=xxx','xxxxx',...) failed: ORA-12519: TNS:no appropriate service handler found (DBD ERROR: OCIServerAttach) at /opt/otrs//Kernel/
System/DB.pm line 214
ERROR: OTRS-CGI-10 Perl: 5.10.0 OS: linux Time: Thu Sep 3 13:27:54 2009
Message: ORA-12519: TNS:no appropriate service handler found (DBD ERROR: OCIServerAttach)
Traceback (11694):
Module: Kernel::System::DB::new (v1.105) Line: 188
Module: Kernel::System::CustomerUser::DB::new (v1.77) Line: 97
Module: Kernel::System::CustomerUser::new (v1.54) Line: 105
Module: Kernel::System::Ticket::new (v1.410) Line: 136
Module: Kernel::System::Web::InterfaceAgent::Run (v1.43) Line: 162
Module: ModPerl::ROOT::ModPerl::Registry::opt_otrs_bin_cgi_2dbin_index_2epl::handler (unknown version) Line: 48
Module: (eval) (v1.88) Line: 204
Module: ModPerl::RegistryCooker::run (v1.88) Line: 204
Module: ModPerl::RegistryCooker::default_handler (v1.88) Line: 170
Module: ModPerl::Registry::handler (v1.99) Line: 31
Kann es sein, dass der Apache das Script nicht wirklich beendet und die Verbindungen deshalb aktiv bleiben? Dann sollte allerdings der Speicher langsam aber stetig immer voller werden, was er nicht wird.
Hat jemand evtl. schon Erfahrungen mit diesem Problem sammeln können?
(Sollte ich das falsche Forum für dieses Thema erwischt haben, bitte ich um Entschuldigung
