JBoss 5 DataCache

tobe77

Mitglied
Hallo zusammen,

ich möchte einen Cache umsetzen der als erstes nach dem Start des Server geladen wird. Die Cache Klasse hab ich
bereits geschrieben. Mein Problem ist jetzt wie ich den Cache nach dem Start automatisch aufrufe.
Hat jemand ne Idee?

Grüße
T
 

tobe77

Mitglied
Vielen Dank für die Anwort!

Ich wollte es eigentlich anders lösen

Java:
package de.tool;

import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import javax.ejb.EJB;
import javax.ejb.EJBException;
import javax.ejb.MessageDriven;
import javax.ejb.ActivationConfigProperty;
import javax.ejb.MessageDrivenContext;
import javax.ejb.PostActivate;
import javax.ejb.PrePassivate;
import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType;
import javax.ejb.TransactionManagement;
import javax.ejb.TransactionManagementType;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;
import javax.persistence.PostLoad;

import org.jboss.aspects.dbc.PreCond;
import org.jboss.ejb3.annotation.DefaultActivationSpecs;
import org.jboss.metadata.plugins.scope.DeploymentScope;

@MessageDriven(activationConfig = {
		@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
		@ActivationConfigProperty(propertyName = "destination", propertyValue = "/queue/MyQueue"),
		@ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge"),
		@ActivationConfigProperty(propertyName = "minSession", propertyValue = "1"),
		@ActivationConfigProperty(propertyName = "maxSession", propertyValue = "1")})
@TransactionManagement(TransactionManagementType.CONTAINER)
@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
public class ExampleMDB implements MessageListener{
	
	public void onMessage(Message recvMsg) {

	}
	
	@PostConstruct
	public void start(){
		System.out.println("START MDB");
		System.out.println("Cache wird initialisiert");
		DataCache.loadCache();
	}
}

nur irgendwie wird die start() Methode beim Start des Servers nicht aufgerufen. Erst nachdem ich ne Nachricht in die Queue schicke. Lösung?
 

FArt

Top Contributor
Ich wollte es eigentlich anders lösen
Kann sein, dein Ansatz ist aber grundsätzlich falsch.

nur irgendwie wird die start() Methode beim Start des Servers nicht aufgerufen. Erst nachdem ich ne Nachricht in die Queue schicke.
Das liegt an deinem falschen Ansatz. Dein Cache läuft im Context eines zustandslosen EJB. Wann die Bean wirlich erstellt wird entscheidet der Container. Ebenso wann sie einfach so wieder gelöscht wird, wenn z.B. länger keine Nachrichten empfangen werden. Die Initialisierung des Cache lässt vermuten, dass du hier mit einer Art "static Singleton" arbeitest. Auch das ist in einem EJB Kontext nicht sinnvoll, bei schreibenden Zugriffen sogar falsch.
Setzte dich mal mit dem Lifecycle von EJBs im Speziellen und der EE Theorie im Allgemeinen (EJB und JEE Spec!!!) auseinander.

Beste Lösung: realisiere eine Cache nicht selber, schon gar nicht in einer Laufzeitumgebung, in der du dich nicht auskennst.
Nächstbeste Lösung: du kennst dich im Applicationserver aus und hast dich aus sehr gutem Grund gegen eine bewährte Lösung entschieden. Dann solltest du den Cache als Service realiseren, z.B. als MBean oder (neue, angenehme Möglichkeit) als managed POJO:

