Passa ai contenuti principali

Wildfly 9 configurare un pool verso postgresql

Configurare un pool di connessione al database sembra una operazione semplice, ma si può finire per sprecare un sacco di tempo prezioso...

Preparazione :

scaricare il driver jdbc del database:
nel mio caso : postgresql-9.3-1102.jdbc41.jar

per poter creare il pool dobbiamo creare prima un modulo per il driver:

Modulo :

sotto la cartella principale di wildfly creare il seguente percorso :
  cartellawildfly/modules/org/postgres/main/

in questa cartella copiamo il file postgresql-xxxxx.jdbc41.jar e creiamo un file di nome module.xml

il file module.xml avrà il seguente contenuto : 

<?xml version="1.0" ?>

<module xmlns="urn:jboss:module:1.1" name="org.postgres">

    <resources>
        <resource-root path="postgresql-9.3-1102.jdbc41.jar"/>
    </resources>

    <dependencies>
        <module name="javax.api"/>
        <module name="javax.transaction.api"/>
    </dependencies>

</module>

una volta fatto questo abbiamo dato a wildfly le informazioni necessarie sul driver.

Datasource :

a questo punto andiamo a modificare un altro file per aggiungere il pool:
cartellawildfly/standalone/configuration/standalone.xml
aprendo il file con un editor di testo andiamo a cercare il punto dove sono contenute le info sui datasource, per l'esattezza i tag <datasources></datasources> li delimitano.
quindi al loro interno potremmo incollare un descrittore simile a questo :

<datasource jta="true" jndi-name="java:jboss/PostgresDSPool" pool-name="PostgresDSPool" enabled="true" use-ccm="false">
                    <connection-url>jdbc:postgresql://localhost/postgresdb</connection-url>
                    <driver-class>org.postgresql.Driver</driver-class>
                    <driver>postgres</driver>
                    <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
                    <pool>
                        <min-pool-size>5</min-pool-size>
                        <max-pool-size>20</max-pool-size>
                    </pool>
                    <security>
                        <user-name>postgresus</user-name>
                        <password>postgrespwd</password>
                    </security>
                    <validation>
                        <validate-on-match>false</validate-on-match>
                        <background-validation>false</background-validation>
                    </validation>
                    <statement>
                        <share-prepared-statements>false</share-prepared-statements>
                    </statement>
                </datasource>
              
                <drivers>
              
                  
                    <driver name="postgres" module="org.postgres">
                        <driver-class>org.postgresql.Driver</driver-class>
                    </driver>
              
                </drivers>


Cercare inoltre il default-bindings se si è rimosso il contenuto del datasource di default e modificarlo come segue :

    <default-bindings context-service="java:jboss/ee/concurrency/context/default" 
                   datasource="java:jboss/PostgresDSPool" 
                   managed-executor-service="java:jboss/ee/concurrency/executor/default" 
                   managed-scheduled-executor-service="java:jboss/ee/concurrency/scheduler/default" 
                   managed-thread-factory="java:jboss/ee/concurrency/factory/default"/>

dove i parametri da settare a proprio piacimento sono :
nome del datasource :    java:jboss/PostgresDSPool
nome dell'host del server o ip del db : localhost

nome del database : postgresdb
nome utente : postgresus
password utente  : postgrespwd


a questo punto possiamo riavviare wildfly ed andare a testare la connessione:
per accedere al pannello di amministrazione, ammesso che il server sia su localhost :
http://localhost:9990/console
se non accede esce un messaggio che vi indica le modalità di creazione di un utente.
sulla sinistra : connector -> datasources
selezionate la riga postgresdspool, in basso connection e quindi test.
se la connessione non riesce andate a leggere i log per capire se avete sbagliato l'utente (postgresus) la password ( nell'esempio è postgrespwd ) o il database ( postgresdb ) o altro.

Commenti

Posta un commento

Post popolari in questo blog

linux : software raid con mdadm

Software raid di linux. Fake raid e le bizarrie del mondo moderno. Ovvero la storia di come tenere i propri dati al sicuro usando più dischi. Preambolo (potrebbe essere noioso...): Il bios di un server allo startUp mi fa vedere un controller raid, ed io come uno sciocco ci credo, tanto da pensare di usarlo per mettere i dati al sicuro. In effetti un raid di livello 1 permette di scrivere contemporaneamente su 2 dischi, quindi se uno cede, l'altro continua a funzionare, dandoti il tempo ed il modo di intervenire e permettendoti di non perdere i tuoi preziosi dati. ci sono altri livelli di raid ma si possono approfondire ovunque. Dicevamo, il server ha un controller raid ed io lo voglio usare, quindi accedo al controller con f8 configuro 2 drive logici, di cui il secondo è formato da 2 dischi, per un totale di 3 dischi fisici e 2 logici. Parte linux e vedo sempre i 3 dischi ... sda, sdb ed sdc... e qui vado in crisi...  Per fortuna c'ho un amico che mi illumina, si tr...

Eclipse e Subversion come funziona ?

Eclipse è uno splendido strumento di programmazione, ma un programmatore è un pò come lo scrittore di un libro, ha i suoi raptus di programmazione e vuole scrivere codice dal letto, dalla scrivania o addirittura consultarlo sul tablet mentre è concentrato comodamente sul bagno. Insomma il lampo di genio non va mai sprecato, quindi se abbiamo il nostro server internet con tanto di subversion, possiamo prendere le nostre installazioni di eclipse ( non lavoriamo sempre e solo da 1 pc ) e: dal menù " Help " scelgo la voce : Install new software aggiungo http://download.eclipse.org/technology/subversive/1.0/update-site/     seleziono tutto e procedo, mi viene chiesto di riavviare eclipse, una volta riavviato mi viene proposto un elenco di moduli svn, scelgo l'svn kit che mi sta più simpatico (la versione + recente) e procedo. Vecchio modo: http://subclipse.tigris.org/update_1.4.x   ( se volete sapere quale è l'ultima versione disponibile andate qui h tt...

simple port forwarding example

Immaginiamo di avere un firewall linux  e voler pubblicare un servizio di un server interno sulla rete, quindi vogliamo che ogni accesso al nostro indirizzo ip pubblico che riguarda la porta in oggetto sia rediretto sul nostro server interno. in pratica esponiamo un servizio sulla rete pubblica recuperandolo da una rete privata. Tutto questo si traduce in effetti in pochissime righe per iptables. Dati di partenza :  indirizzo ip del server interno esempio :     192.168.1.150 porta del servizio del server interno esempio : 8080 porta pubblica del servizio che vogliamo esporre : 80 creo un file in /root/forward.sh con la confgurazione di iptables #!/bin/sh echo 1 > /proc/sys/net/ipv4/ip_forward /sbin/iptables -A PREROUTING -t nat -p tcp  --dport 80 -j DNAT --to 192.168.1.150:8080 /sbin/iptables -A FORWARD  -d 192.168.1.150 -p tcp --dport 80 -j ACCEPT /sbin/iptables -t nat -A POSTROUTING -j MASQUERADE volendo aggiungo al crontab @reb...