[jboss-jira] [JBoss JIRA] Commented: (JBAS-5908) ClientUserTransactionObjectFactory is inefficient

Galder Zamarreno (JIRA) jira-events at lists.jboss.org
Thu Sep 4 06:32:39 EDT 2008


    [ https://jira.jboss.org/jira/browse/JBAS-5908?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12428195#action_12428195 ] 

Galder Zamarreno commented on JBAS-5908:
----------------------------------------

Fixed in 4.2.x, waiting for integration project release to finish fix in trunk.

> ClientUserTransactionObjectFactory is inefficient
> -------------------------------------------------
>
>                 Key: JBAS-5908
>                 URL: https://jira.jboss.org/jira/browse/JBAS-5908
>             Project: JBoss Application Server
>          Issue Type: Task
>      Security Level: Public(Everyone can see) 
>          Components: Transaction Manager (JBossTM)
>    Affects Versions: JBossAS-5.0.0.CR1, JBossAS-4.2.3.GA
>            Reporter: Adrian Brock
>            Assignee: Galder Zamarreno
>             Fix For: JBossAS-5.0.0.CR2, JBossAS-4.2.4.GA
>
>
> The ClientUserTransactionObjectFactory is inefficient.
> 1) It is doing initialisation based on a static cached instance
> Since nothing holds a hard reference to this class, it can be garbage collected meaning the
> initialisation can be done multiple times.
> 2) The determination and resolving of the ServerVMClientUserTransaction does the lookup
> for the transaction twice. Once when initialising the singleton and again to see whether it should
> use the singleton.
> Both issues could be resolved by simplifying ClientUserTransactionObjectFactory.getUserTransaction()
> to be something (which removes the need for the cached object)
>    static private UserTransaction getUserTransaction()
>    {
>       ServerVMClientUserTransaction serverUserTransaction = ServerVMClientUserTransaction.getSingleton();
>       if (serverUserTranasction.isServer())
>          return serverUserTransaction;
>       else
>          return ClientUserTransaction.getSingleton();
>    }
> This would require a new method on ServerVMClientUserTransaction to detect whether it can be used,
> i.e. it can locate a local transaction manager.
> public boolean isServer()
> {
>     return tm != null;
> }

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the jboss-jira mailing list