powered by CADENAS

Manual

Manual

1.2.3.4. Polling - Parallelisieren von Einzelprozessen

Die Konvertierung kann bei sehr großen Datenmengen Stunden, im Extremfall auch Tage beanspruchen, so dass sich die Parallelisierung von Prozessen, das Verteilen auf verschiedene Arbeitsrechner empfiehlt.

Die Prozesssteuerung erfolgt beim Polling nicht über die Konfigurationsdatei plmsynchro.cfg, sondern über Jobs. Jobs sind normale Konfigurationsdateien mit der Dateiendung ".job". Die Job-Datei entspricht im Wesentlichen der plmsynchro.cfg, nur fehlt hier der Block [PLM Synchronization].

Job-Dateien befinden sich in einem zu definierenden Polling-Verzeichnis. Verschiedene Arbeitsrechner können auf ein und dasselbe Verzeichnis zugreifen. Wenn die Job-Datei gerade in Bearbeitung ist, dann wird diese mit der Dateiendung *.jobw (job work) angezeigt und ist für weitere Zugriffe gesperrt.

Um Polling effektiv zu nutzen, sollte die Generierung der Job-Files und das Kopieren der Job-Files in das Polling Verzeichnis automatisiert werden.

Die Blöcke QUERY, DOWNLOAD, CONVERSION, IMPORT in der Job-Datei definieren die zu bearbeitenden Aufgaben. Ist ein Block vorhanden, führt das zur Ausführung der Aufgabe. Das Ausführen der Aufgaben erfolgt immer in der Reihenfolge QUERY -> DOWNLOAD -> CONVERSION -> IMPORT unabhängig von der Reihenfolge der Blöcke in der Datei. Der Grund ist die Abhängigkeit des folgenden Arbeitsschrittes vom vorhergehenden.

Optionen, die in der Kommandozeile definiert sind, führen zur Erstellung, bzw. Löschung eines Aufgabenblocks.

Es können weitere Konfigurations-Blöcke für Plugins benutzt werden. Plugins werden vor dem Ausführen eines Jobs geladen und sind daher aktiv für die jeweiligen Jobs.

Ein PLMSynchronization Arbeitsrechner kann für eine einzige oder mehrere Aufgaben definiert werden.

[Hinweis] Hinweis
  • Detaillierte Hinweise zur Verarbeitungslogik finden Sie in der Datei plmsynchro.vbb selbst.

  • Lassen Sie sich den Inhalt von plm_synchro.vbb ausgeben und suchen Sie nach "Job Queue (Polling)":

    "%CADENAS%/bin/x86/32/cscripthost.exe" "%CADENAS%/setup/scripts/common/plm_synchro.vbb" -??
  • Alle zur Verfügung stehenden Parameter sehen Sie bei folgendem Kommando:

    "%CADENAS%/bin/x86/32/cscripthost.exe" "%CADENAS%/setup/scripts/common/plm_synchro.vbb" -?

[Hinweis] Hinweis

Vorbereitungen:

  • Achten Sie insbesondere beim Einsatz von Polling darauf, dass die erste Zeile in plm_synchro.vbb folgendermaßen lautet:

    import "Package.pdmproxy.fsopdm"

    Wenn nicht, fügen Sie der bestehenden Zeile diese hinzu.

  • Lassen Sie sich per Konsole mittels plm_synchro.vbb eine Konfigurationsdatei plm_synchro.cfg erstellen.

    cscripthost.exe plm_synchro.vbb -? cfg >C:/plmsynchro/plm_synchro.cfg

    Die ausgegebene Datei enthält einen leeren Block [job].

    Um die Datei als Job-Datei zu verwenden, muss der Block [PLMSynchronization] gelöscht werden.

Standard-Einstellungen

Nehmen Sie folgende Einstellungen wie beim Standardprozess (mittels plm_synchro.cfg) vor:

  1. Umgebungsvariablen setzen

    Im Zuge der PARTsolutions-Installation sind alle benötigten Umgebungsvariablen gesetzt. Wenn Sie eine OfflineCD verwenden, setzen Sie die benötigten Umgebungsvariablen in der Konsole.

  2. pdmProxies.cfg

    Pfadangabe zu den zu verarbeitenden Teilen (siehe 4).

  3. ifacecommon.cfg

    Aktivieren Sie die entsprechenden Schlüssel des von Ihnen verwendeten Proxy (siehe 5).

  4. classimport.cfg

    Setzen Sie u.a. den Katalognamen (siehe 6).

