Bonjour ,

On a un WebService qui dispose d'un pool de connexion (Thread pool) , qui servira à se connecter à une autre application (CORBA connection).
J'ai généré le thread dump Tomcat pour vérifier l'accès à ce pool. Celui-ci devra être synchronisé (synchronized).

J'ai analysé le thread dump généré avec l'outil TDA (Thread dump analyser), l'outil indique que 44 thread ont réussi à acquérir le monitor (verrou) et donc normalement ont pu accéder au bloc synchronisé.
Ci-dessous une partie de thread dump généré, plusieurs Thread affichent ce message
- locked <9ffffffea5688f30> (a com.ccb.cfw.cda.servicelayer.connectionpool.ConnectionPoolImpl)
Est-ce que ça signifie vraiment que le thread a réussi à accéder au bloc synchronisé ?
Comment peut-on savoir à partir du thread dump qu'un thread a quitter le bloc synchronisé ?

Est-ce que le thread dump suivant confirme que deux threads ont réusssi à accéder au bloc synchronisé en même temps ?
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
"http-6040-Processor248" daemon prio=10  tid=60000000042b0080 nid=312 lwp_id=9508038 in Object.wait()  [9fffffff69aff000..9fffffff69b00bc0]
    at java.lang.Object.wait(Native Method)
    at com.ccb.cfw.cda.servicelayer.connectionpool.ConnectionPoolImpl.getConnection(Unknown Source)
    - locked <9ffffffea5688f30> (a com.ccb.cfw.cda.servicelayer.connectionpool.ConnectionPoolImpl)
    at com.ccb.cfw.cda.servicelayer.connectionpool.ConnectionPoolManager.getConnection(Unknown Source)
    at com.ccb.cfw.cda.servicelayer.connectionpool.ConnectionPoolManager.getConnection(Unknown Source)
    at com.ccb.cfw.cda.servicelayer.connectionpool.DefaultConnectionProvider.getConnection(Unknown Source)
    at com.ws.soiprovider.SOIFacade.retrieveSOIAccessData(Unknown Source)
    at com.ws.soiprovider.SOIFacade.execute(Unknown Source)
    at com.ws.soiprovider.SOIFacade.execute(Unknown Source)
    at com.mbn.ws.dao.cms.SOIFacade.execute(SOIFacade.java:105)
    at com.ws.services.v2.ContractsSearchServiceSoapBindingImpl.execute(Unknown Source)
    at com.mbn.ws.dao.contractdomain.ContractDomainDaoSoiImpl.contractSearch(ContractDomainDaoSoiImpl.java:565)
    
"http-6040-Processor197" daemon prio=10 tid=60000000039c1750 nid=255  lwp_id=9468783 in Object.wait() [9fffffff6fcff000..9fffffff6fd00b40]
    at java.lang.Object.wait(Native Method)
    at com.ccb.cfw.cda.servicelayer.connectionpool.ConnectionPoolImpl.getConnection(Unknown Source)
    - locked <9ffffffea5688f30> (a com.ccb.cfw.cda.servicelayer.connectionpool.ConnectionPoolImpl)
    at com.ccb.cfw.cda.servicelayer.connectionpool.ConnectionPoolManager.getConnection(Unknown Source)
    at com.ccb.cfw.cda.servicelayer.connectionpool.ConnectionPoolManager.getConnection(Unknown Source)
    at com.ccb.cfw.cda.servicelayer.connectionpool.DefaultConnectionProvider.getConnection(Unknown Source)
    at com.ws.soiprovider.SOIFacade.retrieveSOIAccessData(Unknown Source)
    at com.ws.soiprovider.SOIFacade.execute(Unknown Source)
    at com.ws.soiprovider.SOIFacade.execute(Unknown Source)
    at com.mbn.ws.dao.cms.SOIFacade.execute(SOIFacade.java:105)
    at com.ws.services.v2.ContractsSearchServiceSoapBindingImpl.execute(Unknown Source)
Merci d'avance pour votre aide.