You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by rr...@apache.org on 2009/07/28 20:23:20 UTC

svn commit: r798639 - in /ode/branches/APACHE_ODE_1.X/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel: HibernateDao.java MessageDaoImpl.java ScopeDaoImpl.java XmlDataDaoImpl.java

Author: rr
Date: Tue Jul 28 18:23:19 2009
New Revision: 798639

URL: http://svn.apache.org/viewvc?rev=798639&view=rev
Log:
ODE-640: Reduce inserts to LARGE_DATA in dao-hib

Modified:
    ode/branches/APACHE_ODE_1.X/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/HibernateDao.java
    ode/branches/APACHE_ODE_1.X/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/MessageDaoImpl.java
    ode/branches/APACHE_ODE_1.X/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/ScopeDaoImpl.java
    ode/branches/APACHE_ODE_1.X/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/XmlDataDaoImpl.java

Modified: ode/branches/APACHE_ODE_1.X/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/HibernateDao.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/HibernateDao.java?rev=798639&r1=798638&r2=798639&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/HibernateDao.java (original)
+++ ode/branches/APACHE_ODE_1.X/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/HibernateDao.java Tue Jul 28 18:23:19 2009
@@ -54,6 +54,10 @@
         if(logDao.isDebugEnabled()) logDao.debug("entering "+msg);
     }
 
+    void leaving(String msg){
+        if(logDao.isDebugEnabled()) logDao.debug("leaving "+msg);
+    }
+
     /**
      * @see org.apache.ode.utils.dao.DAO#getDHandle()
      */

Modified: ode/branches/APACHE_ODE_1.X/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/MessageDaoImpl.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/MessageDaoImpl.java?rev=798639&r1=798638&r2=798639&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/MessageDaoImpl.java (original)
+++ ode/branches/APACHE_ODE_1.X/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/MessageDaoImpl.java Tue Jul 28 18:23:19 2009
@@ -62,6 +62,7 @@
         _session.save(newdata);
         _hself.setMessageData(newdata);
         update();
+        leaving("MessageDaoImpl.setData");
     }
 
     public Element getData() {
@@ -84,6 +85,7 @@
         _session.save(newdata);
         _hself.setHeader(newdata);
         update();
+        leaving("MessageDaoImpl.setHeader");
     }
 
     public Element getHeader() {

Modified: ode/branches/APACHE_ODE_1.X/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/ScopeDaoImpl.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/ScopeDaoImpl.java?rev=798639&r1=798638&r2=798639&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/ScopeDaoImpl.java (original)
+++ ode/branches/APACHE_ODE_1.X/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/ScopeDaoImpl.java Tue Jul 28 18:23:19 2009
@@ -131,20 +131,19 @@
         XmlDataDAO cached = _variables.get(varName);
         if (cached != null) return _variables.get(varName);
 
-        HXmlData data;
-        Query qry = getSession().createQuery(QRY_VARIABLE);
-        qry.setString(0,varName);
-        qry.setLong(1,_scope.getId());
-        List res = qry.list();
-
-        if(res.size() > 0)
-            data = (HXmlData)res.get(0);
-        else {
+        HXmlData data = null;
+        for (HXmlData e : _scope.getVariables()) {
+            if (e.getName().equals(varName) && e.getScope().getId().equals(_scope.getId())) {
+                data = e;
+            }
+        }
+        if (data == null) {
             data = new HXmlData();
             data.setName(varName);
             data.setScope(_scope);
+            _scope.getVariables().add(data);
         }
-
+        
         XmlDataDaoImpl varDao = new XmlDataDaoImpl(_sm, data);
         _variables.put(varName, varDao);
         return varDao;

Modified: ode/branches/APACHE_ODE_1.X/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/XmlDataDaoImpl.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/XmlDataDaoImpl.java?rev=798639&r1=798638&r2=798639&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/XmlDataDaoImpl.java (original)
+++ ode/branches/APACHE_ODE_1.X/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/XmlDataDaoImpl.java Tue Jul 28 18:23:19 2009
@@ -86,9 +86,15 @@
         entering("XmlDataDaoImpl.set");
         _node = val;
         _data.setSimpleType(!(val instanceof Element));
-        if (_data.getData() != null) _sm.getSession().delete(_data.getData());
+
+        HLargeData ld = _data.getData();
+
+        if (ld == null) {
+            ld = new HLargeData();
+        } else {
+            ld.setBinary(null);
+        } 
         
-        HLargeData ld = new HLargeData();
         if(_data.isSimpleType()) {
             ld.setBinary(_node.getNodeValue().getBytes());
             _data.setData(ld);
@@ -96,8 +102,9 @@
             ld.setBinary(DOMUtils.domToString(_node).getBytes());
             _data.setData(ld);
         }
-        getSession().save(ld);
+        getSession().saveOrUpdate(ld);
         getSession().saveOrUpdate(_data);
+        leaving("XmlDataDaoImpl.set");
     }
     /**
      * @see org.apache.ode.bpel.dao.XmlDataDAO#getProperty(java.lang.String)