Announcement

Collapse
No announcement yet.

Verlust der Verbindung zum INterbase Server

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Verlust der Verbindung zum INterbase Server

    Hallo Leute,
    ich habe hier ein Programm in Delphi 5 mit IBX 4.52 geschrieben. Mit dem Programm, welches unter Windows 95 OSR 2.1 läuft, greife ich auf enen Interbase 6 Server zu. Der Server läuft unter Windows NT 4 mit Sp 6. Es greifen mehrere Clients über unser Intranet zu. Bis vor einigen Tagen lief es ohne Probleme.
    Nun bekomm ich immer eine Fehlermedlung bei meinem Proggramm. Diese kommt auch dann wenn ich die IBConsole benutze. Leider kommt die Fehlermeldung nicht immer zur selben zeit. Manchmal 1 mal am Tag oder 10 mal am Tag.

    Die Fehlermeldung lautet:

    Unable to complete network request to host "IBServer.Softdata.de"
    Error writing data to the connection.
    unknown Win32 error 10054

    Nachdem ich die Fehlermeldung bestätigt habe. Muß ich das Programm mittels STRG,ALT,Del entfernern. Wenn ich es versuche normach zu schließen mach es es nicht und es kommt ein Transaktions Fehler.

    Hat das schon mal jemand gehabe und kamm mir villeicht einen Tip geben ?

    Danke Tanja

  • #2
    Hallo Tanja,<br><br>
    was steht denn im <b>interbase.log</b> drinnen? Welche IB 6 Version verwendest Du genau? Ist sowohl am Client als auch am Server die selbe gds32.dll Version installiert?<br><br>
    Gruss,<br>
    Thoma
    Thomas Steinmaurer

    Firebird Foundation Committee Member
    Upscene Productions - Database Tools for Developers
    Mein Blog

    Comment


    • #3
      Hallo Tanja,

      sind auch IBAdmin Komponenten im Programm ?
      Ich hatte bei mir über einen Timer eine Abfrage der eingeloggten User programmiert, mit dem Ergebnis, das das Programm auf WIN95 Rechnern
      abgeschossen wird.

      Gruß Günte

      Comment


      • #4
        Hallo Günter,
        nein leider nicht

        Comment


        • #5
          Hallo Thomas,
          ich habe bis jetzt noch nicht bemerkt, daß es diese Datei gibt. Hier der Auszug aus der Datei von heute:

          IBServer (Server) Thu Sep 12 07:38:51 2002
          INET/inet_error: read errno = 10054

          IBServer (Client) Thu Sep 12 08:09:21 2002
          C:\Program Files\Borland\InterBase\bin\ibserver.exe: terminated abnormally (-1)

          IBServer (Client) Thu Sep 12 08:09:22 2002
          Guardian starting: C:\Program Files\Borland\InterBase\bin\ibserver.exe

          IBServer (Server) Thu Sep 12 10:03:51 2002
          INET/inet_error: read errno = 10038

          IBServer (Client) Thu Sep 12 10:17:51 2002
          C:\Program Files\Borland\InterBase\bin\ibserver.exe: terminated abnormally (-1)

          IBServer (Client) Thu Sep 12 10:17:52 2002
          Guardian starting: C:\Program Files\Borland\InterBase\bin\ibserver.exe

          IBServer (Server) Thu Sep 12 12:01:44 2002
          INET/inet_error: read errno = 10038

          Ich hatte heute die Fehlermeldung zwei mal gehabe eine kurz nach acht und eine kurz nach 10 Uhr.

          Ich Benutze die Version WI-V6.0.1.0 Unlimeted Userers.
          Ich benutze auch die Selbe Version der GDS32.dll

          Hast du eine Zip für mich ?

          Cu Tanj

          Comment


          • #6
            Hallo Tanja,<br><br>
            durch irgendein Problem wird der InterBase Server "abgeschossen" (08:09:21, 10:17:51) und durch den Guardian wieder gestartet (08:09:22, 10:17:52). Dass sich der InterBase Server verabschiedet kann unterschiedliche Ursachen haben und folgende Punkte sind eigentlich nur Tipps, die vielleicht für die Problemfindung hilfreich sein können:<br><br>
            - Version 6.0.1.0 ist ziemlich fehlerbehaftet. Ich rate eigentlich immer dazu zumindest 6.0.1.6 einzusetzen, oder vielleicht auch auf Firebird ein Auge zu werfen. Natürlich ist es nicht bewiesen, dass durch den Umstieg auf eine andere Version das Problem beseitigt sei. Aber generell, wenn möglich Hände weg von allem was kleiner v6.0.1.6 (ausgenommen v5.6) ist .<br><br>
            - INET-Fehler kann man sich durch Eingabe von <b>net helpmsg <fehlercode></b> in der Kommandozeile genauer beschreiben lassen (zugegeben, die Erklärung ist ziemlich spärlich)<br><br>
            - Mit frühen IB 6 Versionen erstellte Datenbanken hatten die böse Eigenschaft, dass FORCED WRITES auf OFF gestellt wurde. Unbedingt <b>FORCED WRITES</b> auf <b>ON</b> stellen. Dies könnte vielleicht auch in direktem Zusammenhang mit deinem Problem stehen, da vielleicht die Datenbank durch einen Serverausfall (Reset, Stromausfall, ...) beschädigt wurde.<br><br>
            - D.h. unbedingt mal die Datenbank mit gfix.exe auf Fehler überprüfen. Folgender Artikel sollte hierfür hilfreich sein: http://www.ibphoenix.com/main.nfs?a=ibphoenixApp&page=ibp_db_corr<br><br>
            - Eine oft unterschätzte Fehlerquelle sind Non-Thread-Safe UDFs (meist wenn diese selbst entwickelt wurden)<br><br>
            - Es sollte auch immer nur eine gds32.dll im Windowssuchpfad sein, und die Version sollte sowohl am Server als auch am Client ident sein.<br><br>
            Nichts wirklich konkretes, aber ein paar Tipps, die ja vielleicht helfen.<br><br>
            Gruss,<br>
            Thomas Steinmaurer<br>
            IB LogManager 2.0 - The Logging/Auditing Tool for InterBase and Firebird<br>
            http://www.iblogmanager.com<br&gt
            Thomas Steinmaurer

            Firebird Foundation Committee Member
            Upscene Productions - Database Tools for Developers
            Mein Blog

            Comment


            • #7
              Hallo,

              als Ergänzung kann ich noch 3 Hinweise beisteuern:

              1. Die Datenbank sollte vollständig via Backup und Restore neu aufgebaut werden (um DB-Fehler auszuschließen).

              2. Wenn das Programm über IBX Stored Procedures aufruft, sollte man zur IBX-Version 5.03 (Delphi 5) bzw. 6.03 (Delphi 6) wechseln. Frühere IBX-Version berücksichtigen noch nicht den Workaround für den InterBase-Client-Bug, der sich beim wiederholten Aufruf einer Stored Procedure negativ bemerkbar machen kann.

              3. In der Newsgroup <i>borland.public.delphi.database.interbaseexpress </i> war vor einiger Zeit der Hinweis zu lesen, dass die massiven 10054-Fehler schlagartig aufhörten, als eine neue Version des Netzwerkkarten-Treibers eingespielt wurde (was im Umkehrschluss auch bedeutet, dass eventuell ein kürzlich neu eingespielter Treiber die Probleme verursachen könnte).

              Falls es sich tatsächlich um Netzwerk-Probleme handelt, könnte die URL <i>http://support.microsoft.com/default.aspx?scid=KB;EN-US;q140325&</i> weiterhelfen

              Comment


              • #8
                Hallo,

                ich habe mir gerade die gleichen Fehlernummern ansehen können. <br>
                Ich hatte Programmstücke aus verschiedenem Modulen meines Programmes verbunden. Dabei folgten unbeabsichtigt auf die gleiche Transaction start und commit mehrfach hintereinander.<br>
                Wird hier vielleicht ein Timing von TCP-Protokoll gebraucht ?<br>
                Ich habe alle zusammen anfallenden Abfragen in eine Transaction gesetzt und alles war ok.<br>
                Auch wenn ich ein Update des Formulars durchführe und etwas Zeit 'verbrate' funktioniert es meistens.<br>
                Umgebung : win2000, firebird, IBX 6.03

                Gruß Günte

                Comment


                • #9
                  Hallo,
                  Wo finde ich denn das Update für Delphi5 ? Ich benutze noch eine ältere Version (4.52) von den IBX Komponenten. Gibt es Nachteile, wenn ich das Update mache ?

                  Danke Tanj

                  Comment


                  • #10
                    Hallo Thomas,
                    ich hätte da noch so einige Fragen an Dich.

                    1.) Wo finde ich die "neu" voersion von Interbase ?<BR>
                    2.) Kann ich die neue Version einfach über die alte installen, ohne das dann nacher etwas nicht mehr geht? Oder muß ich vorher etwas löschen ?<BR>
                    3.) Wo genau kann ich FORCED Writes auf ON stellen ?<BR>
                    4.) Ich habe hier eigen UDFs geschrieben. Wie kann ich feststellen, ob ich alles richtig gemacht haben ?<BR>

                    Villeicht kannst Du mir ja noch einmal mit einigen Antworten helfen ?

                    Danke Tanj

                    Comment


                    • #11
                      Hi Tanja,

                      1. http://mers.com bzw. hier der direkte Link: http://mers.com/ib_wi_os_tIB6_0_2_0.exe
                      2. Nein, deinstallier erst die vorhandene Version, neu booten, dann die neue Version installieren
                      3. Das geht über die IBConsole (Eigenschaften der Datenbank anzeigen lassen.
                      4. Da fällt mir nur Testen ein....

                      Die neuen IBX findest Du hier (Delphi 5): http://codecentral.borland.com/codecentral/ccweb.exe/listing?id=17556

                      Grüße Wolfgan

                      Comment


                      • #12
                        Hallo Tanja,<br><br>
                        Wolfgang hat Dir bereits einiges beantwortet, ich möchte hier allerdings nochmals etwas auf Deine Fragen eingehen.<br><br>
                        ad 1.): Ich würde nicht die aktuellste Version v6.0.2.0 verwenden, weil diese einen Bug besitzt, die CHECK CONSTRAINTS <b>vor</b> einem BEFORE-Trigger überprüft. Ich würde bei der Open-Edition zu v6.1.0.6 greifen. Diese ist auch unter http://mers.com oder http://ibinstall.defined.net verfügbar.<br><br>
                        ad 2.): Normalerweise sollte man vor einem Upgrade immer ein (transportables) Backup von allen Datenbanken durchführen. Dabei muß auch die isc4.gdb berücksichtigt werden! Da es sich bei Dir allerdings nicht um ein Update von v5.x auf v6.x handelt, sollte ein Backup von jeder Datenbank nicht notwendig sein. Die alte Version unbedingt deinstallieren (nicht vergessen vorher die isc4.gdb wegzusichern, damit Du auch nachher noch alle Deine InterBase-Benutzer hast)! Nach der Deinstallation eventuell noch das InterBase-Programmverzeichnis manuell löschen und vor allem überprüfen, ob die <b>gds32.dll</b> auch wirklich entfernt wurde. Dann Rechner neu starten, neue Version installieren, InterBase Server stoppen (falls er gestartet wurde), die alte isc4.gdb zurückkopieren und dann den InterBase Server starten<br><br>
                        ad 3.): IBConsole oder gfix.exe verwenden<br><br>
                        ad 4.): Das kann man nicht so pauschal beantworten. Welche Programmiersprache hast Du verwendet? Verarbeiten Deine UDFs Strings? Welche Quellen hast Du verwendet, um Deine UDFs zu schreiben? Setzt Du in der Projektdatei <i>System.IsMultiThread:=True</i>?<br><br>
                        Gruss,<br>
                        Thoma
                        Thomas Steinmaurer

                        Firebird Foundation Committee Member
                        Upscene Productions - Database Tools for Developers
                        Mein Blog

                        Comment


                        • #13
                          Hallo Thomas,
                          darf ich Dir meine UDF per E-Mail zuschicken. Es sind nur drei kleine Funktionen. Dann könntest Du es villeicht kurz prüfen und mir sagen wo der Fehler ist, wenn da einer wäre ?

                          Cu und Danke Tanj

                          Comment


                          • #14
                            Hallo Tanja,<br><br>
                            natürlich kannst Du mir die UDF-Library schicken ([email protected]). Ich kann allerdings nur etwas damit anfangen wenn Du mir zur compilierten DLL auch den Delphi-Source und auch die DB-Deklarationen der UDFs mitschickst.<br><br>
                            Gruss,<br>
                            Thoma
                            Thomas Steinmaurer

                            Firebird Foundation Committee Member
                            Upscene Productions - Database Tools for Developers
                            Mein Blog

                            Comment

                            Working...
                            X