Cool, es gibt die neue Version des Ants Performance Profilers. Neu in der Version ist eine Kommandozeilen Version, die im Build mitlaufen kann. Wenn man in einer Anwendung Performance Probleme hat, dann ist das sicherlich eines der besten Tools. Es ist leicht verständlich, schnell und einfahch zu benutzen. Ich finde jedes Team sollte Zugang zu mind. einer Ants Profiler Version haben. Die Investition in die Pro-Version rechnet sich und lohnt auf jeden Fall.
Dienstag, Juni 29, 2010
Sonntag, Juni 20, 2010
Oracle Client und die Versionen …
Leider muss ich schon wieder eine ganze Weile mit Oracle Datenbanken arbeiten. Es gibt sovieles, was mich an Oracle stört, aber ein Austauschen ist nicht möglich. Das Schlimmste bei der Arbeit mit Oracle-Datenbanken ist diese nervige Client-Problematik und diese TNSNames-Konfiguration Sch…. In dem Unternehmen in dem ich zur Zeit aktiv bin, gibt es ein relativ umfangreiches Software Management, man hat für Oracle eine Standardversion definiert, die Version 10. Leider gibt es zu der Version nicht den passenden ODP.NET Provider für .NET-Framework 2.0, so dass bisher den FX 1.0 Treiber benutzt wird. Wie man sich denken kann, wird dabei auch nicht alles unterstützt, unteranderem fehlt die Unterstützung für Framework 2.0 Transaktionen. Ein noch viel größeres Problem ist aber, dass es auch durchaus noch Arbeitsplätze mit Ora Client 9 gibt und auf diesen funktioniert es gar nicht. Bei manchen klappt es, wenn die OraOps10.dll vorhanden war, aber dann ging es auch auf einigen Oracle Client 10 Installationen nicht.
Seit der Version 11, vielleicht auch 10 gibt es eine halbwegs akkzeptable Lösung, der Oracle Instant Client. Mit etwas Aufwand kann man sogar den Client komplett mit nur 5 Dateien mit der eigenen Applikation verteilen und ist nicht damit nicht mehr auf die vorhandene Installation, welche Version auch immer es ist, angewiesen. Nach dem ersten Schritt, finden des Instanat Clients als mögliche Lösungsoptionen, hatte ich mein Problem mit dem Oracle Client nocht nicht final gelöst. Laut Oracle müssen Umgebungsvars gesetzt werden, was dann aber evtl. höhere Rechte beim Einrichten erforderlich machen würde. Nach einigem googlen bin auch den Post "Deploying ODP.NET with Oracle Instant Client" gestoßen und das sieht genau nach der Lösung aus, die ich brauchte. Ich habe mich für den Basic Client entschieden, es gibt auch noch eine Lite-Version, ich wollte nicht das Risiko eingehen, dass Funktionalitäten nicht mehr gehen. (Lite würde ungefähr 30MB ergeben, Basic etwas über 100 MB) Die Dateien
- oci.dll
- Oracle.DataAccess.dll
- oramts.dll
- oramts11.dll
- oramtsus.dll
- orannzsbb11.dll
- oraocci11.dll
- oraociei11.dll und
- OraOps11w.dll
müssen sich bei der Ausführung im Applikationsverzeichnis liegen. OraMTS wird für Transaktionen benötigt. Am besten im Visual Studio Projekt einbinden und "Copy to output directory" auf "Copy if newer" setzen, so dass die Dateie im richtigen Verzeichnis landen.
Einige Probleme gab es noch bei der Konfiguration auf den Rechnern, Oracle ermöglich es viele Einstellungen über Umgebungsvariablen oder Registry vorzunehmen, offensichtlich war durch die vielen Client Versionen auf meinem Rechner einiges "merkwürdig". Ich habe die Einstellungen für "NLS_LANG" und "TNS_ADMIN" in meiner Applikation gesetzt.
1: Environment.SetEnvironmentVariable("NLS_LANG", "GERMAN_GERMANY.WE8MSWIN1252")
2: Environment.SetEnvironmentVariable("TNS_ADMIN", AppDomain.CurrentDomain.BaseDirectory)
NLS_LANG bei Oracle nachschlagen. TNS_ADMIN ermöglich das Auffinder der TNSNAMES.ORA, ich konnte Transaktionen nicht ohne TNSNAMES aufbauen, es gab immer einen seltsamen Fehler, wenn die "Data Source" im Connection String den TNS-Eintrag enthielt. Nach dem beide Werte gesetzt waren, klappt es wunderbar, hoffentlich auch weiterhin. Vielleicht sollte sich Oracle mal überlegen, ob es nicht schick wäre einen komplett Managed Treiber zu erstellen.
Eingestellt von Jan Zieschang um 21:38 2 Kommentare
Tags: dev
Sonntag, Juni 06, 2010
Auto freier Sonntag – Fahrrad fahren in Berlin
Heute war, wie die letzten Tage, bestes Wetter. Zum Glück hat der ADFC heute zur Sternfahrt zum Umweltfest organisiert. Für mich war es die 1. Teilnahme und es war einfach nur schön, aber langsam.
Die Sternfahrt führt von vielen Punkten in Berlin zur Siegessäule, ich habe mich am Bahnhof Lichtenberg angschlossen, obwohl auch vor der Haustür möglich gewesen werden. Es war super beeindruckend, wie viele schon an in der Schlange waren. Unterwegs Richtung Ostbahnhof haben sich viele weitere Radler angeschlossen und bei gemütlichem Tempo, vermutlich knapp über 10km/h fuhr es sich auch bei der Hitze super. Die Tour führte anschließend über Treptow nach Neuköln, dort war eines der Highlights der Tour, fahren durch den Autobahntunnel. Allerdings vor dem Tunnel war das große warten. Die Massen waren so große, dass es eine Gefühlte Ewigkeit gedauert hat, um auf die Autobahn zu kommen. Im hinteren Teil konnte man anschließend kräftig gas geben um wieder nach Vorne zu kommen. Im Tunnel auf der Autobahn war es so klasse, zu mal bei den Temperaturen der Schatten nach dem Stehen in der Hitze super angenehm war. Toll war im 2. Teil der Strecke, dass diese komplett durch die Polizei gesperrt war, der 1. Teil war Fahren hinter dem Führungsfahrzeug. Irgendwo kam auch der ganze Rest der Radler aus den westlichen Bezirken dazu, das war aber nicht mehr so sehr zu merken, da sich alles über viele viele Kilometer auseinander gezogen hatte.
Auf dem 17. Juni wurden die Radler Umweltfest begrüßt, wo Essen und Getränke nach gefüllt werden konnten. Bei Getränkenn fällt mir ein, dass meine 1,5-2l knapp waren. Auf dem Umweltfest gab es auch noch gute Musik, unter anderem von 48 Stunden. Ich habe mir dort nicht so viel Zeit gegönnt, bin nach kurzem Aufenthalt Richtung zu Hause gefahren.
Für mich war es ein Fahrradreiches Wochenende mit viel Sonne und viel Spass, leider aber auch wieder ein Blog-Post ohne Technik. Wenn es gut läuft kann ich vielleicht nächstes Jahr die Kids und einige Freunde begeistern. Es waren sehr viele Kinder dabei.
Eingestellt von Jan Zieschang um 21:36 0 Kommentare