TSM-Fehlermeldungen ANS4042E / ANS4042E
"one or more unrecognized characters"


Ausführliche Frage:

Ich sehe im Logfile immer wieder Fehlermeldungen "ANS4042E" bzw. "ANE4042E" und den Hinweis "contains one or more unrecognized characters and is not valid."

Was bedeutet dies?

 

Antwort:

ANS4042E tritt zusammen mit der Fehlermeldung "ANS1802E" auf, z.B:

08.01.2015 22:00:31 ANS4042E Object name /mnt/data/scratch/Dr<E4>hte.pdf' contains one or more unrecognized characters and is not valid.
08.01.2015 22:00:42 ANS1802E Incremental backup of '/mnt/data' finished with 485 failure(s)

 

Erläuterung:
Beim Durchsuchen des Dateibaumes wurden Dateien gefunden, den Namen Zeichen enthält, die in der aktuellen Zeichensatzcodierung nicht enhalten sind (im Bespiel wird das "ä" durch "<E4>" dargestellt). Meist tritt dies auf, wenn Verzeichnisse per NFS oder CIFS/Samba an Rechner exportiert werden, die eine anderen Codierung benutzen.

Diese Dateien kann TSM nicht eindeutig identifizieren und sichert sie daher nicht.

 

Abhilfe:

Im Zeichensatz "en_US" werden alle unbekannten Zeichen durch eindeutige Ersatzzeichen ersetzt. Der Datei- oder Verzeichnisname ist dann zwar für den Nutzer nicht mehr einfach lesbar, aber für den TSM-Clienten schon und die Sicherung der Dateien ist möglich. Daher sollte für der TSM-Backup (und natürlich auch den Restore) der Zeichensatz mindestens während der Ausführung des Sicherungslaufes auf "en_US" gesetzt werden.

 

zuletzt haben wir folgende Lösung erfolgreich getestet:

Über ein so genannte PreSchedCmd, also einen Befehl, der als ersten beim Ausführen des Backup-Schedules ausgeführt wird, kann man die Zeichensatz-Codierung setzen. Hierzu ist die Konfigurationsdatei "dsm.sys" wie folgt zu ergänzen:

  PRESCHEDULECMD "export LANG=en_US"

Wichtig:

für das Restore muss die Änderung von Hand vorgenommen werden:

  export LANG=en_US
  dsmc res <Angaben zum Restore>

bzw.

  export LANG=en_US
  dsmj

Die bisher beschriebene Lösung funktioniert weiterhin, ist aber aufgrund der Anpassungen nach jedem Update deutlich aufwändiger und Fehler-anfälliger:

Für die Automation mit dem "dsmcad" muss das dsmcad-Skript um die folgenden Zeilen am Anfang ergänzt werden:

  export DSM_DIR=/opt/tivoli/tsm/client/ba/bin
  export DSM_CONFIG=/opt/tivoli/tsm/client/ba/bin/dsm.opt
  export DSM_LOG=/var/log/tsm
  # Fixed to change this ANS4042E
  export LANG=en_US
  export LC_ALL=en_US

Hinweis für Debian/Ubuntu-Nutzer:

Falls die benötigte locale unter Unter Debian/Ubuntu fehlt, kommt es beim Starten des Dienstes zu einer Fehlermeldung und die locales müssen für gcc noch installiert und/oder aktiviertwerden. Für gcc-4.3 wäre das z.B. das Paket gcc-4.3-locales:

  apt-cache search gcc locales && apt-get install gcc-4.3-locales

Nun müssen die vorhandenen locales überprüft und ggf. zusätzliche aktiviert werden.

  locale -a

zeigt die vorhandenen locales an. Darunter sollte auch en_US auftauchen. Fehlen diese müssen sie in en_US in /etc/locale.gen eingetragen oder einkommentiert werden. Mit

  locale-gen en_US

wird dann die benötigte locale erzeugt. Beim Neustart des Dienstes darf nun die Fehlermeldung nicht mehr auftauchen.

 

Hintergrundinformationen:

IBM Knowledgebase http://www-01.ibm.com/support/knowledgecenter/SSGSG7_7.1.1/com.ibm.itsm.client.doc/c_cfg_nlsupportunix.html

2022-06-14 14:39 Bjoern Nachtwey {writeRevision}
Durchschnittliche Bewertung: 4 (1 Abstimmung)

Kommentieren nicht möglich

Chuck Norris has counted to infinity. Twice.

FAQs in dieser Kategorie

Tags

Wichtige FAQs