Fehlerbehebung IBM DataStage
Verwenden Sie diese Lösungen, um Probleme zu beheben, die möglicherweise bei auftreten IBM®DataStage®.
Hilfe und Unterstützung erhalten für DataStage
Wenn Sie Probleme oder Fragen bei der Nutzung haben DataStage, können Sie Hilfe erhalten, indem Sie nach Informationen suchen oder Fragen in einem Forum stellen. Sie können auch ein Support-Ticket öffnen.
Wenn Sie eine Frage in den Foren stellen, versehen Sie Ihre Frage mit einem Tag, damit sie von den DataStage Entwicklungsteams gesehen wird.
Bei Fragen zum Service und zu den ersten Schritten nutzen Sie bitte das Forum unter https://stackoverflow.com/questions/tagged/datastage.
- Allgemein
- Aufträge schlagen mit der Fehlermeldung „Ressource vorübergehend nicht verfügbar“ fehl.
- Jobs schlagen fehl, weil SQL- und Before SQL-Anweisungen in falscher Reihenfolge ausgeführt werden.
- Der Befehl „mailx“ kann in den Unterprogrammen „before-job“ und „after-job“ ohne SMTP-Serverinformationen nicht ausgeführt werden.
- Die Eigenschaftenauswahl wird nicht beibehalten, wenn Sie „Eigenschaften DataStage verwenden“ deaktivieren.
- Die Routine schlägt fehl, wenn die CEL-Funktion auf einem externen ds.getUserStatus Fluss ausgeführt wird.
- Der Job schlägt beim Laden einer großen Excel-Datei fehl.
- Komponente kann nach DataStage Stromausfall nicht hinzugefügt werden
- Die Zusammenstellung des DataStage Flows schlägt fehl, wenn der Java-Klassenpfad parametrisiert ist.
- Exportierte Flows generieren JSON-Verbindungsdateien, die Klartext-Passwörter enthalten.
- Probleme beim Durchsuchen von Datenbanktabellen mit Spalten, die Sonderzeichen enthalten
- Falsche Ableitungen, die einem vom Asset-Browser gelesenen Schema zugewiesen wurden
- Sequenzielle Dateien als Quelle verwenden
- Fehler beim Ausführen von Jobs mit einem Dateiformat 'Parquet'
- Migrations-Pod wird wegen Überschreitung seiner temporären Speichergrenzen entfernt
- Beim Upgrade von Version Cloud Pak for Data 5.0.1 auf 5.0.0 tritt ein Fehler auf.
- Die Zusammenstellung eines Flusses, der die Transformatorstufe enthält, ist abgelaufen.
- Die Nutzung des temporären lokalen Speichers überschreitet das Gesamtlimit eines Containers.
- Connectors
- Netezza® Connector: Doppelte Datensätze treten auf, wenn partitionierte Lesevorgänge aktiviert sind.
- MySQL Connector: Jobs können fehlschlagen, wenn Sie den Schreibmodus „Update“ für das Ziel ohne Primärschlüssel verwenden.
- FTP-Connector: Der Pfad zum Home-Verzeichnis wird dem Pfad vorangestellt.
- Jobs schlagen mit dem Fehler „Der Connector konnte keine Verbindung zur Db2® Datenbank herstellen“ fehl.
- Job mit Quelldaten aus einem SAP OData Konnektor schlägt fehl
- Transaktionales SQL kann nicht für Daten aus Apache Hive Version 2.0 oder früher ausgeführt werden.
- Db2IBM Die DataStage Verbindung mit dem SSL-Zertifikat schlägt mit dem Fehler „Protokollspezifischer Fehlercode 414” fehl.
- Fehler beim Parametrisieren des Felds „Anmeldeinformationen“ für eine Flussverbindung in IBM Cloud® Object Storage
- PostgreSQL Der Connector läuft bei großen Tabellen ab.
- Jobs mit einer Apache Hive Verbindung, für die die Erkennung ZooKeeper aktiviert ist, schlagen fehl.
- Schemaänderungen, die aus Daten des HTTP Konnektors stammen, können zum Fehlschlagen des Auftrags führen.
- Daten aus dem generischen JDBC Konnektor können nicht in der Vorschau angezeigt werden.
- Es kann keine erfolgreiche Datenbankverbindung unter Verwendung des SSL-Zertifikats hergestellt werden.
- Snowflake Anschluss: Jobs schlagen mit "java/lang/OutOfMemoryError" Fehler fehl
- Snowflake Connector: Jobs schlagen mit der Fehlermeldung „Fork fehlgeschlagen: Ressource vorübergehend nicht verfügbar“ fehl.
- Der Speicher-Volumen-Connector verursacht einen Zeitüberschreitungsfehler, wenn große Datenmengen geschrieben werden.
- Laufzeit
- Große ISX-Importe verursachen Gateway-Zeitüberschreitungen und Kompilierungsfehler.
- Speicherplatzproblem für den DataStage Operator
- Jobs werden in eine Warteschlange gestellt, wenn Compute-Pods nicht gestartet werden können.
- Änderungen am Nachrichtenhandler werden nicht auf einen Joblauf angewendet.
- Jobwarteschlange
- Jobwarteschlange
- Container-Pods neu starten
- Eine PXRruntime-Instanz, die an einem physischen Standort bereitgestellt wird, kann nicht angezeigt werden.
- Keine vorhandenen Jobs bleiben hängen oder werden im Status „Startet“ oder „Läuft“ angezeigt.
- Synchronisationsfehler zwischen Pods mit gemountetem NFS Pfad in PXRuntime
- DataStage Update einschließlich erzwungenem Update wird aufgrund eines festgefahrenen PXRuntime blockiert
- ds-Metriken
- Ausführung von ds-metrics auf FIPS-Clustern für 5.0.3 Version schlägt fehl
- DS-Metriken können nicht aktiviert werden. FIPS-tolerante oder FIPS-fähige Cluster für 5.1.0 Version
Job_run_logspeichert nur Log-Meldungen, die nicht zur INFO-Ebene gehören- Die Metrikdatenbank kann nach dem Löschen des Schemas „ds_metrics“ nicht vollständig gelöscht werden.
- ds-metrics zeigt kurze Fehlermeldungen in den Service-Protokollen an
Allgemein
- Aufträge schlagen mit der Fehlermeldung „Ressource vorübergehend nicht verfügbar“ fehl
-
Jobs können fehlschlagen, wenn die Anzahl der auf einem Pod ausgeführten Prozesse die Grenze für Prozess-IDs überschreitet.
Workaround : Erhöhen Sie das Limit für Prozess-IDs. Weitere Informationen finden Sie unter Ändern der Begrenzung für Prozess-IDsÄndern der Begrenzung für Prozess-IDs.
- Jobs schlagen fehl, weil SQL- und Before SQL-Anweisungen in falscher Reihenfolge ausgeführt werden
Bei dem auf den Teradata ANSI-Transaktionsmodus eingestellten Connector-Set kann die Before-SQL-Anweisung nach der SQL-Anweisung statt davor ausgeführt werden, wodurch der Job fehlschlägt.
Workaround : Fügen Sie nach jeder Before SQL-Anweisung eine Commit-Anweisung hinzu.
- Der Befehl „mailx“ kann in den Unterprogrammen „before-job“ und „after-job“ ohne SMTP-Serverinformationen nicht ausgeführt werden
Wenn der
mailxBefehl in einer Vor- oder Nachbearbeitungsroutine verwendet wird, müssen Sie die SMTP-Serverinformationen angeben, da er sonst die Ausführung ansendmailweiterleitet und fehlschlägt.
- Die Eigenschaftenauswahl wird nicht beibehalten, wenn Sie „Eigenschaften DataStage verwenden“ deaktivieren
Wenn Sie andere Eigenschaften (z. B. für Tabellen oder Schemata) mit der standardmäßig ausgewählten Option „Eigenschaften DataStage verwenden“ eingeben und dann die Option „Eigenschaften DataStage verwenden“ deaktivieren, werden die Eigenschaften nicht beibehalten.
Workaround : Deaktivieren Sie die Standardeinstellung „Eigenschaften DataStage verwenden“, wenn Sie diese nicht verwenden möchten, bevor Sie andere Eigenschaften eingeben. Andernfalls wählen Sie die Eigenschaften erneut aus.
- Die Routine schlägt fehl, wenn die CEL-Funktion auf einen externen ds.getUserStatus Fluss angewendet wird
Wenn die integrierte CEL-Funktion auf einem Ziel
ds.getUserStatusausgeführt wird, das sich nicht in derselben Pipeline befindet, schlägt sie fehl und kann den Benutzerstatus nicht abrufen. Verwenden Sie stattdessen diedsjobCLI in Ihrem Run Bash-Skriptknoten.Ein Beispiel für die Umschreibung finden Sie unter dem
dsjobBefehl, der vonDSGetUserStatus()in Routine replacement examples in DataStage verwendet wird.
- Der Job schlägt beim Laden einer großen Excel-Datei fehl
Ein Job mit einem Konnektor, der eine große Excel-Datei verarbeitet, kann mit folgendem Fehler fehlschlagen:
"CDICO9999E: Internal error occurred: IO error: The Excel file is too large. (error code: DATA_IO_ERROR)"Versuchen Sie, die Heap-Größe zu erhöhen. Die Option „Heap-Größe“ befindet sich im Abschnitt „Weitere Eigenschaften“ auf der Registerkarte „Stufe“ des Connectors.
- Komponente kann nach DataStage Stromausfall nicht hinzugefügt werden
In einigen Fällen kann es bei einem Stromausfall des zugrunde liegenden Systems nach Wiederherstellung der Stromversorgung zu Cloud Pak for Data Fehlern oder anderen Problemen kommen. Zu diesen Problemen gehören beispielsweise Schwierigkeiten beim Hinzufügen einer DataStage Komponente zu einem Projekt. Es können auch andere Probleme auftreten, z. B. dass Seiten nicht geladen werden oder Flows nicht kompiliert werden.
Um die Probleme zu beheben, können Sie versuchen, die DataStage Pods neu zu starten:oc -n ${PROJECT_CPD_INST_OPERANDS} delete pod -l app.kubernetes.io/name=datastage watch "oc get pods -l app.kubernetes.io/name=datastage | grep -v 1/1 | grep -v 2/2 | grep -v Completed"
- Die Zusammenstellung des DataStage Flows schlägt fehl, wenn der Java-Klassenpfad parametrisiert ist
- Wenn Sie die Java-Integrationsstufe verwenden und den Java-Klassenpfad parametrisieren, müssen Sie für jede von der Stufe verwendete JAR-Datei den vollständigen Speicherort der JAR-Datei im Klassenpfad angeben. Sehen Sie sich das folgende Beispiel an:
PARAM_NAME=/ds-storage/projects/<project_id>/java/<JavaLibraryName>/<classLibraryName>
- Exportierte Flows generieren JSON-Verbindungsdateien, die Klartext-Passwörter enthalten
- Heruntergeladene Abläufe können Verbindungsressourcen enthalten, die Anmeldedaten oder andere sensible Informationen enthalten. Sie können den folgenden Befehl ausführen, um das Exportverhalten so zu ändern, dass bei allen zukünftigen Exporten standardmäßig die Anmeldedaten entfernt werden.
oc -n ${PROJECT_CPD_INST_OPERANDS} patch datastage datastage --patch '{"spec":{"migration_export_remove_secrets":true}}' --type=merge
- Probleme beim Durchsuchen von Datenbanktabellen mit Spalten, die Sonderzeichen enthalten
Es können Probleme auftreten, wenn Sie den Asset-Browser zum Durchsuchen von Datenbanktabellen verwenden, die ausgewählte Tabelle eine #Spalte mit Sonderzeichen wie ., $, oder enthält und Sie diese Tabelle zu einem DataStage Flow hinzufügen. DataStage unterstützt keine Spaltennamen, die Sonderzeichen enthalten. DataStage Flows, die auf Spalten mit Namen verweisen, die diese Sonderzeichen enthalten, funktionieren nicht.
Um dieses Problem zu umgehen, erstellen Sie eine Sicht für die Datenbanktabelle und definieren Sie den Spaltennamen in der Ansicht neu. Zum Beispiel:
create view view1 as select column1$ as column1, column2# as column2 ... from tableWenn Sie dann den Asset-Browser verwenden, suchen Sie die Ansicht und fügen Sie sie zum DataStage-Ablauf hinzu.
- Falsche Ableitungen, die einem vom Asset-Browser gelesenen Schema zugewiesen wurden
Der Asset-Browser liest die ersten 1000 Datensätze und leitet das Schema ab, z. B. Spaltenname, Länge, Datentyp und nullfähig, basierend auf diesen ersten 1000 Datensätzen in den Dateien in IBM Cloud Object Storage, Amazon S3, Google Cloud Storage, Azure File Storage, Azure Blob Storage oder dem Azure Data Lake-Service. Beispielsweise könnte der Asset-Browser eine Spalte anhand der ersten 1000 Datensätze als Ganzzahl identifizieren, während spätere Datensätze in der Datei zeigen könnten, dass diese Spalte als varchar Datentyp behandelt werden sollte. In ähnlicher Weise kann der Asset-Browser eine Spalte als varchar(20) ableiten, obwohl spätere Datensätze zeigen, dass die Spalte varchar(100) sein sollte.
Problemumgehung:- Erstellen Sie ein Profil der Quellendaten, um bessere Metadaten zu generieren.
- Ändern Sie alle Spalten in varchar(1024) und grenzen Sie den Datentyp schrittweise ein.
- Sequenzielle Dateien als Quelle verwenden
Um sequenzielle Dateien als Quelle zu verwenden, stellen Sie sicher, dass auf die Quelldatei über das gemountete persistente Volume zugegriffen werden kann.
- Fehler beim Ausführen von Jobs mit einem Dateiformat 'Parquet'
- Möglicherweise erhalten Sie den folgenden Fehler, wenn Sie versuchen, einen Job mit einem Parquet-Dateiformat auszuführen:
Die Datentypen unsigned 32-bit integer( uint32 ) und unsigned 64-bit integer( uint64 ) werden im Parquet-Format, das für alle DataStage Dateikonnektoren verwendet wird, nicht unterstützt.Error: CDICO9999E: Internal error occurred: Illegal state error: INTEGER(32,false) can only annotate INT32.Workaround: Sie müssen unterstützte Datentypen verwenden.
- Migrations-Pod wird wegen Überschreitung seiner temporären Speichergrenzen entfernt
- Während des Imports kann die Pod-Nutzung des temporären lokalen Speichers die Gesamtgrenze der Container überschreiten. Sie empfangen möglicherweise die folgende Nachricht:
Workaround : Um dieses Problem zu vermeiden, müssen Sie das Limit für den temporären Speicher von 4Gi (Standardwert) auf 900Mi erhöhen, indem Sie den folgenden Befehl ausführen:Status: Failed Reason: Evicted Message: Pod ephemeral local storage usage exceeds the total limit of containers 900Mi.oc -n ${PROJECT_CPD_INST_OPERANDS} patch datastage datastage --type merge -p '{"spec": {"custom": {"resources":{"components":{"migration":{"limits":{"ephemeral":"4Gi"}}}}}}}'
- Beim Upgrade von Version Cloud Pak for Data 5.0.1 auf 5.0.0 tritt ein Fehler auf
Dieser Fehler kann auftreten, wenn Sie das Upgrade von Cloud Pak for Data auf 5.0.0 durchführen 5.0.1. Das Upgrade schlägt bei neuen Upgrade-Aufgaben für die Remote-Instanzen fehl.
Workaround: Wenn der DataStage CR während des 5.0.1 Upgrades zwischen InProgress „Failed“ und „“ wechselt, führen Sie die folgenden Schritte aus:- Melden Sie sich beim Cluster Red Hat®OpenShift Container Platform an und
oclegen Sie den Standardprojektpfad auf den Speicherort fest, an Cloud Pak for Data dem installiert ist.oc project $PROJECT_CPD_INST_OPERANDS - Überprüfen Sie, ob die PXRruntime-Instanzen erfolgreich auf Version aktualisiert 5.0.1 wurden.
oc get pxruntime - Wenn das PXRruntime CR nicht erfolgreich auf Version aktualisiert 5.0.1 wurde, führen Sie die folgenden Befehle aus:
echo "Adding installedVersion to DataStage CR" oc patch datastage datastage --type='json' -p='[{"op": "add", "path": "/spec/installedVersion", "value": "5.0.1" }]' while true; do echo "Waiting for DataStage CR to be in Completed state"; sleep 30; if [ $(oc get datastage datastage -o=jsonpath="{.status.dsStatus}") = "Completed" ]; then break; fi; done echo "Removing installedVersion from DataStage CR" oc patch datastage datastage --type='json' -p='[{"op": "remove", "path": "/spec/installedVersion"}]' while true; do echo "Waiting for DataStage CR to be in Completed state"; sleep 30; if [ $(oc get datastage datastage -o=jsonpath="{.status.dsStatus}") = "Completed" ]; then break; fi; done
- Melden Sie sich beim Cluster Red Hat®OpenShift Container Platform an und
- Flows, die die Transformer-Stufe enthalten, laufen während der Kompilierung ab
Beim Kompilieren von Flows, die die Transformatorstufe enthalten, kann es zu einer Zeitüberschreitung kommen.
Standardwert derAPT_COMPILEOPTUmgebungsvariable:-c -O -fPIC -Wno-deprecated -m64 -mtune=generic -mcmodel=smallWorkaround: Deaktivieren Sie die Kompilierungsoptimierung, indem Sie in den Kompilierungsoptionen-O0derAPT_COMPILEOPTUmgebungsvariable auf-Oändern:-c -O0 -fPIC -Wno-deprecated -m64 -mtune=generic -mcmodel=small
- Die Nutzung des temporären lokalen Speichers überschreitet das Gesamtlimit eines Containers
Konnektoren
- Netezza Connector: Doppelte Datensätze treten auf, wenn partitionierte Lesevorgänge aktiviert sind
-
Wenn partitionierte Lesevorgänge auf dem Netezza Connector im parallelen Ausführungsmodus aktiviert sind, können doppelte Datensätze auftreten. Um doppelte Datensätze zu vermeiden, fügen Sie Platzhalter für Partitionen in die SQL ein oder stellen Sie den Ausführungsmodus auf sequenziell ein. Um Platzhalter für Partitionen hinzuzufügen, fügen Sie die Zeichenfolge wie im
mod(datasliceid,[[node-count]])=[[node-number]]folgenden Beispiel hinzu.SELECT * FROM table WHERE mod(datasliceid,[[node-count]])=[[node-number]]
- MySQL Connector: Jobs können fehlschlagen, wenn Sie den Schreibmodus „Update“ für das Ziel ohne Primärschlüssel verwenden
Wenn Sie eine Tabelle in einer MySQL Datenbank erstellen, ohne einen Primärschlüssel in der WHERE-Spalte anzugeben, und dann versuchen, einen Job auszuführen, der diese Tabelle mit dem Schreibmodus „Aktualisieren“ für das Ziel verwendet, schlägt der Job möglicherweise fehl.
Lösung : Geben Sie einen Primärschlüsselnamen im Feld „Schlüsselnamen“ an. Wenn die Tabelle groß ist und keine Primärspalte hat, können Sie eine separate Spalte mit automatisch inkrementierten Werten erstellen, die als Primärschlüssel verwendet werden kann.
- FTP-Connector: Der Pfad zum Home-Verzeichnis wird dem Pfad vorangestellt
Wenn Sie einen Auftrag ausführen, der Daten aus einer FTP-Datenquelle verwendet, wird das Home- oder Anmeldeverzeichnis dem von Ihnen angegebenen Pfad vorangestellt. Diese Aktion wird unabhängig davon ausgeführt, ob Sie einen absoluten Pfad (mit einem führenden Schrägstrich) oder einen relativen Pfad (ohne führenden Schrägstrich) angeben. Wenn Sie beispielsweise das Verzeichnis als angeben, wird der
/tmp/SampleData.txtPfad zu/home/username/tmp/SampleData.txtaufgelöst.Workaround : Bearbeiten Sie den Dateinamen im FTP-Konnektor. Geben Sie den absoluten Pfad zur Quell- oder Zieldatei an.
- Jobs schlagen mit dem Fehler „Der Connector konnte keine Verbindung zur Db2 Datenbank herstellen“ fehl
Jobs können mit der Fehlermeldung „Der Connector konnte keine Verbindung zur Db2 Datenbank herstellen“ fehlschlagen.
Workaround : Gehen Sie zu den Verbindungseigenschaften und setzen Sie die Eigenschaft „Optionen“ auf
connectTimeout=0.
- Job mit Quelldaten aus einem SAP OData Konnektor schlägt fehl
Wenn Ihr Flow Quelldaten aus enthält SAP OData, kann der Flow fehlschlagen, wenn Sie ihn durch manuelles Hinzufügen von Spalten erstellt haben, die nicht der SAP Namenskonvention entsprechen.
Workaround : Aktualisieren Sie den Ablauf, indem Sie die Spalten mit dem Asset-Browser hinzufügen oder die Spalten gemäß der SAP Namenskonvention umbenennen. Die SAP Namenskonvention folgt der SAP Objekthierarchie mit zwei Unterstrichen (
__) als Trennzeichen. Wenn die PurchaseOrder Spalte beispielsweise zu PurchaseOrderNote gehört, sollte der Spaltenname als PurchaseOrderNote__PurchaseOrder angegeben werden.
- Transaktionales SQL kann nicht für Daten aus Apache Hive Version 2.0 oder früher ausgeführt werden
Wenn Ihre Daten aus Apache Hive der Version 2.0 oder einer früheren Version stammen und Ihr DataStage Flow UPDATE- oder DELETE-Anweisungen ausführt, kann der Job fehlschlagen. Stellen Sie sicher, dass die Zieltabelle gemäß den Hive Transaktionsanforderungen erstellt wurde und dass der Apache Hive Server so konfiguriert ist, dass er ACID-Operationen unterstützt.
Die Mindestanzahl an Parametern (konfiguriert in der hive-site.xml Datei), die Sie für ACID-Tabellen in aktivieren Apache Hive müssen, lautet:
hive.support.concurrency = true hive.enforce.bucketing = true (not required as of Hive 2.0) hive.exec.dynamic.partition.mode = nonstrict hive.txn.manager = org.apache.hadoop.hive.ql.lockmgr.DbTxnManager hive.compactor.initiator.on = true hive.compactor.worker.threads = <a positive number>Weitere Informationen finden Sie unter „ Hive -Transaktionen “.
- Db2IBM Die DataStage Verbindung mit dem SSL-Zertifikat schlägt mit dem Fehler „Protokollspezifischer Fehlercode 414” fehl
Wenn Sie ein SSL-Zertifikat für IBMDb2 die DataStage Verbindung verwenden und die Verbindung mit dem Fehler „Protokollspezifischer Fehlercode 414” fehlschlägt, verwenden Sie diese Problemumgehung:
- Identifizieren Sie das Stammzertifikat auf dem Db2 Server. Mit diesem Befehl können Sie die Zertifikatskette anzeigen:
openssl s_client -connect <hostname>:<port> -showcerts - Stellen Sie sicher, dass das Zertifikat denselben Betreff und Aussteller hat.
- Geben Sie auf der Seite „Verbindung erstellen DataStage : Db2IBMIBM für “ das Stammzertifikat in das Feld „SSL-Zertifikat (arm) “ ein.
- Identifizieren Sie das Stammzertifikat auf dem Db2 Server. Mit diesem Befehl können Sie die Zertifikatskette anzeigen:
- Fehler beim Parametrisieren des Felds „Anmeldeinformationen“ für eine Flussverbindung in IBM Cloud Object Storage
Wenn die Eigenschaft „Authentifizierungsmethode“ auf „Dienstanmeldeinformationen (vollständiger JSON-Ausschnitt)“ gesetzt ist, parametrisieren Sie das Feld „Dienstanmeldeinformationen“ nicht. Wenn für dieses Feld ein Parameter angegeben wird, wird der Ablauf nicht kompiliert.
- PostgreSQL Der Connector läuft bei großen Tabellen ab
Der PostgreSQL Connector kann mit einem Timeout-Fehler ausfallen, wenn eine große Tabelle (über 100.000 Zeilen) als Quelle verwendet wird. Um diesen Fehler zu beheben, versuchen Sie, einen höheren Zeitüberschreitungswert für die Umgebungsvariable APT_RECORD_TIMEOUT festzulegen. Siehe „Verwalten von Umgebungsvariablen“ unter DataStage.
- Jobs mit einer Apache Hive Verbindung, für die die Erkennung ZooKeeper aktiviert ist, schlagen fehl
Wenn Ihr DataStage Flow Daten aus einer Apache Hive Verbindung enthält und Sie für die Verbindung die Option ZooKeeper „Erkennung verwenden“ ausgewählt haben, kann der Flow aufgrund zu vieler Warnungen fehlschlagen.
Workaround : Erhöhen Sie die Anzahl der zulässigen Warnungen im DataStage Ablauf. Gehen Sie zu . Dann kompilieren Sie den Auftrag neu.
- Schemaänderungen, die aus Daten des HTTP Konnektors stammen, können zum Fehlschlagen des Auftrags führen
Wenn Sie den HTTP Connector zum Herunterladen einer Datei verwenden und anschließend dieselbe Datei in IBM Cloud Object Storage oder eine Datenbank hochladen, kann der Auftrag fehlschlagen, wenn sich das Schema der Datei im Laufe der Zeit ändert.
Workaround : Erstellen Sie die Bühne neu.
- Daten aus dem generischen JDBC Konnektor können nicht in der Vorschau angezeigt werden
Wenn Ihr DataStage Flow den generischen JDBC Konnektor als Ziel verwendet, können Sie keine Vorschau der Daten für die folgenden Datenquellen in der generischen JDBC Verbindung anzeigen:
Anbieter:
- Amazon Redshift
- Apache Hive
- MongoDB
- MySQL
Cloud Pak for Data Verbindungen:
- Amazon Redshift
- Oracle
Workaround für die Datenquellen außer Amazon Redshift (Anbieter oder Cloud Pak for Data Verbindung) : Wählen Sie in der Zielstufe unter den Stufeneigenschaften die Option „Quotierte Bezeichner aktivieren“ aus.
- Es kann keine erfolgreiche Datenbankverbindung unter Verwendung des SSL-Zertifikats hergestellt werden.
- Snowflake Anschluss: Jobs schlagen mit "java/lang/OutOfMemoryError" Fehler fehl
- Snowflake Connector: Jobs schlagen mit der Fehlermeldung „Fork fehlgeschlagen: Ressource vorübergehend nicht verfügbar“ fehl
- Der Speicher-Volumen-Connector verursacht einen Zeitüberschreitungsfehler, wenn große Datenmengen geschrieben werden
Laufzeit
- Große ISX-Importe verursachen Gateway-Zeitüberschreitungen und Kompilierungsfehler
Das Importieren einer großen ISX-Datei kann zu Gateway-Zeitüberschreitungsfehlern führen, und das Importieren einer Datei mit vielen Build-Stufen kann aufgrund fehlender Ressourcen zu Kompilierungsfehlern führen.
Workaround : Ändern Sie die Konfigurationen für DataStage und,
px-runtimeum mehr Ressourcen zuzuweisen. Siehe die folgenden empfohlenen benutzerdefinierten Konfigurationen.Weitere Informationen finden Sie unter Ressourcen anpassen.
Weitere Informationen finden Sie unter „Anpassen von Ressourcen in DataStage.“
Bearbeiten Sie die DataStage benutzerdefinierte Ressource, um die Migrationsressourcen zu ändern:
Fügen Sie im Abschnitt „spec:“ der YAML-Datei den folgenden Inhalt hinzu:oc edit datastage datastage -n ${PROJECT_CPD_INST_OPERANDS}spec: custom: resources: components: migration: replicas: 1 limits: cpu: "6" memory: 20Gi requests: cpu: "2" memory: 6GiAktualisieren Sie die PXRuntime-Ressourcen:# retrieve pxruntime cr oc -n ${PROJECT_CPD_INST_OPERANDS} get pxruntimeBearbeiten Sie die benutzerdefinierte Ressource:oc -n ${PROJECT_CPD_INST_OPERANDS} edit pxruntime <cr-name>Fügen Sie im Abschnitt „spec:“ der YAML-Datei den folgenden Inhalt hinzu:spec: custom: resources: components: pxruntime: limits: cpu: "4" memory: 8Gi requests: cpu: "2" memory: 2Gi
- Speicherplatzproblem für den DataStage Operator
Wenn mehr als 5 PX-Laufzeitinstanzen auf dem Cluster bereitgestellt werden, kann es vorkommen, dass dem Betreiber der Arbeitsspeicher ausgeht. Um dieses Problem zu beheben, aktualisieren Sie die CSV-Datei, um die Speichergrenzen zu erhöhen:
CSV DataStage abrufen:oc -n ${PROJECT_CPD_INST_OPERATORS} oc get csv | grep datastagePatch die DataStage CSV-Datei, um den Arbeitsspeicher des Betreibers von 1Gi auf 2Gi:oc -n ${PROJECT_CPD_INST_OPERATORS} patch csv <DataStage-CSV-name> --type='json' -p='[{"op": "replace", "path": "/spec/install/spec/deployments/0/spec/template/spec/containers/0/resources/limits/memory", "value": "2Gi" }]'
- Jobs werden in eine Warteschlange gestellt, wenn Compute-Pods nicht gestartet werden können
Wenn die Compute-Pods der Laufzeitinstanz nicht starten, werden alle Jobs auf dem px-runtime-Pod ausgeführt. Ressourcenbeschränkungen führen dazu, dass Aufträge in eine Warteschlange gestellt werden.
Workaround: Beheben Sie alle Probleme, die den Start der Compute-Pods verhindern.
- Änderungen am Nachrichtenhandler werden nicht auf einen Joblauf angewendet
-
Der Nachrichtenhandler wird nach dem Abruf für 3 Minuten zwischengespeichert. Sofortige Änderungen am Nachrichtenhandler haben keine Auswirkungen auf die Jobausführung.
Workaround : Warten Sie einige Minuten, bevor Sie den Auftrag ausführen.
- Jobwarteschlange
Wenn Sie einen Auftrag einreichen, wird dieser möglicherweise nicht sofort gestartet. Stattdessen erhält es einen Wartestatus. Auf diese Weise verwaltet das System Ressourcen und priorisiert Aufgaben.
Warum läuft Ihr Job in der Warteschlange?Workaround: Der DataStage Workload Manager (WLM) wird mit einer Standardkonfiguration ausgeliefert, die die gleichzeitige Ausführung von 5 Jobs ermöglicht. Wenn Sie über mehr Ressourcen verfügen, sollten Sie pxruntime auf eine größere Instanz skalieren. Weitere Informationen finden Sie unter Anpassen der Hardwarekonfigurationen für DataStage Service-Instanzen mit der Befehlszeile. Nach einer Änderung der Skalierungskonfiguration sollten Sie auch die WLM-Konfigurationsdatei ändern, damit mehr Jobs gleichzeitig ausgeführt werden können. Wenn mehr gleichzeitige Jobs erforderlich sind, sollten Sie die RunJob Einstellungen in der XML-Datei aktualisieren.Grund Beschreibung Ressourcenbeschränkungen Ihr Job wartet darauf, dass die erforderlichen Ressourcen (CPU, GPU, Speicher) verfügbar werden. Das passiert, wenn: - Andere Jobs nutzen die gesamte verfügbare Kapazität.
- Für Ihre Aufgabe sind mehr Ressourcen erforderlich, als derzeit verfügbar sind.
Gleichzeitigkeitsbeschränkungen Einige Systeme beschränken die Anzahl der Jobs, die gleichzeitig ausgeführt werden können. Ihr Auftrag wird in die Warteschlange gestellt, bis andere Aufträge abgeschlossen sind. Priorität und Zeitplanung Aufträge mit niedrigerer Priorität können in die Warteschlange gestellt werden, während Aufträge mit höherer Priorität zuerst ausgeführt werden. Wartung oder Ausfallzeit Das System wird möglicherweise gerade gewartet oder aktualisiert, wodurch die verfügbare Kapazität reduziert wird oder die Ausführung von Aufträgen unterbrochen wird. Warteschlangenrückstand Hoher Datenverkehr oder eine große Anzahl eingereichter Aufträge können zu einem Rückstau führen. Die Jobs beginnen, wenn die vorherigen Jobs abgeschlossen sind.
- Jobwarteschlange
Wenn Sie einen Auftrag einreichen, wird dieser möglicherweise nicht sofort gestartet. Stattdessen erhält es einen Wartestatus. Auf diese Weise verwaltet das System Ressourcen und priorisiert Aufgaben.
Warum läuft Ihr Job in der Warteschlange?Grund Beschreibung Ressourcenbeschränkungen Ihr Job wartet darauf, dass die erforderlichen Ressourcen (CPU, GPU, Speicher) verfügbar werden. Das passiert, wenn: - Andere Jobs nutzen die gesamte verfügbare Kapazität.
- Für Ihre Aufgabe sind mehr Ressourcen erforderlich, als derzeit verfügbar sind.
Gleichzeitigkeitsbeschränkungen Einige Systeme beschränken die Anzahl der Jobs, die gleichzeitig ausgeführt werden können. Ihr Auftrag wird in die Warteschlange gestellt, bis andere Aufträge abgeschlossen sind. Priorität und Zeitplanung Aufträge mit niedrigerer Priorität können in die Warteschlange gestellt werden, während Aufträge mit höherer Priorität zuerst ausgeführt werden. Wartung oder Ausfallzeit Das System wird möglicherweise gerade gewartet oder aktualisiert, wodurch die verfügbare Kapazität reduziert wird oder die Ausführung von Aufträgen unterbrochen wird. Warteschlangenrückstand Hoher Datenverkehr oder eine große Anzahl eingereichter Aufträge können zu einem Rückstau führen. Die Jobs beginnen, wenn die vorherigen Jobs abgeschlossen sind. Lösung: Der DataStage Workload Manager (WLM) wird mit einer Standardkonfiguration ausgeliefert, die die gleichzeitige Ausführung von 5 Jobs ermöglicht. Wenn Sie über mehr Ressourcen verfügen, sollten Sie pxruntime auf eine größere Instanz skalieren. Weitere Informationen finden Sie unter Anpassen der Hardwarekonfigurationen für DataStage Serviceinstanzen mit der BefehlszeileAnpassen der Hardwarekonfigurationen für Serviceinstanzen mit der Befehlszeile DataStage. Nach der Änderung der Skalierungskonfiguration ist es wichtig, die WLM-Konfigurationsdatei zu aktualisieren, um die gleichzeitige Ausführung mehrerer Jobs zu ermöglichen. Wenn Sie also weitere gleichzeitige Jobs ausführen müssen, passen Sie die RunJob Einstellungen in der XML-Datei entsprechend an.
- Container-Pods neu starten
- Wenn Sie feststellen, dass Compute-Pods unterschiedliches Alter haben, sollten Sie jüngere Container als kürzlich neu gestartet betrachten.
ds-px-default-ibm-datastage-px-compute-0 1/1 Running 0 169m ds-px-default-ibm-datastage-px-compute-1 1/1 Running 0 5h51m ds-px-default-ibm-datastage-px-compute-2 1/1 Running 0 2d7hWorkaround: Der Neustart des Containers kann zu einigen Jobfehlern führen. Beispielsweise kann die folgende Fehlermeldung im Auftragsprotokoll angezeigt werden:##I IIS-DSEE-TLCP-00013 2024-06-19 01:53:18(000) <main_program> SSLConnection(16252672:411,248): Error from SSL read bytesRead=0 ssl_error=5 ssl_error_string= errno=0 errno_string=Success ##E IIS-DSEE-TFPM-00330 2024-06-19 01:53:18(001) <main_program> The Section Leader on node node4 has terminated unexpectedly. ##I IIS-DSEE-TLCP-00013 2024-06-19 01:53:18(002) <main_program> SSLConnection(15598048:411,248): Error from SSL read bytesRead=-1 ssl_error=5 ssl_error_string= errno=104 errno_string=Connection reset by peer ##E IIS-DSEE-TFPM-00330 2024-06-19 01:53:18(003) <main_program> The Section Leader on node node2 has terminated unexpectedly. ##I IIS-DSEE-TLCP-00013 2024-06-19 01:53:18(004) <main_program> SSLConnection(16202192:411,248): Error from SSL read bytesRead=-1 ssl_error=5 ssl_error_string= errno=104 errno_string=Connection reset by peer ##E IIS-DSEE-TFPM-00330 2024-06-19 01:53:18(005) <main_program> The Section Leader on node node3 has terminated unexpectedly. ##W IIS-DSEE-TFPM-00647 2024-06-19 01:53:23(000) <main_program> APT_PMwaitForSectionLeadersCleanup: non-zero status 2 from APT_PMpollUntilZero. If this message persists try increasing the poll timeout seconds by setting APT_PM_CLEANUP_TIMEOUT. ##I IIS-DSEE-TFSR-00115 2024-06-19 01:53:28(000) <main_program> Starting job postRunDer Container wird aus verschiedenen Gründen neu gestartet, zum Beispiel:- Es werden zu viele Aufträge gleichzeitig ausgeführt. Der Container verfügt über keinen CPU-Zyklus, um auf OpenShift die Zustandsabfrage zu reagieren. Sie können dies feststellen, indem Sie ausführen
oc adm top pods | grep -i datastageund die CPU-Auslastung überprüfen. Wenn die CPU-Auslastung sehr hoch ist, müssen Sie mehr Ressourcen hinzufügen oder die Parallelität in wlm.config.xml. - Die Ausführung eines großen Auftrags beansprucht den gesamten verfügbaren Speicher. Dies führt dazu, dass der Container in OOMKilled läuft. Sie können dies erkennen, indem Sie die Ausgabe von
oc get events | grep -i OOManalysieren. - Der temporäre Speicher ist aufgebraucht. Standardmäßig sind temporärer Speicher und Rechen-Pods in pxruntime cr auf begrenzt 10GB. Siehe:
[root@solo1 761]# oc get pxruntime -o yaml apiVersion: v1 items: - apiVersion: ds.cpd.ibm.com/v1 kind: PXRuntime metadata: annotations: ansible.sdk.operatorframework.io/verbosity: "3" kubectl.kubernetes.io/last-applied-configuration: | {"apiVersion":"ds.cpd.ibm.com/v1","kind":"PXRuntime","metadata":{"annotations":{"ansible.sdk.operatorframework.io/verbosity":"3"},"name":"ds-px-default","namespace":"ds"},"spec":{"description":"The default DataStage runtime instance","ephemeralStorageLimit":"10Gi","license":{"accept":true},"parameters":{"scaleConfig":"small","storageClass":"nfs-client"},"version":"5.0.0","zenCloudPakInstanceId":"dda5c8d1-9e57-472b-90b9-ce27adbe28ea","zenControlPlaneNamespace":"ds","zenServiceInstanceId":1715711527523198,"zenServiceInstanceNamespace":"ds","zenServiceInstanceOwnerUID":1000331001}} creationTimestamp: "2024-05-14T18:32:08Z" finalizers: - ds.cpd.ibm.com/finalizer generation: 50 name: ds-px-default namespace: ds resourceVersion: "38308991" uid: e9d537c6-5d6b-459a-8ea4-dc7fe4c9b5d5 spec: additional_storage: - mount_path: /mnts/pipline pvc_name: volumes-pipline-pvc - mount_path: /mnts/user-ing-flows pvc_name: volumes-user-ing-flows-pvc description: The default DataStage runtime instance ephemeralStorageLimit: 10GiWenn Sie die Begrenzung für temporären Speicher entfernen oder auf einen höheren Wert ändern möchten, führen Sie
oc edit pxruntimeoder ausoc edit sts ds-px-default-ibm-datastage-px-compute. Wenn Sie über weitere DataStage Laufzeitinstanzen verfügen, müssen Sie dieselben Änderungen auch an diesen Instanzen vornehmen.Migrationsdienste können mit ähnlichen Problemen konfrontiert sein. Um das Problem zu beheben, führen Sie aus
oc edit deployment datastage-ibm-datastage-migrationund ändern Sie dannephemeral-storage: 4Gi, um mehr Platz zu schaffen. - Es werden zu viele Aufträge gleichzeitig ausgeführt. Der Container verfügt über keinen CPU-Zyklus, um auf OpenShift die Zustandsabfrage zu reagieren. Sie können dies feststellen, indem Sie ausführen
- Eine PXRuntime-Instanz, die an einem physischen Standort bereitgestellt wird, kann nicht angezeigt werden
Beim Bereitstellen der Remote-Datenebene auf den Clustern kann es vorkommen, dass die PXRruntime-Instanz, die am physischen Standort bereitgestellt wurde, nicht angezeigt wird. Das passiert, weil die Verbindung geschlossen wird, bevor die Anfrage abgeschlossen ist.
Workaround: Die Timeout-Einstellung für den Load Balancer muss erhöht werden. Weitere Informationen finden Sie unter: Ändern der Timeout-Einstellungen für den Load BalancerÄndern der Timeout-Einstellungen für den Load Balancer.
- Jobs bleiben hängen, nicht vorhandene Jobs werden im Status „Startet/Läuft“ angezeigt
- Wenn Ihre veralteten Jobs ausgeführt werden, kann es zu Problemen beim Löschen dieser Jobs über die Benutzeroberfläche kommen. Bei den Projekten kann ein ähnliches Problem auftreten, da sie möglicherweise Ressourcen (z. B. Speicher) beanspruchen. Um diese Prozesse zu bereinigen, verwenden Sie einen der folgenden Befehle:
cpdctl asset delete --asset-id ASSET-ID --purge-on-delete=true`cpdctl dsjob jobrunclean {{--project PROJECT | --project-id PROJID} | {--space SPACE | --space-id SPACEID}} {--name NAME | --id ID} [--run-id RUNID] [--dry-run] [--threads n] [--all-spaces] [--before YYYY-MM-DD:hh:mm:ss]Hinweis: Mit diesen Befehlen werden alle aktiven Aufträge in einem Projekt gelöscht. Stellen Sie sicher, dass keine neuen Aufträge mehr ausgeführt werden.
- Synchronisationsfehler zwischen Pods mit gemountetem NFS Pfad in PXRuntime
- DataStage Update einschließlich erzwungenem Update wird aufgrund eines festgefahrenen PXRuntime blockiert
ds-metrics
- Ausführung
ds-metricsauf FIPS-Clustern für 5.0.3 Version schlägt fehl - Wenn ein Job zum ersten Mal ausgeführt wird, schlägt die Datenbankinitialisierung auf einem FIPS-Cluster fehl.
ds-metricszeigt den folgenden Fehler in den Protokollen an:
Dieser Fehler führt dazu, dass die Datenbank mit Verbindungen überfüllt wird und der Benutzer ausgesperrt wird. Wenn Sie sich erneut bei der Datenbank anmelden, wird die folgende Fehlermeldung angezeigt:java.lang.NoClassDefFoundError: liquibase.snapshot.SnapshotIdService (initialization failure) liquibase.exception.UnexpectedLiquibaseException: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: MD5, provider: SUN, class: sun.security.provider.NativeMD5) java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: MD5, provider: SUN, class: sun.security.provider.NativeMD5) java.security.ProviderException: Error in Native DigestFATAL: remaining connection slots are reserved for non-replication superuser connectionsProblemumgehung:- Öffnen Sie das Projekt, in dem Sie Ihre Datenbank-Anmeldedaten verwenden, und entfernen Sie die Anmeldedaten.
- Deaktivieren Sie die Option „Metriken aktivieren“ und speichern Sie Ihre Änderungen.
- Neustart
ds-metricsdurch Löschen der Pods.
- Kann nicht auf FIPS-toleranten oder FIPS-fähigen
ds-metricsClustern für 5.1.0 Version aktiviert werden ds-metricszeigt den folgenden Fehler in den Protokollen an:java.lang.NoClassDefFoundError: liquibase.snapshot.SnapshotIdService (initialization failure) liquibase.exception.UnexpectedLiquibaseException: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: MD5, provider: SUN, class: sun.security.provider.NativeMD5) java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: MD5, provider: SUN, class: sun.security.provider.NativeMD5) java.security.ProviderException: Error in Native DigestWorkaround: Initialisieren Sie Ihre Datenbank und konfigurieren Sie sie
ds-metricsüber Umgebungsvariablen. Weitere Informationen zum Aktivierends-metricsfinden Sie unter Speichern und Beibehalten von MetrikenSpeichern und Beibehalten von Metriken.
Job_run_logspeichert nur Log-Meldungen, die nicht zur INFO-Ebene gehören- Workaround : Setzen Sie die Umgebungsvariable METRICS_SEND_FULL_LOG in der
truepx-runtime-Instanz auf. Wenn die Variable auftruegesetzt ist, wird das vollständige Job-Ausführungsprotokoll an Metriken gesendet und in derjob_run_logTabelle gespeichert. Um die Umgebungsvariable festzulegen, siehe Speichern und Beibehalten von MetrikenKonfigurieren zusätzlicher Einstellungen für ds-metrics in einer PX-Laufzeitinstanz.
- Die Metrikdatenbank kann nach dem Löschen des Schemas „ds-metrics“ nicht vollständig bereinigt werden
- Wenn Sie die Datenbank löschen möchten, die
ds-metricsmit initialisiert wurde, müssen Sie die Tabellendatabasechangelogdatabasechangeloglockund impublicStandard-Schema löschen.Workaround : Verwenden Sie den folgenden Befehl, um die Metrikdatenbank zu löschen:drop schema if exists ds_metrics cascade; drop table if exists public.databasechangelog; drop table if exists public.databasechangeloglock;
ds-metricszeigt kurze Fehlermeldungen in den Serviceprotokollen an- Zu Beginn eines Auftragsauslaufs können Fehlermeldungen auftreten, zum Beispiel:
org.hibernate.engine.jdbc.spi.SqlExceptionHelper E logExceptions Batch entry 0 /* insert for com.ibm.ds.metrics.api.models.JobRun */insert into ds_metrics.job_run (conductor_pid,config_file,controller_id,create_time,duration,instance_id,job_id,last_update_time,partition,queue_name,run_name,run_status,start_time,stop_time,user_status,run_id) values ((NULL),(NULL),(NULL),('2024-10-02 17:54:56.52134+00'),(NULL),('ds-px-default'),('324cac2e-8eac-4452-af75-81ee357fcb82'),('2024-10-02 17:54:56.521442+00'),('2'::int4),('Medium'),('name'),(NULL),(NULL),(NULL),(NULL),('00b84b48-47ea-4a6e-9343-1ed68afb7179')) was aborted: ERROR: duplicate key value violates unique constraint "job_run_pkey" Detail: Key (run_id)=(00b84b48-47ea-4a6e-9343-1ed68afb7179) already exists. Call getNextException to see other errors in the batch.Workaround :
ds-metricsbehandelt die Fehler, die ignoriert werden können.