replication-granularity ATTRIBUTE problem
-----------------------------------------

         Key: JBWEB-7
         URL: http://jira.jboss.com/jira/browse/JBWEB-7
     Project: JBoss Web
        Type: Bug
  Components: Tomcat  
    Versions: JBossWeb-4.0.0    
 Environment: RedHat AS2.1 
JDK1.4.2_03 
Apache2+mod_jk2 
JBoss4.0.0 
replication-trigger is SET 
(when SET_AND_NON_PRIMITIVE_GET was set, the result was the same) 
    Reporter: Toshiya Kobayahsi
 Assigned to: Remy Maucherat 


I'm applying HttpSessionReplication to my application. 
When replication-granularity is SESSION, replication works fine. 

But I set replication-granularity to ATTRIBUTE, and stressed the 
web-application.Then I got the following error log. 

2004-12-07 14:18:17,410 ERROR [TP-Processor10][org.jboss.cache.TreeCache] 
commit(): entry for transaction <smtla009:33398>:476 not found 

I changed the log level of TreeCache, and tried again. 

2004-12-07 14:18:17,407 DEBUG [TP-Processor1][org.jboss.cache.TreeCache] 
_put(<smtla009:33398>:475, "/JSESSION/km2Atal2mscTqdFK7beMAw**", 
km2Atal2mscTqdFK7beMAw**, [EMAIL PROTECTED]) 
2004-12-07 14:18:17,408 DEBUG [TP-Processor10][org.jboss.cache.TreeCache] 
_put(<smtla009:33398>:476, "/JSESSION/f4Ul4Y9ouu93Ndxk6rOugw**/ATTRIBUTE", 
homepageVisits, [EMAIL PROTECTED]) 
2004-12-07 14:18:17,408 DEBUG [TP-Processor1][org.jboss.cache.TreeCache] 
_put(<smtla009:33398>:475, "/JSESSION/km2Atal2mscTqdFK7beMAw**/ATTRIBUTE", 
homepageVisits, [EMAIL PROTECTED]) 
2004-12-07 14:18:17,408 DEBUG [TP-Processor10][org.jboss.cache.TreeCache] 
callRemoteMethods(): destination list is empty, discarding call 
2004-12-07 14:18:17,408 DEBUG [TP-Processor1][org.jboss.cache.TreeCache] 
callRemoteMethods(): destination list is empty, discarding call 
2004-12-07 14:18:17,409 DEBUG [TP-Processor10][org.jboss.cache.TreeCache] 
callRemoteMethods(): destination list is empty, discarding call 
2004-12-07 14:18:17,409 DEBUG [TP-Processor1][org.jboss.cache.TreeCache] 
callRemoteMethods(): destination list is empty, discarding call 
2004-12-07 14:18:17,409 DEBUG [TP-Processor10][org.jboss.cache.TreeCache] 
commit(): called to commit cache with gtx <smtla009:33398>:476 
2004-12-07 14:18:17,409 DEBUG [TP-Processor1][org.jboss.cache.TreeCache] 
commit(): called to commit cache with gtx <smtla009:33398>:475 
2004-12-07 14:18:17,409 DEBUG [TP-Processor10][org.jboss.cache.TreeCache] 
commit(): releasing lock ... 
2004-12-07 14:18:17,409 DEBUG [TP-Processor1][org.jboss.cache.TreeCache] 
commit(): releasing lock ... 
2004-12-07 14:18:17,409 DEBUG [TP-Processor10][org.jboss.cache.TreeCache] 
commit(): releasing lock ... 
2004-12-07 14:18:17,409 DEBUG [TP-Processor1][org.jboss.cache.TreeCache] 
commit(): releasing lock ... 
2004-12-07 14:18:17,409 DEBUG [TP-Processor10][org.jboss.cache.TreeCache] 
commit(): releasing lock ... 
2004-12-07 14:18:17,409 DEBUG [TP-Processor1][org.jboss.cache.TreeCache] 
commit(): releasing lock ... 
2004-12-07 14:18:17,410 DEBUG [TP-Processor1][org.jboss.cache.TreeCache] 
commit(): removing local transaction key TransactionImpl:XidImpl[FormatId=257, 
GlobalId=smtla009.osaka.sunmoretec.co.jp/1794, BranchQual=, localId=1794] 
2004-12-07 14:18:17,410 DEBUG [TP-Processor10][org.jboss.cache.TreeCache] 
commit(): removing local transaction key TransactionImpl:XidImpl[FormatId=257, 
GlobalId=smtla009.osaka.sunmoretec.co.jp/1795, BranchQual=, localId=1795] 
2004-12-07 14:18:17,410 DEBUG [TP-Processor10][org.jboss.cache.TreeCache] 
commit(): called to commit cache with gtx <smtla009:33398>:476 
2004-12-07 14:18:17,410 ERROR [TP-Processor10][org.jboss.cache.TreeCache] 
commit(): entry for transaction <smtla009:33398>:476 not found 

#To avoid CuncurrentModificationException, I had to change one logging 
code("commit(): releasing lock ...") 

I see two "commit(): called to commit cache with gtx <smtla009:33398>:476". 
Why commit happened twice? 
ATTRIBUTE granularity is not reliable? 


This can easily reproduce with a simple servlet handling HttpSession. 
like this: 

Code: 
public void doGet(HttpServletRequest request, HttpServletResponse response)
 throws ServletException, IOException {
        
        HttpSession session = request.getSession();
        Integer value = (Integer)session.getAttribute("COUNT");
        if (value == null) {
                value = new Integer(0);
        }
        session.setAttribute("COUNT", new Integer(value.intValue() + 1));

        /* building html  */
}       
 


and stress the servlet using JMeter(100threads or more...). 
mod_jk2 is not necessary requirement for this problem. 

I found this problem only with 4.0.0. 
With 3.2.6, this didn't occur. 

This is not log4j issue. The duplicate commit message is found only for the TX 
which ends up with the error log.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://jira.jboss.com/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira



-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now. 
http://productguide.itmanagersjournal.com/
_______________________________________________
JBoss-Development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to