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
Connectors
Laufzeit
ds-Metriken

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 mailx Befehl in einer Vor- oder Nachbearbeitungsroutine verwendet wird, müssen Sie die SMTP-Serverinformationen angeben, da er sonst die Ausführung an sendmail weiterleitet 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.getUserStatus ausgeführt wird, das sich nicht in derselben Pipeline befindet, schlägt sie fehl und kann den Benutzerstatus nicht abrufen. Verwenden Sie stattdessen die dsjob CLI in Ihrem Run Bash-Skriptknoten.

Ein Beispiel für die Umschreibung finden Sie unter dem dsjob Befehl, der von DSGetUserStatus() 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 table

Wenn 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:
Error: CDICO9999E: Internal error occurred: Illegal 
state error: INTEGER(32,false) can only annotate INT32.
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.

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:

Status: Failed
Reason: Evicted
Message: Pod ephemeral local storage usage exceeds the total limit of containers 900Mi.
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:

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:
  1. Melden Sie sich beim Cluster Red Hat®OpenShift Container Platform an und oc legen Sie den Standardprojektpfad auf den Speicherort fest, an Cloud Pak for Data dem installiert ist.
    oc project $PROJECT_CPD_INST_OPERANDS
  2. Überprüfen Sie, ob die PXRruntime-Instanzen erfolgreich auf Version aktualisiert 5.0.1 wurden.
    oc get pxruntime
  3. 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
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 der APT_COMPILEOPT Umgebungsvariable:
-c -O -fPIC -Wno-deprecated -m64 -mtune=generic -mcmodel=small
Workaround: Deaktivieren Sie die Kompilierungsoptimierung, indem Sie in den Kompilierungsoptionen -O0 der APT_COMPILEOPT Umgebungsvariable 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

Das Überschreiten des temporären lokalen Speichers kann zu einer unerwarteten Beendigung eines Rechen-Pods und zum Fehlschlagen mehrerer Jobs führen.

Workaround: Überprüfen Sie die Nutzung Ihres temporären Speichers mit den folgenden Befehlen:
$ oc get nodes                                                                                         
NAME                                   STATUS   ROLES                  AGE    VERSION
master0.tahoetest882.cp.fyre.ibm.com   Ready    control-plane,master   220d   v1.28.15+ff493be
master1.tahoetest882.cp.fyre.ibm.com   Ready    control-plane,master   220d   v1.28.15+ff493be
master2.tahoetest882.cp.fyre.ibm.com   Ready    control-plane,master   220d   v1.28.15+ff493be
worker0.tahoetest882.cp.fyre.ibm.com   Ready    worker                 219d   v1.28.15+ff493be
worker1.tahoetest882.cp.fyre.ibm.com   Ready    worker                 219d   v1.28.15+ff493be
worker2.tahoetest882.cp.fyre.ibm.com   Ready    worker                 219d   v1.28.15+ff493be
worker3.tahoetest882.cp.fyre.ibm.com   Ready    worker                 219d   v1.28.15+ff493be
worker4.tahoetest882.cp.fyre.ibm.com   Ready    worker                 219d   v1.28.15+ff493be
$ oc get --raw "/api/v1/nodes/worker0.tahoetest882.cp.fyre.ibm.com/proxy/stats/summary"
... 
  "ephemeral-storage": {
    "time": "2025-03-06T21:48:21Z",
    "availableBytes": 71087955968,
    "capacityBytes": 267830407168,
    "usedBytes": 408403968,
    "inodesFree": 125135426,
    "inodes": 130809280,
    "inodesUsed": 3288
   },
Weitere Informationen zum temporären Speicher finden Sie unter Ändern der Begrenzung für den temporären Speicher.

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:

  1. Identifizieren Sie das Stammzertifikat auf dem Db2 Server. Mit diesem Befehl können Sie die Zertifikatskette anzeigen:
    openssl s_client -connect <hostname>:<port> -showcerts
  2. Stellen Sie sicher, dass das Zertifikat denselben Betreff und Aussteller hat.
  3. Geben Sie auf der Seite „Verbindung erstellen DataStage : Db2IBMIBM für “ das Stammzertifikat in das Feld „SSL-Zertifikat (arm) “ ein.
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 Einstellungen > Ausführen > Warnungen. 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.

