xb2.net mehrere Ports

Xb2.Net von Boris Borzic

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

xb2.net mehrere Ports

Beitrag von Manfred »

wenn ich einen Webserver bauen möchte, der auf mehreren Ports lauschen kann, wie geht man da vor? Gibt es da eine Liste, die man befüllt, oder wird jedesmal eine neue Instanz benötigt?
Im Moment würde ich das über eine Schleife lösen, die dann eben je nach Menge die entsprechenden Instanzen erzeugt.
Der Server muß derzeit nur eine HTML Seite anzeigen, das andere Dienste nicht erreichbar sind für einen Zeitraum X. Also nichts großartiges an Arbeit leisten.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: xb2.net mehrere Ports

Beitrag von ramses »

Irgendwo startest du den HttpServer Thread etwa so:

Code: Alles auswählen

   oServer := xbHTTPServer():new( cIP, nPort )
Das machst du einfach erneut mit den gewünschten Parametern. Eine Liste gibts nicht. Pro Port ein Thread.
Valar Morghulis

Gruss Carlo
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: xb2.net mehrere Ports

Beitrag von Manfred »

aber es muß doch jedesmal ein neuer Instanzname vergeben werden!?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: xb2.net mehrere Ports

Beitrag von ramses »

Nein. Nachdem du alle Werte gesetzt hast und die Start() Methode ausgeführt hast brauchts auch die die Variable nicht mehr.
Zuletzt geändert von ramses am Fr, 04. Dez 2020 13:19, insgesamt 1-mal geändert.
Valar Morghulis

Gruss Carlo
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: xb2.net mehrere Ports

Beitrag von Tom »

wenn ich einen Webserver bauen möchte, der auf mehreren Ports lauschen kann, wie geht man da vor
Du startest für jeden Port einen Server. Das machen wir z.B. für unsere Mobilanwendungen, wenn das Backend bei einem Kunden läuft, der mehrere Filialen hat, die mit nach Mandanten getrennten Datenbeständen arbeiten. Da läuft das Backend einmal, startet aber für jeden zugeordneten Port einen Server - und in diesen stehen natürlich auch nur die Daten des jeweiligen Mandanten zur Verfügung. Ein Statusserver, der per http erreichbar ist, informiert über die Aktivitäten auf den Servern.
Herzlich,
Tom
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: xb2.net mehrere Ports

Beitrag von Tom »

Nachdem du alle Werte gesetzt hast und die Start() Methode ausgeführt hast brauchts die die Variable nicht mehr.
Wir speichern die Serverobjekte in einem Array - denn wir brauchen sie später tatsächlich noch, etwa für Statusabfragen. Außerdem basieren sie bei uns auf abgeleiteten Klassen, die z.B. statistische Daten über die jeweiligen Connections verwalten u.v.a.m.
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: xb2.net mehrere Ports

Beitrag von Manfred »

@ramses
damit ich das jetzt nicht falsch verstehe.
Hier etwas vereinfacht.

Code: Alles auswählen

oSWebServer := xbHTTPServer():new( INADDR_ANY, Val(oSysPara:doPara:port_https), MySSLContext() )
oSWebServer := xbHTTPServer():new( INADDR_ANY, Val(oSysPara:doPara:port_https2), MySSLContext() )
oSWebServer := xbHTTPServer():new( INADDR_ANY, Val(oSysPara:doPara:port_https3), MySSLContext() )
oSWebServer := xbHTTPServer():new( INADDR_ANY, Val(oSysPara:doPara:port_https4), MySSLContext() )
oSWebServer := xbHTTPServer():new( INADDR_ANY, Val(oSysPara:doPara:port_https5), MySSLContext() )
@tom,
so mache ich das ja bisher. Aber wenn Wartungsarbeiten angesagt sind, dann läuft ja keiner von denen. Es muß aber ein Hinweis für den Anwender kommen, das Wartungsarbeiten anliegen und er warten soll. Aber nicht das die Seite nicht erreichbar ist. Meine Grundidee war eine Apache z.B. aufzusetzen, den auf die entsprechenden Ports lauschen zu lassen. Aber der würde nur gestartet, wen die anderen Webserver gerader heruntergefahren sind. Das OS läuft ja weiter und edshalb würde der Apache ragieren können, so lange bis die anderen Webserver wieder online gehen können.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: xb2.net mehrere Ports

Beitrag von Tom »

