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);