<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>KopfPit - Weblog &#187; Java</title>
	<atom:link href="http://www.kopfpit.de/wordpress/tag/java/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.kopfpit.de/wordpress</link>
	<description>Webdevelopment</description>
	<lastBuildDate>Sat, 31 Jul 2010 09:24:14 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Java &#8211; Heap Dump Analyse</title>
		<link>http://www.kopfpit.de/wordpress/2010/03/11/java-heap-dump-analyse/</link>
		<comments>http://www.kopfpit.de/wordpress/2010/03/11/java-heap-dump-analyse/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 18:55:05 +0000</pubDate>
		<dc:creator>fs</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[Heap]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[memory leak]]></category>

		<guid isPermaLink="false">http://www.kopfpit.de/wordpress/2010/03/11/java-heap-dump-analyse/</guid>
		<description><![CDATA[Von Zeit zu Zeit kommts leider vor, dass man trotz Garbage Collection und den Automatismen der JVM trotzdem ein Speicherproblem bekommt.
Da hilft dann nur eine Heap Dump Analyse.
Hierzu muss man die JVM in der das Tool l&#228;uft vorbereiten. Der Parameter lautet: -XX:+HeapDumpOnOutOfMemoryError
Mittels des Tools HeapAnalyzer von IBM kann man den Dump dann angucken. Man sollte [...]]]></description>
			<content:encoded><![CDATA[<p>Von Zeit zu Zeit kommts leider vor, dass man trotz Garbage Collection und den Automatismen der JVM trotzdem ein Speicherproblem bekommt.</p>
<p>Da hilft dann nur eine Heap Dump Analyse.</p>
<p>Hierzu muss man die JVM in der das Tool l&#228;uft vorbereiten. Der Parameter lautet: -XX:+HeapDumpOnOutOfMemoryError</p>
<p>Mittels des Tools HeapAnalyzer von IBM kann man den Dump dann angucken. Man sollte der JVM allerdings genug Speicher geben, da die Dump-Dateien schon mal gro&#223; werden k&#246;nnen.</p>
<p>java -Xmx1500m -jar ha395.jar dump.hprof</p>
<p>Das Laden dauert ein bisschen. Anschlie&#223;end sieht man (gleich vorausgew&#228;hlt) die gr&#246;&#223;ten Verd&#228;chtigen.</p>
<p><img src="http://www.kopfpit.de/wordpress/wp-content/uploads/com.ibm_.jinwoo.heap_.HeapAnalyzer.rGnoxbrGJmLv.jpg" alt="com.ibm_.jinwoo.heap_.HeapAnalyzer.rGnoxbrGJmLv.jpg" width="500" height="348" /></p>
<p>Das hilft allerdings leider nur begrenzt bzw. manchmal gar nix, aber man hat noch einen Strohhalm an den man sich klammern kann <img src='http://www.kopfpit.de/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Unterhalb der Version 1.4.2_12 kann man das auch getrost vergessen.</p>
<p>Quellen und Downloads:</p>
<ul style="list-style-type: disc">
<li><a href="http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp">http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp</a></li>
<li><a href="http://www.alphaworks.ibm.com/tech/heapanalyzer">http://www.alphaworks.ibm.com/tech/heapanalyzer</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.kopfpit.de/wordpress/2010/03/11/java-heap-dump-analyse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hibernate &#8211; org.hibernate.StaleStateException: Batch update returned unexpected row count from update: 0 actual row count: 1 expected</title>
		<link>http://www.kopfpit.de/wordpress/2009/10/13/hibernate-org-hibernate-stalestateexception-batch-update-returned-unexpected-row-count-from-update-0-actual-row-count-expected/</link>
		<comments>http://www.kopfpit.de/wordpress/2009/10/13/hibernate-org-hibernate-stalestateexception-batch-update-returned-unexpected-row-count-from-update-0-actual-row-count-expected/#comments</comments>
		<pubDate>Tue, 13 Oct 2009 14:34:50 +0000</pubDate>
		<dc:creator>fs</dc:creator>
				<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Hibernate]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://www.kopfpit.de/wordpress/?p=471</guid>
		<description><![CDATA[Grade hatte ich einen Fehler, der mich fast in den Wahnsinn getrieben hat. Ich nutze Hibernate in einem Projekt und bilde damit viele Abh&#228;ngigkeiten recht komfortabel ab.
Da meine Werte aus einem Form kommen, muss ich Datentypen entsprechend umwandeln. Dies bedeutet, dass alles was kein String ist, gecastet werden muss. Soweit so gut. Allerdings kommt Hibernate [...]]]></description>
			<content:encoded><![CDATA[<p>Grade hatte ich einen Fehler, der mich fast in den Wahnsinn getrieben hat. Ich nutze Hibernate in einem Projekt und bilde damit viele Abh&#228;ngigkeiten recht komfortabel ab.</p>
<p>Da meine Werte aus einem Form kommen, muss ich Datentypen entsprechend umwandeln. Dies bedeutet, dass alles was kein String ist, gecastet werden muss. Soweit so gut. Allerdings kommt Hibernate (mit Recht muss ich im Nachhinein sagen) nicht damit klar, wenn ich bei einem Fremdschl&#252;ssel 0 statt null hinterlegt habe. Hibernate versucht in der Referenztabelle diesen Key zu finden und das schl&#228;g nat&#252;rlich fehl, da ich z.B. einen MySQL Primary Key verwende (der startet bei 1).</p>
<p>Die Fehlermeldung allerdings hat mich erstmal ratlos gelassen, da ich nat&#252;rlich mehrere &#196;nderungen gemacht hatte. Es wird nicht so richtig klar, dass Hibernate an der Fremdschl&#252;ssel-Auswertung scheitert.</p>
<p>Again what learned,</p>
<p>euer Loddar</p>
<p>Siehe auch: <a href="http://www.laliluna.de/258.html">Laliluna: org.hibernate.StaleStateException: Batch update returned unexpected row count from update: 0 actual row count: 0 expected</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kopfpit.de/wordpress/2009/10/13/hibernate-org-hibernate-stalestateexception-batch-update-returned-unexpected-row-count-from-update-0-actual-row-count-expected/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Maven &#8211; log4j Abh&#228;ngigkeiten</title>
		<link>http://www.kopfpit.de/wordpress/2009/10/02/maven-log4j-abhaengigkeiten/</link>
		<comments>http://www.kopfpit.de/wordpress/2009/10/02/maven-log4j-abhaengigkeiten/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 11:17:15 +0000</pubDate>
		<dc:creator>fs</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Dependency]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Maven]]></category>

		<guid isPermaLink="false">http://www.kopfpit.de/wordpress/?p=466</guid>
		<description><![CDATA[Wenn man log4j als Abh&#228;ngigkeit in Maven einbinden will, stolpert man seit der Version 1.2.15 &#252;ber eine Abh&#228;ngigkeit zu Sun Paketen. Diese werden nicht in den Opensource Repos von Maven untergebracht (wegen Lizenz-rechtlichen Gr&#252;nden).
Man kann allerdings die transitiven Abh&#228;ngigkeiten ausschlie&#223;en:
 		&#60;exclusions&#62;
  			&#60;exclusion&#62;
  				&#60;groupId&#62;com.sun.jmx&#60;/groupId&#62;
  				&#60;artifactId&#62;jmxri&#60;/artifactId&#62;
  			&#60;/exclusion&#62;
  		&#60;/exclusions&#62;
Zu dem scheint es mittlerweile [...]]]></description>
			<content:encoded><![CDATA[<p>Wenn man log4j als Abh&#228;ngigkeit in Maven einbinden will, stolpert man seit der Version 1.2.15 &#252;ber eine Abh&#228;ngigkeit zu Sun Paketen. Diese werden nicht in den Opensource Repos von Maven untergebracht (wegen Lizenz-rechtlichen Gr&#252;nden).</p>
<p>Man kann allerdings die transitiven Abh&#228;ngigkeiten ausschlie&#223;en:</p>
<pre> 		&lt;exclusions&gt;
  			&lt;exclusion&gt;
  				&lt;groupId&gt;com.sun.jmx&lt;/groupId&gt;
  				&lt;artifactId&gt;jmxri&lt;/artifactId&gt;
  			&lt;/exclusion&gt;
  		&lt;/exclusions&gt;</pre>
<p>Zu dem scheint es mittlerweile ein Sun-Maven-Repo zu geben. Zu finden unter</p>
<pre>https://maven-repository.dev.java.net/</pre>
<p>Via <a href="http://www.2rue.de/hacking/log4j-und-jmx-maven-dependencies/">http://www.2rue.de/hacking/log4j-und-jmx-maven-dependencies/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.kopfpit.de/wordpress/2009/10/02/maven-log4j-abhaengigkeiten/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Maven &#8211; Hibernate Abh&#228;ngigkeitsproblem</title>
		<link>http://www.kopfpit.de/wordpress/2009/09/28/maven-hibernate-abhaengigkeitsproblem/</link>
		<comments>http://www.kopfpit.de/wordpress/2009/09/28/maven-hibernate-abhaengigkeitsproblem/#comments</comments>
		<pubDate>Mon, 28 Sep 2009 11:03:10 +0000</pubDate>
		<dc:creator>fs</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Dependency]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Maven]]></category>

		<guid isPermaLink="false">http://www.kopfpit.de/wordpress/?p=461</guid>
		<description><![CDATA[Wenn man in Maven Hibernate einbinden will, kann es sein, dass man eine Fehlermeldung Ã  la
Missing indirectly referenced artifact
javax.transaction:jta:jar:1.0.1B:compile
bekommt, muss man das JTA per Hand (oder &#252;ber ein Dritt-Repository) installieren, da es aus Lizenz-technischen Gr&#252;nden nicht im Maven Repository gehalten wird.
Herunterladen kann man sich das Ganze unter: http://java.sun.com/javaee/technologies/jta/index.jsp
Der Befehl ist:
mvn install:install-file -Dfile=./jta-1_0_1B-classes.zip
-DgroupId=javax.transaction -DartifactId=jta
-Dversion=1.0.1B -Dpackaging=jar
via [...]]]></description>
			<content:encoded><![CDATA[<p>Wenn man in Maven Hibernate einbinden will, kann es sein, dass man eine Fehlermeldung Ã  la</p>
<pre>Missing indirectly referenced artifact
javax.transaction:jta:jar:1.0.1B:compile</pre>
<p>bekommt, muss man das JTA per Hand (oder &#252;ber ein Dritt-Repository) installieren, da es aus Lizenz-technischen Gr&#252;nden nicht im Maven Repository gehalten wird.</p>
<p>Herunterladen kann man sich das Ganze unter: <a href="http://java.sun.com/javaee/technologies/jta/index.jsp">http://java.sun.com/javaee/technologies/jta/index.jsp</a></p>
<p>Der Befehl ist:</p>
<pre>mvn install:install-file -Dfile=./jta-1_0_1B-classes.zip
-DgroupId=javax.transaction -DartifactId=jta
-Dversion=1.0.1B -Dpackaging=jar</pre>
<p>via <a href="http://programmers-blog.com/2008/05/24/maven-missing-jta-artifact">http://programmers-blog.com/2008/05/24/maven-missing-jta-artifact</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.kopfpit.de/wordpress/2009/09/28/maven-hibernate-abhaengigkeitsproblem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HowTo &#8211; Ubuntu Tomcat Autostart</title>
		<link>http://www.kopfpit.de/wordpress/2009/03/26/howto-ubuntu-tomcat-autostart/</link>
		<comments>http://www.kopfpit.de/wordpress/2009/03/26/howto-ubuntu-tomcat-autostart/#comments</comments>
		<pubDate>Thu, 26 Mar 2009 16:31:47 +0000</pubDate>
		<dc:creator>fs</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Tomcat]]></category>

		<guid isPermaLink="false">http://www.kopfpit.de/wordpress/?p=380</guid>
		<description><![CDATA[Vieles ist in Linux einfach zu bewerkstelligen, ein paar Sachen sind etwas mit Wissen zu hinterlegen bevor man sie durchf&#252;hrt. So auch das Starten von Applikationen beim Bootvorgang.
Nehmen wir als Beispiel mal einen Tomcat App Server. Das Programm gibt einemÂ schon Skripte zum starten und beenden an die Hand. Das ist eigentlich auch alles was [...]]]></description>
			<content:encoded><![CDATA[<p>Vieles ist in Linux einfach zu bewerkstelligen, ein paar Sachen sind etwas mit Wissen zu hinterlegen bevor man sie durchf&#252;hrt. So auch das Starten von Applikationen beim Bootvorgang.</p>
<p>Nehmen wir als Beispiel mal einen Tomcat App Server. Das Programm gibt einemÂ schon Skripte zum starten und beenden an die Hand. Das ist eigentlich auch alles was man zum weiteren Vorgehen braucht.</p>
<p>Im Verzeichnis /etc/init.d sind bei Linux &#252;blicherweise die Startskripten abgelegt. Diese stellen im Normalfall 4 Parameter zur Verf&#252;gung (start/stop/restart/force-reload). Zum Starten brauchen wir&#8230; Trommelwirbel&#8230; den Start-Parameter.</p>
<p>Wir legen also nun f&#252;r den Tomcat unter /etc/init.d eine Datei namens tomcat an (mit Root-Rechten).</p>
<pre>sudo vi /etc/init.d/tomcat</pre>
<p>Es kann auch jeglicher anderer Editor, wie z.B. nano genommen werden.</p>
<p>Anschlie&#223;end bef&#252;llen wir die Datei mit Inhalt:</p>
<pre># Autostart script for tomcat

CATALINA_HOME=path-to-tomcat-directory
export JRE_HOME=path-to-jre-directory

case $1 in
start)
sudo -u <em>username</em> sh $CATALINA_HOME/bin/startup.sh
;;
stop)
sudo -u <em>username</em> sh $CATALINA_HOME/bin/shutdown.sh
;;
restart)
sudo -u <em>username</em> sh $CATALINA_HOME/bin/shutdown.sh
sudo -u <em>username</em> sh $CATALINA_HOME/bin/startup.sh
;;
force-reload)
sudo -u <em>username</em> sh $CATALINA_HOME/bin/shutdown.sh
sudo -u <em>username</em> sh $CATALINA_HOME/bin/startup.sh
;;
esac
exit 0</pre>
<p>Damit k&#246;nnen wir schon recht komfortabel den Kater starten, aber nur manuell. Aber zumindest sind mal die einzelnen Skriptaufrufe weggekapselt.</p>
<p>Zum Autostart verwendet Linux sogenannte <a title="Runlevel - Wikipedia" href="http://de.wikipedia.org/wiki/Runlevel" target="_blank">Runlevel</a>. Nat&#252;rlich hat jede gr&#246;&#223;ere Distribution da andere.</p>
<pre>sudo ln -s /etc/init.d/tomcat /etc/rc1.d/K99tomcat
sudo ln -s /etc/init.d/tomcat /etc/rc2.d/S99tomcat</pre>
<p>Obige Zeilen bedeuten, dass der Tomcat im Multiusermode (rc2) gestartet wird (S99), aber beim Betreten des Singleusermode (rc1) gestoppt wird (K99).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kopfpit.de/wordpress/2009/03/26/howto-ubuntu-tomcat-autostart/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL &#8211; Profiler</title>
		<link>http://www.kopfpit.de/wordpress/2009/02/10/mysql-profiler/</link>
		<comments>http://www.kopfpit.de/wordpress/2009/02/10/mysql-profiler/#comments</comments>
		<pubDate>Tue, 10 Feb 2009 21:15:11 +0000</pubDate>
		<dc:creator>fs</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Datenbanken]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Profiling]]></category>

		<guid isPermaLink="false">http://www.kopfpit.de/wordpress/?p=362</guid>
		<description><![CDATA[Grade dr&#252;ber gestolpert: Jet Profiler von Polaricon. Die Freeware-Version ist etwas eingeschr&#228;nkt, man kann keine Benutzer unterscheiden und es werden leider keine Slow Queries gezeigt. Aber zum Testen und auf Dev-Maschinen sicher einen Blick wert.
]]></description>
			<content:encoded><![CDATA[<p>Grade dr&#252;ber gestolpert: <a title="Jet Profiler" href="http://www.jetprofiler.com/" target="_blank">Jet Profiler</a> von Polaricon. Die Freeware-Version ist etwas eingeschr&#228;nkt, man kann keine Benutzer unterscheiden und es werden leider keine Slow Queries gezeigt. Aber zum Testen und auf Dev-Maschinen sicher einen Blick wert.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kopfpit.de/wordpress/2009/02/10/mysql-profiler/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (enhanced) (user agent is rejected)
Database Caching using disk

Served from: www.kopfpit.de @ 2010-07-31 10:08:28 -->