EJB - ConnectionPooling: Wie Connection erhalten?

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hi zusammen,

ich habe folgendes Problem, wobei ich nicht konkret weiß wie ich es lösen kann:

Ich möchte auf EJB-Ebene eine Connection aus dem ConnectionPool erhalten. Dabei sollen die dafür benötigten Konfigurationen wie URL, UserName, Passwort und DriverName aus einer Properties-Datei verwendet werden. Hierfür habe ich auch bereits eine solche Datei erstellt. Ebenso die Klasse DbProperties:

Code:
public final String driver;
	public final String url;
	public final String user;
	public final String password;

	public DbProperties(String filename) {
		Properties props = new Properties();
		try {
			props.load(new FileInputStream(filename));
			this.driver = props.getProperty("db.driver", "");
			this.url = props.getProperty("db.url", "");
			this.user = props.getProperty("db.user", "");
			this.password = props.getProperty("db.password", "");
		}
		catch (Exception e) {
			throw new RuntimeException(e);
		}
	}

Nun habe ich eine Helper-Klasse geschrieben, die sich um die Datenbankaktionen wie SELECT, INSERT, UPDATE etc. kümmert. Hier die select-Methode:

Code:
public <T> List<T> getResultList(DataSource ds, JdbcStatement statement, JdbcRowProcessor<T> processor) {
		Connection con = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		try {
			con = ds.getConnection();
			ps = this.createPreparedStatement(con, statement);
			rs = ps.executeQuery();
			List<T> list = new ArrayList<T>();
			while (rs.next()) {
				T obj = processor.process(rs);
				if (obj != null)
					list.add(obj);
			}
			return list;
		}
		catch (SQLException e) {
			throw new RuntimeException(e);
		}
		finally {
			close(con, ps, rs);
		}
	}

Wenn ich das richtig verstanden habe, hole ich mir aus der DataSource eine Connection aus dem ConnectionPool, mit der ich dann Transaktionen durchführen kann.

Meine Frage lautet daher: Wie und wann kann ich die spezifischen Konfigurationen in dem ConnectionPool setzen?
 
M

maki

Gast
In einem EJB Container darf laut Spezifikation nicht über das Paket java.io auf Files zugegriffen werden, wo wird die DBProperties wohl aufgerufen? ;)

Lass die DS doch vom Container Managen, der kann das wirklich gut, zugriff erhälst du über JNDI.
 
G

Guest

Gast
Heißt das denn auch in der Konsequenz, dass die Klasse DBProperties hinfällig wird und der Container die Konfigurationsdatei automatisch lädt?
 
M

maki

Gast
So ungefähr, allerdings keine Proprties Datei.

Welchen EJB Container verwendest du denn?

Musst du die "Properties" der Connection selbst setzen/verwalten?
 
G

Guest

Gast
Ich verwende EJB 3.0.

Ich weiß ehrlich gesagt nicht genau, wer die ganzen Konfigurationseinstellungen vornehmen muss. Ich vermute mal der Container dann selber.

Der ConnectionString bleibt, wenn man so will, immer konstant. Ich frage mich nur, wie ich es dem Container "beibringen" kann.
 
G

Guest

Gast
Muss ich denn dann die Adresse des Webservers, oder die Adresse des Datenbankservers angeben, oder sogar beide Adressen?
 
G

Guest

Gast
Ich würde meiner Meinung nach beide Adressen angeben müssen. Der Client verbindet sich zum Webserver. Der Webserver ist dann für den Ablauf der Datenbankverbindung zuständig.
 

FArt

Top Contributor
Was hat der Webserver mit EJBs zu tun? Wird z.B. SOAP als Kommunikationsprotokoll für den Applicationserver verwendet?

Gast sollte mal ein Tutorial mit seinem Applicationserver durchspielen..
 
G

Guest

Gast
Lösung des Problems:

In der jboss-ds.xml muss eine Konfiguration für die Datenbank eingetragen werden.

