EJB3: Automatisches Erstellen von Queues bei MDBs

Vor ein paar Tagen hatte ich ein interessantes Problem: bei JBoss 4 war es sehr einfach, Queues für MDBs zu erzeugen. Einfach destination und destinationType in die @ActivationConfigProperty eintragen und beim Deployment werden werden die Queues automatisch erzeugt. Leider ist das bei JBoss 5 nicht mehr ganz so einfach. Der Trick ist, in der jboss.xml das Tag true hinzuzufügen und auf die entsprechende EJB und die anzulegende Queue zu verweisen (die jboss.xml liegt im META-INF-Verzeichnis). Im Ganzen sieht das folgendermaßen aus:

<?xml version="1.0" encoding="UTF-8"?>
<jboss xmlns="http://www.jboss.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.jboss.com/xml/ns/javaee http://www.jboss.org/j2ee/schema/jboss_5_0.xsd"
version="3.0">
<enterprise-beans>
<message-driven>
<ejb-name>QueueCreateMDB</ejb-name>
<destination-jndi-name>queue/myQueue</destination-jndi-name>
<create-destination>true</create-destination>
</message-driven>
</enterprise-beans>
</jboss>

Die dazu passende MessageBrivenBean sieht so aus:


@MessageDriven(name="QueueCreateMDB", activationConfig={
@javax.ejb.ActivationConfigProperty(propertyName="destinationType", propertyValue="javax.jms.Queue"),
@javax.ejb.ActivationConfigProperty(propertyName="destination", propertyValue="queue/myQueue"),
@javax.ejb.ActivationConfigProperty(propertyName="useDLQ", propertyValue="false"),
@javax.ejb.ActivationConfigProperty(propertyName="acknowledgeMode", propertyValue="Auto-acknowledge")},
messageListenerInterface=MessageListener.class)

public class QueueCreateMDB implements MessageListener {

Dadurch wird beim Deployment die angegebene Queue angelegt.

{lang: 'de'}

flattr this!

Erkenschwick

{lang: 'de'}

flattr this!

Im Club

{lang: 'de'}

flattr this!

JON 3 und Alerts

Ich sollte Beta-Tester bei RedHat werden: ich habe drei Cases im Support-Portal aufgemacht und es sind zwei Bugs aufgemacht worden. Dieses Mal habe ich einen OutOfMemory-Alert aufgesetzt: Ziel war es, dass ein Alert ausgelöst wird, wenn ein java.lang.OutOfMemory-Error im server.log-file des JBoss auftaucht. Dazu habe ich einen Alert und einen entsprechenden Recovery Alert definiert. Problem war: der Recovery Alert hat nicht gezogen. Das Problem war, dass ich die Availability des Recovery Alerts auf “Comes up” gesetzt habe, was offensichtlich nicht funktioniert. Ein Workaround ist, dass ein zusätzlicher Event auf den Start des App-Servers gelegt wird (“Started in:”), was aber sehr unschön ist, da der JON dann mit Events zugespamt wird. Wie dem auch sei: hier ist der Bug zu finden.

Update: Hach, geht auch nicht … so muss es sein: bei “Condition” muss “Operation Execution [restart] with result status [SUCCESS]” eingestellt werden, dann geht es. Darüber hinaus hatte ich das Problem, dass der Restart immer Timeouts bekommen hat, nach dem Ändern der Log4j-Konfiguration (!!!) hat es dann funktioniert. Sehr sonderbar, zumal der Restart als Skript implementiert ist und explizit nicht über JMX. Irgendwie macht mir das ernsthaft Bauchschmerzen …

{lang: 'de'}

flattr this!

Plugins für JON … und Maven

Diese Woche habe ich ein wenig mit JON 3 rumgespielt und wollte natürlich auch ein kleines Plugin schreiben. Also habe ich mir eine working copy des Git-Repositories von RHQ ausgecheckt und versucht, die “samples” mit “mvn install” zu bauen. Leider musste ich feststellen, dass das nicht funktioniert:


[INFO] Scanning for projects...
[WARNING]
[WARNING] Some problems were encountered while building the effective model for org.custom:simplereport-serverplugin:jar:1.0-SNAPSHOT
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ line 91, column 18
[WARNING]
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING]
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING]
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building RHQ Simple Report Server Plugin 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ simplereport-serverplugin ---
[INFO] Deleting C:\data\git\rhq\simplereport-serverplugin\target
[INFO]
[INFO] --- maven-resources-plugin:2.4.3:resources (default-resources) @ simplereport-serverplugin ---
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 1 resource
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ simplereport-serverplugin ---
[WARNING] File encoding has not been set, using platform encoding Cp1252, i.e. build is platform dependent!
[INFO] Compiling 1 source file to C:\data\git\rhq\simplereport-serverplugin\target\classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------

Meine erste Annahme war, dass ich irgendwo einen Fehler gemacht habe, die pom-Files sahen aber in Ordnung aus, also habe ich mich an den RedHat-Support gewandt. Ergebnis: das ist leider ein Bug, der immer auftritt, wenn kein RHQ-Maven-Repository vorhanden ist bzw. wenn dieses leer ist. Sehr unschön.

{lang: 'de'}

flattr this!

100 Tage Piratenpartei

“Von Null auf 15 – Fünfzehn Abgeordnete der Piratenpartei wurden am 18. September 2011 ins Berliner Abgeordnetenhaus gewählt. Ein Erfolg, der seit den Grünen keiner anderen Partei-Neugründung in Deutschland mehr gelungen ist. Innerhalb weniger Wochen liegen sie in den Umfragen bundesweit zwischen 8 und 10 %. Nicola Graef und Torsten Mandalka begleiten vier Abgeordnete während ihrer ersten 100 Tage im Berliner Parlament: Andreas Baum, den Fraktionsvorsitzenden und besonnenen Vermittler zwischen den parteiinternen Strömungen; Susanne Graf, die einzige Frau und die mit 19 Jahren jüngste Abgeordnete; Christopher Lauer, enfant terrible und “Medien-Rampensau’; Schließlich: Martin Delius, der redegewandte parlamentarische Geschäftsführer der Piratenfraktion in Berlin.”

Piraten in der Politik – 100 Tage einer Aufsteigerpartei

{lang: 'de'}

flattr this!

Angriff der Mond-Nazis!

Oder so ähnlich … was ich eigentlich sagen wollte: Iron Sky ist fertig, no shit!

Und der Film wird bei der Berlinale gezeigt, ist das nicht großartig, hach ….

Und hier ist der Constantin Gonzalez kurz zu sehen, wie klein die Welt doch ist.

{lang: 'de'}

flattr this!

The Megaupload-Song

Megaupload, der Song! Woohooo!

Und hier war er mal bei Harald Schmidt, ein wenig unsympathisch, wie mir scheint:

{lang: 'de'}

flattr this!

Hungermarsch und Laptop-Poser

{lang: 'de'}

flattr this!

BED-Con

Ich habe eben zum ersten Mal einen Vorschlag für einen Talk eingereicht und zwar bei der BED-Con 2012. Thema des Talks ist (natürlich) der JBoss 7 und wie die Neuerungen des Application Servers im Alltag sinnvoll nutzbar sind. Drückt mir die Daumen, dass das Komitee den Vorlschlag annimmt.

{lang: 'de'}

flattr this!