Schlagwort-Archive: Architektur

Oracle 12c / Java7: setEndToEndMetrics() deprecated

Dies ist eine kurze Aktualisierung zu meinem früheren Artikel „DBMS_SESSION: Anwender und Sessions mehrschichtiger Anwendungen in der DB identifizieren„, der sich auf Oracle 11.2 nebst der damals unterstützten JDBC-Version bezog.

Die Oracle 12c JDBC-Treiber unterstützen JDBC 4.1 über das JDK 7 und damit auch die JDBC DMS Metrics, wenn entsprechende Treiber-Packages (z.B. ojdbc7dms.jar) verwendet werden. Die in meinem damaligen Beispiel verwendete Methode setEndToEndMetrics schließt allerdings die wechselseitige Verwendung mit DMS-Methoden aus. Daher empfiehlt es sich auf die neue Methode setClientInfo umzustellen. Ein Codefragment mit der neuen Methode kann dann so aussehen:

...
Connection conn = DriverManager.getConnection(myUrl, myUsername, myPassword);
conn.setClientInfo("E2E_CONTEXT.DBOP", "MeinTag");
Statement stmt = conn.createStatement();
// DBOP-Tag wird mit dem naechsten DB-Aufruf gesetzt:
stmt.execute("select 1 from dual");
...

Dem Nachteil, dass schon wieder eine andere Methode als bisher verwendet werden soll, steht der Vorteil gegenüber, dass man sich mit DMS Metrics in einem standardisierten Umfeld bewegt und auch nicht mehr zwingend eine OracleConnection verwenden muss; eine einfache Connection reicht aus.

Oracle VirtualBox 3.2.8: Jetzt mit Shared Disks

Und noch ein Fundstück: Im Changelog zu der Virtualisierungssoftware „VirtualBox“, die nach dem Kauf von Sun nun auch zum Oracle-Portfolio gehört, ist ein kleiner, aber wichtiger Eintrag zu finden: Demnach ist es mit dem Release 3.2.8 vom vergangenen Freitag nun ohne Tricks und externe Tools möglich, eine virtuelle Festplatte mehreren VMs zuzuordnen.

Bislang war das Fehlen dieser Möglichkeit ein wesentlicher Nachteil gegenüber anderen Virtualisierungslösungen, wenn man eine RAC-Umgebung (die Shared Disks benötigt) aufsetzen wollte. Ob genau das vielleicht die treibende Kraft hinter dieser Verbesserung war? Darüber kann man nur spekulieren, doch in jedem Fall war dies eine längst überfällige Verbesserung.

Ein kleiner Nachteil ist, daß Shared Disks nur mit fester Größe angelegt werden dürfen (VMWare z.B. kann auch Shared Disks dynamisch wachsen lassen) und nur über die Kommandozeile angelegt werden können. Beispiel:

VBoxManage createhd --filename share1.vdi --variant Fixed --type shareable --size 200 --comment "Shared Disk"

Siehe auch: http://www.virtualbox.org/manual/ch05.html#hdimagewrites

Edit vom 13.10.2010: Ein ausführliches Beispiel zum Aufbau eines RAC mit VirtualBox gibt es jetzt auch auf diesem Blog.

 

Proxy-User

In mehrschichtigen Architekturen ist es gängig, dass ein Application Server mehrere Verbindungen zur Datenbank auf Vorrat aufbaut (ein sog. Connection Pool). Häufig geschieht das mit einem einzigen Benutzerkonto, was den Nachteil hat, dass

  • diesem Benutzerkonto alle möglichen Rechte für verschiedene Anwendungsteile zugeteilt werden müssen und
  • dadurch einzelne Anwendungsteile sämtliche dieser Rechte in der Datenbank wahrnehmen können, was ein Sicherheitsrisiko bedeuten kann;
  • bei der Fehlerdiagnose oder bei Sicherheits-Audits Datenbank-seitig nicht nachvollzogen werden kann, welcher Benutzer welche Aktion durchgeführt hat, da immer nur das eine Benutzerkonto des Servers verwendet wird.

Ursächlich ist dafür leider oft einfach nur fehlendes Wissen über die vielfältigen, ausgereiften Möglichkeiten, die die Oracle-Datenbank in puncto Sicherheit zu bieten hat. Und so wird das Rad immer wieder aufs Neue erfunden, indem etliche Sicherheitsfunktionen neu – und damit potentiell fehlerhaft – in eine Anwendung hinein programmiert werden und die Anwendung sich dann vielleicht auch noch mit einem Benutzer zur Datenbank verbindet, der jegliche Tabelle lesen und jegliche Prozedur ausführen darf! Da ist der nächste Skandal um Datendiebstahl buchstäblich vorprogrammiert. Weiterlesen