[de] Port sharing possible? (No)

Topics: Technical Support
Jun 23, 2013 at 7:31 PM
Hallo,
ich möchte mit meinem zyan Server zwei verschiedene Datenbanken verwalten. Sprich mit tcp://server:8099/db1 und mit tcp://server:8099/db2 jeweils eine der Datenbanken ansprechen.

Ist dies in zyan grundsätzlich möglich? Ich möchte in beiden Fällen dieselbe Komponente verwenden, da die Datenbanken identisch sind. Es handelt sich lediglich um unterschiedliche Mandanten. Ich könnte auch den Server 2x starten. Das einzige, was ich nicht habe, sind unterschiedliche Ports pro Mandant/Server.

Lässt sich das abbilden?

Danke
Reinhold (als Fonzi:)
Coordinator
Jun 24, 2013 at 7:16 AM
Hallo Fonzi,

das wird so nicht klappen. Anschluss 8099 wird nach dem Start der ersten Serverinstanz exclusiv für diese reserviert. Beim Versuch eine zweite Serverinstanz zu Starten, würdes Du eine Fehlermeldung bekommen, die besagt, dass der Anschluss bereits verwendet wird.

Mehrmandantenfähigkeit lässt sich mit Zyan aber viel einfacher abbilden. Du erstellst einen Server, der beliebig viele Mandanten verarbeiten kann. Zyan hat eine integrierte Sitzungsverwaltung. Den Mandanten gibst Du als zusätzliche Information bei der Anmeldung mit und speicherst den Mandantenschlüssel in der Serversitzung.

Damit kannst Du an jeder Stelle Deines serverseitigen Codes über die aktuelle Sitzung abfragen, an welchem Mandanten sich der Client angemeldet hat. Abhängig vom Mandantenschlüssel kannst Du dann den passenden Connection String zur Datenbank zusammenstellen.

Große ERP-Systeme wie SAP machen das ähnlich.

Gruß
Rainbird
Jun 24, 2013 at 8:21 AM
Hallo Rainbird,
ja dein Vorschlag klingt einleuchtend. Ich werde mir so einen Lösungsansatz durchtesten.
Ich hab inzwischen mal etwas mehr rumgetestet und bin vom dem Konzept echt beeindruckt.
Zudem ist der Kanal TcpDuplex echt schnell.
Ich werde mich noch etwas vertiefen und evtl. wieder mit Fragen auftauchen.

Vielen Dank einstweilen
Fonzi