##System Maintenance Documentation ## Headline = Set-up and System Maintenance of DOMS Test Setup = /!\ Do not use this script at the moment. It is currently broken. Please follow the instructions in the "Automated Setup" section below. ## Add detailed explanation of the set-up to test or run the result of this task/action/... ## Add detailed explanation of the expected system maintenance for this program/system/test-environment/... ## This may include UML diagrams, schematics describing architecture etc. attached like this: ## attachment:MyPackageDiagram.png 1. Check out the DOMS project from [[SVN]]. 1. Install MySQL 5 on the machine (see below), if it is not already installed. ({{{sudo /sbin/service mysqld status}}} will tell you if it is installed) 1. If the MySQL-daemon is not running do {{{sudo /sbin/service mysqld start}}} to start it. 1. Execute {{{domssetup.sh}}} in {{{test/bin}}} with the wanted test installation folder (no spaces in the name, please) as argument. (F.x. create a test installation folder where the doms folder was created.) It will prompt for the root password to the MySQL installation (not to be confused with the root password for the machine), create a database with the name {{{fedora_testfoldername}}} and install Fedora under the test folder. If you want to install with demo-objects, add the command line switch {{{-d}}}. Example: {{{ ./domssetup.sh -d ~/mydoms }}} will install a test DOMS at the folder {{{mydoms}}} under home, with the provided demo-objects. == Controlling Fedora == The installation script installs two scripts {{{bin/start.sh}}} and {{{bin/stop.sh}}} in the the root of the installation folder. These should be used for starting and stopping the Fedora server. When the fedora server has started, installation can be verified by visiting {{{ http://localhost:7900/fedora/search }}} ##== Overview over the system architecture == ## Describe system architecture == Overview over software components == === MySQL installation === /!\ Still current ''Note'': This was taken verbatim from [[Fedora]]. If you do not yet have MySQL 5 installed, you need to do this, set the password, and start it up. For Fedora Core Linux 3 or above, or Redhat Enterprise Linux 4 or above, you should be able to install MySQL, and make it start up at system boot, with the following commands: {{{ sudo yum install mysql-server }}} Continue with: {{{ sudo /sbin/chkconfig mysqld on sudo /sbin/service mysqld start }}} which enables start of MySQL server on startup. Now you should set the root password: {{{ /usr/bin/mysql -u root mysql> set password for root@localhost=password('new-password'); mysql> set password for root@<<$HOSTNAME>>=password('new-password'); }}} (Remember to replace {{{<<$HOSTNAME>>}}} with your host name) == Summa on a Stick == /!\ Almost current. Follow the exact commands in Iteration7ReleaseTest 1. Download the latest version from http://hera/~te/ 1. Unzip it and run {{{summa-setup.sh}}} 1. Change the line {{{false}}} to {{{true}}} in {{{summa-storage-build-4327/config/controllucene.properties}}} 1. Add the following lines to {{{summa-ingest-build-4327/config/targets.properties.xml}}}: {{{ /fedora/domsTestHarvest20080123/summa/data/doms true dk.statsbiblioteket.summa.ingest.OAI.OAIHarvestDirectoryDigester false UTF-8 true doms }}} . Change the line {{{oai}}} to {{{doms}}} in the same file 1. Copy DOMS-data to {{{data/doms}}} 1. Copy DOMS-XSLT's to {{{summa-index-build-4327/config/targets/doms}}} 1. In the file {{{summa-index-build-4327/config/index.properties.xml}}} remove all lines with {{{OpenArchive}}} and add lines like the following: {{{ true //localhost:8500/summa_storage file:///home/te/projects/doms_test/summa-build-4327/summa-index-build-4327/config/targets/doms/doms_index.xsl false }}} . If the installation is considered stable, it is advisable to point to the XSLTs in CVS instead of the local file-system. Change the line with {{{xslt-url}}} to {{{http://merkur/viewvc/trunk/summa/data/index/targets/doms/doms_index.xsl?root=doms&view=co}}}. Note: {{{create_new_index}}} in {{{controllucene.properties}}} controls whether the index is created from scratch upon each index or if the existing index should be used. === Summa harvester === The harvester is responsible for harvesting data from Fedora (or any other OAI-PMH source) and dump them as XML in a designated data dir. The dumped data can be ingested by Summa. The harvester is located in the folder {{{summa-harvest-build-4327}}} in the Summa on a Stick folder. The {{{config.properties}}} and the {{{targets.xml}}} files in the config folder contains setup-information. The detault-settings put harvested data in a {{{data}}}-subfolder in the {{{summa-harvest-build-4327}}} folder and performs the harvest from {{{http://alhena:7900/oaiprovider/}}}. The harvester is started with the {{{harvest.sh}}}-script. == Starting the Summa Prototype == It is strongly recommended that the following guide is executed by a user called {{{summa}}}, although this should not be strictly necessary. === Start rmiregistry === Run $JAVA_HOME/bin/rmiregistry 8500 & === Start summa-storage === Start Summa Storage with {{{summa-storage-build-4327/luceneStorage.sh &}}} === Ingest Sample Data === /!\ not nessesary for runs after the first run Run the {{{ingest.sh}}} script found in {{{summa-ingest-/}}}. This will ingest a fair amount of records. They are taken from the {{{data}}}-folder. If a smaller test is wanted, remove some of the XML-files in {{{data}}} before running the ingester. === Build Main Index === /!\ not nessesary for runs after the first run Run the {{{index.sh}}} script found in {{{summa-index-/}}}. This will take some hours, depending on hardware. === Build Parallel Cluster Index === /!\ not nessesary for runs after the first run Run {{{cluster.sh}}} in {{{summa-cluster-/}}}. This will finish in minutes. === Build Facet Map === /!\ not nessesary for runs after the first run Run {{{facet.sh}}} in {{{summa-facets-/}}}. This will take a minute or two. === Set up Web Server === /!\ not nessesary for runs after the first run Copy all {{{.war}}} files from the root installation directory to the {{{webapps}}} directory in an Apache Tomcat installation. === Start Tomcat, if not already done === Start the Tomcat server with at least 512 MB ram, fx from the Tomcat root directory: {{{ JAVA_OPTS=-Xmx512m bin/startup.sh }}} === Test === Point your favorite web browser (or MS IE if that is your only option) to {{{ localhost:7900/simplesumma }}} The first search will put the server under a heavy load while the facet map is loaded, but after the initial set up, the service should run smoothly. '''Note:''' Selecting a tag with non-ASCII characters does not work in simplesumma. === Trouble Shooting === Checking if anything is ingested (ie. stored in the postgres database) - run {{{psql}}} and enter {{{ SELECT count (*) from summa_io WHERE base='OpenArchive'; }}} You can query the search web service directly like this {{{ http://localhost:7900/summaws/services/SummaSearch?method=simpleSearch&arg0=0&arg1=10&arg2=hello }}} To request the contents of a record directly enter the url {{{ http://localhost:7900/summaws/services/SummaSearch?method=getRecord&arg0=oai:doaj-articles:ab394eb6b5edff982c802993b6981bcd }}} Browse the available Summa web services at {{{ http://localhost:7900/summaws/services }}} == Automated setup == /!\ Automated setup is not being maintained. Follow the instructions on Iteration7ReleaseTest instead. Verify that JDK version 1.6 and ant is installed on the machine and can be invoked from the command prompt. Execute the below commands and verify that the output resembles the output shown here. The output you get may vary depending on your hardware and the current version of the software, however, as long as the version of the software is not older than the below examples then everything should be just fine. {{{ tsh@pc214:~$ java -version java version "1.6.0_03" Java(TM) SE Runtime Environment (build 1.6.0_03-b05) Java HotSpot(TM) 64-Bit Server VM (build 1.6.0_03-b05, mixed mode) tsh@pc214:~$ javac -version javac 1.6.0_03 tsh@pc214:~$ ant -version Apache Ant version 1.7.0 compiled on August 29 2007 }}} Change directory to some new folder {{{ svn co https://merkur.statsbiblioteket.dk/svn/doms/trunk doms cd doms/test/bin ./domssetup.sh ../../../fedora_install ./oaiprovidersetup.sh ../../../fedora_install }}} {{{ cd ../../.. mkdir fedora_install/ingest mkdir fedora_install/ingest/input mkdir fedora_install/ingest/input/bmech cp -r doms/data/doms_base_collection fedora_install/ingest/input/base cp -r doms/test/data/iteration7_testcollection fedora_install/ingest/input/testcollection cp doms/gentofte_objects/data/fedora_disseminator_object/Gentofte*DigitalObjectBundle.xml fedora_install/ingest/input/bmech cd doms/ingest ant release.bin cp dist/doms-ingest-0.0.1.zip ../../fedora_install/ingest cd ../../fedora_install/ingest unzip doms-ingest-0.0.1.zip rm -f doms-ingest-0.0.1.zip mv doms-ingest-0.0.1/* . rm -r doms-ingest-0.0.1}}} Stop here, if you need to do something before ingest Example to prevent the use of the bitstorage {{{ mv input/testcollection/data input/testcollection/data2 }}} {{{ ./bin/ingest.sh base ./bin/ingest.sh bmech ./bin/ingest.sh testcollection cd ../.. cd doms/disseminator_webservice ant war cp dist/gentofte_disseminator.war ../../fedora_install/tomcat/webapps cd ../.. cd fedora_install ./bin/stop.sh ./bin/start.sh }}} This command clears all data from the bitstorage on halley. Beware, other might be using it. {{{ ssh doms@halley "rm -rf stage/* storage/*" }}}