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 2008/08/14 00:37:32 UTC

svn commit: r685713 - in /ode/trunk: axis2/src/main/java/org/apache/ode/axis2/ jbi/src/main/java/org/apache/ode/jbi/ scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/ scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/

Author: mriou
Date: Wed Aug 13 15:37:32 2008
New Revision: 685713

URL: http://svn.apache.org/viewvc?rev=685713&view=rev
Log:
Giving more space to the execution queue (was really too small for any type of perf) and making it configurable.

Modified:
    ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java
    ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeLifeCycle.java
    ode/trunk/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java
    ode/trunk/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/RetriesTest.java
    ode/trunk/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/SimpleSchedulerTest.java

Modified: ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java
URL: http://svn.apache.org/viewvc/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java?rev=685713&r1=685712&r2=685713&view=diff
==============================================================================
--- ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java (original)
+++ ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java Wed Aug 13 15:37:32 2008
@@ -442,7 +442,7 @@
     }
 
     protected Scheduler createScheduler() {
-        SimpleScheduler scheduler = new SimpleScheduler(new GUID().toString(),new JdbcDelegate(_db.getDataSource()));
+        SimpleScheduler scheduler = new SimpleScheduler(new GUID().toString(),new JdbcDelegate(_db.getDataSource()), _odeConfig.getProperties());
         scheduler.setTransactionManager(_txMgr);
 
         return scheduler;

Modified: ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeLifeCycle.java
URL: http://svn.apache.org/viewvc/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeLifeCycle.java?rev=685713&r1=685712&r2=685713&view=diff
==============================================================================
--- ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeLifeCycle.java (original)
+++ ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeLifeCycle.java Wed Aug 13 15:37:32 2008
@@ -218,7 +218,7 @@
             _ode._executorService = Executors.newCachedThreadPool();
         else
             _ode._executorService = Executors.newFixedThreadPool(_ode._config.getThreadPoolMaxSize());
-        SimpleScheduler sched =new SimpleScheduler(new GUID().toString(), new JdbcDelegate(_ode._dataSource));
+        SimpleScheduler sched =new SimpleScheduler(new GUID().toString(), new JdbcDelegate(_ode._dataSource),  _ode._config.getProperties());
         sched.setJobProcessor(_ode._server);
         sched.setTransactionManager((TransactionManager) _ode.getContext().getTransactionManager());
         _ode._scheduler = sched;

Modified: ode/trunk/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java
URL: http://svn.apache.org/viewvc/ode/trunk/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java?rev=685713&r1=685712&r2=685713&view=diff
==============================================================================
--- ode/trunk/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java (original)
+++ ode/trunk/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java Wed Aug 13 15:37:32 2008
@@ -75,7 +75,7 @@
     String _nodeId;
 
     /** Maximum number of jobs in the "near future" / todo queue. */
-    volatile int _todoLimit = 200;
+    int _todoLimit = 10000;
 
     /** The object that actually handles the jobs. */
     volatile JobProcessor _jobProcessor;
@@ -100,9 +100,10 @@
 
     private Random _random = new Random();
 
-    public SimpleScheduler(String nodeId, DatabaseDelegate del) {
+    public SimpleScheduler(String nodeId, DatabaseDelegate del, Properties conf) {
         _nodeId = nodeId;
         _db = del;
+        _todoLimit = Integer.parseInt(conf.getProperty("ode.scheduler.queueLength", "10000"));
         _todo = new SchedulerThread(this);
     }
 
@@ -172,8 +173,11 @@
         try {
             if (immediate) {
                 // If we have too many jobs in the queue, we don't allow any new ones
-                if (_todo.size() > _todoLimit)
-                    throw new ContextException("The execution queue is backed up... Forcing ContextException");
+                if (_todo.size() > _todoLimit) {
+                    __log.error("The execution queue is backed up, the engine can't keep up with the load. Either " +
+                            "increase the queue size or regulate the flow.");
+                    return null;
+                }
 
                 // Immediate scheduling means we put it in the DB for safe keeping
                 _db.insertJob(job, _nodeId, true);

Modified: ode/trunk/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/RetriesTest.java
URL: http://svn.apache.org/viewvc/ode/trunk/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/RetriesTest.java?rev=685713&r1=685712&r2=685713&view=diff
==============================================================================
--- ode/trunk/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/RetriesTest.java (original)
+++ ode/trunk/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/RetriesTest.java Wed Aug 13 15:37:32 2008
@@ -4,10 +4,7 @@
 import org.apache.geronimo.transaction.manager.GeronimoTransactionManager;
 
 import javax.transaction.TransactionManager;
-import java.util.ArrayList;
-import java.util.Map;
-import java.util.HashMap;
-import java.util.Date;
+import java.util.*;
 
 import junit.framework.TestCase;
 
@@ -64,7 +61,7 @@
     }
 
     private SimpleScheduler newScheduler(String nodeId) {
-        SimpleScheduler scheduler = new SimpleScheduler(nodeId, _ds.delegate());
+        SimpleScheduler scheduler = new SimpleScheduler(nodeId, _ds.delegate(), new Properties());
         scheduler.setJobProcessor(this);
         scheduler.setTransactionManager(_txm);
         return scheduler;

Modified: ode/trunk/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/SimpleSchedulerTest.java
URL: http://svn.apache.org/viewvc/ode/trunk/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/SimpleSchedulerTest.java?rev=685713&r1=685712&r2=685713&view=diff
==============================================================================
--- ode/trunk/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/SimpleSchedulerTest.java (original)
+++ ode/trunk/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/SimpleSchedulerTest.java Wed Aug 13 15:37:32 2008
@@ -19,10 +19,7 @@
 
 package org.apache.ode.scheduler.simple;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
+import java.util.*;
 
 import javax.transaction.TransactionManager;
 
@@ -215,7 +212,7 @@
     }
 
     private SimpleScheduler newScheduler(String nodeId) {
-        SimpleScheduler scheduler = new SimpleScheduler(nodeId, _ds.delegate());
+        SimpleScheduler scheduler = new SimpleScheduler(nodeId, _ds.delegate(), new Properties());
         scheduler.setJobProcessor(this);
         scheduler.setTransactionManager(_txm);
         return scheduler;