MirrorDB in eigenem Modul nutzen

Locked
Daniel Obee
Moderator
Posts: 644
Joined: 19 Jun 2007, 17:11
Znuny Version: various
Real Name: Daniel Obée
Location: Berlin

MirrorDB in eigenem Modul nutzen

Post by Daniel Obee »

Hi alle,

um bei einem eigenen Modul - eine Übersicht über das TicketHandling des laufenden Monats - die Datenbank nicht übermäßig zu strapazieren, würde ich gerne die Abfrage auf die in der SysConfig angegebene MirrorDB umleiten.

Kann mit jemand sagen, wie das funktioniert?

Außerdem würde ich die Abfrage gerne cachen - auch da fehlt mir noch der Hebel... vielleicht hat ja einer von den Profis hier ne Idee.

Viele Grüße

Daniel
Andre Bauer
Znuny guru
Posts: 2189
Joined: 08 Dec 2005, 17:01
Znuny Version: 5.0.x
Real Name: André Bauer
Company: Magix Software GmbH
Location: Dresden
Contact:

Re: MirrorDB in eigenem Modul nutzen

Post by Andre Bauer »

Schau dir doch mal Stats und Suche an, dort müsste sich der Zugriff auf die Mirror DB doch im Code finden...
Prod: Ubuntu Server 16.04 / Zammad 1.2

DO NOT PM ME WITH OTRS RELATED QUESTIONS! ASK IN THE FORUMS!

OtterHub.org
Daniel Obee
Moderator
Posts: 644
Joined: 19 Jun 2007, 17:11
Znuny Version: various
Real Name: Daniel Obée
Location: Berlin

Re: MirrorDB in eigenem Modul nutzen

Post by Daniel Obee »

Das war ja fast zu einfach - hatte leider das richtige Modul immer übersehen... Kernel::Modules::AgentTicketSearch war's.

Code: Select all

    # if we need to do a fulltext search on an external mirror database
    if ( $Self->{ConfigObject}->Get('Core::MirrorDB::DSN') ) {
        my $ExtraDatabaseObject = Kernel::System::DB->new(
            LogObject    => $Param{LogObject},
            ConfigObject => $Param{ConfigObject},
            MainObject   => $Param{MainObject},
            EncodeObject => $Param{EncodeObject},
            DatabaseDSN  => $Self->{ConfigObject}->Get('Core::MirrorDB::DSN'),
            DatabaseUser => $Self->{ConfigObject}->Get('Core::MirrorDB::User'),
            DatabasePw   => $Self->{ConfigObject}->Get('Core::MirrorDB::Password'),
        );
        if ( !$ExtraDatabaseObject ) {
            $Self->{LayoutObject}->FatalError();
        }
        $Self->{TicketObjectSearch} = Kernel::System::Ticket->new(
            %Param,
            DBObject => $ExtraDatabaseObject,
        );
    }
Gruß
Daniel
Locked