Scope

  • Features are provided and tested for the respective milestones.
    • JS-1291 - Getting issue details... STATUS
  • Milestones
    • TP1: Technical Preview with basic core functionality for use with shell scripts
    • TP2: Technical Preview with support for jobs and monitors using the API, file watching and more complete proxy methods
    • TP3: Technical Preview with fully featured functionality for replacement of the previous platform specific JobScheduler Agent
    • RC1: Release Candidate with functionality to replace a previous standalone instance by Master/Agent instances

Test Results

  • The following list records the test results according to milestones
  • Explanations
    • (tick) test passed
    • (error) test failed
    • (question) test to be done
    • (info) requires rework before testing
    • (lightbulb) needs to be discussed

 

FeatureTest Result
TP1 
Test Result
TP2 

Test Result
TP3

Test
Result
RC1

Comment

Core Functionality

     
execution of shell jobs(tick)(tick)(tick)(tick) 
stdout of shell jobs is logged as info(tick)(tick)(tick)(tick) 
stderr of shell jobs is logged(tick)(tick)(tick)(tick)stderr is logged as info, probably related to JS-1329 - Getting issue details... STATUS
non-zero exit code is treated as error(tick)(tick)(tick)(tick) 
live output of log in JOC(tick)(tick)(tick)(tick) 
read order id with $SCHEDULER_ORDER_ID(tick)(tick)(tick)(tick) 
read job parameters as environment variables with $SCHEDULE_PARAM_(tick)(tick)(tick)(tick) 
read order parameters as environment variables with $SCHEDULE_PARAM_(tick)(tick)(tick)(tick)Example
set order parameters using SCHEDULER_RETURN_VALUES(tick)(tick)(tick)(tick)Example
kill a running task(error)(question)(question)(question)works on Windows with 1.10RC1, will work on Linux with 1.10
file watching(error)(tick)(tick)(tick)incoming files trigger a job chain, see JS-1300 - Getting issue details... STATUS , this feature will require a JobScheduler 1.10 SNAPSHOT release as a new master functionality is used.
<file_order_sink>(error)(error)(question)(tick) 
Use global Monitors for Agent Jobs(question)(question)(tick)(tick) JS-1324 - Getting issue details... STATUS

JobScheduler API

     
API jobs with javascript(tick)(tick)(tick)(tick)Yes, but with API restrictions, see details below
API jobs with java(tick)(tick)(tick)(tick)Yes, but with API restrictions, see details below
Shell jobs with javascript monitor(tick)(tick)(tick)(tick)Yes, but with API restrictions, see details below
Shell jobs with java monitor(tick)(tick)(tick)(tick)Yes, but with API restrictions, see details below
API jobs with java monitor(tick)(tick)(tick)(tick) 
API jobs with javascript monitor(tick)(tick)(tick)(tick) 
spooler_init()(tick)(tick)(tick)(tick) 
spooler_open()(tick)(tick)(tick)(tick) 
spooler_process()(tick)(tick)(tick)(tick) 
spooler_close()(tick)(tick)(tick)(tick) 
spooler_exit()(tick)(tick)(tick)(tick) 
spooler_process_before()(tick)(tick)(tick)(tick) 
spooler_process_after()(tick)(tick)(tick)(tick) 
spooler_task_before()(tick)(tick)(tick)(tick) 
spooler_task_after()(tick)(tick)(tick)(tick) 
spooler.create_variable_set()(tick)(tick)(tick)(tick) 
spooler.job()(tick)(tick)(tick)(tick) 
spooler_task.params()(tick)(tick)(tick)(tick) 
spooler_task.order.params()(tick)(tick)(tick)(tick) 
Variable_set.set_value()(tick)(tick)(tick)(tick) 
Variable_set.var()(tick)(tick)(tick)(tick) 
Variable_set.merge()(tick)(tick)(tick)(tick) 
Variable_set.count()(tick)(tick)(tick)(tick) 
Variable_set.substitute()(tick)(tick)(tick)(tick) 
Variable_set.xml()(tick)(tick)(tick)(tick) 
Variable_set.set_xml()(tick)(tick)(tick)(tick) 
Log.info() (and all other log levels)(tick)(tick)(tick)(tick) 
Log.filename()(tick)(tick)(tick)(tick) 
Log.last()(tick)(tick)(tick)(tick) 
Log.set_level()(tick)(tick)(tick)(tick) 
Log.level()(tick)(tick)(tick)(tick) 
Log.log_file()(tick)(tick)(tick)(tick) 
Log.set_mail_on_error()(tick)(tick)(tick)(tick) 
Log.set_mail_on_success()(tick)(tick)(tick)(tick) 
Log.set_mail_on_process()(tick)(tick)(tick)(tick) 
Log.set_mail_on_warning()(tick)(tick)(tick)(tick) 
Log.start_new_file()(info)(tick)(tick)(tick)Runs on master. Rotates log on master. Agent uses log4j based logging, rotation can be configured in log4j configuration.
Job.set_delay_after_error(int,double)(tick)(tick)(tick)(tick) 
Job.set_delay_after_error(int,String)(tick)(tick)(tick)(tick) 
Job.clear_delay_after_error()(tick)(tick)(tick)(tick) 
Job.set_delay_order_after_setback(int, double)(tick)(tick)(tick)(tick) 
Job.set_delay_order_after_setback(int, String)(tick)(tick)(tick)(tick) 
Job.max_order_setbacks()(tick)(tick)(tick)(tick) 
Job.set_max_order_setbacks()(tick)(tick)(tick)(tick) 
Job.configuration_directory()(tick)(tick)(tick)(tick) 
Job.folder_path()(tick)(tick)(tick)(tick) 
Job.include_path()(tick)(tick)(tick)(tick) 
Job.name()(tick)(tick)(tick)(tick) 
Job.process_class()(tick)(tick)(tick)(tick) 
Job.remove()(tick)(tick)(tick)(tick) 