Wir lassen bei Wartungsarbeiten (also Updates, Datensicherungen, Neuinstallationen) tatsächlich alle Server weiterlaufen, die dann (jedenfalls ihre http-Instanzen) darüber informieren, dass eben gerade Wartungsarbeiten stattfinden, und die auf SOAP basierenden Server für die Mobilanwendungen liefern entsprechende Funktionsantworten. Bei Neuinstallationen ist unser Backend nur für wenige Augenblicke offline. Es wäre sehr viel aufwendiger, einen fremden Server zu starten (und wenn, würde ich mit NODE.JS Ausfallserver bauen, nicht mit IIS oder Apache). Warum fahren Deine Server herunter? Welchen Zweck hat das?
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: xb2.net mehrere Ports

Beitrag von Manfred »

normalerweise kann jeder Server selbst merken, dass Wartungsarbeiten anliegen und dann selbst die Meldung erzeugen. Aber wie der Teufel es will, man muß den Server oder DLLs austauschen und dann will man ihn wieder neu starten und es klappt nicht, weil man irgendwas übersehen hat. Dann geht das Fratzenschneiden los und man kommt in Zeitnot. Währenddessen versuchen natürlich die Anwender genau dann die Webseiten abzurufen.
Ich gehe aber auch derzeit einfach nur ein paar Szenarien durch, wie man sowas für den Fall der Fälle lösen könnte.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: xb2.net mehrere Ports

Beitrag von Tom »

Wir haben mit NODE.JS einen Server implementiert, der alle aktiven Server regelmäßig anpingt und damit über ihren Status informiert. Wenn also ein bestimmter Server nicht erreichbar ist, kann man sich dort in aller Regel darüber informieren, woran das liegen mag. Aber wenn die Maschine überhaupt nicht erreichbar ist, kann man nichts machen.
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: xb2.net mehrere Ports

Beitrag von Manfred »

@Tom
ich bin jetzt ein paar Schritte weiter. Das mit dem Node.js würde ich gerne mal etwas näher erklärt bekommen, was ihr da wie mit macht...
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: xb2.net mehrere Ports

Beitrag von Tom »

Das mit dem Node.js würde ich gerne mal etwas näher erklärt bekommen, was ihr da wie mit macht...
Unser Server-Backend wird on premise von den Kunden selbst gehostet, aber unser Support nimmt die Installation vor oder begleitet sie. Die IPs oder URLs der installierten Backends werden in unser CMS eingetragen, und der fragliche kleine Server pingt regelmäßig alle installierten und aktiven Backends an, die auch über einen Service-Endpoint verfügen, über den wir ggf. ein paar Informationen abrufen können (Uptime, bewegte Datenmenge, Anzahl der Sessions, versuchte Attacken usw.). Aber ich kann Dir nicht sagen, wie das genau gemacht ist, weil ich das ausnahmsweise nicht selbst gemacht habe. Das Backend schon, aber nicht diesen kleinen Überwachungsserver. Ich könnte aber mal nachfragen.
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: xb2.net mehrere Ports

Beitrag von Manfred »

für mich wäre interessant zu wissen, ob der dann eine Nachricht an den Client schicken kann, wenn aufgerufener anderer Server nicht zur Verfügung steht um dann darauf hinzuweisen, das irgendwas gerade ind er Mache ist. hauptsache es kommt keine Meldung:"Seite nicht erreichbar". So eine Lösung suche ich noch.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: xb2.net mehrere Ports

Beitrag von Tom »

Hallo, Manfred.

Das könnte auch ein Xb2.Net-Server sein - eigentlich spielt keine Rolle, womit das gemacht ist, aber ein einfacher NODE.JS-Server ist tatsächlich in Minuten aufgesetzt. Und ein Server kann natürlich machen, was Du auch immer von ihm willst. Dieser sendet einen beliebigen Request und setzt eine Warnung, wenn überhaupt keine Antwort kommt. Er könnte auch Mails verschicken oder die Kaffeemaschine anschalten. Aber Du kannst mit einem Xb2.Net-Server dasselbe erreichen. Er agiert dann nur als Client, pingt die Server an und reagiert, wenn ein Timeout auftritt. Als Server antwortet er mit den Stati der diversen Maschinen. Dafür erzeugt er eine dynamische Website, die man im Intranet erreichen kann.
Herzlich,
Tom
Antworten