1.2. fejezet, Adatbázis konfiguráció
Kitömörítés után az első adminisztrációs feladatunk az adatbázis szerver JDBC meghajtójának regisztrálása. Telepítsünk mintapéldányként egy MySQL J/Connector-t. Hozzuk létre a JBoss telepítés [JBOSS]/modules/com/mysql/main könyvtárakat. Másoljuk a mysql-connector-java-5.1.21-bin.jar fájlt a main könyvtárba, majd készítsünk egy modul leíró xml fáljt (module.xml):
<?xml version="1.0" encoding="UTF-8"?> <module xmlns="urn:jboss:module:1.0" name="com.mysql"> <resources> <resource-root path="mysql-connector-java-5.1.21-bin.jar"/> </resources> <dependencies> <module name="javax.api"/> </dependencies> </module>
Készítsük fel a JBoss-t, hogy a modult adatbázis kapcsolat kezelésre fogjuk használni. A standalone/configuration/standalone.xml-be illesszük be az alábbi sorokat a server > profile > subsystem xmlns="urn:jboss:domain:datasources:1.0" > datasources > drivers ágába (module="com.h2database.h2" után):
<driver name="com.mysql" module="com.mysql"> <xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class> </driver>
Ugyanez PostgreSQL-el: másoljuk a jar fájlt az [JBOSS]/modules/org/postgresql/main könyvtárba. A leíró module.xml tartalma:
<?xml version="1.0" encoding="UTF-8"?> <module xmlns="urn:jboss:module:1.0" name="org.postgresql"> <resources> <resource-root path="postgresql-9.1-902.jdbc4.jar"/> </resources> <dependencies> <module name="javax.api"/> </dependencies> </module>
standalone.xml-be illesszük be a modult:
<driver name="org.postgresql" module="org.postgresql"> <xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> </driver>
Ez után indítsuk el a JBoss szerverünket, majd lépjünk be az adminisztrációs felületre (http://localhost:9990/console/App.html), és a Profile oldalon, Connector / Datasources menüben hozzunk létre egy adatforrás kezelőt. Ha elkészültünk, engedélyeznünk kell az adatforrást, és már használhatjuk is.
Készíthetünk a programhoz szorosabban kapcsolódó adatforrást is, ha a WEB-INF könyvtárba például az alábbi ArchiWar-ds.xml fájlt definiáljuk:
<?xml version="1.0" encoding="UTF-8"?> <datasources xmlns="http://www.jboss.org/ironjacamar/schema"> <datasource jndi-name="java:jboss/datasources/ArchiWarPostgreSQL" enabled="true" use-java-context="true" pool-name="ArchiWarPostgreSQL"> <connection-url>jdbc:postgresql:archiwar</connection-url> <driver>org.postgresql</driver> <pool></pool> <security> <user-name>uname</user-name> <password>password</password> </security> </datasource> </datasources>
Itt látható, hogy az adatforrás meghajtója az org.posthresql, a jndi neve pedig java:jboss/datasources/ArchiWarPostgreSQL
Hibernate.cfg.xml-be az adatforrásra így hivatkozhatunk:
... <property name="connection.datasource">java:jboss/datasources/ArchiWarPostgreSQL</property> ...
MySQL-nél ne felejtsük átállítani a tranzakció kezelését:
<datasource jta="true" jndi-name="java:jboss/jdbc/kepeslap_ds__my" pool-name="kepeslap" enabled="true" use-ccm="false"> ... <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation> ... </datasource>
Beállítás lekérdezése konzolon:
SELECT @@GLOBAL.tx_isolation, @@tx_isolation;
my.conf:
[mysqld] transaction-isolation = READ-COMMITTED
vagy konzolon:
SET GLOBAL tx_isolation='READ-COMMITTED'; SET SESSION tx_isolation='READ-COMMITTED'; vagy. SET TRANSACTION isolation level READ committed;
Ez segít abban, hogy egy olvasó és egy író session között egy commit szinkronizálja a már kiírt adatokat, és az ablak Primefaces AJAX újrafrissítése már a kiírt adatokat olvassa vissza mondjuk egy táblázatba. Ha ezt nem állítjuk be, előfordulhat, hogy a régi értékeket kapjuk vissza a táblázatba, vagy egy rekord törlése csak akkor látszik, ha újratöltjük a böngésző ablakot.
- A hozzászóláshoz be kell jelentkezni