Setting up Jemboss to use Batch Queueing Software

It is possible to set up the Jemboss server to submit jobs to a network queueing system. This means that batch jobs submitted through Jemboss are sent to a queue rather than just run in the background. The queueing software just needs to be able to take and run script files. The server code needs to be altered to enable this and may require further changes than are suggested below, depending on the batch queue system used:

Edit  EMBOSS-2.x.x/jemboss/org/emboss/jemboss/server/JembossAuthServer.java

First comment out this line (which is used to submit batch jobs as background processes):
    boolean lforkB = 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 queueing system to run. This file is created in the users area under a new project directory for that emboss calculation. 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 queueing software.