+ Antworten
Ergebnis 1 bis 9 von 9
  1. #1
    Registriert seit
    May 2011
    Beiträge
    445

    Standard MySQLi - Verbindung speichern

    Hallo zusammen,

    ist es möglich, eine MySQL-Verbindung beim Start des IPS-Servers zu erstellen und dann zu halten, damit man nicht in jedem Script ein connect/close durchführen muss ?
    Mein MySQL-Server läuft wie der IPS-Server unter SBS 2011.
    Ich habe den Effekt, dass die SQL-Zugriffe hin und wieder dazu führen, dass ein Script die 30 Sekunden-grenze überschreitet (ca. bei 5% der Zugriffe - alle über dasselbe Script). Ich habe die Hoffnung, dass ich das beheben könnte, wenn nicht jedes Mal ein Connect durchgeführt würde. Dazu müüste man aber global die $link-Variable vom Connect zu Verfügung haben. Habe schon überall herumgesucht, aber keine Lösung gefunden.

  2. #2
    Registriert seit
    May 2006
    Ort
    Hannover
    Beiträge
    3,190

    Setz einfach die Laufzeitbegrenzung etwas höher:
    PHP-Code:
    ini_set'max_execution_time'60); 
    MfG Ralf

  3. #3
    Registriert seit
    May 2011
    Beiträge
    445

    hm - das verhindert zwar die Fehlermeldung, aber nicht den Hänger im IPS ... normalerweise liegt die Laufzeit des Scripts bei 28ms ....

  4. #4
    Registriert seit
    May 2006
    Ort
    Hannover
    Beiträge
    3,190

    Zitat Zitat von chrissiboy Beitrag anzeigen
    das verhindert zwar die Fehlermeldung, aber nicht den Hänger im IPS ... normalerweise liegt die Laufzeit des Scripts bei 28ms ....
    Naja, das sorgt dafür, dass dein Script nicht abgeschossen wird und bis zum Ende läuft

    Wenn es dir manchmal zu lange dauert, da musst du den Fehler suchen .

    Unterschiedliche Verarbeitungsmengen? DB nicht verfügbar? Server ausgelastet? Fehler im Script in bestimmten Fällen? ...?
    MfG Ralf

  5. #5
    Registriert seit
    May 2011
    Beiträge
    445

    Der Timeout passiert immer beim Connect - daher ja mein Ansinnen, nur ein Connect durchzuführen, aber bei den Queries benötigt man die Variable $link, über die die Verbindung gehalten wird.

    PHP-Code:
    $link mysqli_connect($mySQLHost$username$password$db); 
    Die Frage ist, ob man diese in einer IPS-Variable ablegen kann und sie damit konstant zu Verfügung hat.

  6. #6
    Registriert seit
    May 2006
    Ort
    Hannover
    Beiträge
    3,190

    $mySQLHost als IP probiert, um zumindest DNS auszuschließen?
    MfG Ralf

  7. #7
    Registriert seit
    May 2011
    Beiträge
    445

    ja - ist über IP

  8. #8
    Registriert seit
    May 2011
    Beiträge
    445

    hm - hat keiner eine Idee ? Ich habe das ganze mal etwas verfolgt und festgestellt, dass etwa 98% der SQL-Aufrufe problemlos funktioniert. Bei den Abbrüchen kann ich im SQL-Log nichts finden. Ich habe das ganze etwas umgebaut :

    PHP-Code:
    <? 

    $link 
    mysqli_init();
    if (!
    $link) {
        die(
    'mysqli_init failed');
    }

    echo 
    'Init OK'"\n";

    if (!
    mysqli_options($linkMYSQLI_INIT_COMMAND'SET AUTOCOMMIT = 0')) {
        die(
    'Setting MYSQLI_INIT_COMMAND failed');
    }

    echo 
    'AUTOCOMMIT OK'"\n";

    if (!
    mysqli_options($linkMYSQLI_OPT_CONNECT_TIMEOUT5)) {
        die(
    'Setting MYSQLI_OPT_CONNECT_TIMEOUT failed');
    }

    echo 
    'Options OK'"\n";

    if (!
    mysqli_real_connect($link$mySQLHost$username$password $db)) {
        die(
    'Connect Error (' mysqli_connect_errno() . ') '
                
    mysqli_connect_error());
    }

    echo 
    'Success... ' mysqli_get_host_info($link) . "\n";

    mysqli_close($link);
    ?>
    Der Hänger kommt immer beim connect - die Timeout-Einstellung bewirkt leider nichts. Wäre es evtl. noch möglich, dass der Zugriff nicht klappt, wenn das Script z.B. zweimal parallel läuft ?

    Ich bin ja sicher nicht der einzige, der MySQL nutzt .....

  9. #9
    Registriert seit
    May 2011
    Beiträge
    445

    ...die Theorie mit dem parallel laufen hat sich erledigt ... habe das mal testweise sicher separat laufen gelassen und hatte folgendes Ergebnis :

    Init OK
    AUTOCOMMIT OK
    Options OK

    Fatal error: Maximum execution time of 30 seconds exceeded in [ Test\dbConnect\dbConnect Dummy] on line 27
    Abort Processing during Fatal-Error: Maximum execution time of 30 seconds exceeded
    Error in Script C:\Program Files\IP-Symcon\scripts\51004.ips.php on Line 27

    ...und direkt danach :

    Init OK
    AUTOCOMMIT OK
    Options OK
    Success... XXX.XXX.XXX.XXX via TCP/IP
    Geändert von chrissiboy (02.02.16 um 13:33 Uhr)

Ähnliche Themen

  1. Lichtszenen per Webfront speichern
    Von Sascha im Forum Skripte, PHP, SQL
    Antworten: 19
    Letzter Beitrag: 06.02.14, 15:01
  2. iFront IP-Server speichern
    Von MaBu im Forum Mobile (iOS/Android)
    Antworten: 3
    Letzter Beitrag: 01.02.14, 20:20
  3. Speichern einer Form
    Von Ferengi-Master im Forum Allgemeine Diskussion (2.x/3.x)
    Antworten: 1
    Letzter Beitrag: 28.12.08, 20:13
  4. Instance per script speichern ?
    Von 1007 im Forum Allgemeine Diskussion (2.x/3.x)
    Antworten: 2
    Letzter Beitrag: 13.07.08, 21:06
  5. Scripte speichern
    Von wolfi56 im Forum Ideen & Anregungen
    Antworten: 2
    Letzter Beitrag: 11.01.07, 19:38