You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by mr...@apache.org on 2007/12/11 00:20:16 UTC

svn commit: r603090 - in /ode/branches/APACHE_ODE_1.1: axis2/src/main/java/org/apache/ode/axis2/ bpel-epr/src/main/java/org/apache/ode/il/config/ bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/ jbi/src/main/java/org/apache/ode/jbi/

Author: mriou
Date: Mon Dec 10 15:20:15 2007
New Revision: 603090

URL: http://svn.apache.org/viewvc?rev=603090&view=rev
Log:
Configuration for in-mem MEX time to live.

Modified:
    ode/branches/APACHE_ODE_1.1/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java
    ode/branches/APACHE_ODE_1.1/bpel-epr/src/main/java/org/apache/ode/il/config/OdeConfigProperties.java
    ode/branches/APACHE_ODE_1.1/bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/BpelDAOConnectionFactoryImpl.java
    ode/branches/APACHE_ODE_1.1/bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/BpelDAOConnectionImpl.java
    ode/branches/APACHE_ODE_1.1/jbi/src/main/java/org/apache/ode/jbi/OdeLifeCycle.java

Modified: ode/branches/APACHE_ODE_1.1/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.1/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java?rev=603090&r1=603089&r2=603090&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.1/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java (original)
+++ ode/branches/APACHE_ODE_1.1/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java Mon Dec 10 15:20:15 2007
@@ -460,7 +460,7 @@
         _scheduler.setJobProcessor(_server);
 
         _server.setDaoConnectionFactory(_daoCF);
-        _server.setInMemDaoConnectionFactory(new BpelDAOConnectionFactoryImpl(_scheduler));
+        _server.setInMemDaoConnectionFactory(new BpelDAOConnectionFactoryImpl(_scheduler, _odeConfig.getInMemMexTtl()));
         _server.setEndpointReferenceContext(new EndpointReferenceContextImpl(this));
         _server.setMessageExchangeContext(new MessageExchangeContextImpl(this));
         _server.setBindingContext(new BindingContextImpl(this, _store));

Modified: ode/branches/APACHE_ODE_1.1/bpel-epr/src/main/java/org/apache/ode/il/config/OdeConfigProperties.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.1/bpel-epr/src/main/java/org/apache/ode/il/config/OdeConfigProperties.java?rev=603090&r1=603089&r2=603090&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.1/bpel-epr/src/main/java/org/apache/ode/il/config/OdeConfigProperties.java (original)
+++ ode/branches/APACHE_ODE_1.1/bpel-epr/src/main/java/org/apache/ode/il/config/OdeConfigProperties.java Mon Dec 10 15:20:15 2007
@@ -48,7 +48,6 @@
 
     public static final String PROP_DB_INTERNAL_URL = "db.int.jdbcurl";
 
-
     public static final String PROP_DB_INTERNAL_DRIVER = "db.int.driver";
 
     public static final String PROP_DB_INTERNAL_PASSWORD = "db.int.password";
@@ -79,6 +78,8 @@
 
     public static final String PROP_MEX_INTERCEPTORS = "mex.interceptors";
 
+    public static final String PROP_MEX_INMEM_TTL = "mex.inmem.ttl";
+
     public static final String PROP_PROCESS_DEHYDRATION = "process.dehydration";
 
     public static final String PROP_DAOCF = "dao.factory";
