Setting up BOSS/R-GMA on RH 7.3 Get BOSS v3_3_4 and unpack. http://www.bo.infn.it/cms/computing/BOSS/boss-v3_3_4.tar.gz If BOSS is likely to be used by a number of people on that machine, you will probably want to move it somewhere "central", e.g. /opt/boss Apart from creating this directory, you don't need system root privileges to install/use BOSS (unless you need to install something it depends on, of course. For R-GMA-enabled BOSS, that should all have been covered in the previous page.) You will need MySQL root password when installing. MySQL should already be installed & running. As normal user (the one in charge of BOSS) As BOSS administrator: 1. make config 2. check in BOSSDBConfig.sh that the variables are fine for you (default will work if you installed the mysql server as in the previous step). Make sure values of BOSS_db_guest and BOSS_db_user are =< 16 chars (defaults are fine). I made BOSS_db_name, BOSS_db_guest and BOSS_db_user to be boss_v3_3_young, BOSSv3_3_mon, BOSSv3_3_mgr to match those already in our DB. I make the BOSS_DB_HOST just the plain machine name and put its domain in the BOSS_DB_DOMAIN; it shouldn't matter as long as you don't double up the domain. Please note that starting with version 3.0 there is a variable $BOSS_TMP_DIR that defines the directory where the temporary BOSS files are created. This directory must be present on any host where the jobs may happen to run and on any host where BOSS commands are executed. By default BOSS_TMP_DIR=/tmp. BOSS_TMP_DIR=. is a valid value and gives the same behavour of previous versions of BOSS. Since AFS doesn't support FIFO's, BOSS_TMP_DIR cannot be on AFS. If your MySQL server supports InnoDB tables it is possible to specify InnoDB as default table type (BOSS_TABLE_TYPE). source bossenv.sh or source bossenv.csh 3. make 4. Please note: root access to MySQL server during "make": When "make" is executed the BOSS libraries and executables are created and the database is configured. Database configuration needs root access to MySQL server. The installation scripts try first without password. If this works the installation finishes. If root access is protected by password the installation script prompts for the password. If you don't have the root password you need to interrupt the installation and ask your MySQL administrator to execute the commands for you. The commands may be found in the file MySQLconfig.sql 5. If BOSS will be used with a grid scheduler, access to the MySQL server must be granted to the BOSS MySQL users from any host where the jobs may happen to run. You can grant access to the MySQL server from any host using the file ${BOSSDIR}/MySQLGridConfig.sql: mysql -u root -h MySQL host -s -f [-p] < MySQLGridConfig.sql If using grid scheduler + R-GMA, 5 doesn't apply. If sharing one DB among several UIs, though, then you will need to allow networked connections. I've had lots of trouble getting access privileges to work. mysql -u root -s -f -p < MySQLGridConfig.sql mysql -u root -s -f -p < MySQLconfig.sql as on same box worked for me, otherwise need to resort to "manual" administration... 6. Before using BOSS in any session you need to set the environment by sourcing $BOSSDIR/bossenv.csh (or $BOSSDIR/bossenv.sh) In $BOSSDIR/sched_examples, ./registerEDGScheduler to register grid scheduler, and in $BOSSDIR/jobtest do ./registerTestJob to register the TestJob type. /* *** Not registered EDG scheduler yet! *** */ In $BOSSDIR/jobtest (as user with write perms) boss submit -scheduler fork -classad test.clad to submit testjob locally, and boss query -all to see results. Increase the count parameter to 400 or more, and it should be possible to watch the counter updating using either boss query or from within MySQL directly. After all this, ~> mysqlshow +-----------------+ | Databases | +-----------------+ | arch0 | | arch1 | | arch2 | | archiverTestDB0 | | boss_v3_3_young | | mysql | | test | +-----------------+ http://www.brunel.ac.uk/~eesrjjn/grid/boss/ - CounterDemo - unzip into $BOSSDIR/CounterDemo, run CDregister... copy everything _except_ CD* into directory in "user" space there: boss submit -scheduler fork -classad CounterDemo.clad At this point BOSS is still using a direct DB connection for updates. Make sure R-GMA env variables have been sourced... - get R-GMA update source. mv $BOSSDIR/bin/dbUpdator to e.g. $BOSSDIR/bin/dbUpdator.MySQL mv $BOSSDIR/bin/jobExecutor to e.g. $BOSSDIR/bin/jobExecutor.MySQL and $BOSSDIR/src/Makefile to Makefile.orig Add updated sources to $BOSSDIR/src and mv Makefile.new to Makefile in $BOSSDIR, 'make compile' When compiled OK, cp $BOSSDIR/bin/dbUpdator to $BOSSDIR/bin/dbUpdator.RGMA cp $BOSSDIR/bin/jobExecutor to $BOSSDIR/bin/jobExecutor.RGMA This gives a brute force way to enable/disable R-GMA transfers. jobExecutor executables should differ significantly in size (I get 1.5M MySQL, 0.5M R-GMA) If needed, fix any include paths, etc. in $BOSSDIR/src/Makefile - Install and start receiver. hardwire DB details in dbInfo.java (values in BOSSDBConfig.sh) If not running on DB host, give hostname in databaseLink.java In connectionManager.java set predicate for host (and DB name)(line 48) //(add thread for each extra jobtype to connection.java - now bodged in) source javasetup.csh or javasetup.sh javac * For recent R-GMA, java -DRGMA_PROPS=$RGMA_PROPS -DLOG4J_PROPS=$LOG4J_PROPS connection counterdemo or even: java -DRGMA_PROPS=$RGMA_PROPS -Dlog4j.configuration=$LOG4J_PROPS connection counterdemo [Add env vars to setup scripts in masters ] [Add try/catch in receiver ] It's go!