Die OpenSSL3.0.9 Version erlaubt keine Verwendung schwacher Verschlüsselungsalgorithmen bei der Generierung des SSL-Zertifikats. Wenn das ValidateServerCertificate Attribut (VSC) auf 0gesetzt ist, behandelt die Verbindung das Zertifikat als ungültig. Der Wert muss auf gesetzt 1 werden, um eine Verbindung herzustellen.

Workaround : Generieren Sie ein neues SSL-Zertifikat mit starken Verschlüsselungen unter Verwendung OpenSSL3.0.x der Version.
  1. Überprüfen Sie die Verschlüsselungen in Ihrem SSL-Zertifikat mit dem folgenden Befehl. Wenn das Zertifikat den sha1WithRSAEncryption Signaturalgorithmus verwendet, wird es als schwache Verschlüsselung angesehen:
    openssl x509 -in cert.pem -text -noout
  2. Generieren Sie das SSL-Zertifikat mit dem folgenden Befehl:
    openssl.exe pkcs12 -in certificate_name -export -out truststore_filename -nokeys -keypbe cryptographic_algorithm -certpbe cryptographic_algorithm -password pass:truststore_password -nomac
Snowflake Anschluss: Jobs schlagen mit "java/lang/OutOfMemoryError" Fehler fehl
Das Protokoll zeigt die folgende Fehlermeldung an:
java/lang/OutOfMemoryError", exception "Failed to create a thread: retVal -1073741830, errno 11"

Workaround : Erhöhen Sie die Heap-Größe auf der Registerkarte „Ausgabe“ oder „Eingabe“ für Ihren Snowflake Connector.

Snowflake Connector: Jobs schlagen mit der Fehlermeldung „Fork fehlgeschlagen: Ressource vorübergehend nicht verfügbar“ fehl
Das Protokoll zeigt die folgenden Fehlernachrichten an:
<SCLoadAudIdLd.sf_write__JOB_EXECUTION_LOG__Ins,1> Error: Unable to create iprofiler thread11/6/2024 06:13:03 WARNING IIS-DSEE-USBP-00002 <Sf_STG_VEH_ALFA,0> Error: Unable to create iprofiler thread
und
WARNING IIS-DSEE-USBP-00002 <sc_AFT_COST_CENTRE_CD.sf_write__AUTO_FINANCE_TYPE__Ins,1>
Type=Segmentation error vmState=0x00000000
WARNING IIS-DSEE-USBP-00002 <sc_AFT_COST_CENTRE_CD.sf_write__AUTO_FINANCE_TYPE__Ins,1> J9Generic_Signal_Number=00000018 Signal_Number=0000000b Error_Value=00000000 Signal_Code=00000001

Workaround : Erhöhen Sie die PID-Limits innerhalb des OpenShift Clusters. Setzen Sie podsPIDLimit auf 16,384, den Maximalwert für PID-Grenzwerte. Informationen zum Erhöhen der PID-Limits finden Sie im Kundenportal „ Red Hat “.

Der Speicher-Volumen-Connector verursacht einen Zeitüberschreitungsfehler, wenn große Datenmengen geschrieben werden

Die Dateien werden erfolgreich auf dem Speichermedium erstellt, aber es tritt ein Zeitüberschreitungsfehler auf.

Workaround : Mounten Sie das PVC auf die PX-Laufzeitinstanz und verwenden Sie den sequenziellen Dateikonnektor, um direkt in das gemountete PV zu schreiben, anstatt die Speicher-Volume-Verbindung zu verwenden.

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-runtime um 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:

oc edit datastage datastage -n ${PROJECT_CPD_INST_OPERANDS}
Fügen Sie im Abschnitt „spec:“ der YAML-Datei den folgenden Inhalt hinzu:


spec:
  custom:
    resources:
      components: 
        migration:
          replicas: 1
          limits:
            cpu: "6"
            memory: 20Gi
          requests:
            cpu: "2"
            memory: 6Gi
Aktualisieren Sie die PXRuntime-Ressourcen:
# retrieve pxruntime cr
oc -n ${PROJECT_CPD_INST_OPERANDS} get pxruntime
Bearbeiten 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 datastage
Patch 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?
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.
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.
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               2d7h
Workaround: 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 postRun
Der 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 datastage und 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: 10Gi