@@ -237,6 +238,10 @@
 
     public String getMessageExchangeInterceptors() {
         return getProperty(PROP_MEX_INTERCEPTORS);
+    }
+
+    public long getInMemMexTtl() {
+        return Long.valueOf(getProperty(PROP_MEX_INMEM_TTL, ""+10*60*1000));
     }
 
     public boolean isDehydrationEnabled() {

Modified: ode/branches/APACHE_ODE_1.1/bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/BpelDAOConnectionFactoryImpl.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.1/bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/BpelDAOConnectionFactoryImpl.java?rev=603090&r1=603089&r2=603090&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.1/bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/BpelDAOConnectionFactoryImpl.java (original)
+++ ode/branches/APACHE_ODE_1.1/bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/BpelDAOConnectionFactoryImpl.java Mon Dec 10 15:20:15 2007
@@ -34,13 +34,18 @@
     private static final Map<QName, ProcessDaoImpl> __StateStore = new HashMap<QName, ProcessDaoImpl>();
 
     private Scheduler _scheduler;
+    private long _mexTtl = 10*60*1000;
 
     public BpelDAOConnectionFactoryImpl(Scheduler sched) {
         _scheduler = sched;
     }
+    public BpelDAOConnectionFactoryImpl(Scheduler sched, long ttl) {
+        _scheduler = sched;
+        _mexTtl = ttl;
+    }
 
     public BpelDAOConnection getConnection() {
-        return new BpelDAOConnectionImpl(__StateStore, _scheduler);
+        return new BpelDAOConnectionImpl(__StateStore, _scheduler, _mexTtl);
     }
 
     /**

Modified: ode/branches/APACHE_ODE_1.1/bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/BpelDAOConnectionImpl.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.1/bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/BpelDAOConnectionImpl.java?rev=603090&r1=603089&r2=603090&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.1/bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/BpelDAOConnectionImpl.java (original)
+++ ode/branches/APACHE_ODE_1.1/bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/BpelDAOConnectionImpl.java Mon Dec 10 15:20:15 2007
@@ -54,19 +54,21 @@
  */
 class BpelDAOConnectionImpl implements BpelDAOConnection {
     private static final Log __log = LogFactory.getLog(BpelDAOConnectionImpl.class);
-    public static long TIME_TO_LIVE = 10*60*1000;
 
     private Scheduler _scheduler;
     private Map<QName, ProcessDaoImpl> _store;
     private List<BpelEvent> _events = new LinkedList<BpelEvent>();
+    private long _mexTtl;
+
     private static Map<String,MessageExchangeDAO> _mexStore = Collections.synchronizedMap(new HashMap<String,MessageExchangeDAO>());
     protected static Map<String, Long> _mexAge = new ConcurrentHashMap<String, Long>();
     private static AtomicLong counter = new AtomicLong(Long.MAX_VALUE / 2);
     private static volatile long _lastRemoval = 0;
 
-    BpelDAOConnectionImpl(Map<QName, ProcessDaoImpl> store, Scheduler scheduler) {
+    BpelDAOConnectionImpl(Map<QName, ProcessDaoImpl> store, Scheduler scheduler, long mexTtl) {
         _store = store;
         _scheduler = scheduler;
+        _mexTtl = mexTtl;
     }
 
     public ProcessDAO getProcess(QName processId) {
@@ -182,13 +184,13 @@
         _mexStore.put(id,mex);
         _mexAge.put(id, now);
 
-        if (now > _lastRemoval + (TIME_TO_LIVE/10)) {
+        if (now > _lastRemoval + (_mexTtl / 10)) {
             _lastRemoval = now;
             Object[] oldMexs = _mexAge.keySet().toArray();
             for (int i=oldMexs.length-1; i>0; i--) {
                 String oldMex = (String) oldMexs[i];
                 Long age = _mexAge.get(oldMex);
-                if (age != null && now-age > TIME_TO_LIVE) {
+                if (age != null && now-age > _mexTtl) {
                     removeMessageExchange(oldMex);
                     _mexAge.remove(oldMex);
                 }

Modified: ode/branches/APACHE_ODE_1.1/jbi/src/main/java/org/apache/ode/jbi/OdeLifeCycle.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.1/jbi/src/main/java/org/apache/ode/jbi/OdeLifeCycle.java?rev=603090&r1=603089&r2=603090&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.1/jbi/src/main/java/org/apache/ode/jbi/OdeLifeCycle.java (original)
+++ ode/branches/APACHE_ODE_1.1/jbi/src/main/java/org/apache/ode/jbi/OdeLifeCycle.java Mon Dec 10 15:20:15 2007
@@ -212,7 +212,8 @@
         _ode._store = new ProcessStoreImpl(_ode._dataSource, _ode._config.getDAOConnectionFactory(), false);
         _ode._store.loadAll();
 
-        _ode._server.setInMemDaoConnectionFactory(new org.apache.ode.bpel.memdao.BpelDAOConnectionFactoryImpl(_ode._scheduler));
+        _ode._server.setInMemDaoConnectionFactory(new org.apache.ode.bpel.memdao.BpelDAOConnectionFactoryImpl(
+                _ode._scheduler, _ode._config.getInMemMexTtl()));
         _ode._server.setDaoConnectionFactory(_ode._daocf);
         _ode._server.setEndpointReferenceContext(_ode._eprContext);
         _ode._server.setMessageExchangeContext(_ode._mexContext);