diag.log: JDBC sort Fehler?
- Dieses Thema hat 7 Antworten und 1 Teilnehmer, und wurde zuletzt aktualisiert vor 14 Jahre, 6 Monaten von
Anonym.
-
AuthorPosts
-
17. Februar 2009 um 17:01 Uhr #4023
AnonymInaktivHallo Kollegen,
hiermit schicke ich error-Meldungen von der diag.log (Solaris 64 bit, DB2 V9.1).
Es geht um Meldungen, die scheinbar keinen Fehler verursachen. Sie werden doch auffällig oft (manchmal sogar je 2-3 Sekunden) in die diag.log geschrieben, tausende von denen füllen diese Datei, daher wächst sie ständig, störend und unendlich :-/Das Programm connects vom Java application Server, und bekommt 0 als Antwort-sqlcode.
Mit dem event monitor identifizierte ich folgendes SQL statement (mindestens ein mal lief genau dieses statement, ob immer, das weiß ich natürlich nicht).
S_ELECT wm_id, wm_xal_id, wm_state, wm_rcvdate, wm_fireDate, WM_ORIG_SIGN, wm_xades, wm_graceperiod, wm_lastmodify, WM_ORIG_XMLDATA, WM_COMPL_SIGN, WM_SUBM_MOD_ID, WM_PROC_MOD_ID, WM_LVERIFRESULT, WM_LVERLOG, WM_ACT_ST_INFO, WM_ACT_ST_STD_AT, WM_STATE2, WM_STATE3, wm_xvl_id FROM LOG.WAITMSG
WHERE wm_state2 = ? AND wm_state3 = ? AND WM_PROC_MOD_ID IS NULL AND ( WM_LVERIFRESULT IS NULL OR wm_state = ‚COMPLETED‘ OR ( WM_LVERIFRESULT=’INCOMPLETE‘ AND wm_firedate < ? ) )Kost dieses SQL-s ist nach explain etwa 2000, den ich nicht besonders zu viel finde.
Kann jemand bitte diese Meldungen (weiter unten) interpretieren?
MfG
Katalin Varnai
2009-02-17-16.21.42.969514+060 I114832519E421 LEVEL: Error
PID : 17931 TID : 1 PROC : db2agntp (LOG)
INSTANCE: db2inst2 NODE : 000
APPHDL : 0-89 APPID: 193.6.241.156.64427.09021714165
AUTHID : APJAVA
FUNCTION: DB2 UDB, runtime interpreter, sqlrisrt, probe:60
DATA #2 : Hexdump, 4 bytes
0xFFFFFD7FFFDF2D7C : 0300 1280 ….…
…
…2009-02-17-16.23.12.368765+060 I114866279E421 LEVEL: Error
PID : 17931 TID : 1 PROC : db2agntp (LOG)
INSTANCE: db2inst2 NODE : 000
APPHDL : 0-102 APPID: 193.6.241.156.18606.09021714200
AUTHID : APJAVA
FUNCTION: DB2 UDB, runtime interpreter, sqlrisrt, probe:60
DATA #2 : Hexdump, 4 bytes
0xFFFFFD7FFFDF2D7C : 0300 1380 ….20. Februar 2009 um 12:34 Uhr #4194
AnonymInaktivHallo Katalin,
es sieht so aus, als würdet Ihr mit dem Control Center /Task Center regelmäßig DB-Aufgaben durchführen lassen?! Gibt es eine Tools Catalog Database?
Noch eine Möglichkeit:
Stimmen die DB2 Umgebungsvariablen jdk_64_path bzw. jdk_path?Kannst Du das mal überprüfen.
Gruß
Gernot23. Februar 2009 um 15:58 Uhr #4322
AnonymInaktivHallo Gernot,
danke für die Ideen.
Folgendes habe ich gemacht:– Solaris zone wurde abgestellt und neugestartet,
– Constrol Center task disabled (es gibt nur einen, und der hat mit diesem instance nichts zu tun, benutzt eine anderes),– jdk_path wurde kontrolliert:
23. Februar 2009 um 16:11 Uhr #4414
AnonymInaktivHallo Gernot,
danke für die Ideen!
Entschuldigung, meine vorige mail war halbfertig, als es ungwollt abgeschickt wurde.
Folgendes habe ich gemacht:– Solaris zone wurde abgestellt und neugestartet,
– Constrol Center task disabled (es gibt nur einen),
– jdk_path wurde kontrolliert:
db2inst2, jdk_64_path: /home/db2inst2/sqllib/java/jdk64
db2as, jdk_path: home/db2inst1/sqllib/java/jdk64
db2as, jdk_64_path: home/db2inst1/sqllib/java/jdk64
Stimmt das so?
-JDBC version des application servers wurde ugraded genau auf FP level des DB2 servers,
– alle andere Anwendungen sind abgestellt.
Diag.log ist nach wie vor vollgeschrieben mit demselben Fehler, leider. Was könnte ich noch tun?MfG
Katalin
23. Februar 2009 um 22:05 Uhr #4474
AnonymInaktivHi,
ist es vielleicht der Workload Manager, der das Problem verursacht, aber im Zusammenhang mit DB2 Logging Parametern?
Würdest Du bitte mal die DB Config (db2 get db cfg for <db>) und DBM Config (db2 get DBM CFG) bereitstellen!
Hilfreich wäre auch eine Liste von DB2 Prozessen ("ps -ef | grep -i db2") sowie Einsicht in das Solaris Syslog ("dmesg") !
Gruß
Gernot
4. März 2009 um 19:55 Uhr #4503
AnonymInaktivOn behalf of Katalin! (Limited to 5500 bytes)
Hallo Gernot,
ich berichte wieder mal über die Neuigkeiten mit diesem Solaris server, der inzwischen – wenn auch unter sehr hoher Belastung – täglich mehrere (10?) tausend von diesen Error-Nachrichten in die diag.log zeugt.
Am Ende der message teile ich die gewünschten, nützlichen Informationen zu unserem System mit, noch vorher aber die Ergebnisse meiner db2trace. Die Umgebung eines idenfizierten sqlrisrt Fehlers habe ich in den großen trace-Dateien gefunden, ausgeschnittenr. db2trace finde ich hochinteressant, verstehe ich jedoch den Fehler noch immer nicht, man findet ja gar nichts über die Komponenten des DB2 Motors und über deren Funktionen in den Dokumentationen.
Ich bin überzeugt, auch overall DB2 performance könnte man durch die Lösung verbessern.
Gruß
Katalin
******************
Ein Fehler in der diag.log unmittelbar nach der abgestarteten db2trc war:
2009-03-01-23.06.01.799880+060 I206853906E421 LEVEL: Error
PID : 16636 TID : 1 PROC : db2agntp (LOG)
INSTANCE: db2inst2 NODE : 000
APPHDL : 0-286 APPID: 193.6.241.156.17034.09030113184
AUTHID : APJAVA
FUNCTION: DB2 UDB, runtime interpreter, sqlrisrt, probe:60
DATA #2 : Hexdump, 4 bytes
0xFFFFFD7FFFDF2D8C : 0300 1280 ….*************************************************************
Meine trace commands waren diese, wenn jemand interessiert wäre :
date ; db2trc on -i 256M -f dump.dmp -t -errors
db2trc off
db2trc flow dump.dmp dump.flw -p 16636 -mf -t -data -rds
db2trc format dump.dmp dump.txt******************************************
Formattiert trace, nur ein Schnitt davon, zu pid 16636:
21050 errtrans DB2 UDB global services sqlzeMapZrc cei (13.3.26.44.2.40)
pid 16636 tid 1 cpid -1 node 0 sec 0 nsec 671358075 probe 40
Error Translation
Original Error ZRC = 0x80120003 = -2146303997 = SQLR_INTRP
New Error SQL000021051 error DB2 UDB global services sqlzeMapZrc cei (4.3.26.44.2.50)
pid 16636 tid 1 cpid -1 node 0 sec 0 nsec 671498302 probe 50
Error ZRC = 0x80120003 = -2146303997 = SQLR_INTRP
bytes 144Data1 (PD_DB2_TYPE_SQLCA,136) SQLCA:
sqlcaid : SQLCA sqlcabc: 136 sqlcode: 0 sqlerrml: 0
sqlerrmc:
sqlerrp : SQL09014
sqlerrd : (1) 0x00000000 (2) 0x00000000 (3) 0x00000000
(4) 0x00000000 (5) 0x00000000 (6) 0x00000000
sqlwarn : (1) (2) (3) (4) (5) (6)
(7) (8) (9) (10) (11)
sqlstate:21052 exit DB2 UDB runtime interpreter sqlrisrt fnc (2.3.112.207.0)
pid 16636 tid 1 cpid -1 node 0 sec 0 nsec 671509611
rc = 0x80120003 = -2146303997 = SQLR_INTRP21053 exit DB2 UDB runtime interpreter sqlriSectInvoke cei (2.3.112.725.2)
pid 16636 tid 1 cpid -1 node 0 sec 0 nsec 671512553
rc = 0x80120003 = -2146303997 = SQLR_INTRP21054 exit DB2 UDB Common Trace API sqljsParseObj fnc (2.3.146.47.0)
pid 8394 tid 1 cpid 14104 node 0 sec 0 nsec 660296125
rc = 121055 exit DB2 UDB Common Trace API sqljsPeekNextObj fnc (2.3.146.48.0)
pid 8394 tid 1 cpid 14104 node 0 sec 0 nsec 660297866
rc = 121056 exit DB2 UDB Common Trace API sqljsType2RmLen fnc (2.3.146.55.0)
pid 8394 tid 1 cpid 14104 node 0 sec 0 nsec 660307115
rc = 1021057 exit DB2 UDB runtime interpreter sqlricls_complex fnc (2.3.112.458.0)
pid 16636 tid 1 cpid -1 node 0 sec 0 nsec 671604059
rc = 0x80120003 = -2146303997 = SQLR_INTRP21058 errtrans DB2 UDB global services sqlzeMapZrc cei (13.3.26.44.2.40)
pid 16636 tid 1 cpid -1 node 0 sec 0 nsec 671614684 probe 40
Error Translation
Original Error ZRC = 0x80120003 = -2146303997 = SQLR_INTRP
New Error SQL000021059 error DB2 UDB global services sqlzeMapZrc cei (4.3.26.44.2.50)
pid 16636 tid 1 cpid -1 node 0 sec 0 nsec 671615827 probe 50
Error ZRC = 0x80120003 = -2146303997 = SQLR_INTRP
bytes 144Data1 (PD_DB2_TYPE_SQLCA,136) SQLCA:
sqlcaid : SQLCA sqlcabc: 136 sqlcode: 0 sqlerrml: 0
sqlerrmc:
sqlerrp : SQL09014
sqlerrd : (1) 0x00000000 (2) 0x00000000 (3) 0x00000000
(4) 0x00000000 (5) 0x00000000 (6) 0x00000000
sqlwarn : (1) (2) (3) (4) (5) (6)
(7) (8) (9) (10) (11)
sqlstate:21060 exit DB2 UDB relation data serv sqlr_smp_router fnc (2.3.18.92.0)
pid 16636 tid 1 cpid -1 node 0 sec 0 nsec 671616635
rc = 0x80120003 = -2146303997 = SQLR_INTRP21061 errtrans DB2 UDB global services sqlzeMapZrc cei (13.3.26.44.2.40)
pid 16636 tid 1 cpid -1 node 0 sec 0 nsec 671647016 probe 40
Error Translation
Original Error ZRC = 0x80120003 = -2146303997 = SQLR_INTRP
New Error SQL000021062 error DB2 UDB global services sqlzeMapZrc cei (4.3.26.44.2.50)
pid 16636 tid 1 cpid -1 node 0 sec 0 nsec 671647646 probe 50
Error ZRC = 0x80120003 = -2146303997 = SQLR_INTRP
bytes 144Data1 (PD_DB2_TYPE_SQLCA
4. März 2009 um 20:25 Uhr #4525
AnonymInaktivSorry Katalin,
um Mißbrauch zu verhindern sind hier Beiträge leider auf 5500 Bytes begrenzt. Deswegen passte Deine DB CFG und DBM CFG und vieles andere nicht in Deinen Beitrag.
Mir war aufgefallen, dass … Self tuning memory  (SELF_TUNING_MEM) = ON (Active)   ON
eingestellt ist. Ich habe dieses Feature immer nur mit Problemen erlebt. Weder auf Windows 2000 noch AIX hat "STM" fehlerfrei funktioniert. Empfehlung (testweise): OFF, Database Memory aber COMPUTED.Automatic reorganization  (AUTO_REORG) = ON
Besser mal ausschalten und das REORG Utility in Ruhezeiten (nachts, am Wochenende) ausführen. Automatic Runstats sollte ok sein. Die Frage ist nur, wie der Automatic Maint Scheduler konfiguriert wurde: Wann laufen die Aktionen?Max number of existing agents  (MAXAGENTS) = 400  Â
Sind wirklich soviele Agents notwendig?Enable intra-partition parallelism   (INTRA_PARALLEL) = YES
Empfehlung: OFF/NO.Außerdem ist mir eine riesige Anzahl von DB2 Prozessen aufgefallen. Das hängt natprlich mit MAXAGENTS etc zusammen.
Schafft Solaris überhaupt soviele Prozesse?
Wie siehen die User Limits für den Instance User db2inst1 aus? <ulimit -a>Gibt es weitere DB2 Prozess Informationen? <ps au>
Was sagt DB2 zu den Solaris Kernel Info? <db2osconf>
Kennst Du übrigens schon mein "DB2 Administrator’s Unix Command Surival Sheets (AIX + Solaris)" unter https://www.ruban.de/DB2_luw/UnixCmdQuickRef.PDF.
Viel Erfolg!
Gernot
23. März 2009 um 16:09 Uhr #4538
AnonymInaktivHallo Gernot,
das hat schon geholfen!
Mir war aufgefallen, dass … Self tuning memory           (SELF_TUNING_MEM) = ON (Active)         ON
eingestellt ist. Ich habe dieses Feature immer nur mit Problemen erlebt. Weder auf Windows 2000 noch AIX hat "STM" fehlerfrei funktioniert. Empfehlung (testweise): OFF, Database Memory aber COMPUTED.STMM funktioniert offenbar auch an Solaris nicht fehlerlos, besonders mit enabled intra-parallelism. Wir hatten inzwischen auch andere Probleme, sogar DB2 server zusammenbruch. Seitdem die Konfiguration aber auf INTRA_PARALLEL=NO umgestellt wurde, läuft der server reibungslos, und ist db2diag.log "sauber" von den früheren jdbc Fehlern.
Automatic reorganization        (AUTO_REORG) = ON      Â
Besser mal ausschalten und das REORG Utility in Ruhezeiten (nachts, am Wochenende) ausführen.Ja, das ist zu überlegen. Das muss man aber extra implementieren, crontab ins Betrieb setzen, weil im Control Center die auto-maintanance feature erlaubt nur ein einziges Fenster für online maintanance abzugeben. Â
Automatic Runstats sollte ok sein. Die Frage ist nur, wie der Automatic Maint Scheduler konfiguriert wurde: Wann laufen die Aktionen?
Ich definiere dieses online maintanance Fenster, und erlaube RUNSTATS durchgehend.
Max number of existing agents        (MAXAGENTS) = 400           Â
Sind wirklich soviele Agents notwendig?Ich musste die Zahl erhöhen, 200 waren nicht genug, aber ein Kompromiss von 300 scheint entsprechend zu sein. Tja, hier geht es um ein Datenmodell, wo die grundsätzlichen, sogenannten "Stammdaten" in einer separaten Datenbank gelegt sind, und die Anwendungen aus den 3 Hauptdatenbanken greifen ständig und intensiv (durch agents) auf diesen federated Tabellen zu.
Enable intra-partition parallelism   (INTRA_PARALLEL) = YES
Empfehlung: OFF/NO.Danke für den Rat! Inzwischen habe ich einige SQL-s getunt, infolgedessen bemerken wir gar nicht, dass die Leistung langsamer wäre. Â
Außerdem ist mir eine riesige Anzahl von DB2 Prozessen aufgefallen. Das hängt natprlich mit MAXAGENTS etc zusammen.
Schafft Solaris überhaupt soviele Prozesse?
Ja, schon. Dieses ist ein großes, kompliziertes MQ-Broker System, mit etwa 50 parallel laufenden Komponenten und queues.
Wie siehen die User Limits für den Instance User db2inst1 aus? <ulimit -a>
core file size     (blocks, -c) unlimited
data seg size     (kbytes, -d) unlimited
file size       (blocks, -f) unlimited
open files           (-n) 65535
pipe size      (512 bytes, -p) 10
stack size       (kbytes, -s) 10240
cpu time       (seconds, -t) unlimited
max user processes       (-u) 16341
virtual memory     (kbytes, -v) unlimitedWas sagt DB2 zu den Solaris Kernel Info? <db2osconf>
Leider nichts. Ob warum? Da wir haben eine zone? Oder eine nicht-ünterstützte Solaris-Version?
[db2inst2@db2zone:~] # db2osconf
kopen: cannot stat /dev/kmem
kvm_open: No such file or directory
Error: Failed to get kernel parameters
[db2inst2@db2zone:~] #Kennst Du übrigens schon mein "DB2 Administrator’s Unix Command Surival Sheets (AIX + Solaris)" unter https://www.ruban.de/DB2_luw/UnixCmdQuickRef.PDF.
Bisher nicht, sieht aber nützlich aus!
Danke vielmals für die Ideen
Katalin
-
AuthorPosts
You must be logged in to reply to this topic.