Chapter*28.*Service POJOs (JBoss extension of EJB3)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I "localhost" zu DNS (z.B. my webapp.de) ändern bei JBoss / Wildfly Server einrichten und konfigurieren 6
OnDemand Welcher Appserver? Glassfish, Jboss? Server einrichten und konfigurieren 8
C Probleme beim Starten von JBoss AS 7.1.1 Server einrichten und konfigurieren 1
P JBoss Domain mode Server einrichten und konfigurieren 1
W Mehrere Datasources unter JBoss Domain-Modus? Server einrichten und konfigurieren 0
D JBoss Download Speed Server einrichten und konfigurieren 3
M JBoss JNDI Server einrichten und konfigurieren 0
boxi JBoss standalone.sh bleibt "hängen" Server einrichten und konfigurieren 0
V JBoss DuplicateServiceException mysql Server einrichten und konfigurieren 2
R Jboss Problem nach versuchtem PrimeFaces Update Server einrichten und konfigurieren 0
P JBoss 7.1 konfigurieren fürs Web Server einrichten und konfigurieren 2
S JBoss 7.1.1 stürzt ab Server einrichten und konfigurieren 5
G JBoss restart nach Stromausfall Server einrichten und konfigurieren 2
E JBoss bind address Server einrichten und konfigurieren 4
P JBoss vom putty aus starten Server einrichten und konfigurieren 7
R Multi-Server Architektur im AS (JBOSS/Glassfish) realisieren Server einrichten und konfigurieren 2
T JBoss mit JSF Problemem Server einrichten und konfigurieren 2
P JBoss in Linux Server einrichten und konfigurieren 2
H JBoss AS 7.1.1 Installations problem Server einrichten und konfigurieren 2
N JBoss AS 7.1 - Fehler: Hauptklasse C: Server einrichten und konfigurieren 7
T JBOSS und Glassfish auf einem physischen Rechner Server einrichten und konfigurieren 5
G JNDI JBoss Server einrichten und konfigurieren 5
T Von JBoss gelieferte Dependencies nicht deployen Server einrichten und konfigurieren 7
P JBoss 7 Server log4j.jar Server einrichten und konfigurieren 10
J JBoss zeigt im Browser nichts an Server einrichten und konfigurieren 18
M JBoss und Tomcat Server einrichten und konfigurieren 8
P JBoss Server Server einrichten und konfigurieren 2
NoXiD EJB 3.1 für JBoss 7 Server einrichten und konfigurieren 3
D In Jboss 4.2 *-ds.xml Deployment Reihenfolge steuern? Server einrichten und konfigurieren 2
M Exception mit Hippo ECM auf Jboss Server einrichten und konfigurieren 2
M Wenn Classloader isolation dann keine JNDI Verbindung mit Webapp in Jboss Server einrichten und konfigurieren 2
M Jboss Deployment Problem Server einrichten und konfigurieren 2
V Jboss 5 Release Infos auslesen? Server einrichten und konfigurieren 7
G JBoss Portal =? JBoss + JBoss Portal Server einrichten und konfigurieren 2
D jBoss Basis-setup Server einrichten und konfigurieren 8
V Problem bei Portwechsel bei JBOSS unter macosx, oder anderes Problem? Server einrichten und konfigurieren 3
J Seam 2.2: JBoss 4.2.3 oder 5.1? Server einrichten und konfigurieren 1
D Probleme Installation JBoss Application Server Server einrichten und konfigurieren 5
S JBoss MySQL TimeOut Server einrichten und konfigurieren 3
M Problem beim jboss Start Server einrichten und konfigurieren 2
S JBoss und Eclipse unter Windows 7 Server einrichten und konfigurieren 2
F JBoss-Download ohne run.bat Server einrichten und konfigurieren 2
G JBoss 4.2 und Eclipse Server einrichten und konfigurieren 4
M JBoss 5.1 will nicht starten Server einrichten und konfigurieren 2
G JBoss Port in use- Problem Server einrichten und konfigurieren 4
K JBoss 4.2.1 Directory Browsing Server einrichten und konfigurieren 4
Y Jboss nur im internen Netz auf Port 8080zulassen Server einrichten und konfigurieren 6
fastjack jBoss Natives und Windows Service Server einrichten und konfigurieren 3
R JBoss AS 5.1: --host-Parameter für Windows-Service Server einrichten und konfigurieren 1
S Problem mit JBoss und DataSource Server einrichten und konfigurieren 3
P JBOSS AS5 Port Konfig Server einrichten und konfigurieren 11
GFEMajor Von Tomcat auf JBoss EJB mit Sicherheit Server einrichten und konfigurieren 2
N JMX Console von JBoss und Hochkomata Server einrichten und konfigurieren 3
J SecurityContextInterceptor fehlt bei ejb3 Anwendung unter JBoss 5.0 Server einrichten und konfigurieren 1
S JBoss & Apache 2.2 parallel betreiben Server einrichten und konfigurieren 5
J JBoss 2 Servlet in 1 web-app Server einrichten und konfigurieren 4
S JBoss nicht von außen erreichbar? Server einrichten und konfigurieren 1
P JBoss Cluster mit Apache als Loadbalancer Server einrichten und konfigurieren 1
F Jboss mit Apache2 verbinden Server einrichten und konfigurieren 3
S Eine Frage zu log4j, jboss an sql-server (im teigmantel ;) ) Server einrichten und konfigurieren 3
G Multi-Tier mit JBoss und Tomcat: Trennung der Ebenen Server einrichten und konfigurieren 7

Ähnliche Java Themen

Neue Themen


Oben