Sei sulla pagina 1di 4

Installazione e configurazione della Web Logic Platform

Parte 2 - Web Logic Server e JDBC


R. Turco

In questa seconda parte esaminiamo i passi che permettono di amministrare le connessioni JDBC al
database, attraverso Web Logic Server, e riuscire ad ottenere buone prestazioni.

Naturalmente se le risorse messe a disposizione da Web Logic non sono, poi, utilizzate dai sorgenti
java sviluppati, allora tale vantaggio non viene affatto sfruttato.

J2EE services for JDBC

BEA Web Logic Server fornisce i seguenti servizi J2EE per JDBC:

 Connection Pool;
 Multipools;
 DataSources;
 TxDataSources;
 JDBC Data Source Factories.

Web Logic dà la possibilità di avere a disposizione un insieme di connessioni già pronte all’uso
senza necessità di gestirne l’apertura e la chiusura da software ottenendone un vantaggio
prestazionale.

Drivers

I driver di tipo 1 sono dei bridge ODBC-JDBC non presi in considerazione nella platform.

I driver di tipo 2 sono dei Java wrapper su librerie C/C++ native del database. Tutti i driver di tipo
2 richiedono l’installazione del client del database.

I driver di tipo 3 sono dei proxy perché disaccoppiano client e database (multitier) e permettono di
gestire le risorse di database centralmente in Web Logic Server.

I driver di tipo 4 sono pure Java e usano protocolli di rete per comunicare col dataserver.

BEA offre driver di tipo 2, 3 e 4. I driver 2 e 4 sono tipicamente two-tier, i driver 3 sono multitier.

I driver di tipo 3 sono:


 RMI driver, abilitano l’uso di load balancing e del failover quando configurati in un cluster
di Web Logic.
 Pool Driver, abilita all’uso di connection pool server-side ad applicazioni come servlet, jsp,
ejb. Il pool Driver può anche essere usato da un’applicazione java standalone in un two-tier.
 JTS Driver, abilita all’uso di transazioni distribuite attraverso server multipli con una sola
istanza di database.

Gli ultimi due sono solo server-side.

1
Configurare e usare un Connection Pools

Un connection pool può essere acceduto attraverso un DataSource oppure un TxDataSource e


generalmente sono usati in tal caso driver di tipo 2 o 4.

La configurazione di un connection pool può essere fatta attraverso l’Administration Console.

Acceduti alla consolle, sulla parte destra “Services Configuration”, basta cliccare “Connection
pool” di JDBC e “Configure a new JDBC connection pool”.

Da qui si seleziona il tipo di database (ad esempio Oracle) e il tipo di driver. Se la versione che
cerchiamo non esiste è evidente la necessità di scaricare dalla BEA o dalla società del database il
driver che ci interessa.

Dopo si inseriscono:
 Il nome della connessione (es: ConnectPoolOracleAppl1 );
 Il database name
 Host name
 Port
 Database username
 Database password

Dopodiché o si effettua il test per la connessione (consigliato), oppure si salta e si fa la creazione ed


il deploying del JDBC Connection pool (se la connessione è corretta).

Configurare e usare un MultiPools

Un multipools è un meta-pool, cioè un insieme di connection pool e fornisce load balancing o alta
disponibilità, in riferimento ai connection pools che contiene.

Il Multipool è, quindi, adatto per carichi elevati.

La configurazione può essere fatta attraverso l’Administration Console.

Acceduti alla consolle, sulla parte destra “Services Configuration”, basta cliccare “Multipool” di
JDBC e “Configure a new JDBC Multipool”.

Viene chiesto:
 Nome del Multipool
 Algoritmo da utilizzare, tra High-Availability e Load Balancing

Con un algoritmo di Alta disponibilità il tutto è visto come una lista ordinata e quando è richiesta
una connessione i connection pool del Multi-pool sono esaminati nell’ordine fino a trovare un
DataSource disponibile.

Un algoritmo di Load balancing, invece, distribuisce le connessione per ogni connection pool
bilanciandole.

Dal Pools tab si ottiene la lista di connection pool da inserire nel Multipool. Ricordare di fare
Apply. Dopo occorre fare “Target and Deploy” sul server che serve.

2
Connection pool e Multi-pool sono più che sufficienti nel 99% dei casi.

Configurare e usare DataSource


I DataSource sono un arricchimento ulteriore di Java. I Datasources sono i building block dei
connection pool e, quindi, per stabilire la connettività ad un database con essi occorre crearne uno
per ogni connection pool creato.

La configurazione può essere fatta attraverso l’Administration Console.

Acceduti alla consolle, sulla parte destra “Services Configuration”, basta cliccare “DataSources” di
JDBC e “Configure a new JDBC DataSources”.

Viene chiesto:
 Nome del DataSource
 Il path JNDI dove si trova
 Honor global transaction, da segnare se si è in una XA transaction
 Emulate two-phase commit, per un non XA-driver

Dopodiche va creato, poi dal Targets tab va scelto il server target, il connection pool a cui associare
il DataSource.

Nelle Advanced Options è possibile impostare:


 “Row Prefetched enabled” (true/false), che può migliorare le performance di WebLogic
facendogli prefetchare righe multiple in una ResultSet;
 “Row prefetch size”, che determina il numero di righe da prefetchare tra 2 e 65536 tuple;
 “Stream chunk size”, il numero di byte letti da WebLogic da uno stream, varia da 1 byte a
65536 byte, con un default di 256 byte.

Configurare e usare TxDataSource


Il txDatasource è un DataSource capace di sostenere transazioni distribuite.

Configurare e usare JDBC Datasource Factories


I JDBC DataSource Factories sono usati dagli EJB per stabilire connessioni ad un database con un
connection pool.

La configurazione può essere fatta attraverso l’Administration Console.

Acceduti alla consolle, sulla parte destra “Services Configuration”, basta cliccare “DataSource
Factories” di JDBC e “Configure a new JDBC DataSources Factory”.

Viene chiesto:
 Nome del DataSource Factory
 Database Username
 Database Password
 URL, quella per connettersi al database
 Driver Class Name
 Factory Name

Alla fine va creato il Datasource Factory.

3
Usare un connection pool da JDBC

Innanzitutto si carica il driver weblogic.jdbc.pool.Driver

Class.forName(“weblogic.jdbc.pool.Driver”).newIstance();

Poi si crea la connessione:

con = DriverManager.getConnection”jdbc:weblogic:pool:MyServletPool”, dbUser, dbPsswd);

Usare un DataSource da JDBC

Un esempio è:

Context ctx = new InitialContext(ht);


javax.sql.Datasource ds = (javax.sql.Datasource) ctx.lookup(“MyServletDataSource”);
java.sql.Connection con = ds.getConnection();

Conclusioni
Spesso un amministratore sapendo come i programmi sono stati fatti può migliorare l’attività di
esercizio, come nel caso dei multipool.

Esercitazioni
Provate a creare un multi-pool ed una servlet che legge attraverso jdbc una tabella Oracle.

Ringraziamenti
Ringraziamo coloro che intenderanno fornire ulteriori indicazioni e suggerimenti .

Potrebbero piacerti anche