It is possible to set up the Jemboss server to submit jobs to a network queuing system, but this requires editing the Jemboss source code before installation. Batch jobs submitted through Jemboss will be sent to a queue rather than just run in the background. The queuing software just needs to be able to take and run script files. Here are details of the server code needed, although further changes may be required, depending on the batch queue system used:
Edit EMBOSS-x.y.z/jemboss/org/emboss/jemboss/server/JembossAuthServer.java
First comment out this line (which is used to submit batch jobs as background processes):
aj.forkBatch(userName,passwd,environ, embossCommand,project);
Then uncomment this line to call (runAsBatch()
):
runAsBatch(aj,userName,passwd,project,embossCommand)
In the method runAsBatch()
the following line will need to be changed. The batchQueue.sh
is a script you will need to create to submit the emboss script (i.e. project/.scriptfile
) to the batch queue system:
//EDIT batchCommand String batchCommand = "/bin/batchQueue.sh " + project + "/.scriptfile ";
The .scriptfile
contains the script (environment variables and emboss command) for the queuing system to run. This file is created in the users area under a new project directory for that EMBOSS run. The next line:
lfork = aj.forkEmboss(userName,passwd,environ, batchCommand,project);
should not need changing. This line calls the emboss AJAX library to submit the batch command (as that user) to the queuing software.