Apr 14

Oracle-Jobs via DBMS_JOB sind eine feine Sache. Würde nur nicht das Intervall erst am Ende, also nach der Ausführung des Jobs, gesetzt werden.
Das nervt. Also wenn man einen Job hat, der sagen wir alle 10 Minuten laufen soll, so verschiebt sich die Ausführung grundsätzlich um die Zeit, die der Job selbst zur Abarbeitung benötigt. Das heisst, bei einem 60sek. Job, der via Intervall “sysdate+(1/1440)” alle 10min laufen soll, und um, sagen wir 10:10 das erste mal rennt, beginnt dieser die nächsten Ausführungen um 10:21, 10:32 usw…

Abhilfe schafft ein wenig Mathematik im Intervall:

Man nehme:
to_date(
floor(
to_number(
to_char(sysdate,’YYYYMMDDHH24MI’)
)/10
)*10,’YYYYMMDDHH24MI’
)+10/1440

Was passiert hier ?
– Das Datum wird MSB -> LSB geholt und durch 10 geteilt. Bedeutet die “Minute” steht hinter dem Komma.
– Jetzt nutzen wir “FLOOR” um alles hinter dem Komma auf “0” zu setzen.
– Das ganze wieder mal 10 nehmen, um die 0 vor das Komma zu bekommen
– Jetzt noch in ein Datum konvertieren und das 10min. Intervall (+(10/1440)) draufschlagen
– Fertig.

