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:17:24 UTC

svn commit: r685706 - in /ode/branches/APACHE_ODE_1.X: 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/schedul...

Author: mriou
Date: Wed Aug 13 15:17:23 2008
New Revision: 685706

URL: http://svn.apache.org/viewvc?rev=685706&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/branches/APACHE_ODE_1.X/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java
    ode/branches/APACHE_ODE_1.X/jbi/src/main/java/org/apache/ode/jbi/OdeLifeCycle.java
    ode/branches/APACHE_ODE_1.X/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java
    ode/branches/APACHE_ODE_1.X/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/RetriesTest.java
    ode/branches/APACHE_ODE_1.X/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/SimpleSchedulerTest.java

Modified: ode/branches/APACHE_ODE_1.X/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java?rev=685706&r1=685705&r2=685706&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java (original)
+++ ode/branches/APACHE_ODE_1.X/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java Wed Aug 13 15:17:23 2008
@@ -472,7 +472,8 @@
     }
 
     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.setExecutorService(_executorService);
         scheduler.setTransactionManager(_txMgr);
         return scheduler;

Modified: ode/branches/APACHE_ODE_1.X/jbi/src/main/java/org/apache/ode/jbi/OdeLifeCycle.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/jbi/src/main/java/org/apache/ode/jbi/OdeLifeCycle.java?rev=685706&r1=685705&r2=685706&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/jbi/src/main/java/org/apache/ode/jbi/OdeLifeCycle.java (original)
+++ ode/branches/APACHE_ODE_1.X/jbi/src/main/java/org/apache/ode/jbi/OdeLifeCycle.java Wed Aug 13 15:17:23 2008
@@ -216,7 +216,7 @@
             _ode._executorService = Executors.newCachedThreadPool();
         else
             _ode._executorService = Executors.newFixedThreadPool(_ode._config.getThreadPoolMaxSize());
-        _ode._scheduler = new SimpleScheduler(new GUID().toString(),new JdbcDelegate(_ode._dataSource));
+        _ode._scheduler = new SimpleScheduler(new GUID().toString(),new JdbcDelegate(_ode._dataSource), _ode._config.getProperties());
         _ode._scheduler.setJobProcessor(_ode._server);
         _ode._scheduler.setExecutorService(_ode._executorService);
         _ode._scheduler.setTransactionManager((TransactionManager) _ode.getContext().getTransactionManager());

Modified: ode/branches/APACHE_ODE_1.X/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java?rev=685706&r1=685705&r2=685706&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java (original)
+++ ode/branches/APACHE_ODE_1.X/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java Wed Aug 13 15:17:23 2008
@@ -84,7 +84,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;
@@ -110,9 +110,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);
     }
 
@@ -218,8 +219,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/branches/APACHE_ODE_1.X/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/RetriesTest.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/RetriesTest.java?rev=685706&r1=685705&r2=685706&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/RetriesTest.java (original)
+++ ode/branches/APACHE_ODE_1.X/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/RetriesTest.java Wed Aug 13 15:17:23 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/branches/APACHE_ODE_1.X/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/SimpleSchedulerTest.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/SimpleSchedulerTest.java?rev=685706&r1=685705&r2=685706&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/SimpleSchedulerTest.java (original)
+++ ode/branches/APACHE_ODE_1.X/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/SimpleSchedulerTest.java Wed Aug 13 15:17:23 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.RollbackException;
 import javax.transaction.Status;
@@ -245,7 +242,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;