Einstellungen in der Job-Datei

(ersetzt plm_synchro.cfg)[11]

Beispiel mit den wichtigsten Einstellungen als Einstieg:

[JOB]
BackupDirectory=$plmsynchro_dir\backup
iface=PdmProxyNxTeamcenterIfaceC
OutputFormat=PARTJAVA
toFile=1
toFilefail=1
ToFileSplit=1
Loglevel=trace
...

[QUERY]
...
documentnamelike0=*.ipt
documentnamelike1=*.iam
...

[DOWNLOAD]
...

[CONVERSION]
...
InputVersion=iface.inventor
...

[IMPORT]
...
ciCfg=E:\plmsynchro\classimport.cfg
...

  • Pfad zum BackupDirectory einstellen

    Im Backup-Verzeichnis werden alle Prozess-Logdateien gespeichert, anhand derer Sie den Erstellungsprozess und evtl. aufgetretene Fehler nachvollziehen können.

    Beispiel:

    [JOB]
    BackupDirectory=C:\PLMsynchro\plmsynchro_polling\Node_1\backup

    Error-Informationen finden Sie auch noch in %temp%\psol_logs.

  • Aktivierung der gewünschten Schnittstelle

    Jedes PDM-System hat seine eigene Schnittstelle (PdmProxySWEnterprisePdmIfaceC, PdmProxyWindchillIfaceC, PdmProxyCreoTeamcenterIfaceC oder PdmProxyNxTeamcenterIfaceC). Bei Verwendung der Schnittstelle "PdmProxyFSOPdmIfaceC" liegen die nativen Dateien in einem eigenen Verzeichnis (einzustellen unter pdmProxies.cfg).

    Beispiel:

    [job]
    IFace=PdmProxyFSOPdmIfaceC
  • OutputFormat wählen

    Beispiel:

    [job]
    OutputFormat=PARTJAVA
  • toFileSplit

    Mittels toFileSplit werden die einzelnen Aufgabenblöcke weiter unterteilt, so dass verschiedene Prozesse/Rechner darauf zugreifen können.

    Beispiel ohne:

    plm_synchro.qry      plm_synchro.dwn      plm_synchro.cvn      plm_synchro.imp

    Beispiel mit:

    plm_synchro_1.qry    plm_synchro_1.dwn    plm_synchro_1.cvn    plm_synchro_1.imp
    plm_synchro_2.qry    plm_synchro_2.dwn    plm_synchro_2.cvn    plm_synchro_2.imp
    plm_synchro_3.qry    plm_synchro_3.dwn    plm_synchro_3.cvn    plm_synchro_3.imp
    etc.                 etc.                 etc.                 etc. 

    [Hinweis] Hinweis

    Syntax: Die Namen der einzelnen Aufgaben-Dateien leiten sich aus dem Namen der Job-Datei ab. Hier im Beispiel heißt die Job-Datei plm_synchro.job.

    Details zu ToFileSplit finden Sie hier.

  • Input-Daten filtern

    Es steht eine Fülle von Filtern zur Verfügung. Für erste Testläufe bietet es sich an, bestimmte Teile herauszufiltern.

    Beispiel mit getrennter Bearbeitung von Teilen und Baugruppen:

    [query]
    ...
    documentnamelike0=*.ipt
    #documentnamelike1=*.iam
    ...

    Evtl. bietet sich auch die Aufteilung der Quelldaten in verschiedene Blöcke an, beispielsweise über die lexikographische (Schlüssel DocumentNameLesser) oder hierarchische Struktur (Schlüssel DocumentPath).

    Die Filteroptionen im Block [query] liefern eine Fülle von geeigneten Ansatzmöglichkeiten. Detaillierte Hinweise finden Sie in den Hilfetexten der einzelnen Schlüssel.

  • Identifizierung CAD-System

    Identifizierung des CAD-Systems, welches für die Konvertierung benutzt wird.

    Beispiel:

    [CONVERSION]
    InputVersion=iface.inventor
  • Verweis auf die zu verwendende Datei classimport.cfg

    [IMPORT]
    ciCfg=C:\__Offline_CDs\20150807_10_0_sp2_release\20150807\setup\classimport.cfg

    Für Details siehe 6.

Polling-Verzeichnis anlegen