Wenn Sie die Begrenzung für temporären Speicher entfernen oder auf einen höheren Wert ändern möchten, führen Sie oc edit pxruntimeoder aus oc 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 dann ephemeral-storage: 4Gi , um mehr Platz zu schaffen.

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

Wenn Sie für die Speicherung NFS verwenden, kann es zu Synchronisierungsproblemen kommen, wenn ein Rechen-Pod eine Datei in einen NFS -gemounteten Pfad schreibt und ein anderer Rechen-Pod die Datei sofort liest. Obwohl die Datei im NFS Pfad vorhanden ist, schlagen Lesevorgänge aufgrund der verzögerten Sichtbarkeit über Pods hinweg manchmal fehl.

Workaround: Fügen Sie den actimeo=0 Parameter zur Konfiguration des persistenten Volumes (PV) hinzu.

cat <<EOF |oc apply -f -
apiVersion: v1
kind: PersistentVolume
metadata:
  name: sample-nfs-pv
spec:
  capacity:
    storage: 100Gi
  accessModes:
  - ReadWriteMany
  mountOptions:
  - actimeo=0
  nfs:
    path: /data/sample-pv    # all worker nodes on the cluster should be allowed 
    server: <NFS server IP>  # to mount the path specified on the NFS server
  persistentVolumeReclaimPolicy: Retain
EOF 

Weitere Informationen finden Sie unter Einrichten eines NFS Mounts.

DataStage Update einschließlich erzwungenem Update wird aufgrund eines festgefahrenen PXRuntime blockiert

Das Upgrade-Problem tritt auf, wenn auf parameters.scaleConfig „benutzerdefiniert” gesetzt ist und gleichzeitig der Skalierungsbereich festgelegt ist. Bei der Unterstützung für benutzerdefinierte Größen erwartet der Operator, wenn auf scaleConfig „benutzerdefiniert” gesetzt ist, dass auch andere Parameter wie parameters.conductorCpus und gesetzt parameters.conductorMemory werden. Wenn die definierten Werte der Parameter niedriger sind als die im scale Abschnitt definierte Anforderung, schlägt der Upgrade-Vorgang fehl, wodurch der hängen px-runtime bleibt.

Workaround : Ändern Sie parameters.scaleConfig in large und entfernen Sie die benutzerdefinierten Ressourcenparameter.

ds-metrics

Ausführung ds-metrics auf 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-metrics zeigt 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 Digest
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:
FATAL: remaining connection slots are reserved for non-replication superuser connections
Problemumgehung:
  1. Öffnen Sie das Projekt, in dem Sie Ihre Datenbank-Anmeldedaten verwenden, und entfernen Sie die Anmeldedaten.
  2. Deaktivieren Sie die Option „Metriken aktivieren“ und speichern Sie Ihre Änderungen.
  3. Neustart ds-metrics durch Löschen der Pods.
Dadurch verschwindet die große Anzahl von Verbindungen aus der Datenbank und macht sie wieder zugänglich.
Kann nicht auf FIPS-toleranten oder FIPS-fähigen ds-metrics Clustern für 5.1.0 Version aktiviert werden
ds-metrics zeigt 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 Digest

Workaround: Initialisieren Sie Ihre Datenbank und konfigurieren Sie sie ds-metrics über Umgebungsvariablen. Weitere Informationen zum Aktivieren ds-metricsfinden Sie unter Speichern und Beibehalten von MetrikenSpeichern und Beibehalten von Metriken.

Job_run_log speichert nur Log-Meldungen, die nicht zur INFO-Ebene gehören
Workaround : Setzen Sie die Umgebungsvariable METRICS_SEND_FULL_LOG in der true px-runtime-Instanz auf. Wenn die Variable auf truegesetzt ist, wird das vollständige Job-Ausführungsprotokoll an Metriken gesendet und in der job_run_log Tabelle 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-metrics mit initialisiert wurde, müssen Sie die Tabellen databasechangelog databasechangeloglock und im public Standard-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-metrics zeigt 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-metrics behandelt die Fehler, die ignoriert werden können.