Home
What's new?
Q&A/FAQ
Kontakt/Information
Kritik
Umfrage
Links
Inhalt/Sitemap
  Mit ICRA gekennzeichnet
INFORMIX® Q&A (1)

WICHTIG! Die Antworten und Programme wurden nach bestem Wissen und Gewissen erstellt. Der Autor übernimmt keine Gewährleistung dafür, dass alle Tipps und Tricks einwandfrei funktionieren. Die Anwender handeln auf eigene Gefahr. Bei eventuellen Datenverlusten oder Beschädigungen besteht kein Haftungsrecht gegenüber dem Autor. Die Antworten und Programme sind frei anwendbar, jedoch verbleibt das Copyright beim Autor. Bei deren Weitergabe oder Veröffentlichung muss der ursprüngliche Autor als solcher kenntlich gemacht werden. Externe Beiträge sind jederzeit willkommen.

Seite
1 · 2 · >>

  1. Welche INFORMIX-Umgebungsvariablen sind unter UNIX besonders wichtig?
  2. Warum funktioniert der "dbimport" und die SQL-Anweisung "SET EXPLAIN ON" nicht?
  3. Shared Memory lässt sich bei einigen UNIX-Versionen bei ONLINE bis V5.x nicht über ca. 14 MB konfigurieren!
  4. Probleme mit Jahrtausendwechsel?
  5. Wie kann ich unter UNIX feststellen, ob eine Raw-Partition defekt ist?
  6. Ich benötige meine INFORMIX-Raw-Partitions nicht mehr und möchte sie dem UNIX wieder bekannt geben. Was tun?
  7. Nach dem Umstieg von UnixWare 1.x auf 2.x kann kein Shared Memory mehr für INFORMIX-ONLINE initialisiert werden.
  8. Nach einer "Long Transaction" und killen des "sqlturbo"-Prozesses unter INFORMIX-ONLINE V4.0 hat sich das ONLINE-System heruntergefahren und lässt sich nicht wieder starten!
  9. Wo bekomme ich weitere Informationen zu den INFORMIX-Produkten?
  10. Wie kann eine schnelle Migration von 4GL nach NewEra durchgeführt werden?

Seite
1 · 2 · >>

[Seitenanfang]


1. Welche INFORMIX-Umgebungsvariablen sind unter UNIX (sh, ksh, bash ...) besonders wichtig?

INFORMIX-Verzeichnis (dort wurde INFORMIX installiert, z.B.):

  • INFORMIXDIR=/usr/informix; export INFORMIXDIR
  • je nach Shell auch mit "setenv..." (csh, tcsh ...)

Pfad der INFORMIX-Programme:

  • PATH=$PATH:$INFORMIXDIR/bin; export PATH

Einsatz des Backends:

  • SQLEXEC=$INFORMIXDIR/lib/sqlexec (=> SE)
  • SQLEXEC=$INFORMIXDIR/lib/sqlturbo (=> ONLINE bis V5.x)
  • SQLEXEC=$INFORMIXDIR/lib/sqlrm (=> ONLINE ab V6.x)
  • export SQLEXEC

Server:

  • INFORMIXSERVER=yourServerName¹; export INFORMIXSERVER
  • (¹ s. $INFORMIXDIR/etc/sqlhosts)

