Bonjour,

Je rencontre des problèmes de performances sur mon application.
La lenteur a été détectée au niveau de la couche de persistance.
Sur mon ancien poste de dev, cela pouvait atteindre 10s pour certains services, souvent 2s.
(Avec un nouveau poste ça va mieux mais cela n'enlève pas le problème...)

J'ai ajouté une propriété dans le persistence.xml pour activer du profiling et voir un peu ce qui se passe.

Ci-dessous, quelques extraits de traces obtenues.
La statistique qui m'étonne est "Timer:ConnectionManagement".
Ce que j'en déduis pour le moment est que le point d'engorgement est l'obtention de la connexion à la base.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
[#|2012-09-25T16:00:00.484+0200|INFO|glassfish3.1.2|javax.enterprise.system.std.com.sun.enterprise.server.logging|_ThreadID=35;_ThreadName=Thread-2;|Profile(DeleteObjectQuery,
    class=com.xxx.yyy.zzz.InvitationBean,
    number of objects=1,
    total time=22802480,
    local time=22802480,
    profiling time=87536,
    Timer:Logging=326600,
    Timer:SqlPrepare=58559,
    Timer:ConnectionManagement=21382287,
    Timer:StatementExecute=903127,
    Timer:DescriptorEvents=10867,
    time/object=22802480,
)
}End profile
|#]
 
[#|2012-09-25T16:06:04.142+0200|INFO|glassfish3.1.2|javax.enterprise.system.std.com.sun.enterprise.server.logging|_ThreadID=19;_ThreadName=Thread-2;|Profile(ReadAllQuery,
    class=com.xxx.yyy.zzz.UserBean,
    number of objects=1,
    total time=201965995,
    local time=201965995,
    profiling time=3220715,
    Timer:SqlPrepare=300338,
    Timer:Caching=40448,
    Timer:ConnectionManagement=196344382,
    Timer:Logging=1817727,
    Timer:StatementExecute=1771243,
    Timer:RowFetch=220349,
    Timer:ObjectBuilding=355275,
    Timer:DescriptorEvents=26562,
    time/object=201965995,
)
}End profile
|#]
Côté Glassfish, un pool est défini, configuré par défaut entre 8 et 32 connexions.
La base est Postgresql et la volumétrie des données est ridicule...

J'avoue que je ne sais pas trop quelle piste explorer. Toute suggestion bienvenue.