RunCat
I wrote a blog post a while ago describing the catalog validation: an automated process performing a consistency check of the catalog and reporting or deleting the inconsistent artifacts.
In the post I stated that catalog validation should be implemented regularly as part of the cleanup routines and provides precious additional information during the pre and post upgrade phases.
RunCat provides a key-frame animation to the GNOME Shell top bar. Animation speed changes depending on CPU usage. This is the recommended method for. RunCat is a funny menubar indicator app for pixel lovers. Mac Menu Bar Apps. Monday.com Gantt view. The visual tool to. Wine name Curtefranca Rosso D.O.C. Grape variety Cabernet Sauvignon, Cabernet Franc, Merlot, Nebbiolo and Barbera. Soil composition Alluvional morain soil of early origin with a structure of loam and sand sandy and very frequent presence of morain stones. 雨辰實業有限公司 Runcat Co.,Ltd. Professional firms of Bluetooth 4.0 system development and APP development Customized service for firmware + APP + electronic circuit design. The cat takes up residence in your Mac's menu bar, and he just keeps running! The cat will run at a speed that depends on the CPU usage on your Mac. You can see how much the current CPU usage is by looking at the running of the cat. How about looking at a cat while waiting for a video to be exported or a program to be built?
However some time later I noted Oracle's support Doc ID 2199938.1 stating that the startup procedure I detailed in the previous blog post is not supported in any OBI release since 12.2.1.1.0. You can imagine my reaction.. Mobile port devices driver download for windows 10.
Runcati
The question then became: How do we run the catalog validation since the known procedure is unsupported? The answer is in catalog manager and the related command line call runcat.sh
which, in the server installations (like the SampleApp v607p), can be found under $DOMAIN_HOME/bitools/bin
.
As for most of command line tools, when you don't have a clue on how it works, the best approach is to run with the -help
option which provides the list of parameters to pass.
Unfortunately none of the options in the list seems to be relevant for catalog validation, but with a close look at the recently updated Doc ID 2199938.1 I could find the parameter to pass: validate
.
The full command then looks like
In my previous blog I mentioned different types of validation. What type of validation is the default command going to implement? How can I change the behaviour? Again the -help
option provides the list of instructions.
Few bits to notice:
- -offline: the catalog validation needs to happen offline. Either with services down or on a copy of the live catalog. Running catalog validation on a online catalog is dangerous especially with 'Clean' options since could delete content in use.
- -folder: the catalog validation can be run only for a subset of the catalog
- None | Report | Clean: each validation can be skipped (None), logged (Report) or solved via removal of the inconsistent object (Clean)
- Also, '-accounts' cannot be 'None'.: some validations are a prerequisite for others to happen
- Default is 'Clean': some validations have a 'Clean' as default value, meaning that will solve the issue by removing the inconsistent object, this may be inappropriate in some cases.
As written before, the initial catalog validation should be done with all options set on Report since this will give a log file of all inconsistencies without deleting pieces of the catalog that could still be valuable. In order to do so the command to execute is:
runcat.sh
output is displayed direcly in the console, I'm redirecting it to a file called cat_validation.log
for further analysis.
If, after the initial run with all options to Report you want the catalog validation utility to 'fix' the inconsistent objects, just change the desired options to Clean. Please make sure to take a backup of the catalog before since the automatic fix is done by removing the related objects. Moreover ensure that catalog validation is working on a offline catalog. The command itself can work on top on a online catalog but is never a good idea checking a catalog that could potentially be changed while the tool is running.
Let's see few examples of how Catalog Validation spots inconsistent objects. For the purpose of this test I'll work with Oracle's Sampleapp.
Abandoned and inaccessible homes
Running the validation against the Sampleapp catalog provides some 'interesting' results: some homes are declared 'abandoned': this could be due to the related user not existing anymore in weblogic console, but that's not the case
Looking deeper in the logs we can see that the same user folders are flagged as
Logging in with the user weblogic
doesn't allow me to check the 'My Folders' in the catalog. When switching to 'Admin View' and trying to open 'My Folder' I get the following error
As written in the logs looks like the user folder has permission problems. How can we solve this? One option is to use again the runcat.sh
command with the forgetAccounts
option to remove the inconsistent homes. However this solution deletes all the content related to the user that was stored under the 'My Folders'.
In order to keep the content we need to overwrite the folder's permission with an administrator account. Unfortunately, when right-clicking on the folder, the 'Permission' option is not available.
As a workaround I found that clicking on Properties
and then on Set Ownership of this item and all subitems
allows you to grant full access to the administrator which is then able to reset the proper user the relevant access privilege.
Once the workaround is implemented the users is able to check his 'My Folder' content, however the the errors are still present in catalog validation. The solution is storing the relevant artifacts in another part of the catalog, run runcat.sh
with forgetAccounts
option and then reimport the objects if needed.
Inconsistent Objects
The main two reasons generating inconsistent objects are:
- Invalid XML: The object (analysis or dashboard) XML code is not valid. This can be caused by errors during the write to disk or problems during migrations.
- Broken Links: analysis contained in a dashboard or linked from other analysis have been renamed or deleted.
Let's see how catalog validation shows the errors.
Invalid XML
To test this case I created a simple analysis with two columns and then went to the Advanced tab and deliberately removed an >
to make the XML invalid.
When trying to applying the change I got the following error which denied me the possibility to save.
Run Catalina
Since I really wanted to ruin my analysis I went directly to the file system under $BI_HOME/bidata/service_instances/ssi/metadata/content/catalog/root/shared/$REQUEST_PATH
and changed the XML directly there.
After than I run the catalog validation with only the flag items
equal to Report
and the rest set to None
since I'm looking only at invalid XMLs.
The result as expected is:
Which tells me that my analysis notworkinganalysis
is invalid with an unterminated start tag, exactly the error I was expecting. Now I have two choices: either fixing the analysis XML manually or rerunning the catalog validation with option Clean
which will delete the analysis since it's invalid. As said before there is no automated fix.
I wanted to do a further example on this, instead of removing the >
, i removed a quotation mark '
to make the analysis invalid
After clicking to Apply OBIEE already tells me that there is something wrong in the analysis. But since it allows me to save and since I feel masochist I saved the analysis.
Runecast Registration
But.. when running the catalog validation as before I end up seeing 0 errors related to my notworkinganalysis
.
The answer to Jackie Chan question is that I got 0 errors since in this second case the XML is still valid. Removing a '
doesn't make the XML syntax invalid! In order to find and solve that error we would need to use Oracle's Baseline Validation Tool.
Broken Links
Runcation
To test the broken links case I created the following scenario:
- Analysis
SourceAnalysis
which has navigation action toTargetAnalysis
- Dashboard
TestDashboard
which contains theTargetAnalysis
object.
In order to break things I then deleted the TargetAnalysis
.
Running catalog validation with the option links
to Report
. As expected I get a line
But I don't get anything on the SourceRequest
object, for which navigation is failing.
Download microboard ind.e com.de produtos elet.itda driver. But if instead of an action link I use TargetAnalysis
to filter the results of SourceAnalysis
And then delete TargetAnalysis
, I get the expected error:
Runcati Clothes
Summarizing the broken link validation reports if missing objects are included in the main definition of other objects (as filters or as parts of dashboards) but doesn't seem to report if the missing object is only linked via an action.
Runcatching
My experiments show that catalog validation finds some errors like invalid homes, XML files and broken links which otherwise users would hit at the run-time and that won't make them happy. But there are still some errors which it doesn't log like analysis with wrong column syntax, luckily for most of the cases other tools like the Baseline Validation can spot them easily so use all you have, use as frequently as possible and if you want more details about how it works and how it can be included in the automatic checks for code promotions don't hesitate to contact us!