7 Replies Latest reply on Jun 7, 2006 5:32 AM by DSMForum

    [SOLVED] DOSCALL meldet vorzeitig Ausführung

    DSMForum Master
      und mal wieder ne feine sache. wieder ins netinstall 5.7 forum. (wann entsteht endlich das forum für 5.8?)

      per doscall rufe ich einen gzip-dekomprimierungsprozess auf. dabei werden ca. 40Gb entpackt, das dauert eine weile.

      gzip läuft sauber an und werkelt vor sich hin. seltsamerweise nimmt netinstall nach vielleicht einer viertel bis halben stunde an, der doscall wäre durchgelaufen und widmet sich dem nächsten scripteintrag (der aber zwingend den vollständigen ablauf der dekomprimierung voraussetzt). natürlich ist gzip noch nicht fertig geworden und rattert im hintergrund weiter, das paket wird also unvollständig ausgeführt.

      der schalter "auf ausführung warten" ist für den doscall natürlich gesetzt.

      hat jemand vielleicht ähnliche erfahrungen gemacht und eine lösung parat? ich wäre wirklich sehr verbunden.

      T4M
        • 1. Re: [SOLVED] DOSCALL meldet vorzeitig Ausführung
          DSMForum Master
          es wird noch besser. auch per execute dauert es ca. 10min, dann meint das netinstallscript zum nächsten eintrag übergehen zu können (was natürlich wieder schiefläuft...).

          bei einem anderen, stunden dauernden vorgang (image per dd schreiben) versagt das "auf ausführung warten" auch.
          • 2. Re: [SOLVED] DOSCALL meldet vorzeitig Ausführung
            DSMForum Master

            Hallo,

            in solchen Fällen hilft nur der Weg über eine Schleife, die den laufenden
            Prozess abfrägt.

            Hier der Ansatz:

            !Schleife die auf die Beendigung des Setup wartet
            : LOOP
            !Variable Prozessname definieren auf den gewartet werden soll (Hier
            msiexec.exe)
            Set('PROCESSNAME','msiexec.exe')
            !Variable ProcessID muß bei jedem Schleifengang erst wieder gelöscht werden
            Set('WMI_ProcessId','')
            !
            !Abfrage ob Prozess noch läuft
            WMISimpleQuery('\\.\root\cimv2','Win32_Process','Name=%PROCESSNAME%','WMI_')
            ProcessId
            EndProc
            !
            !Wenn der Prozess nicht mehr läuft, also keine ID zurückliefert, dann die
            Schleife beenden
            If %WMI_ProcessID%=''
            goto LOOP_ENDE
            !Ansonsten hier die Zeit in Sekunden eintragen wie lange gewartet werden
            soll bis der Prozess erneut abgefragt wird
            Else
            Sleep('10')
            goto LOOP
            !
            : LOOP_ENDE

            Wird bei uns in etlichen Projekten verwendet.

            Gruß Volker

            P.S. Im Anhang ein exportiertes Projekt von uns mit dieser Schleife.





            • 3. Re: [SOLVED] DOSCALL meldet vorzeitig Ausführung
              DSMForum Master
              alles geklärt.

              wie an anderer stelle beschrieben, haben wir das problem per wmi gelöst.

              das ist zwar eine derbe krücke, aber es funktioniert. wäre trotzdem schön, wenn die helden bei enteo die eingebaute funktion zur überprüfung des laufenden prozesses nochmal unter die lupe nehmen würden...
              • 4. Re: [SOLVED] DOSCALL meldet vorzeitig Ausführung
                Klaus Salger Expert
                Die Lösung per WMI ist zwar recht flexibel (man kann z.B. auch auf einen
                anderen als den gestarteten Prozess warten), es geht aber in den
                einfacheren Fällen auch ohne "Krücke" indem man nämlich den Timeout in
                den Installationseinstellungen auf der Site höher setzt oder auch indem
                man statt execute den runas verwendet (beim runas kann ein Timeout
                angegeben werden). Wenn man bis zum Sankt Nimmerleinstag warten möchte
                muss man nur den Timeout entsprechend hoch setzen.

                Ciao
                Klaus


                zur Info: es gilt im allgemeinen als unhöflich ohne Nennung des eigenen
                Namen zu posten

                T4M wrote:
                > alles geklärt.
                >
                > wie an anderer stelle beschrieben, haben wir das problem per wmi gelöst.
                >
                > das ist zwar eine derbe krücke, aber es funktioniert. wäre trotzdem schön, wenn die helden bei enteo die eingebaute funktion zur überprüfung des laufenden prozesses nochmal unter die lupe nehmen würden...

                • 5. Re: [SOLVED] DOSCALL meldet vorzeitig Ausführung
                  DSMForum Master
                  ich wollte keines wegs unhöflich sein.

                  diesen support-zugang nutzen einige angestellte in unserem unternehmen. daher nur das kürzel unserer firma ("trans4mation gmbh") als nick.

                  danke für die weiteren tips!

                  andreas neumann
                  • 6. Re: [SOLVED] DOSCALL meldet vorzeitig Ausführung
                    DSMForum Master
                    hallo volker!

                    dank dir für die schnelle hilfe, auch wenn wir hier die gleiche lösung aus anderer quelle schon implementiert hatten, bevor dein post im forum zu sehen war.

                    es war sehr freundlich von dir, deine zeit zu opfern um mir hier weiterzuhelfen.

                    danke,

                    andreas neumann
                    • 7. Re: [SOLVED] DOSCALL meldet vorzeitig Ausführung
                      DSMForum Master
                      Hai Andreas No Problema,

                      der Ansatz, dass man das über WMI machen kann, ist natürlich hier aus der
                      Newsgroup ;-) war irgendwann auch mal vor dem gleichen Problem gestanden.
                      Die Schleife hab ich mir dann selbst gebastelt.

                      Gruß Volker