From: Xuan B. <med...@us...> - 2007-05-21 02:39:23
|
Update of /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/utils In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv9024/src/org/tm4j/topicmap/utils Modified Files: XTMBuilder.java Log Message: Employ transaction coarsening to reduce frequency of per-transaction overhead. Index: XTMBuilder.java =================================================================== RCS file: /cvsroot/tm4j/tm4j/src/org/tm4j/topicmap/utils/XTMBuilder.java,v retrieving revision 1.74 retrieving revision 1.75 diff -C2 -d -r1.74 -r1.75 *** XTMBuilder.java 12 Apr 2007 13:58:12 -0000 1.74 --- XTMBuilder.java 21 May 2007 02:39:16 -0000 1.75 *************** *** 528,531 **** --- 528,532 ---- } */ + closeTransaction(); m_catalogResolver = null; // disable further use } *************** *** 538,544 **** } ! if ((m_provider != null) && m_provider.isTransactional()) { ! m_provider.openTransaction(); ! } Locator resourceLocator = resourceLocatorForID(id); --- 539,543 ---- } ! openTransaction(); Locator resourceLocator = resourceLocatorForID(id); *************** *** 586,592 **** m_currTopic = null; ! if ((m_provider != null) && m_provider.isTransactional()) { ! m_provider.getOpenTransaction().commit(); ! } } --- 585,589 ---- m_currTopic = null; ! maybeCloseTransaction(); } *************** *** 751,757 **** */ public void startAssociation(String id) throws TopicMapProcessingException { ! if ((m_provider != null) && m_provider.isTransactional()) { ! m_provider.openTransaction(); ! } //try { --- 748,752 ---- */ public void startAssociation(String id) throws TopicMapProcessingException { ! openTransaction(); //try { *************** *** 806,811 **** m_currScope.clear(); if ((m_provider != null) && m_provider.isTransactional()) { ! m_provider.getOpenTransaction().commit(); } } --- 801,831 ---- m_currScope.clear(); + maybeCloseTransaction(); + } + + protected void openTransaction() { if ((m_provider != null) && m_provider.isTransactional()) { ! if (!m_provider.isTransactionOpen()) { ! m_provider.openTransaction(); ! } ! } ! } ! ! protected void closeTransaction() { ! if ((m_provider != null) && m_provider.isTransactional()) { ! if (!m_provider.isTransactionOpen()) { ! m_provider.getOpenTransaction().commit(); ! } ! } ! } ! ! protected int transactionCloseCounter = 0; ! ! protected void maybeCloseTransaction() { ! if ((m_provider != null) && m_provider.isTransactional()) { ! ! if (((++transactionCloseCounter)&0xFF)==0) { ! closeTransaction(); ! } } } *************** *** 1759,1762 **** --- 1779,1785 ---- /* * $Log$ + * Revision 1.75 2007/05/21 02:39:16 mediumnet + * Employ transaction coarsening to reduce frequency of per-transaction overhead. + * * Revision 1.74 2007/04/12 13:58:12 mediumnet * Tabs->Spaces for some files. Also make indentation rules explicit (at least to jEdit). |