Time entry approval workflow delayed due to batch job queue backlog

Our time entry approval workflows are experiencing significant delays in JDE 9.2.0, and it’s impacting our payroll processing timeline. Employees submit their timesheets on Friday, but the approval workflow notifications aren’t being sent to managers until Monday or Tuesday. We’ve traced the issue to the batch job queue - the workflow processing jobs are sitting in the queue for 24-48 hours before executing.

The batch job queue monitoring shows dozens of jobs waiting with status ‘W’ (waiting), and the job thread configuration seems insufficient for our volume. During peak times (end of week, month-end), we’re processing 500+ timesheet approvals, but our current setup can only handle about 50 per hour. We need to understand best practices for job scheduling and thread allocation to eliminate these delays. This is critical because delayed approvals are causing payroll processing to miss our cut-off times.

I’ll address all three focus areas to help you resolve this comprehensively.

Batch Job Queue Monitoring: Implement proactive monitoring of your job queue to catch bottlenecks before they impact operations. Set up these monitoring practices:

  1. Create a custom UBE (batch job) that runs every hour to check queue depth. If jobs with status ‘W’ exceed a threshold (say 20 jobs), trigger an alert to your operations team.

  2. Monitor the Work With Servers application (P986116) regularly. Look at the ‘Jobs in Queue’ and ‘Jobs Running’ metrics. Your ratio of queued to running jobs should typically be under 2:1. If it’s higher, you need more processing capacity.

  3. Review the job completion times in the Job Queue table (F986110). Calculate average wait times and processing times by job type. For workflow jobs, wait time should be under 5 minutes during normal operations.

  4. Set up SQL queries to identify long-running jobs that might be blocking the queue:

    • Jobs in status ‘P’ (processing) for over 30 minutes
    • Jobs in status ‘W’ (waiting) for over 15 minutes
    • Failed jobs (status ‘E’) that need cleanup

Job Thread Configuration: Your current 5-thread configuration is severely undersized for your volume. Here’s how to properly configure threads:

  1. Calculate required threads: With 500 workflows needing processing and an average processing time of 2-3 minutes per workflow, you need capacity to process all workflows within your target timeframe. For same-day processing, allocate 15-20 threads minimum.

  2. Update your JDE.INI file on the enterprise server:

    • Locate the [JDENET_KERNEL_DEF] section
    • Set maxNumberOfProcesses=20 (or higher based on server capacity)
    • For workflow-specific processing, consider a dedicated kernel with its own thread allocation
  3. Create a dedicated job queue for time entry workflows:

    • In Job Queue Master (P98610), create queue ‘WORKFLOW_TIME’
    • Assign 10 threads specifically to this queue
    • Configure your time entry workflow jobs to submit to this queue
    • This isolates workflow processing from other batch operations
  4. Monitor server resources after increasing threads:

    • CPU utilization should stay under 80% during peak processing
    • Memory usage for the JDE kernel processes
    • Database connection pool utilization (increase if needed)

Job Scheduling Best Practices: Optimize your workflow job scheduling to distribute load and reduce queue buildup:

  1. Implement incremental processing instead of daily batch:

    • Schedule workflow processing jobs to run every 2 hours during business hours
    • This processes timesheets as they’re submitted rather than in one large batch
    • Reduces peak queue depth from 500+ to 50-80 per processing cycle
  2. Use job scheduling priorities:

    • Set time entry workflow jobs to priority 5 (higher than standard reports at priority 1)
    • This ensures workflow jobs start processing before lower-priority batch jobs
  3. Configure peak vs. off-peak schedules:

    • During peak times (Friday afternoons, month-end), increase processing frequency to every hour
    • During slower periods, reduce to every 4 hours to conserve resources
  4. Implement workflow job chaining for large volumes:

    • Instead of one job processing all 500 workflows, create 5 jobs processing 100 each
    • Submit these jobs simultaneously to different threads
    • Reduces individual job runtime and improves throughput
  5. Set up automatic job restart for failed workflows:

    • Configure your workflow jobs to automatically retry failed items
    • Maximum 3 retry attempts with 15-minute intervals
    • Send alerts for workflows that fail all retry attempts

Implementation Steps:

  1. Increase thread allocation to 20 on your enterprise server
  2. Create dedicated workflow job queue with 10 allocated threads
  3. Modify time entry workflow job to submit to new queue
  4. Change scheduling from daily to every 2 hours during business hours
  5. Implement monitoring queries and set up alerts
  6. Test with a week’s worth of timesheet processing
  7. Monitor queue depth and adjust thread allocation if needed

Expected Results: After implementing these changes, you should see:

  • Workflow processing wait times reduced from 24-48 hours to under 15 minutes
  • Queue depth staying under 30 jobs during peak periods
  • All Friday timesheets processed and approved by end of business day
  • Payroll processing deadlines consistently met

The combination of adequate thread allocation, dedicated queuing, and incremental processing will eliminate your current bottleneck and provide headroom for growth.

The first thing to check is your job scheduler configuration. How many job threads do you have allocated for workflow processing? In the Server Manager console, check the JDE.INI file settings for the batch kernel. Look for the MaxThreads parameter - if it’s set too low, jobs will queue up. For a volume of 500+ workflows, you probably need at least 10-15 dedicated workflow processing threads.