Guida all' installazione e configurazione di un sistema Red Hat Linux
Installazione e configurazione WebLogic Server - parte 2
-
Upload
rosario-turco -
Category
Documents
-
view
336 -
download
0
description
Transcript of Installazione e configurazione WebLogic Server - parte 2
1
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.
2
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.
3
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.
4
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 .