Forum
Guten Morgen,
Win 2003 Standard Server kommt mit max 4 GB zurecht, DB2 kann 2 GB, bei Nutzung eines Features 3 GB nutzen. Das liegt in der Natur der Sache – 32 Bit Adressierung. Ich empfehle zu diesem Thema das IBM Redbook "Scaling DB2 UDB on Windows Server 2003" http://www.redbooks.ibm.com/redbooks/pdfs/sg247019.pdf. Um die vielen Parameter, die DB2 anbietet, zu verstehen, empfehle ich den Aufsatz "The DB2 UDB memory model – How DB2 uses memory" http://www.ibm.com/developerworks/db2/library/techarticle/dm-0406qi/.
Zugegeben, viel Lesestoff für jemanden, der von der Problematik überrascht wird.  😕
Im Grunde sieht es doch gar nicht so schlecht aus. Die Frage ist nun, an welcher Stelle (Statement, Tabelle) tritt das Problem auf? Häufig hilft ein Blick in das DB2 Diagnose Log, unter …sqllibdb2 als db2diag.log zu finden. [Ansonsten unter …sqllib mit dir -s db2diag.log suchen.]
Steht hier nichts Aufschlußreiches kann der Grad der Diagnose erhöht werden:
1) <Start> <ausführen> "db2cmd"
2) Command eingeben: db2 get dbm cfg (Hier stehen diagpath [da steht als das db2diag.log] und der diaglevel. Den Level ggf. auf z.B. 4 erhöhen
3) db2 update dbm cfg using diaglevel 4
4) Den schadhaften Prozess wiederholen und einen Blick in das db2diag.log werfen.
Wenn wir hier gerade sind! Die Konfiguration (die wir hier vielleicht noch benötigen) kann man wie folgt auslesen (und mit dem cmd>>config.file gleich in eine File umlenken):
[tt]ver[/tt] Â Â Â Â Â Â Windows Version
[Folgende Commands im db2cmd bzw. db2clp Fenster:]
[tt]db2level[/tt] Â Â die DB2 Version
[tt]db2lic -l   [/tt]  die DB2 Software Version
[tt]db2 get dbm cfg
db2 get db cfg for [db][/tt]
Die Bufferpools sind verhältnismäßig groß. Eigentlich sollte eine Operation damit zurecht kommen. Ich vermute der Übeltäter ist  ein  Massen-Update mit keinem COMMIT oder zu geringer COMMIT Frequenz?
Vielleicht liegen Tables/Tablespace in ungeeigneten Bufferpools und könnten in einen größeren verlegt werden?
Hast Du die Erklärung zu SQL1218N eigentlich schon gelesen? Vielleicht hast Du eine Idee?
[tt]Der Pufferpool ist nicht groß genug, um zu diesem Zeitpunkt Seiten für alle Datenbankprozesse und -Threads bereitzustellen. Entweder ist der Pufferpool zu klein, oder es sind zu viele Prozesse und Threads aktiv.
Die Anweisung wird bei einem erneuten Versuch möglicherweise erfolgreich ausgeführt. Tritt dieser Fehler häufig auf, ergreifen Sie mindestens eine der folgenden Maßnahmen:
 1. Vergrößern Sie den Pufferpool.
 2. Verringern Sie die maximale Anzahl von Datenbankagenten und/oder Datenbankverbindungen.
 3. Verringern Sie den maximalen Grad der Parallelität.
 4. Verringern Sie den Wert für die Vorablesezugriffsgröße für die Tabellenbereiche in diesem Pufferpool.
 5. Versetzen Sie einige Tabellenbereiche in andere Pufferpools.[/tt]
Da fallen mir die Parameter (siehe DBM/DB CFG Output) Â INTRA_PARALLEL, DFT_DEGREE und MAX_QUERY_DEGREE
ein: Auf OFF bzw 1 stellen, also Parallelität ausschalten.
Ansonsten sollten wir hier erstmal einen Blick auf DBM und DB CFG, vielleicht auf Meldungen im DB2DIAG.LOG werfen. Â :-/
Viel Erfolg
Gernot