Legen Sie ein Polling-Verzeichnis an, auf welches alle Einzelprozesse/Arbeitsrechner zugreifen. In diesem Verzeichnis liegt die Job-Datei. Die Batch-Datei bzw. der Kommandozeilenaufruf verwendet den Parameter -jdtp zum Aufruf dieses Verzeichnisses. Der Aufruf von plmsynchro.cfg mit dem Parameter -cfg entfällt hier.

[Hinweis] Hinweis

Wenn eine neue Job-Datei ins Verzeichnis gelegt wird, wird diese ebenfalls sofort abgearbeitet.

Um Polling effektiv zu nutzen, sollte die Generierung der Job-Dateien und das Kopieren der Job-Dateien in das Polling Verzeichnis automatisiert werden.

Batch-Datei erstellen

Erstellen Sie eine bzw. mehrere Batch-Datei(en) mit folgenden Verweisen:

  • Verweis auf cscripthost.exe (aus Performancegründen sollte wenn möglich die 64bit-Variante gewählt werden)

    cscripthost ruft die entsprechende vbb-Datei plm_synchro.vbb auf.

  • Verweis auf plm_synchro.vbb

  • Verweis auf das Jobverzeichnis.

    Mit dem Parameter -jdtp wird das Verzeichnis bestimmt, welches die Job-Datei *.job enthält.

Beispiel:

"%CADENAS%/bin/x86/32/cscripthost.exe" 
"%CADENAS%/setup/scripts/common/plm_synchro.vbb" 
-jdst 1000 -jdtp "C:\plmsynchro_polling\Node_1\backup"

Weitere optionale Parameter

  • Sleep Time: (Default 50 Sekunden)

    -jdst

    Die Sleep Time definiert die Zeit zwischen zwei Zugriffen auf den Polling-Ordner.

    Wenn mehrere Jobs in der Schlange warten, wird die Sleep Time ausgelassen und der nächste Job sofort ausgeführt.

  • Deaktivieren von Aufgaben

    Alle Aufgaben sind per Default aktiviert.

    Mit folgenden Kommandozeilenparametern können Sie einzelne Aufgaben deaktivieren:

    • -dq (delete query)

    • -dd (delete download)

    • -dc (delete conversion)

    • -di (delete import)

    Der erste Buchstabe steht für "delete", der zweite Buchstabe ist der Anfangsbuchstabe der Aufgabe.

    Verarbeitungsmodus:

    Wenn ein Arbeitsrechner beispielsweise nur für eine Query-Aufgabe konfiguriert ist, dann wird die Aufgabe ausgeführt und der modifizierte Job wieder in der Schlange eingetragen mit den Aufgaben-Definitionen, die noch zu tun sind. Dasselbe gilt auch für die anderen Aufgaben (Download, Conversion, Import).

    Beispiel mit zwei Arbeitsrechnern und geteilten Aufgaben:

    Rechner 1 ist zuständig für die Prozesse Query und Download.

    "%CADENAS%/bin/x86/32/cscripthost.exe" 
    "%CADENAS%/setup/scripts/common/plm_synchro.vbb" 
    -jdst 1000 -jdtp "C:\plmsynchro_polling\Node_1\backup" -dc -di

    Rechner 2 ist zuständig für die Prozesse Conversion und Import.

    "%CADENAS%/bin/x86/32/cscripthost.exe" 
    "%CADENAS%/setup/scripts/common/plm_synchro.vbb" 
    -jdst 1000 -jdtp "G:\plmsynchro_polling\Node_1\backup" -dq -dd
  • Aufruf von Plugins

    • -plugin AbsolutePathtoPlugin

    Beispiel:

    "%CADENAS%/bin/x86/32/cscripthost.exe" 
    "%CADENAS%/setup/scripts/common/plm_synchro.vbb" 
    -jdst 1000 -jdtp "C:\plmsynchro_polling\Node_1\backup" 
     -plugin "C:\PLMsynchro\Plugins\plm_synchro_plugin_trace.vbs"

    Mit Hilfe des Skripts plm_synchro_plugin_trace.vbs gelingt das Auffinden von Fehlern schneller.

    Setzen Sie dazu noch Loglevel auf "trace".

    [JOB]
    Loglevel=trace


[11] Als Basis wird eine plm_synchro.cfg verwendet, nur ohne Block [PLMSynchronization].