Avoiding circular company relationships // Vermeidung kreisförmiger Unternehmensbeziehungen

[EN]

In the good old days(tm) there were two kinds of companies in AirlineSim: holdings and enterprises. The former could own shares in enterprises but could not have own operations and vice versa. In this kind of setup, circular relationships between enterprises were impossible.

With the current model this is a bit trickier: Since ownership hierarchies could (in theory) have an unlimited amount of tiers it has to be ensured that no circular relationships develop. That is: No enterprise is allowed to hold shares in itself, including via other companies.

We do have certain checks against this in place but recent problems showed that we haven't addressed all edge cases yet. And once a circular relationship exists, things start to become messy. 

A patch to be applied later today will hopefully take care of that. One noteworthy side-effect is that you might see error messages more often when placing buy-orders for shares or trying to subscribe to an IPO. This is because we now also take into account "theoretical" relationships that do not exist yet but are likely to do so in the near future. This includes pending buy-orders and IPO participations. 

In other news we've found and fixed the bug that caused the severe server downtimes on the two previous Mondays. It should not happen again.

[DE]

In den Guten Alten Tagen(tm) gab es zwei Arten von Firmen in AirlineSim: Holdings und Unternehmen. Erstere konnten Anteile an anderen Unternehmen halten, selbst aber keinen Betrieb haben, und umgekehrt. In dieser Anordnung waren Kreisbeziehungen zwischen Firmen unmöglich.

Mit dem aktuellen Modell ist es etwas komplizierter: Da die Eigentümer-Hierarchien theoretisch beliebig viele Ebenen haben können muss sichergestellt werden, dass sich keine Kreisbeziehungen entwickeln. Das heißt: Kein Unternehmen darf Anteile an sich selbst halten, auch nicht indirekt über andere Unternehmen.

Wir haben bereits einige Gegenmaßnahmen integriert aber kürzlich aufgetretene Probleme haben gezeigt, dass wir anscheinend noch nicht alle Sonderfälle bedacht haben. Und sobald einmal eine Kreisbeziehung existiert, wird es eklig.

Ein Patch der im Verlauf des heutigen Tages eingespielt wird erledigt dieses Problem hoffentlich. Ein erwähnenswerter Nebeneffekt ist allerdings, dass Ihr vermutlich mehr Fehlermeldungen zu Gesicht bekommen werdet, wenn Ihr Kaufaufträge für Anteile platzieren oder Euch an Börsengängen beteiligen wollt. Dies liegt daran, dass wir nun auch "theoretische" Beziehungen berücksichtigen die es noch nicht gibt, die aber mit hoher Wahrscheinlichkeit in der nahen Zukunft materialisieren. Dies beinhaltet zum Beispiel platzierte Kaufaufträge und bestehende Beteiligungen an Börsengängen.

Und noch eine Kleinigkeit aus einem anderen Bereich: Wir haben den Fehler gefunden und behoben, welcher die erheblichen Serverdowntimes an den beiden vergangenen Montagen verursacht hat. In Zukunft sollte dies also nicht mehr vorkommen.