May be is more easy to create a simple Extended Object to show this information and create the Report from that data.
The EO is just something like: echo ??TARGET.SAP.SID?? ...
Fantastic idea Angel .
I've done that !
Is the alternative method impossible? I am aware of how to do this via extended objects, however, if one were to run a compliance job and persist values to property class instances that were referenced in server properties, how would one run a report on those values in BDSSA?
afaik you can't get the custom property class property values to show in a report.
Not even with some Bill Robinson sorcery? How about with Report Studio? Yogesh Jadhav any thoughts? I am essentially applying what Steffen Nowka taught during one of his labs BMC Engage 2016. This is just allowing reports to be executed from persisting the values into property instances that then get referenced in Server Properties. I am able to use these to create Server Smart Groups & other console related activities, just not able to run reports.
I am happy to say that I am now able to show property class values in a report. I accomplished this by:
- Using an extended object that prints the property values for the target
- Grepping the properties that have instances (Class://)
- Loop through those instance locations
- Output the instance values
I leverage the Windows INI grammar file which outputs the data quite nicely in sections. I then added my extended object to our inventory snapshot job, and I was able to run a report with the data I captured from the extended object.
Are you using blcli to do this ? you could have some performance issues on your appserver unless you are using 8.9 w/ hf1 (fix for the blcli server)
Thanks for the quick reply Bill! I am definitely using blcli to achieve this. I am currently on BSA 8.7.00.280. Here are the blcli commands I am using:
- blcli_execute Server printAllProperties
- blcli_execute PropertyInstance listAllPropertyValues
What kind of performance impact can I expect using this? Should I decrease the parallelism of my snapshot job potentially? I don't know of any other method for capturing this type of data other than blcli.
If you run the snapshot w/ a high degree of parallelism you can affect your appservers if they don’t have enough memory to handle all the concurrent blcli jvm start ups.
Even though you are using the performance commands you are still creating a single jvm per target.
Thanks again for the quick reply Bill ! I know this is a loaded question, but relatively speaking, how much memory is enough memory based on a parallelism of 30 or so? I know there are dozens of variables to consider for this.
- 6 appservers (2 config+nsh & 4 job+nsh)
- Each appserver has 16 GB of memory
- Each config+nsh & job+nsh JVM has a max heap size of 8G
So far I haven't noticed a decrease in performance, but that doesn't mean I will in the near future. Any thoughts or suggestions? Is there an alternative method to capturing this data that you know of?
Max heap by default for the embedded jvm is 256m. this is separate from the appserver’s heap.
Are you suggesting I increase the embedded jvm heap from 256m to something greater? If so, how much do I increase it to, based on the given variables?
No – it’s a max of 256m x concurrent runs. that means you need to have as much ‘free’ memory on the appserver to handle that.
Ahh I see now. Each instance of the blcli will require 256m of memory, so if we run against 30 servers in parallel it will consume 7.5 GB (30 * 256M = 7680M / 1024 = 7.5 GB) of memory outside of the job+nsh JVM (thus potentially causing memory constraint issues) Since we only have 16 GB of memory for the app server and our job+nsh is already using up to 8 GB of it, and we are using 7.5 GB of it for this 1 job, our appserver performance may suffer. Would increasing our memory from 16 GB to 24 or 32 help this? Or does this affect CPU performance as well?