Index: trunk/ippTasks/replicate.pro
===================================================================
--- trunk/ippTasks/replicate.pro	(revision 23230)
+++ trunk/ippTasks/replicate.pro	(revision 23345)
@@ -62,4 +62,11 @@
 # the replicate process interacts with only the single Nebulous server
 
+# Each 'pendingreplicate' query is limited to a finite number of so_id values.  
+# Each time we call replicate.load, we increment SO_ID_START by the range value.  
+# If the pendingreplicate query exits with exit status 10, we start over at 0
+
+$SO_ID_START = 0
+$SO_ID_RANGE = 100000
+
 # select Nebulous objects which desire additional copies
 task	       replicate.load
@@ -68,5 +75,5 @@
   # modify these after the tasks are tested
   periods      -poll 10
-  periods      -exec 1
+  periods      -exec 10
   periods      -timeout 1500
   npending     1
@@ -79,5 +86,6 @@
       # command does not need to be dynamic, but having it so allows us to adjust the periods
       # so that we dont have to wait 10 minutes for things to start up
-      command neb-admin --host $NEB_HOST --db $NEB_DB --user $NEB_USER --pass $NEB_PASS --pendingreplicate --limit 7500
+      # XXX smaller limited?  7500 will be a huge book of things to do...
+      command neb-admin --host $NEB_HOST --db $NEB_DB --user $NEB_USER --pass $NEB_PASS --pendingreplicate --limit 7500 --so_id_start $SO_ID_START --so_id_range $SO_ID_RANGE
       periods      -exec 1800
 
@@ -86,4 +94,7 @@
   # success
   task.exit $EXIT_SUCCESS
+    # advance the so_id counter
+    $SO_ID_START += $SO_ID_RANGE
+
     # convert 'stdout' to book format
     ipptool2book stdout replicatePending -key key -uniq -setword pantaskState INIT
@@ -95,4 +106,10 @@
     # delete existing entries in the appropriate pantaskStates
     process_cleanup replicatePending
+  end
+
+  # out of so_id range, reset
+  task.exit 10
+    # advance the so_id counter
+    $SO_ID_START = 0
   end
 
