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;


Reply via email to