For example: I've setup an NSH script job which executes an NSH script gather's OS disk free space information. I want to set the corresponding server property value with the results. However, the script runs on the agent. How do get the correct server object name to update from within the script?
I've got the script working, how do I update an agent's server property from within the NSH script while it's running on the agent's OS?
what type of script are you using ? 'type 1' (runscript), 'type 2' (pass targets as args), 'type 3' (non-nsh scripts), 'type 4' (perl) ?
Bill - I've got it working now, thanks. Should I be using NSH performance commands while using (Type 1 Runscript) scripts? Does using NSH performance commands lighten the load on the application servers in the case of Type 1 scripts?
Should I be using NSH performance commands while using (Type 1 Runscript) scripts?
yes - that will improve the runtime of the script since multiple blcli calls in the same instance of the script will not result in spawning off a new jvm process. assuming you are using it right - like:
blcli_execute namespace command args
result=`blcli_execute namespace command args`
Does using NSH performance commands lighten the load on the application servers in the case of Type 1 scripts?
using the performance commands doesn't lighten the load on the appserver. if you use the normal blcli (or performance commands incorrectly as noted above) what happens is that every blcli call results in a jvm start, authentication, command execution, result, stop jvm. w/ a series of calls that's very slow. the performance commands do the start and auth once. if you have only a single blcli call in the script you probably won't see much of a difference. but w/ 10, 20, 30 calls you'll see the difference in the runtime of the script.
as far as load on the appserver - if this is 8.9 where you have the 'blcli server' enabled, that is what reduces the load on the appserver w/ nsh+blcli because instead of spawning off a full jvm for each instance of the script (job target w/ a type 1) we spawn a much smaller jvm and the appserver processes the command requests. prior to 8.9 or if the blcli server is disabled, then you can easily hoze the appserver w/ a 'type 1' script w/ a sufficient number of targets/parallelism or w/ several nsh jobs (eg, type 2 scripts) running concurrently because the concurrent spin up of all the 'full' blcli/performance jvms is expensive and uses up resources on the appserver os.
I use the 'blcli_execute namespace command args' syntax. But you say it doesn't really make a difference if you are making a single blcli call in a script? Even with Type 1, and with heavy parallelism?
On another note:
SetJvmOption doesn't seem to make a difference with suppressing garbage output, will this be fixed in a later release? And is there a workaround that won't affect performance?
what version of bsa are you using ?
Is there a way in the blcli_execute server namespace to add servers to a Static Server Group in bulk? I get the whole use server object properties thing (and I'm using that to build Smart Groups), but there are many occasions where I'll have a list of servers in a CSV that I want to import without opening the UI.
Into a Static Server Group.
When I use NSH performance commands from my Windows 10 Desktop I get this error all the time and it messes with my output. How do I stop this from happening?
Authentication succeeded: acquired session credential
log4j:ERROR setFile(null,true) call failed.
java.io.FileNotFoundException: blmigration.log (The handle is invalid)
at java.io.FileOutputStream.open0(Native Method)
there's no bulk add to static groups.
for the silent mode of the blcli w/ the blcli server enabled: KA 000135910