Announcement

Collapse
No announcement yet.

Problem mit Prozess

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

  • #16
    Warum kam diese Info nicht gleich

    Über Command = 1 wird eine Klasse aufgerufen, die als Warteschlange fungiert.
    Wenn das Programm gestartet wird so wird Speicher belegt und beim Beenden der Anwendung der Speicher freigegeben. Somit müsste diese Anwendung die ganze laufen um als Warteschlange zu fungieren.

    Ein anderer (und vermutlich korrekterer) Ansatz wäre auf service Orientierheit umzustellen. Dies v.a. auch deshalb da Client - Server1 - Server2 betroffen sind.

    D.h. es gibt eine zentrale "Anlaufstelle" welche in Form eines (WCF-) Service der auf Server1 läuft realisiert wird. Dieser Service läuft die ganze Zeit und beinhaltet die Warteschlange der Druckaufträge. Der Client baut also eine Verbindung zu diesem Service auf und schreibt den/die Druckauftag/e in die Warteschlange. Dieser Service verbindet sich dann mit dem Druckserver und druckt.

    Aber dazu wird keine Datenbank benötigt und ist i.d.R. aufwändiger umzusetzen. Ich würde daher meinen vorigen Vorschlag anpassen und umsetzen.


    mfG Gü
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

    Comment


    • #17
      Die Anwendung mit der Warteschlange soll später als Dienst laufen.
      Aber jetzt ist keines der 3 ein Dienst.
      Der Client soll Druckauftrag beauftragen.
      Dienst soll dann in DB nachschauen und die Daten laden.
      Soweit funktioniert ja alles.
      Nur beim 3. Programm, habe ich ein Problem, wie ich Daten von dem späteren Dienst erhalte.
      Sollte das zuerst über Shell Aufruf machen.
      Ich bin dann auf den Aufruf über Prozess gekommen.
      Nur leider erhalte ich immer die Daten noch nicht.

      Heidrun

      Comment


      • #18
        Nur beim 3. Programm, habe ich ein Problem, wie ich Daten von dem späteren Dienst erhalte.
        Warum kann sich diese Anwendung die Daten nicht von Datenbank holen?


        mfG Gü
        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

        Comment


        • #19
          Weil das die Anwendung (laden) bzw. später der Dienst holen soll.
          Sonst würde ja die anwendung (laden) und die Anwenundung (drucken) beide die Daten aus der DB laden.
          Die Anwendung drucken sollte aber die Daten von der Anwendung (laden) erhalten und später dann den Bericht mit diesen füllen.

          So will es mein Chef.

          Wenn ich in die Anwendung Drucken die Zeilen aus der Anwendung Laden kopiere funktioniert es ja. Nur über den Prozessaufruf nicht.
          Wenn Drucken ausgeführt wird im Kompiler ist das Objekt aus Laden leer, weil dieser Code nicht ausgeführt wird.

          Heidrun

          Comment


          • #20
            Weil das die Anwendung (laden) bzw. später der Dienst holen soll.
            Sonst würde ja die anwendung (laden) und die Anwenundung (drucken) beide die Daten aus der DB laden.
            Die Anwendung drucken sollte aber die Daten von der Anwendung (laden) erhalten und später dann den Bericht mit diesen füllen.

            So will es mein Chef.
            So ist das aber ein Schildbürgerstreich. Entweder über die SOA (wie der letzte Vorschlag) oder über die Datenbank (vorletzer Vorschlag). Rede mal mit dem Chef darüber. Du siehst ja welche Probleme du damit hast - es ist ja auch keine Lösung.

            Außerdem ist 3 Aspekte in 1 Anwendung nicht sinnvoll. Was ist wenn später mal was geändert werden muss, etc. Das hat man früher so gemacht, aber heute macht das kein vernüftiger Programmierer mehr so.

            Speicher != Laden != Drucken => Aufteilung in einzelen Anwendungen, alles andere ist Murx. Vergiss also die Command = X Variante. Das wird sich noch rächen und viel Geld kosten. Das wird dem anderen Chef gar nicht gefallen.

            Deshalb besser gleich schön aufgeteilt entwickeln denn dann können die Teile unabhängig von einander gewartet werden. Die ganze Programmierwelt (oder fast die ganze) macht das so weil es sich im Laufe der Zeit als besser herausgestellt hat.

            mfG Gü
            "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

            Comment


            • #21
              Nach langem hin und her mit dem Chef.
              Durfte ich nun doch 3 verschiedene Visual Stuido Projekte machen.
              Aus dem 2. der später als Dienst laufen soll, soll die 3. Anwendung gestartet werden. Diese muss die Daten ebenfalls laden und dann später den Druck ausführen.

              Heidrun

              Comment


              • #22
                Ich habe nun 3 verschiedenen Exen.
                Die zweite ruft nun auch schon die 3. fürs drucken auf.
                Ich soll nun in der 2. anwendung noch einen Timer einbauen, der in einem bestimmten Abstand, immer wieder die 3. Anwendung startet.
                Die 2. Anwendung lädt nun keine Daten, sie lädt nur den Dokumenttyp (z.B. Rechnung) und übergibt diesen beim Aufruf der 3. Anwendung.

                Ich habe für den Timer nun folgenden Code schon geschrieben:

                Dim timer1 As New System.Timers.Timer

                timer1.Enabled = True
                timer1.Interval = 1000
                timer1.Start()

                Hier kommt mein restlicher Code.



                Aber irgendwie ruft er die 3. Anwendung nicht in dem Intervall auf, sonder er ruft sie nur einmal auf.

                Heidrun

                Comment


                • #23
                  Habe es mit dem Timer nun hinbekommen.
                  Funktioniert.

                  Comment

                  Working...
                  X