Datenbank- und Maskenpfad:

  • DBPATH=Datenbankverzeichnis¹:Maskenverzeichnis²; export DBPATH
  • (¹ Verzeichnis, in dem sich die "*.dbs" befinden; ² Verzeichnis, in dem sich die "*.frm befinden, kann im aktuellem Verzeichnis weggelassen werden. Beim ONLINE/NET/STAR u.U. Datenbank des Servers)

Nationale Besonderheiten (falls Datenbank nicht entsprechend konvertiert):

  • DBFORMAT=":.:,:"; export DBFORMAT # Dezimalformat mit Komma
  • DBDATE=DMY4. ; export DBDATE # Datumsformat DD.MM.YYYY

[Zurück FAQ][Seitenanfang]


2. Warum funktioniert der "dbimport" und die SQL-Anweisung "SET EXPLAIN ON" nicht?

Die Ursache liegt in der Reihenfolge der INFORMIX-Produkteinstallation. Wichtig ist hierbei, dass zuerst die Frontends wie z.B. INFORMIX-SQL, INFORMIX-4GL, dann die Backends (z.B. SE, ONLINE) und zum Schluss die Netzwerkprodukte (z.B. NET,STAR) installiert werden müssen.

[Zurück FAQ][Seitenanfang]


3. Shared Memory lässt sich bei einigen UNIX-Versionen bei ONLINE bis V5.x nicht über ca. 14 MB konfigurieren.

Kernel-Parameter "SVMMLIM" erhöhen (z.B. UnixWare 2.01 auf "0x80000000") bzw. "MAXPMEM" und "MAXUMEM" (SYSVR 3.2)

[Zurück FAQ][Seitenanfang]


4. Bei uns in der Software gibt es nur zweistellige Jahresangaben. Will ich jetzt schon irgendetwas ins Jahr 2000 datieren, bekomme ich Probleme, da das Datum als Jahr im aktuellen Jahrhundert interpretiert wird!

Ja, liebe Freunde. Hierfür gibt es einerseits die Möglichkeit, ALLE entsprechenden Masken oder Programme auf vierstellige Jahreszahlen umzusetzen oder ab der INFORMIX-Datenbank- Serverversion 7.2 die Variable "DBCENTURY" zu benutzen ("C" = Closest, je nachdem, was näher liegt z.B. "96" bis 2046 gleich 1996, danach 2096; "P" = Past, relativ zum aktuellem Datum rückwärts gerechnet z.B. "96" bis 2095 gleich 1996, danach 2096; "F" = Future, umgekehrt, "96" gleich 2096, danach 2196).

[Zurück FAQ][Seitenanfang]


5. Wie kann ich unter UNIX feststellen, ob eine Raw-Partition defekt ist?

Eine einfache Lösung besteht darin, den UNIX-Befehl "dd" für die jeweilige Partition folgendermaßen anzuwenden:

dd if=rawdevice of=/dev/null

("rawdevice" ist dann das Characterdevice wie z.B. "/dev/rdsk/1s7".)
Eine defekte Partition würde zu einem Fehler des "dd"-Befehls führen.

[Zurück FAQ][Seitenanfang]


6. Ich benötige meine INFORMIX-Raw-Partitions nicht mehr und möchte sie dem UNIX wieder bekannt geben. Was tun?

Vorsicht ist geboten! Soll die Partition tatsächlich "platt" gemacht werden, so dass dort ALLE Daten verloren gehen? Das versehentliche Entfernen einer Partition kann im Gesamtzusammenhang des I-ONLINE-Systems genau jenes komplett lahm legen.
Nun, für die Entschlossenen hier zwei Alternativen:
1. Der einfache Weg führt über den UNIX-Befehl "mkfs" (s. Systemdokumentation). Hiermit wird ein neues (UNIX-)Filesystem auf der Partition neu erzeugt. Ich erlebte jedoch auf einigen UNIX-Plattformen, dass dieses Vorgehen absolut scheiterte.
2. Deswegen kann man sich mit folgendem Trick behelfen. Mittels "dd"-Befehl und Wissen einer anderen vorhanden UNIX-Partition (im Zweifelsfall die "Root-Partition") ist die INFORMIX-Partition "plattzumachen":

dd if=otherUnixRawPartition of=InformixRawPartition

("otherUnixRawPartition"=vorhandene UNIX-Partition, "InformixRawPartition"=INFORMIX-Raw-Partition).
Der "dd"-Befehl schreibt nun zumindest die notwendigen Informationen (Superblock etc.) auf unsere Zielpartition. Sicherlich wird der "dd"-Befehl später mit einer Fehlermeldung abbrechen, da die Partitionen nicht völlig identisch sein werden. Aber das stört uns nicht weiter und wir können mittels "mkfs" und "mount" das neue Filessystem erzeugen.

[Zurück FAQ][Seitenanfang]


7. Nach dem Umstieg von UnixWare 1.x auf 2.x kann kein Shared Memory mehr für INFORMIX-ONLINE initialisiert werden.

Zunächst weise ich nochmals auf die zu ändernden Kernel-Parameter SHMSEG (Anzahl möglicher Shared Memory Segmente) und SHMMAX (Größe eines Segments in Bytes) hin, die ja ohnehin dem System angepasst werden müssen. Hierbei ist zu bedenken, dass sowohl die Dateien "/etc/conf/cf.d/mtune" und "/etc/conf/mtune.d/kernel" bzw. "/etc/conf/mtune.d/ipc" entsprechend den gewünschten Maximalwerten evtl. noch modifiziert werden müssen, bevor man mittels "idtune"-Befehls die Parameter hochsetzt.
Beispiel:

cd /etc/conf/bin; idtune SHMMAX 1572864;

Das eigentliche Problem jedoch ist dadurch noch nicht behoben. Falls man kein INFORMIX-Update für den Release-Wechsel zur Verfügung hat, bleibt noch die Möglichkeit, die "Shared memory base address" in der Datei "/usr/informix/etc/tbconfig" (bzw. "onconfig") manuell zu ändern, z.B. von "0x100000" auf "0xe800000":

#SHMBASE 0x100000 # Shared memory base address (alten Wert durch "#" auskommentieren!)
SHMBASE 0xe800000 # Shared memory base address (neuer Wert)

[Zurück FAQ][Seitenanfang]


8. Nach einer "Long Transaction" und killen des "sqlturbo"-Prozesses unter INFORMIX-ONLINE V4.0 hat sich das ONLINE-System heruntergefahren und lässt sich nicht wieder starten!

Tja, Freunde des Geizes, falls Ihr keinen INFORMIX-Wartungsvertrag abgeschlossen habt (, welche wohlbemerkt nicht gerade günstig sind,) bleiben Euch folgende Möglichkeiten offen:

a) System neu initialisieren und letzte Datensicherung einlesen (habt Ihr ja regelmäßig durchgeführt, nicht wahr?) oder
b) INFORMIX kontaktieren und für (sehr) teures Geld per DFÜ-Verbindung an das System zur Restaurierung lassen.