Doch Vorsicht: Bei Jobs die länger als 10min. laufen, könnte das nächste Intervall in der Vergangenheit liegen ;-(

Apr 11

Böse Böse …
Ein netter Tip, der da von Muniqsoft publiziert wurde.
Kurzfassung: Mit Hilfe einer Materialized View, die “on Commit” refreshed wird, und auf die dann via “Query rewrite” zugegriffen wird, grosse Aggregationen etwas zügiger von Statten gehen zu lassen.
Irgendwie ging der Schuss bei mir allerdings VOLL nach hinten los. Die gute DB hat, gemäss Ihrem Auftrag, fein bei jedem Commit einen FULL TABLE SCAN (auf ‘ne halbe Mio. Rows) durchgeführt und damit die DB extremst in die Tiefe gezogen… Na super. Droppen liess sich das gute Stück auch nicht mehr, weil: War ja gelocked durch das andauernde Commit der User 😉
Was lernen wir daraus: Nicht alles was gut aussieht, tut auch gut…

Mrz 31

Während der Aufräumarbeiten, die der Sturm Kyrill in unmittelbarer Nähe von Löttmaringhausen hinterlassen hat, kam es heute wohl zu einer Entzündung des zum Abtransport vorbereiteten Holzes. Es waren in jedem Falle wieder viele rote Partymobile im Einsatz. Wenn man sich die Rauchentwicklung von der Ferne aus ansieht, dann machte das allerdings auch Sinn.
Fotos gibts nach dem Click bei Flickr

Mrz 29

Oha…
Nicht alles wird gut wenn man von einer 10.1 auf 10.2 updaten will. So steigt die Ora-DB bei der Einstellung “CURSOR_SHARING=FORCE” in manchen Fällen nach einem SQL-Statement mit ORA-01008 (not all variables bound) aus, obwohl alle Variablen brav gebunden sind.
Workaround: CURSOR_SHARING auf “EXACT” stellen, sofern möglich. Oder halt auf ein Fixing des Bugs mit der Nummer #5863277 warten (siehe Metalink)

PS: Der Fehler tritt nur mit dem neuesten Patchset, also der 10.2.0.3 auf…

Nachtrag: Es gibt einen Patch bei Oracle im Metalink – Knappe 80kB gross patcht das Teil den Ora-Kernel und danach sollte es wieder tun… Der Fehler trat übrigens nur bei Zugriff via OCI o.ä. auf. Böse wenn man mit DBD::Oracle unter Perl arbeitet.

Mrz 19

Der “Winter”, oder was auch immer das sein mag, hat nun doch noch ein, wahrscheinlich kurzes, Gastspiel im Sauerland eingelegt. So sah es heute morgen hier vor der Türe aus:

Mrz 14

Unter meinem Schreibtisch steht, ehm stand, eine APC 700er USV. Vorgestern und gestern roch es irgendwie verdächtig nach etwas verbranntem. Allerdings liess sich die Quelle des Übels nicht genau identifizieren. Gestern Abend dann die Erleuchtung. Als ich die USV angefasst hatte, hätte ich mir fast die Finger verbrannt. Also raus damit. Kann es sein das es bei den älteren Modellen (das war eine 1994er) keine Notabschaltung o.ä. gibt ?

Mrz 07

Über Oracle und Blobs könnte man, glaube ich, Bücher schreiben.
Wieder mal etwas interessantes:

Versucht man von einem Schema, nennen wir es A, Daten in eine Blob-Tabelle, sagen wir B.B_TABLE mit Perls DBD/DBI zu “inserten”, quittiert Oracle dies mit einem netten ORA-010321 (insufficient privileges).
Kurz nachgesehen: Hmm, A verfügt über INSERT-Grants für B.B_TABLE. Wer jetzt anfängt den Fehler an anderer Stelle zu suchen, hat schon verloren.

User A benötigt ZWINGEND das UPDATE-Recht auf B.B_BLOB Table. Dann klappts auch mit dem Inserten…

Mrz 04

Der Tip kommt frisch aus dem fscklog:
Wer seinem Mail-Client unter OSX Beine machen will, sollte die darunterliegende DB mal reorganisieren.
Wie das geht ?

So:

1. Mail.app beenden (und falls nicht sowieso vorhanden ein Backup anlegen)
2. Terminal öffnen
3. >> sqlite3 ~/Library/Mail/Envelope\ Index vacuum << aufrufen
4. Glücklich sein.

Mrz 03

Laut heise haben böse Menschen die Version 2.1.1. von WordPress infiltriert. Daher fix auf die 2.1.2 updaten…
Den vollen heise Artikel gibt hier

Feb 25

Öfter mal was neues: Das “Grafitti Research Lab” malt mithilfe eines Handelsüblichen Laserpointers (z.B. einer von wickedlasers.com), einem ANSI-Lumen-starken Beamer und einer kleinen Software Bilder an Hauswänder. Sieht schwer beeindruckend aus, wie man bei youtube sehen kann.

Feb 21

Nett, wp-manage erledigt all dass, bei dem ich bisher immer geschwitzt habe. Somit läuft jetzt auch dieses Weblog mit WordPress 2.1.1 (aka “ella”). Und wer Probleme hat sein Blog mit ecto und WP 2.1. zu pflegen, dem sei noch Apfel+Z ans Herz gelegt.

Feb 19

Das von Netgear bereitgestellte Update auf die Firmware 2.0.0.-141 behebt laut ChangeLog zwar nur Login-Probleme im Webinterface (mit denen hatte ich nie Probleme), aber wer weiss, vielleicht ist ja das NET-Resetting inzwischen behoben. Ich kann derzeit nur sagen, was der Router bis jetzt NICHT gemacht hat – nömlich sauber mit dem Asterisken zusammenspielen. Das liegt, nach langer Recherche, wohl daran, dass das Geraet, nach der 24h Zwangstrennung, einmal die kompletten NAT-Tabellen resetted. Selbst mit der Einstellung “feste IP” macht es das. Tödlich für SIP-Verbindungen. Der Asterisk lässt sich erst nachdem er min. 10minuten gestoppt ist wieder mit sipgate o.ä. VoIP-Providern ein. Mal schauen, ob dieses Update vielleicht Abhilfe bringt.

Feb 13

So auch auf dieser Website. Irgendwie erinnert mich das teilweise zu sehr an die bittere Realität. Wer also mehr von toten Pferden, wie man Sie reitet, und warum selbige Tiere eine Rolle beim Bau des Spaceshuttles gespielt haben, wissen möchte, lese dort weiter.

Feb 11

Das muss nicht sein. Im Fröstelanflug habe ich mir einen schicken Ofen zugelegt. Die (verspäteten) kalten Winterabende können kommen. Das Ding macht wirklich Spass…

Feb 09

Yes ! Ein Gürteltier das zum Anschnallen motiviert. Das haben wir benötigt !
Mehr Infos nach dem Click (Putzig ist es ja…)

preload preload preload