MediathekView Logo

    MediathekView-Forum

    • Registrieren
    • Anmelden
    • Suche
    • Kategorien
    • Aktuell
    • Tags
    • Beliebt
    • Benutzer
    • Gruppen

    Frage zur Begrenzung auf eine laufende Instanz

    Entwicklerforum
    4
    12
    524
    Lade mehr Beiträge
    • Älteste zuerst
    • Neuste zuerst
    • Meiste Stimmen
    Antworten
    • In einem neuen Thema antworten
    Anmelden zum Antworten
    Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
    • MenchenSued
      MenchenSued Globaler Moderator zuletzt editiert von MenchenSued

      Ist es zwingend erforderlich, MediathekView auf eine Instanz zu begrenzen oder ist das eher eine Maßnahme für den Standarduser?

      Hintergrund: Bisher hatte ich MediathekView 13.0.6 als Arbeitsumgebung und nebenbei neuere Develop-Versionen in IntelliJ getestet, natürlich mit einem eigenen Konfigurations-Verzeichnis.
      Seit dem Umstieg auf 13.7.0 kann ich MediathekView innerhalb der Develop-Umgebung nicht mehr starten, es erscheint dann sofort die (korrekte) Meldung, dass MV schon läuft. Die Semaphore MediathekView.lock liegt im Temp-Verzeichnis und könnte manuell leicht gelöscht werden.

      Frage an die Experten: Gibt es bekannte Überschneidungen von Funktionen bei mehreren laufenden Instanzen? Oder betrifft das lediglich den Zugriff auf das Konfigurations-Verzeichnis? Wenn letzteres, wäre es dann nicht sinnvoll, den Lock in diesem Verzeichnis abzulegen statt in einem globalen Verzeichnis?


      MediathekView 13.9.1, Linux Mint 21, VLC 3.0.16

      G 1 Antwort Letzte Antwort Antworten Zitieren
      • G
        gerdd @MenchenSued zuletzt editiert von

        @menchensued Exzellente Frage, die mich auch brennend interessiert - ich will ja nicht mit mehreren virtuellen Maschinen herumspielen - von den JVMs mal abgesehen …)

        1 Antwort Letzte Antwort Antworten Zitieren
        • D
          DerReisende77 Entwickler zuletzt editiert von DerReisende77

          Es ist ZWINGEND erforderlich, nur eine Instanz von MediathekView am laufen zu haben!
          Grund ist die Art wie Xaver bei Beginn der Programmentwicklung den Zugriff auf die ganzen Config-Files designed hat. Diese werden/können bei Zugriff nicht gelocked werden und somit ist die Gefahr enorm dass dann mehere MV Prozesse auf die gleiche Datei zugreifen und Schrott produzieren, was den erneuten Start verhindert da alles im Eimer ist.
          Ich bin Stück für Stück ja dabei das umzuschreiben aber das ist nicht ganz so einfach wie gedacht und die Migration muss auch durchdacht sein.

          Open source developers do NOT have to:

          • Make your issue a priority, just because you say so.
          • Give you any sort of "timetable", or explanation for why it´s "taking too long".

          Check your entitlement. Nobody owes you anything.

          M 1 Antwort Letzte Antwort Antworten Zitieren
          • M
            mvsfsvm @DerReisende77 zuletzt editiert von

            Im Grunde bräuchte man den Start einer weiteren Instanz nur dann abbrechen oder verweigern, wenn die neue Instanz ein Einstellungsverzeichnis nutzen will, das bereits von einer laufenden Instanz benutzt wird. Ist aber mehr Aufwand.

            Die aktuelle Verfahrensweise lässt allerdings trotzdem ein Schlupfloch, denn die funktioniert nur für die Instanzen eines Windowsbenutzers.

            D 2 Antworten Letzte Antwort Antworten Zitieren
            • D
              DerReisende77 Entwickler @mvsfsvm zuletzt editiert von

              @mvsfsvm sagte in Frage zur Begrenzung auf eine laufende Instanz:

              Im Grunde bräuchte man den Start einer weiteren Instanz nur dann abbrechen oder verweigern, wenn die neue Instanz ein Einstellungsverzeichnis nutzen will, das bereits von einer laufenden Instanz benutzt wird. Ist aber mehr Aufwand.

              Richtig. Aber mal ganz ehrlich: Wer in der Lage ist den Code zu lesen sollte auch in der Lage sein in der Klasse Main in der function public static void main(final String... args) den call
              installSingleInstanceHandler(); durch //installSingleInstanceHandler();
              zu ersetzen und neu zu starten.

              Die aktuelle Verfahrensweise lässt allerdings trotzdem ein Schlupfloch, denn die funktioniert nur für die Instanzen eines Windowsbenutzers.

              Falsch:
              Hier für Linux:
              Bildschirmfoto 2021-01-16 um 13.05.02.jpg

              und macOS:
              Bildschirmfoto 2021-01-16 um 13.11.41.jpg

              Die macOS verwendet sogar zwei Verfahren um den Doppelstart zu verhindern, nämlich das interne als auch das durch das Betriebssystem bereitgestellte…

              Open source developers do NOT have to:

              • Make your issue a priority, just because you say so.
              • Give you any sort of "timetable", or explanation for why it´s "taking too long".

              Check your entitlement. Nobody owes you anything.

              1 Antwort Letzte Antwort Antworten Zitieren
              • D
                DerReisende77 Entwickler @mvsfsvm zuletzt editiert von

                @mvsfsvm Oder meinst Du mehrere gleichzeitig angemeldete Nutzer am Rechner?

                Open source developers do NOT have to:

                • Make your issue a priority, just because you say so.
                • Give you any sort of "timetable", or explanation for why it´s "taking too long".

                Check your entitlement. Nobody owes you anything.

                M MenchenSued 2 Antworten Letzte Antwort Antworten Zitieren
                • M
                  mvsfsvm @DerReisende77 zuletzt editiert von

                  @derreisende77 ja ich meinte mehrere gleichzeitig angemeldete Benutzer. Wobei ich unter Windows bisher für die zusätzliche Instanz Unter anderem Nutzer starten verwendete. Findet man im Kontextmenü wenn man es per Umschalt+Rechtsklick öffnet. Das scheint aber tatsächlich nicht mehr zu funktionieren. Es gibt allerdings auch keine Fehlermeldung.

                  1 Antwort Letzte Antwort Antworten Zitieren
                  • MenchenSued
                    MenchenSued Globaler Moderator @DerReisende77 zuletzt editiert von

                    @derreisende77
                    Ich wollte hier keine Grundsatzdiskussion vom Zaun brechen, mir ging es speziell um zwei Usergruppen:

                    1. Entwickler, die neben der freigegebenen Version parallel an einer Entwicklerversion etwas ausprobieren wollen
                    2. Spezialanwendern, die mehrere Konfigurationen haben (da gab es mal jemanden, der wollte den Download immer in zwei unterschiedlichen Auflösungen haben)

                    Beiden ist gemein, dass ein getrenntes Konfigurationsverzeichnis .mediathek3 verwendet wird. Aber so wie ich Dich verstanden habe, besteht durchaus die Gefahr, dass der Code noch auf das falsche Verzeichnis zugreifen könnte, obwohl man per Parameter ein anderes Verzeichnis haben wollte. Das war zumindest früher bei Logfiles so.
                    Sicher ist es besser, die jetzige Begrenzung zu respektieren, da man ansonsten nie sicher sein kann, dass es Nebeneffekte geben könnte.


                    MediathekView 13.9.1, Linux Mint 21, VLC 3.0.16

                    D 2 Antworten Letzte Antwort Antworten Zitieren
                    • D
                      DerReisende77 Entwickler @MenchenSued zuletzt editiert von

                      @menchensued Naja, ein wenig Diskussion braucht man ja schon, von daher alles gut ;)
                      Den use case für ein Locking auf das jeweilige Config-Verzeichnis hatte ich nicht auf dem Schirm da ich es schlicht nicht nutze und es da auch keine explizite Anforderung zu gab. Aber ich habe gerade ein wenig darüber nachgedacht und denke das dies “nicht so schwer” umzusetzen ist.
                      Könntest Du dafür ein github issue zu aufmachen, dann gerät es nicht in Vergessenheit.

                      Mein grundsätzliches Problem ist dass viele Nutzer versuchen MV manuell mit irgendwelchen Parametern zu starten die ggf. auf noch veraltet sind. Dadurch kann es zu negativen Seiteneffekten kommen. Von daher reagiere ich da immer etwas allergisch wenn man den Startvorgang verändern will. Ich persönlich kann das nicht nachvollziehen und das war auch der Hauptgrund den Installer anzubieten.

                      Das Problem mit den Logfiles sollte behoben sein.

                      Die Usergruppe Entwickler betrachte ich persönlich nicht, denn die sollten in der Lage sein den Quellcode an ihre Ansprüche zu modifizieren. Und sie fragen auch in der Regel im Forum nicht um Hilfe wenn sie etwas verbeutelt haben ;)

                      Für den zweiten Fall überlege ich mir was wenn der issue da ist. Das kommt aber nicht mehr in 13.7.1. Die ist quasi final und geht demnächst auf die Reise.

                      Open source developers do NOT have to:

                      • Make your issue a priority, just because you say so.
                      • Give you any sort of "timetable", or explanation for why it´s "taking too long".

                      Check your entitlement. Nobody owes you anything.

                      1 Antwort Letzte Antwort Antworten Zitieren
                      • D
                        DerReisende77 Entwickler @MenchenSued zuletzt editiert von

                        @menchensued Das grundsätzliche Problem mit mehreren Instanzen ist das diese auch derzeit jeweils eigene Filmlisten laden und damit den Traffic erhöhen. Das abzufedern würde eine deutlich komplexere MV Installation leider bedeuten :(

                        Open source developers do NOT have to:

                        • Make your issue a priority, just because you say so.
                        • Give you any sort of "timetable", or explanation for why it´s "taking too long".

                        Check your entitlement. Nobody owes you anything.

                        MenchenSued 1 Antwort Letzte Antwort Antworten Zitieren
                        • MenchenSued
                          MenchenSued Globaler Moderator @DerReisende77 zuletzt editiert von

                          @derreisende77
                          Danke für die Erklärungen. Vermutlich ist es wirklich besser, nicht zu viele Sonderfälle zu implementieren, denn dadurch erschwert sich auch die Fehlersuche. Daher verzichte ich erst mal auf ein Ticket.


                          MediathekView 13.9.1, Linux Mint 21, VLC 3.0.16

                          M 1 Antwort Letzte Antwort Antworten Zitieren
                          • M
                            mvsfsvm @MenchenSued zuletzt editiert von

                            @menchensued in der Regel geht es doch darum, eine neue Version erst einmal mit eigener Konfig zu testen oder eine 2. Instanz mit anderer Konfig zu verwenden, weil das Vorhaben nicht mit einer einzelnen Instanz machbar ist (siehe dein Beispiel mit den Spezialanwendern). Das wäre alles mit einem Locking auf das Config-Verzeichnis abgedeckt.

                            1 Antwort Letzte Antwort Antworten Zitieren
                            • 1 / 1
                            • Erster Beitrag
                              Letzter Beitrag

                            20
                            Online

                            5.6k
                            Benutzer

                            5.1k
                            Themen

                            33.1k
                            Beiträge

                            Betrieben mit NodeBB - Impressum