! IMPORTANT NOTE !
You need to set up an IS meta-data repository (not mentioned in any onasic documentation) to allow IS to find out the names of the attributes.
9.2 Setting up the IS meta-information repository
In order to make the IS type descriptions available at run-time one has to setup properly the IS meta-information repository. This can be done in two ways as it is explained below. Manual setup
One way of setting up the IS meta-information repository is to run manually the RDB server application using the following command line:
rdb_server -p MyPartition -d ISRepository -S [[xml_file]...]
The -d switch defines the database name that must always be the "ISRepository" for the IS meta-information server. The -S parameter defines a list of the XML files which contain IS informations definition. Setup using the standard Online Software environment
Another possibility is to set the TDAQ_IS_REPOSITORY environment variable to the colon separated list of the XML files which contain IS informations definition and then to use the standard Online Software procedure for starting a partition.
export TDAQ_IS_REPOSITORY=[[xml_file]:...] play_daq MyPartition
Giovanna has an alternative way (this way is best for Point1 SCT)
Hi Christopher you don't need any of this. It's sufficient that the description of your SW_repository contains the xml files and all will be done for you automatically. Cheers Gio Example: <obj class="SW_Repository" id="Online"> <attr name="Name" type="string">"Online"</attr> <attr name="InstallationPath" type="string">"/afs/cern.ch/atlas/ project/tdaq/cmt/tdaq-01-09-01/installed"</attr> <attr name="ISInfoDescriptionFiles" type="string" num="19"> "share/data/DFConfiguration/schema/dc_is_info.xml" "share/data/DFConfiguration/schema/ros_is_info.xml" "share/data/ProcessManager/pmg_is_info.xml" "share/data/RCInfo/daq_app_is_info.xml" "share/data/RODBusyModule/schema/RODBusy_is.schema.xml" "share/data/ROSCore/ROSCoreInfo.schema.xml" "share/data/ROSIO/ROSIOinfo.schema.xml" "share/data/ROSInterruptScheduler/ROSInterruptSchedulerInfo.schema.xml" "share/data/ROSModules/ROSModulesInfo.schema.xml" "share/data/TTCviModule/schema/ttcvi_is.schema.xml" "share/data/dqmf/is/dqmf_is_info.xml" "share/data/emon/emon.xml" "share/data/mrs/mrs_is_server.schema.xml" "share/data/mrs/mrs_is_worker.schema.xml" "share/data/msgconf/msgconf.xml" "share/data/oh/histogram.xml" "share/data/oks2coral/oks-archive-info.xml" "share/data/onasic/onasic_app_is_info.xml" "share/data/siom/schema/siom_core_info.xml" </attr> <attr name="IGUIProperties" type="string" num="1"> "-Digui.panel=PmgGui.PmgISPanel" </attr> <attr name="InstallationPathVariableName" type="string">"TDAQ_INST_PATH"</attr> ...
Regarding the paths with respect to which the above schema files can be defined, Lester has found the following.
At SR1, the paths were specified WRT to InstallationPath?, and were successfully found. This proves that InstallationPath? is searched, though it does not exclude the possibility that TDAQ_DB_PATH is *also* searched, before or after this (at SR1 no similarly pathed files were available under TDAQ_DB_PATH, so even if TDAQ_DB_PATH were searched, nothing would be found).
At Point1 we find the same situation ... although there are (hopefully unused) copies of Info Schema files under TDAQ_DB_PATH/sct/ wherever, (which perhaps we should get rid of!) these do not have "/config/" as part of their path, and so only those included under InstallationPath? are able to be found (regardless of whether other paths are searched).
So this is good for us -- installed/config/databases/schema will be regularly updated by makePoint1Tarball, however it is a bit misleading that we also have copies of these files sitting under TDAQ_DB_DATA.
Per's Notes
1. First I am using the INTR DB for testing, so first you should check ( Ktidbexplorer ) what databases are still there, left over from before, and remove/create the appropiate (whatever name you want) DB.
Deteling unwanted folder:
oks2cool2 -c "cool://oracle@INTR:SCTTEST:atlas_onasiccool:onasic2006" -a drop -f SCTTEST2/RunParams
Creating a new folder:
oks2cool2 -c "cool://oracle@INTR:SCTTEST:atlas_onasiccool:onasic2006" -a create -f MOO
Notes regarding the TIDB2 database connection string:
tech_protocol://DBSERVER:DBNAME:username:pwd
2. Subscribe to data to tmp dir /tmp/...username.../(where you can look at the data before starting the next step):
onasic_is2oks -p $TDAQ_PARTITION -s RunParams#.* -v 6 -f SCTTEST onasic_set_conditions -p $TDAQ_PARTITION -t 0 -I ISSummaryData.*#.* -x ISSummaryData.*.[chid]
Hmm, there should be also be an -f "SCT/DAQ/Calibrations" to create the right folder structure under the SCTTEST DB, but not important for testing.
3. Upload the data to the DB:
onasic_oks2cool -c "cool://oracle@INTR:SCTTEST:atlas_onasiccool:onasic2006" -p $TDAQ_PARTITION -u username
You can get some help just typing the commands, or by sending Per? an email, however this takes longer ;-)
Chris's notes
Steps to LinkMaskMonitoring ONASIC set up.
(1) Insure that the IS Schema objects (for any IS objects that we want onasic_is2oks to work with) are installed to ${SCT_DAQ_ROOT}/installed/config/schema by the relevant make files. In our case we want SctApi/IS/SctApi.schema.xml to be installed to installed/config/databases/schema/SctApiInfoServiceObjectDefns?.schema.xml .. while for summary data we want ISSummaryData?.schema.xml to be there
(2) The names of the above schema files (with paths relative to SW_Repository's InstallationPath? attribute) need to be put in the SW_Repository's ISInfoDescriptionFiles? attribute.
(3) You may then boot the system, and test that the online's rdb_server process has uploaded these schema to the so-called ISRepostory. Check this with
rdb_dump -p $TDAQ_PARTITION -d ISRepository -a | less -S
(4) Use an SCT specific onasic_is2oks process, so that we can control the local filesystem output dir. The default dir is scanned by the systemwide onasic_oks2cool and automatically uploaded to cool, which we don't want until we are happy with everything.
(5) It seems that if the '-x' attribute to onasic_set_conditions is set wrongly, then it is largely ignored, whereas if it is set correctly, it is used. Here is what we found. Bearing in mind that at present the summary data destined for archiving in COOL go to an IS server called SCT_CondDBSummaries with name like ISNPtGainSummaryData?.168437760 thus endung up with a complete IS name of the form: SCT_CondDBSummaries.ISNPtGainSummaryData?.168437760 When onasic_set_condition is used like this:
------------------------------------------------------------------------------------------------------------------------- |ISService |Folder |IOV_Type |ChannelID |LumiAttr |Format |NumObjs|IsWldcrd|Status| ------------------------------------------------------------------------------------------------------------------------- |String |String |String |String |String |String |LongLong|Int |String| ------------------------------------------------------------------------------------------------------------------------- |navegacoes |FOO/BAR/FOLDER|__IGNORE__|__IGNORE__|__IGNORE__|__IGNORE__ | 0| 0|S | |SCT_CondDBSummaries.*#.*|__IGNORE__ |__IGNORE__|__IGNORE__|__IGNORE__|ISSummaryData.*.[chid]| 0| 1|<null>| -------------------------------------------------------------------------------------------------------------------------
then you get data saved to OKS like this:
<attr name="__OKS2COOL_TIMESTAMP__" type="string">"2008/08/01 16:52:19.076000"</attr> <attr name="__IS_TIMESTAMP__" type="string">"TimeStamp"</attr> <attr name="__VERSION_FOLDER__" type="string">"FOO/BAR/FOLDER/SCT_CondDBSummaries/ISNPtGainSummaryData/168435712"</attr> <attr name="__OKS2COOL_ID__" type="string">"168435712"</attr> <attr name="serialNumber" type="string">"20220040200333"</attr> <attr name="location" type="string">"CERN"</attr> <attr name="runNumber" type="u32">79472</attr> <attr name="scanNumber" type="u32">0</attr> <attr name="startTime" type="time">"1/8/08 14:46:10"</attr> <attr name="endTime" type="time">"1/8/08 14:47:02"</attr> <attr name="defect0Type" type="u16" num="29"> 1 32 9
whereas when you start with
---------------------------------------------------------------------------------------------------------------------------------------------- |ISService |Folder |IOV_Type |ChannelID |LumiAttr |Format |NumObjs|IsWldcrd|Status| ---------------------------------------------------------------------------------------------------------------------------------------------- |String |String |String |String |String |String |LongLong|Int |String| ---------------------------------------------------------------------------------------------------------------------------------------------- |navegacoes |FOO/BAR/FOLDER |__IGNORE__|__IGNORE__|__IGNORE__|__IGNORE__ | 0| 0|S | |SCTAPIServer#LinkMaskChangeData.*|FOO/BAR/HOTFOLDER |__IGNORE__|__IGNORE__|__IGNORE__|__IGNORE__ | 0| 1|S | |SCT_CondDBSummaries.*#.* |SCT/DAQ/Calibrations|__IGNORE__|__IGNORE__|__IGNORE__|SCT_CondDBSummaries.*.[chid]| 0| 1|<null>| ----------------------------------------------------------------------------------------------------------------------------------------------
you get data saved into OKS like this:
<obj class="SCT_CondDBSummaries.ISNPtGainSummaryData.168437760" id="SCTH8#000"> <attr name="__OKS2COOL_TIMESTAMP__" type="string">"2008/08/05 15:36:30.263000"</attr> <attr name="__IS_TIMESTAMP__" type="string">"TimeStamp"</attr> <attr name="__VERSION_FOLDER__" type="string">"SCT/DAQ/Calibrations"</attr> <attr name="__OKS2COOL_ID__" type="string">"168437760"</attr> <attr name="serialNumber" type="string">"20220040200334"</attr> <attr name="location" type="string">"CERN"</attr> <attr name="runNumber" type="u32">79926</attr> <attr name="scanNumber" type="u32">0</attr> <attr name="startTime" type="time">"5/8/08 13:35:26"</attr> <attr name="endTime" type="time">"5/8/08 13:35:56"</attr> <attr name="defect0Type" type="u16" num="3"> 13 1 13
which is more like what we want in the __VERSION_FOLDER__ tag.
Links
See also OnasicNaughtinesses