Tomcat5.5.25 Thread dump analyse
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
Citation:
- 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:
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.