![]() |
|
|
Manuals: Objy AMS | FDID alloc | Sel Apps | Glossary | Proceedings | Talks | Press |
|
BdbIntervalUtil
DESCRIPTION: This Utility provides a broad spectrum of various browsing and management commands which relate to the contents of Conditions database. IMPORTANT: The transaction management policy for those commands which are meant to modify the contents of the Conditions/DB is as follows: 1. An update-mode transaction is unconditionally aborted if any kind of problems is encountered during the command's execution or even at the preparation stage (like command parsing stage). 2. For the composite commands (the ones which involve starting/commiting multiple transactions to complete specified mission) the previously stated rule (1) applies only to a transaction where a problem occured. Should this occure the command's execution is immediatly aborted as well. This actually means that the composite commands may be "semi-completed". By default (unless it's stated explicitly) commands are executed withing a single transaction. Multiple transaction mode is typically used when multiple interval containers are involved into an operation, or if this is required by the performance consideration. See the description of each command for an indication if this command is the composite one. GENERAL SYNTAX: BdbIntervalUtil { help |[par1] [par2] ... } COMMANDS (BY GROUP) 1:GENERAL INFORMATION... help - this page detectors - print names of sub-detectors groups in the Conditions DB. This command (in its current implementation) will make and parse a dump of the existing "con_xxx_Link" databases using the "oodumpcatalog" utility. Make sure that the mentioned above utility is in your current path. Note also, that for some federations with many databases this may take a while. Just be patient. containers - names of interval containers in a detector 2:GENEALOGY BROWSING... genealogy - print the information about persistent intervals for specified condition. The output is available in various formats. The validity range can also be optionally narrowed from either side of the timeline. toplist - print a timeline of topmost versions of intervals. NOTE: The same set of options is available as in case of the "genealogy" command. baselinelist - print a timeline of baseline versions of intervals. NOTE: The same set of options is available as in case of the "genealogy" command. revisionlist - print a timeline of intervals explicitly or implicitly belonging to a specified revision. NOTE: The same set of options is available as in case of the "genealogy" command. 3:CONTAINERS MANAGEMENT... delete - delete specified interval container (if authorized) and all the objects pointed through intervals of the container if required by optional argument. By default this operation will delete both the container link and the interval container. This behavior can be overriden by setting an optional command argument. In this case the container link will not be deleted. deletemany - delete many interval containers using simple regular expression and all the objects pointed through intervals of each found container if required by optional argument. The container link (if any) will not be deleted if an optional argument is specified. copy - make a copy of specified interval container and (if required and if the input and output containers belong to different detectors) of conditions objects. checkpoint - create a checkpoint of an interval container. The checkpoint is a deep copy (without making a copy of conditions objects) of a particular interval container. This copy can be later used to replace the modified or damaged original container. merge - merge the contents of the source interval container into the destination one. The LEFT/RIGHT flag specifies which parts of containers to merge. A point where the containers are split is defined by another parameter - merge time. verifymerge - a trial path for the real "merge" command. This will evaluate if merging is available for specified set of parameters, including the merging point itself. The positive result is indicated by the SUCCESS status, returned to the shell and by the absence of any messages on the standard output during the command execution. merge2 - the same as "merge" but the begin and end times are specified limited the procedure by the area. Also a selection of which area (INNER or OUTER) should be taken for merging can be specified. The default is INNER. Neither of times can be either "infinity". verifymerge2 - the same as "verifymerge" with the similar corrections for "merge2". split - split the timeline of intervals at specified point in an interval container. compare - compare two interval containers. Various comparision strutegies can be applied. See parameters of the command for more detales. purge - purge the vertical interval versions for specified container. The begin or/and end validity times could be specified to limit the scope of the operation. It's also possible to specify if the revised intervals are to be included into the purging. The specified number of top slices to keep may also be set. verify - verify if persistent intervals of specified interval container have consistent internal structure. By default all intervals of the containers are verified. This can be overriden by explicitly specifying the begin and end validity times. profile - measure the interval container profile. The results are printed onto the Standard Output Stream. nanocorrection - check if validity time limits of persistent intervals in a specified interval container have non-zero nanosecond fields. Then fix found intervals. The command may also be run in a "verify" only mode, if an optional switch is specified. The range of validity time affected by the command can also be narrowsed from default [-oo, +oo) to something else. If the "verbose" mode is chosen then a list of OID-s of found/fixed intervals will also be reported. 4:THE SYMBOLIC LINKS INFORMATION AND MANAGEMENT... createlink - create an interval container link. This would actually create a special empty interval container with specified attributes (detector and container name) which wil point onto another "real" interval container. This operation requires a user to be either a system manager of the whole Conditions domain or just a group manager of a detector group where the container link is going to be created. removelink - remove specified interval container link. By default this operation does not affect a "real" container the link is pointing at. This operation requires the same privileges from a user as "createlink" command. If an optional keyword is set for this command then the operation would propagate along the link an the target interval container would also be located and deleted. removelinkmany - remove many interval container links using simple regular expression. This command exhibits the same behavior as a regular "removelink" for every link, whose names matche specified expression. An optional "-verbose" parameter allows to print the links as they are removed. showlink - print the information about specified interval container link, including origin, detector and container names of the "real" container to be pointed outh through the link. locklink - enforces WRITE lock for an interval container referenced via specified container link, This is non-Objectivity lock but a way to prevent applications to modify a contents of an interval container. unlocklink - removes WRITE lock for an interval container referenced via specified container link, 5:OPERATIONS INVOLVING CONDITIONS OBJECTS... classes - print names of all the persistent classes of the Conditions object to be referenced through a particular interval container or through all the conatiners in a detector. In addition the number of class uses is printed. composites - print names of all the composite persistent classes. validate - check the integrity of the Conditions DB following object links for specified interval container or whole detector. 6:REVISIONS BROWSING AND MANAGEMENT... registry - numbers of registered revisions for a class. revision - detaled information about a revision. dependencylist - dependancy information for a revision. All direct and indirect base revisions are printed. dependencytree - dependancy tree of all existing revisions. produce - produce a configuration file for Conditions DB applications. This command allows an option to choose the version of the configuration file to produce. By default the V2 configuration is generated. Another option ("-topmost_if_unassigned") if specified allows to generate the TOPMOST definitions for those conditions which have unassigned intervals at the top layer. This will override the default requiering that REVISION definitions with the most recent revision ID were generated. revise2d - locate a slice of unassigned intervals in a 2D space of VALIDITY and VERSION times and create a new revision with these intervals. The vertical (VERSION time) ambiguity in selecting the slice is resolved with a special STRATEGY parameter. revise2d_update - provides the same basic functionality as "revise2d" but in the end it updates existing revision rather than creating a new one. reviseoids - take a list of interval OIDs (Object IDentifiers), verify this list, then create a new revision. reviseoids_update - provides the same basic functionality as "reviseoids" but in the end it updates existing revision rather than creating a new one. revisetop - browse through existing topmost intervals of a specified container and create a new revision made of these intervals. revisetop_update - provides the same basic functionality as "revisetop" but in the end it updates existing revision rather than creating a new one. revisetopmany - This command behaves much like "revisetop" but it's able to process multiple interval containers. There are two complementary ways to specify containers to be processed: - via an explicit list of detectors/ontainers to be included into the operation; - or by specifying those detectors/containers which have to be excluded from the operation. The following containers are always excluded from the processing, no matter what type of selection above is choosen: - any "old" style non-linked interval containers; - any non locally created interval containers (those ones having the origin which is different from the local origin of a federation where the procedure is being run. Also the new revisions are not created at containers which do not have un-assigned (not belonging to any particular revision) intervals on the top. On its input the command requires to specify the location of the most recent configuration file (REVISION PATH) in order to calculate the base revision ID-s for new revisions. On its output the command produces an updated configuration file at the specified location. IMPORTANT: This is multi-transaction command. Each container (even those ones where new revisions are not created) is processed within its own transaction. See specific notes on this type of transaction management at the very beginning of this help list. NOTES: Since this type of operation may bring a lot of persistent objects into the process cache (managed by Objectivity's client code) then it would be wise to increase the default maximum for the cache size using the following method: setenv OO_CACHE_MAX 4096 Do not forget to unset this environment variable when the operation is finished. Otherwise this may affect other applications. revisetopmany_update - provides the same basic functionality as "revisetopmany" but in the end it updates existing revision rather than creating a new one. IMPORTANT: This is also a multi-transaction command. See the notes above. createrevision - create an empty revision. The command is much like "revisetop" above, but it does not put any intervals in the new revision. deleterevision - delete specified revision from the container. This will disconnect all the explicitly connected (to this revision) intervals, thus making them "unassigned" ones. Remember that the BASELINE revision can never be deleted in this way. verify_config - verify if specified configuration file matches the contents of the database. The differences (if they seen) will be reported to the Standard Output. This operation can be optionally narrowed either to a particular detector (all conditions inside this detector) or to a particular condition. NOTE: The special detectors "tmp" and "usr" are excluded from the consideration unless they are explicitly requested in the command line. NOTE: The special containers (those ones starting from the '_' symbol are excluded from the consideration unless they are explicitly requested in the command line. The validity range can also be optionally narrowed from either side of the timeline. This will only restrict the validity area where the unassigned intervals are searched. 7:THE HISTORY BROWSING AND MANAGEMENT... createhistory - create the history structures in an interval container. removehistory - remove the history structures in an interval container. comment - record a comment string in a container history. history - extract and print records from a container history. 8:LOW-LEVEL OPERATIONS... fetchnstore - fetch a conditions object for a specified time and (optionally) revision and then store it back with a different validity time. removeinterval - remove specified (by time) interval from an interval container. Only topmost intervals (including baseline ones without version above) are allowed for removal. 9:OTHER COMMANDS... translate_time - Perform time translation for specified value. The result is printed onto the standard output. The command is able to perform bi-direction translation of time specified either in a form of the number of seconds or as a formatted string (to be understood by a constructor of BdbTime class). The corresponding command syntax and expected list of parameters depends on a direction of the translation. This command does not do any transaction management. SYNTAX OF EACH COMMAND: help detectors containers containers [-all] [-long] [{ ALL | NEWLINK | (NEWINDEX [ ]) | OLDINDEX }] registry revision dependencylist [ ] dependencytree [-long] genealogy [-format ] [-begin_validity