{"id":45,"date":"2007-02-08T17:12:00","date_gmt":"2007-02-08T17:12:00","guid":{"rendered":"http:\/\/www.tutego.de\/blog\/javainsel\/?p=45"},"modified":"2007-02-08T17:12:00","modified_gmt":"2007-02-08T17:12:00","slug":"jboss-jmx-und-jconsole","status":"publish","type":"post","link":"https:\/\/www.tutego.de\/blog\/javainsel\/2007\/02\/jboss-jmx-und-jconsole\/","title":{"rendered":"JBoss, JMX und JConsole"},"content":{"rendered":"<p>Mit JBoss und den propriet\u00e4ren Annotationen ist es einfach eine JMX zu schreiben. JBoss bringt ein Beispiel gleich mit:<\/p>\n<p>package trail.jmx; <\/p>\n<p>public interface Rechner {  <\/p>\n<p>\/\/ Attribute<br \/>public void setGrowthrate (double g);<br \/>public double getGrowthrate ();  <\/p>\n<p>\/\/ The management method<br \/>public double calculate (int start, int end, double saving);  <\/p>\n<p>\/\/ Life cycle method<br \/>public void create () throws Exception;<br \/>public void destroy () throws Exception;<br \/>} <\/p>\n<p>&nbsp;<\/p>\n<p>package trail.jmx;  <\/p>\n<p>import java.lang.management.ManagementFactory;  <\/p>\n<p>import javax.annotation.PostConstruct;  <\/p>\n<p>import org.jboss.annotation.ejb.Management;<br \/>import org.jboss.annotation.ejb.Service;  <\/p>\n<p>@Service (objectName=&#8220;trail:service=calculator&#8220;)<br \/>@Management(Rechner.class)<br \/>public class RechnerMBean implements Rechner {  <\/p>\n<p>double growthrate;  <\/p>\n<p>public void setGrowthrate (double growthrate) {<br \/>this.growthrate = growthrate;<br \/>}  <\/p>\n<p>public double getGrowthrate () {<br \/>return growthrate;<br \/>}<br \/>public double calculate (int start, int end, double saving) {<br \/>double tmp = Math.pow(1. + growthrate \/ 12., 12. * (end &#8211; start) + 1);<br \/>return saving * 12. * (tmp &#8211; 1) \/ growthrate;<br \/>}  <\/p>\n<p>\/\/ Lifecycle methods<br \/>public void create() throws Exception {<br \/>growthrate = 0.08;<br \/>System.out.println(&#8222;Calculator &#8211; Creating&#8220;);<br \/>}  <\/p>\n<p>public void destroy() {<br \/>System.out.println(&#8222;Calculator &#8211; Destroying&#8220;);<br \/>}  <\/p>\n<p>} <\/p>\n<p>In der JMX-Console taucht die Klasse dann auf.<\/p>\n<p>Wenn man das ganze nun mit der JConsole hinbekommen m\u00f6chte, hat man ein Problem, denn JBoss meldet die Beans nicht am Standard-Container f\u00fcr JMX Beans an, sondern an einem eigenen. Daher ben\u00f6tigt JBoss einen Hinweis, in den Sun-Container zu schreiben. Dazu ist ein Schalter beim Starten (run.bat oder in Eclipse bei der Startkonfiguration) mit anzugeben:<\/p>\n<p>-Djboss.platform.mbeanserver -Djavax.management.builder.initial=org.jboss.system.server.jmx.MBeanServerBuilderImpl<\/p>\n<p>Unter Java 5 muss nat\u00fcrlich noch -Dcom.sun.management.jmxremote dazu.<\/p>\n<p>Jetzt ist der &#8222;Rechner&#8220; auch in der JConsole.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mit JBoss und den propriet\u00e4ren Annotationen ist es einfach eine JMX zu schreiben. JBoss bringt ein Beispiel gleich mit: package trail.jmx; public interface Rechner { \/\/ Attributepublic void setGrowthrate (double g);public double getGrowthrate (); \/\/ The management methodpublic double calculate (int start, int end, double saving); \/\/ Life cycle methodpublic void create () throws Exception;public [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[1],"tags":[],"class_list":["post-45","post","type-post","status-publish","format-standard","hentry","category-allgemein"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/45","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/comments?post=45"}],"version-history":[{"count":0,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/45\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/media?parent=45"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/categories?post=45"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/tags?post=45"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}