JITL Jobs

     

Database Operations

     
JobSchedulerExtractResulSet2CSVJob(question)(question)(question)  
JobSchedulerManagedDBReportJob(info)(info)(info)(info) JITL-192 - Getting issue details... STATUS
JobSchedulerManagedDatabaseJob(error)(error)(tick)(tick)Example
JobSchedulerPLSQLJob(question)(question)(tick)(tick)Example
SOSSQLPlusJob(question)(question)(tick)(tick)Example

File Operations

     
JobSchedulerExistsFile(tick)(tick)(tick)(tick) 
JobSchedulerNotExistsFile(question)    
JobSchedulerCanWrite(tick)(tick)(tick)(tick) 
JobSchedulerCopyFile(tick)(tick)(tick)(tick) 
JobSchedulerMoveFile(tick)(tick)(tick)(tick) 
JobSchedulerRemoveFile(tick)(tick)(question)(tick) 
JobSchedulerMD5File(question)(question)(question)(tick) 

Job Handling

     
JSReportAllParameters(tick)(tick)(tick)(tick) 
CopyJob2OrderParameter(error)(error)  job is currently not working correctly, unrelated to the agent, see JITL-179 - Getting issue details... STATUS
JobChainSplitter(question)(tick)(question)(tick)Example
JobSchedulerSynchronizeJobChains(question)(tick)(question)(tick)Example
JobSchedulerCheckRunHistory(error)(error)(error)(error)has to be migrated, needs database settings
JobSchedulerCriticalPathUncriticalJobNodes(question)    
JobSchedulerDequeueEventsJob(info)(info)(info)(info)needs event script for agent
Submit events script(question)(question)(question)(question)test perl script under unix
JobSchedulerSubmitEventJob / JobSchedulerSubmitEventMonitor(question)(tick)(question)(tick) 
JobSchedulerCheckExistEvents(tick)(tick)(question)(tick)

requires local hibernate configuration file defined in parameter configuration_file

Maintenance

     
JobSchedulerCleanupFiles(tick)(tick)(tick)(tick)runs on master and on agent
AgentBatchInstaller(error)(error)(error)(error)installs old agent, must be migrated to a job that installs the new agent
CheckDailySchedule(error)(error)(error)(error)runs on master
JSObjects2Graphviz(error)(error)(error)(error)runs on master, works with live folder
JobSchedulerCleanupHistory / JobSchedulerCleanupHistoryDb / JobSchedulerDeleteHistory(error)(error)(error)(error)runs on master
JobSchedulerDequeueMail(error)(error)(error)(error)runs on master
JobSchedulerNotificationCheckHistoryJob(error)(error)(error)(error)runs on master
JobSchedulerNotificationCleanupNotificationsJob(error)(error)(error)(error)runs on master
JobSchedulerNotificationResetNotificationsJob(error)(error)(error)(error)runs on master
JobSchedulerNotificationStoreResultsJob(error)(error)(error)(error)runs on master
JobSchedulerNotificationSystemNotifierJob(error)(error)(error)(error)runs on master
ReportAggregationJob(error)(error)(error)(error)runs on master
JobSchedulerRestart(error)(error)(error)(error)runs on master

Other jobs

     
JobSchedulerHttpPostJob(error)(error)(tick)(tick)input file must be on agent host
SOSMailProcessInbox(question)(question)(question)  
JobSchedulerManagedMailJob(question)(question)(question)  
SOSSSHJob2JSAdapter(question)(question)(question)  
YADE(question)(question)(question)  

Operations

     
add command abort to Agent start script(error)(error)(tick)(tick)see JS-1400 - Getting issue details... STATUS JS-1401 - Getting issue details... STATUS
command stop for Agent start script enables running processes to complete(error)(error)(tick)(tick)see JS-1400 - Getting issue details... STATUS JS-1401 - Getting issue details... STATUS
add command status to Agent(error)(error)(tick)(tick)

see JS-1410 - Getting issue details... STATUS JS-1426 - Getting issue details... STATUS

response to this command returns information about active jobs

Operation as Windows Service(error)(error)(tick)(tick)see JS-1325 - Getting issue details... STATUS
  • No labels

1 Comment

  1. There are several Problems that cause the "couldn't find settings-file" error for JITL jobs:

    • The class JobSchedulerJob tries to build the path for factory.ini using spooler.ini_path(). On the Java Agent, spooler.ini_path() returns the ini path from the master scheduler.
    • This can be fixed on the agent to return an agent-local path, however the agent does not yet have an ini path
      • Should we still have factory.ini on the agent?
      • Do we want to configure the db connection on the agent?
        • Security: db passwords on the agent systems
        • Maintenance: update db settings on all agents

    Possible quick fix: Adjust JobSchedulerJob to tolerate invalid ini path and deny db connection if there is no ini. Most JITL jobs are able to run without a db, so this shouldn't be a problem.