Archive

Archive for March, 2009

Automatisches Ressourcenmanagement in Java 7

March 10th, 2009 Comments off

Wenn in einem Java-Programm Ressourcen (Dateien, SQL-Verbindungen, usw.) geöffnet werden, muss der Programmierer darauf achten, die Ressourcen auch ordnungsgemäß wieder frei zu geben. Geschieht dies nicht, erzeugt das Programm ein “Ressourcen-Leck”. Die Folgen können unterschiedlich sein, von nicht spürbaren Performanceeinbußen bis hin zur Instabilität und Untauglichkeit des gesamten Programms.
Um diese Fehlerquelle im Vorfeld zu vermeiden, wäre es also wünschenswert, dass eine Programmierplattform das Ressourcenmanagement weitestgehend automatisch durchführen kann. In Java ist das bisher nicht möglich, aber für Java 7 gibt es einen Änderungsvorschlag dafür.

So sähe dann mit Java 7 z.B. das Kopieren einer Datei aus:

1
2
3
4
5
6
7
8
9
    static void copy(String src, String dest) throws IOException {
        try (InputStream in = new FileInputStream(src);
             OutputStream out = new FileOutputStream(dest)) {
            byte[] buf = new byte[8192];
            int n;
            while ((n = in.read(buf)) >= 0)
                out.write(buf, 0, n);
        }
    }

Read more…

Categories: Programmierung Tags:

Homeserver mit Opensolaris (Erfahrungsbericht)

March 3rd, 2009 Comments off

Ein alter, ungenutzter Rechner kann als Homeserver umfunktioniert werden, um beispielsweise wichtige Daten darauf zu sichern. In meinem Fall benutze ich einen AMD Duron mit 1000 MHz und 512 MB RAM.
Ein Dateiserver sollte besonders robust sein und das Risiko für Datenverluste minimieren. Um sich beispielsweise gegen den Ausfall einer Festplatte abzusichern, sollten die Daten auf einer zweiten Festplatte gespiegelt werden. Und um sich vor versehentlichem Löschen zu schützen, sollten inkrementelle Backups erstellt werden, so dass alte Zustände der Daten wiederhergestellt werden können. Das (und noch mehr) kann relativ einfach mit dem innovativen Dateisystem ZFS erreicht werden.
Für die Spiegelung werden zwei baugleiche Festplatten benötigt. In diesem Fall kommen zwei USB-2.0-Festplatten mit jeweils 1000 GB Kapazität zum Einsatz. Als Betriebssystem wird Opensolaris verwendet (Distribution: Nexenta Core Platform 2 Beta2).


Read more…