Announcement

Collapse
No announcement yet.

Interbase und W2K-Terminalserver

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

  • Interbase und W2K-Terminalserver

    Hat schon jemand Erfahrung mit der Installation auf einem Terminalserver.
    Die Installation selber funktioniert problemlos, auch das Verbinden als lokaler Client.
    Die Frage ist jetzt:
    Wenn Server und Client auf der gleichen Maschine laufen, ist als Protokoll wohl "local" zu benutzen. Das funktioniert soweit ja auch.
    Es sind dann aber alle Clients "lokal" (alle Benutzer ders Programmes).
    Gibt das Probleme mit dem Zugriff oder kann Interbase irgendwie die verschiedenen Benutzer unterscheiden ?
    Mir ist aufgefallen, das das Programm beim laden aus der Datenbank langsamer ist als bei einer "richtigen" Client/Server-Installation.
    Ich benutze : Delphi 5, Interbase 6.01, IBObjects 4
    Der Server selbst ist W2K mit Servicepack 2, ultra160-SCSI, 1 GB RAM usw. also eigentlich schon ein kleiner "Brocken".

    Für eventuelle Erfahrungen oder auch Meinungen wäre ich sehr dankbar.

    Michael

  • #2
    verwende für den connect besser nicht local sonder tcp/ip via localhost:c:\daten\meinedb.gdb (oder so). Dann sollte es keine Probleme gebenn

    Bei reinem lokalen Zugang hast InterBase ggf Transaktionsprobleme

    Comment


    • #3
      Danke fuer den Tip.
      Ich hatte schon ähnliches vermutet, werde aber zur Sicherheit ein paar Tests durchführen.

      Michae

      Comment


      • #4
        erste Versuche zeigen folgendes Verhalten:

        Obwohl der Interbase als Dienst läuft, erhalte ich:
        Unable to complete network request to host localhost
        Das sowohl mit der eigentlichen IP-Adresse, mit 127.0.0.1 und auch mit dem Servername wie auch mit localhost.

        Wenn ich mit lokalem Protokoll arbeiten will, so scheint jeder User seinen eigenen Interbase-Server starten zu wollen, was in der Anzeige der Prozessliste dazu führt, dass meherere IBServer auftauchen. Also wohl auch keine Lösung ...

        Michae

        Comment


        • #5
          Mmm, das muß mit dem Terminalserver zu tun haben, mit dem ich mich nun gar nicht auskenne. Erkläre mal ein wenig das Umfeld dann wird das schon

          der hat doch aber ein TCP/IP?
          wo läuft denn da der InterBase Server?
          WIe so kann es mehrer InterBase Prozesse auf einer Maschine geben?
          Läuft da überhautpt ein zentraler InterBase Server auf den alle zugreifen können?
          Wäre nicht richtig die Anwendung (Client) auf dem Terminal und InterBase (Server) einmal auf einem Server

          Comment


          • #6
            Hallo Andreas,
            ja der Terminalserver hat TCP/IP.
            Der Terminalserver ist ja gerade für Multiuserbetrieb ausgelegt und versucht entsprechend jedem User eine eigene Umgebung zur Verfügung zu stellen (was natürlich absolut Sinn macht).
            Ich habe zwar relativ viel Erfahrung mit Terminalservern, benutze jetzt aber erstmals Interbase-Server und -Client auf EINER Maschine.
            Bisher hatte ich immer den IB auf einer anderen Maschine laufen, so dass die eigentliche Client/Server-Umgebung immer vorhanden war.

            Auf einer Maschine hatte ich bisher nur Sybase SQL-Anywhere als Datenbank eingesetzt. Das funktioniert auch recht gut. Dort kann ich als Protokoll auch Named Pipes benutzen oder auch TCP/IP, was auch funktioniert.

            Ich kann mir die Geschichte eigentlich nur so erklären, das wenn der Server lokal sein soll - jeder User seinen eigenen Serverprozess startet.

            Warum die Verbindung per TCP nicht zustande kommt, versuche ich gerade zu klären.

            Danke das Du bereit bist, Zeit in MEIN Problem zu investieren

            Michae

            Comment


            • #7
              InterBase Client und Server auf einer Maschine ist eigentlich nicht das Problem. Erklär mal den Doofen wie mir die Zusammenhängem also

              Der Terminalserver läuft einem Rechner (echterServer) und bietet den verschiedenen Anwendern eine gleiche Umgebungen an (TerminalClient).

              a) damit haben wir drei logische Maschienen (TerminalServer, echterServer und TerminalClient) auf einem physikalischen Rechner, oder?

              b) Wer soll sich jetzt mit wem Verbinden, also wo läuft Deine Anwendung, auf dem TerminalServer oder im TerminalClient

              c) Ich würde den InterBase Server immer *einmal* auf den echtenServer tun und von der Anwendung da hin connecten.

              d) Verstehe ich das richtig, oder schreibe ich theroretisches Blech

              Comment


              • #8
                Hallo ihr Beiden,

                aus meiner Sicht stellt sich die Situation wie folgt dar:<br>
                1. Der InterBase wird als Dienst auf dem Server installiert/gestartet <br>
                2. Jeder Client (Terminalclient) hat nur den InterBase-Client installiert, aber <b>nicht</b> den InterBase-Server. <br>
                3. Wenn nun der Terminial Server für jede Client-Verbindung eine eigene Umgebung simuliert, sollten alle Clients gemeinsam auf den als Dienst direkt auf dem Server laufenden InterBase zugreifen können

                Comment


                • #9
                  Hallo Andreas,

                  zu a)
                  der terminalserver ist zunächst natürlich ein "echter" W2K-Server mit allem was dazugehört. Wenn man den Server in den "Terminalmodus" versetzt, werden zusäzliche Dienste gestartet, die Multiuserbetrieb zulassen. Das bedeutet man kann i.d.R. Programme und Anwendungen mehrfach ausführen. Dazu müssen diese Programme bestimmten Regeln folgen. Einen eigentlichen TerminalClient gibt es auf dieser Maschine nicht. Die Verbindungsaufnahme erfolgt von einem anderen Rechner über das RDP-Protokoll (TCP). Dieses leitet aber nur Eingaben an den Server bzw. Bildschirminhalt zum Client. Die eigentliche "Sitzung" findet auf dem Terminalserver statt.

                  zu b)
                  Meine Anwendung (innerhalb der Sitzung) soll sich jetzt per TCP mit dem IB-Server verbinden, der dann in diesem Umfeld auf der GLEICHEN Maschine läuft.

                  zu c)
                  Der IB-Server läuft auf dem Server

                  Zusatz:

                  Der Client ist ein beliebiger Rechner der sich per TCP (RDP-Protokoll) mit dem Server verbindet. Die Anwendungen laufen also alle auf dem Server ab. Nur der Bildschirminhalt bzw. Tastatur- und Mauseingaben werden per TCP zum Server bzw zum Client übertragen. Das hat zur Folge das dann natürlich IB-Client und IB-Server auf der gleichen Maschine laufen.

                  Ich weiss, hört sich ziemlich wirr an, aber auf die Schnelle fällt mir keine bessere Erklärung ein.

                  Prinzipiell ist schon komisch, das der erste Verbindungsaufruf schon in die Hose geht. Zumindest die erste Sitzung sollte sich per TCP verbinden können.

                  Starte ich die IB-Console, registriere den IB lokal und teste den Zugriff auf die Datenbank klappt das auch.
                  Ich kann jedoch natürlich nicht für jede Sitzung den IB Starten, Datenbank registrieren usw.
                  Das würde mit Sicherheit in die Hose gehen, da die erste Sitzung die Datenbank dann sowieso exklusiv im Zugriff hätte.

                  Ich würde mir nie erlauben Dir "Blech" zu unterstellen ....

                  Michae

                  Comment


                  • #10
                    Hallo Andreas,

                    die Frage ist, da die Serverinstallation den Client mitinstalliert, wie soll man auf der GLEICHEN Maschine Server und Client trennen ?

                    Michae

                    Comment


                    • #11
                      Jetzt muss ich aufpassen, dass ich mit den beiden "Andreas" nicht durcheinander komme ...

                      Michae

                      Comment


                      • #12
                        Hallo Michael (das ist eindeutig)

                        Problem ist das dein Terminal Server den InterBase mehrfach startet.

                        Der InterBase Client besteht eigentlich nur aus gdb32.dll

                        Ich würde jetzt:

                        a) InterBase Server aus dem Terminl Server Prozeß (oder wie immer du das nennen willst) so da er nur einmal starten.

                        b) Den Zugriff nicht über Localhost machen, sondern über den tcp/ip TCP/IP Namen des W2K Servers

                        c) Dann sollten sich die Anwendungen aus den Terminalprozeßen bei diesem Server anmelden, egal ob die jetzt eher aus dem TerminClient und einerm TerminalServer-Prozeß kommen.

                        Bin ich verständlich?

                        Ich denke es ist auch das was Andreas Kosch meint, wenn der TerminalClient auf den InterBase Server zugreifen will braucht er den InterBase Clients (gds32.dll). Wenn der TerminalServer drauf zugreifen will, hat er den Client schon, nix Installation, die die gds32.dll auch für den Server notwendig ist

                        Comment


                        • #13
                          !!! ENTWARNUNG !!!

                          Ich habe den Interbase deinstalliert und nochmal neu installiert.

                          Jetzt funktioniert der Zugriff wie es eigentlich sein soll.

                          Per TCP und über die IP-Adresse des TerminalServers.

                          Ich danke für die Beschäftigung mit meinem Problem.

                          Test mit mehreren Clients haben ergeben, dass der IB-Server die verschiedenen Zugriffe auch sauber zu trennen scheint.

                          Nochmals DANKE !

                          Michae

                          Comment


                          • #14
                            Hattest du vorher den IB-Server vor oder nach dem TerminalServer installiert, aktiviert?

                            Beim Einsatz eines Terminalservers kommt es teilweise auf die Installationsreihenfolge an.

                            Wobei ich beim Einsatz eines SQL-Server noch immer nicht denn Sinn eines Terminalservers verstehe

                            Comment


                            • #15
                              Hallo Gunther,

                              wenn in einer Firma genau EIN Server (Terminalserver) steht und Du ein Programm einsetzen willst, dass sonstwo schon läuft, dann bleibt einem ja nichts anderes übrig

                              Comment

                              Working...
                              X