Con
Liferay Portal, è possibile scegliere tra utilizzare un data source
gestito direttamente da Liferay Portal oppure un data source gestito
dall'application server sul quale è installato Liferay Portal.
In
una tipica configurazione di distribuzione di Liferay Portal, anche
eventualmente in bundle con qualsiasi application server, questa
include per default un datasource gestito direttamente da Liferay
Portal.
Liferay
consiglia sempre di usare questa seconda configurazione di datasource.
Le
note seguenti descrivono come configurare l'accesso al database della piattaforma Liferay Portal. Vengono descritte entrambe le possibilità: utilizzare un data source gestito
direttamente da Liferay Portal oppure un data source gestito
dall'application server sul quale è installato Liferay Portal.
Utilizzo
del connection pool fornito dall'application server
Per
utilizzare il connection pool fornito dall'application server, è
necessario crearne uno che punti al database scelto.
Nel
seguito denomineremo questo connection pool come “LiferayDS”.
Per
fare in modo che Liferay usi questo connection pool, è stata
aggiunta la seguente direttiva al file “portal-ext.properties”:
jdbc.default.jndi.name=LiferayDS
Il
file di configurazione che definisce il connection pool
nell'application server (“liferay-ds.xml”)
deve essere configurato come segue:
<?xml
version="1.0" encoding="UTF-8"?>
<datasources>
<local-tx-datasource>
<jndi-name>LiferayDS</jndi-name>
<connection-url>jdbc:mysql://localhost:3306/lportal?useUnicode=true&characterEncoding=UTF-8&useFastDateParsing=false</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name>root</user-name>
<password>password</password>
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
<valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLValidConnectionChecker</valid-connection-checker-class-name>
<min-pool-size>5</min-pool-size>
<metadata>
<type-mapping>mySQL</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
Utilizzo
del connection pool gestito da Liferay Portal
Per
utilizzare il connection pool gestito direttamente da Liferay Portal,
che è
il metodo consigliato,
agire esclusivamente sugli elementi di configurazione del file
“portal-ext.properties”.
Escludere
l'elemento jdbc.default.jndi.name,
commentandolo opportunamente:
#jdbc.default.jndi.name=LiferayDS
Così
facendo, il portale creerà il data source JDBC basandosi sulle
proprietà del file “portal-ext.properties”
prefissate con "jdbc.default.".
Ad
esempio, queste saranno:
jdbc.default.driverClassName=com.mysql.jdbc.Driver
jdbc.default.url=jdbc:mysql://localhost/lportal?useUnicode=true&characterEncoding=UTF-8&useFastDateParsing=false
jdbc.default.username=root
jdbc.default.password=password
Per
quanto riguarda la gestione dei pool di connessione, Liferay Portal
può utilizzare tre fornitori: C3PO, DBCP, Primrose.
Nel
seguito verrà utilizzato il primo.
Aggiungere
quindi le seguenti proprietà nel file “portal-ext.properties”:
jdbc.default.liferay.pool.provider=c3po
jdbc.default.acquireIncrement=5
jdbc.default.connectionCustomizerClassName=com.liferay.portal.dao.jdbc.pool.c3p0.PortalConnectionCustomizer
jdbc.default.idleConnectionTestPeriod=60
jdbc.default.maxIdleTime=3600
jdbc.default.maxPoolSize=100
jdbc.default.minPoolSize=10
jdbc.default.numHelperThreads=3
Da
notare che la seguente proprietà dovrebbe essere attentamente
valutata in base ad una accurata analisi dell'utilizzo in produzione
del datasource:
jdbc.default.maxPoolSize=100