Kategorien
Java

Finalizer in Java: lieber Finger weg!

Laut Java-Spezifikation werden Finalizer in Java aufgerufen, bevor das entsprechende Objekt durch den Garbage Collector aus dem Speicher entfernt wird. Das klingt erst mal verlockend – hier könnte man ja automatische das Freigeben von Resourcen unterbringen. Aber! Es wird nicht garantiert, wann der Finalizer aufgerufen wird. Die freizugebenden Resourcen sind solange blockiert. Schlimmer kommt es…

Kategorien
Software-Entwicklung

Troubleshooting – J2EE und Filesystem voll

Wir hatten folgendes Problem. Symptom: Manchmal wurden Bilder nicht geladen, Manchmal gab es Fehlermeldungen am Anfang oder Ende einer Seite. Umgebung: J2EE-Anwendung auf Oracle IAS 9.0.4 (2 OC4J-instanzen) unter Sun Java VM 1.4.2 auf HP-UX, 8 Prozessor-Maschine, als Entwicklungsumgebung. Analyse: vmstat sagt: ca. 35-40 Prozesse laufen ständig, Anteil user 15%, Anteil sys 85%, idle 0%.…

Kategorien
Software-Entwicklung Java

JAMon 2.0 – Monitoring Java Applications

Kürzlich wurde Version 2.0 von JAMon veröffentlicht. JAMon ist eine kleine, für Java-Anwendungen nützliche Monitoring-Bibliothek. In Version 1 gab es die Möglichkeit, Ausführungszeiten von Code programmatisch zu messen: [java] Monitor m = MonitorFactory.start(„berechnung“); BerechnungsModul.berechne(); m.stop(); [/java] misst die Ausführungszeit der berechne-Methode. Das interessante hierbei ist Statistiken werden über die Ausführungszeiten (genauer: Ausführungsdauer) erstellt (Summe, Mittelwert,…

Kategorien
Java

„Hibernate – A Developers Notebook“ – migrating to Hibernate 3.0, Chapter 8

Chapter 8 introduces Criteria Queries. Only QueryTest.java is affected. Besides the usual net.sf.hibernate to org.hibernate package import renaming, net.sf.hibernate.expressions in Hibernate 2 is replaced by org.hibernate.criterion. Moreover, change the line [java] Example example = Example.create(new Artist(namePattern, null, null)); [/java] to [java] Artist artist = new Artist(); artist.setName(namePattern); Example example = Example.create(artist); [/java] because Hibernate 3…

Kategorien
Java

„Hibernate – A Developers Notebook“ – migrating to Hibernate 3.0, Chapter 7

Chapter 7 is working in Hibernate 3 (as opposed to chapter 6). The most challanging in this chapter migrationwise are StereoVolumeType.java and SourceMediaType.java . Change the import-package names. The Usertype-stuff is now under the package „org.hibernate.usertype“. It won’t compile, yet as there are some methods missing. For SourceMediaType.java: [java] public Object replace(Object original, Object target,…

Kategorien
Java

„Hibernate – A Developers Notebook“ – migrating to Hibernate 3.0, Chapter 6

You can skip the entire chapter 6 if you use Hibernate 3. It is based on the interface PersistenceEnum which already became deprecated in Hibernate 2 as the author points out in the errata. The interface has apparently removed in Hibernate 3.

Kategorien
Java

„Hibernate – A Developers Notebook“ – migrating to Hibernate 3.0, Chapter 5

As in chapter 4, copy the hbm.xml-files and change the DTD-reference. Leave CreateTest.java, QueryTest.java and QueryTest2.java alone – they will still compile. Copy the AlbumTest.java file, change the hibernate-imports and the constructor calls as well as int parameters to Integer. This should be easy as we have done that before.

Kategorien
Java

„Hibernate – A Developers Notebook“ – migrating to Hibernate 3.0, Chapter 4

In this chapter, we add an Entity called „Artist“ as well as an entity called „Comments“. Copy both Track.hbm.xml and Artist.hbm.xml from the examples-distribution and remember to change the DTD-reference if necessary. When using „ant schema“, SAX complained it couldn’t find ${src.root}/com/oreilly/hh/hibernate-mapping-2.0.dtd for Artist.hbm.xml. That’s strange because it didn’t complain about it in Track.hbm.xml before.…