Mit einem vorhanden Wartungsvertrag (auf die Art kommt es an!) sollte schleunigst auf eine höhere Version umgestiegen werden, da der Bug dort nicht mehr auftritt. (Die ehemaligen Anwender von INFORMIX-TURBO sind ja noch ganz anderes gewohnt...)

[Zurück FAQ][Seitenanfang]


9. Wo bekomme ich weitere Informationen zu den INFORMIX-Produkten?

U.a. bei der

[Zurück FAQ][Seitenanfang]


10. Wie kann eine schnelle Migration von 4GL nach NewEra durchgeführt werden?

Pustekuchen. Die manuelle schnelle Migration gibt es nicht. Lediglich nicht-bildschirmorientierter Code ist direkt übernehmbar. Empfehlenswert meinerseits ist in diesem Fall jedoch die vollständige Neuprogrammierung, da sonst der objektorientierte Ansatz und Bezug weitestgehend verloren geht.
Ansonsten bietet INFORMIX mittels eines Consulting-Programms eine automatische Migration an, was - natürlich - nicht umsonst angeboten wird.

[Zurück FAQ][Seitenanfang]

Seite
1 · 2 · >>


[Home] [News] [Q&A/FAQ] [Info] [Kritik] [Umfrage] [Links] [Inhalt] []
Letzte Änderung: (Copyright © )