Anschließend verpasst man der DataSource eine Annotation mit @Resource.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
X Zuviel Db-Connections bei Connectionpooling Java Basics - Anfänger-Themen 1
Hallolu PONG Parent-Child connection Java Basics - Anfänger-Themen 3
B MySQL (jdbc) -> connection liefert NULL Java Basics - Anfänger-Themen 3
G sql server connection mit windows authentication Java Basics - Anfänger-Themen 2
X Connection reset, wieso? Java Basics - Anfänger-Themen 4
P java.net.ConnectException: Connection refused: connect Java Basics - Anfänger-Themen 8
S Input/Output URL Connection Problem Java Basics - Anfänger-Themen 5
H Connection Java Basics - Anfänger-Themen 9
B Prüfung auf erfolgreiche Connection? Java Basics - Anfänger-Themen 2
K Frage zu einer Connection in Java Java Basics - Anfänger-Themen 3
R JDK installieren Nach Update auf java 1.7 Connection refused Java Basics - Anfänger-Themen 9
M "Connection reset" gbxRemote Socket Java Basics - Anfänger-Themen 9
M Netzwerkprogrammierung => Is connection alive? Java Basics - Anfänger-Themen 6
D Mysql Connection Close? Java Basics - Anfänger-Themen 14
B JDBC DB2 Connection Java Basics - Anfänger-Themen 1
D Facebook Connection problem Java Basics - Anfänger-Themen 2
M Audio Stream läuft auf :connection abort: socket write error Java Basics - Anfänger-Themen 2
G java.sql.Connection Connect ungleich null, aber geschlossen Java Basics - Anfänger-Themen 2
G JavaMail: Unrecognized SSL message, plaintext connection? Java Basics - Anfänger-Themen 3
A Connection Prob Java Basics - Anfänger-Themen 3
S MySQL - connection Java Basics - Anfänger-Themen 8
J Kleine Connection Frage Java Basics - Anfänger-Themen 4
B java.net.ConnectException: Connection refused: connect ? Java Basics - Anfänger-Themen 2
T MySQL connection Java Basics - Anfänger-Themen 7
G db connection Java Basics - Anfänger-Themen 2
L Connection Pooling Grundlagenfragen Java Basics - Anfänger-Themen 2
K JDBC - Typ Connection in jeder Klasse neu öffnen? Java Basics - Anfänger-Themen 4
I Sass Compiler und String erhalten? Java Basics - Anfänger-Themen 7
K Warum gibt mir z. B. 40^128 eine Zahl? Ich dachte mit xor kann man nur booleanwerte erhalten, also prüfen ob etwas whar oder falsch ist? Java Basics - Anfänger-Themen 1
K mit String.splitt(",") ganzen Satz erhalten? Java Basics - Anfänger-Themen 3
I Nächstmögliche Zeit erhalten Java Basics - Anfänger-Themen 11
D Sportwetten Daten Atomatisch analysieren um optimale Strategie zu erhalten Java Basics - Anfänger-Themen 6
S Zugriff auf Attribut einer unbekannten Klasse erhalten Java Basics - Anfänger-Themen 6
P Wert aus Tabelle erhalten Java Basics - Anfänger-Themen 1
D Ordner der Ausgeführten Datei erhalten Java Basics - Anfänger-Themen 4
M zuletzt erzeugtes Objekt erhalten Java Basics - Anfänger-Themen 6
B Erstes Element eines Vectors erhalten Java Basics - Anfänger-Themen 5
J Wie behalten Variablen den Wert, den sie in einer anderen Methode erhalten haben? Java Basics - Anfänger-Themen 14
B Datentypen Float ohne .0 ausgeben, sonstige Nachkommastellen aber erhalten Java Basics - Anfänger-Themen 4
F in for-Schleife deklarierte Variablen erhalten? Java Basics - Anfänger-Themen 6
D Access Abfrage - Results direkt als Array erhalten Java Basics - Anfänger-Themen 2
B Type von Class erhalten Java Basics - Anfänger-Themen 2
S Datei aus Projektfolder erhalten Java Basics - Anfänger-Themen 3
pun Objekt über Bezeichnung erhalten Java Basics - Anfänger-Themen 14
G byte [] aus uRL erhalten Java Basics - Anfänger-Themen 11
G TrayIcon: Wie aktuelle Position des Icons erhalten? Java Basics - Anfänger-Themen 2
G Bei split die regex erhalten Java Basics - Anfänger-Themen 6
Bernasconi Sämtliche KeyEvents erhalten Java Basics - Anfänger-Themen 2
G Zufalls werte erhalten Java Basics - Anfänger-Themen 9
A Fokus erhalten Java Basics - Anfänger-Themen 3
M Namen der Dateien in einem bestimmten Verzeichnis erhalten Java Basics - Anfänger-Themen 4
D Tabelle -> Daten eingeben -> Falsche erhalten Java Basics - Anfänger-Themen 9
M value von Komponenten erhalten Java Basics - Anfänger-Themen 3
N Properties auf Kommandozeile setzen, die erhalten bleiben Java Basics - Anfänger-Themen 2
C Frage zu: String einlesen -> Array von Chars erhalten Java Basics - Anfänger-Themen 4
G ipadx von JTextField erhalten Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben