what type of job is this ? if it's a nsh job, can you use a 'type 2' nsh script and run it w/o any targets? that will run the job from whatever appserver picks up the job. does the job actually need to run 'against' a target?
if you want to use a VIP then you need something to provide that. could be a clustering software, or load balancer. you said you don't have a load balancer, can you get one ?
for the job routing rules - if you want your job to run on either appserver, why do you have routing rules setup ?
As Bill said, if it's a NSH Script job that must run against an application server (not sure why?) you should be able to do this by running it as a Type 2 NSH Script Job and to check the box allowing to run without targets.
Otherwise, you can have an agent that points to the a VIP (which you have to manage externally to BSA, BSA is not a load balancer), which represents one of the application server. The VIP would have to have an automatic failover on the port 4750 of the app server agent of each server, and have both app servers in its pool.
Simply add a server in the console pointing to the IP or hostname of that VIP, and set your job to executes against it. Just make sure that you exclude it from any daily maintenance jobs (ACL Push, Update Server Properties, etc...) that you would have because that agent should only be used to execute jobs, not to access a specific app server.
- You have 2 app servers: appserver1, and appserver2
- You create a VIP that points to one or the other, let's name the VIP myappserver
- You add myappserver in the console as a target, and update its properties. You don't need to push any ACL to it because it's already set. Just make sure the target object has the same permissions as the app server targets.
- Set your job target to myappserver
Thanks for your return.
My job could be of any type (Most of them are NSH) but i want my job to use Job Server of a specific app server defined in routing rules. These job have targets like windows or Unix available in console.
Currently when i need to connect to BL app server through console, i have to connect to one of the app server directly. So is there any way i can connect to VIP and it will automatic select the app server based on round robin algorithm.
Can you share some documents which can help me to setup solution you provided here. It will be a great help for me.
I think you are confusing a number of things here:
"Other point, on nsh01 (NSH box on linux), NSH use a profile to connect to agent through BSA, the defaultProfile is connected to appser1 and the backupProfile to appser2. If appser1 is down we have to manually change the profile to backupProfile. But if we have a IP failover system, we do not have to change."
-> this is why you put a load balancer in place for GUI -> appserver connections. there's a section in the docs here: https://docs.bmc.com/docs/display/public/bsa86/Configuring+load+balancing+in+BMC+Server+Automation
- "Multiple Job in BladeLogic has a single target (admin job for example) like appser1 or appser2. But if the server is down, the job will fail, even if the other Application server is safe."
-> I would evaluate if these jobs need a target at all. if they are mostly NSH jobs that have the target of one appserver or another, then it might make sense to have them be a 'type 2' nsh job and not have a target. what 'admin jobs' that are not NSH jobs are you running w/ the appserver as a target ?
- "Can someone share me some document to configure VIP in my system so that my job which are rule to run on one app server will automatic start executing on another available app server.."
-> this has nothing to do w/ using a VIP. if you have a job targeted at one appserver and is it offline, then the online appserver will start running the job, but the job will fail because the target is offline. if you setup a job routing rule so that only one appserver will run a certain job and that appserver is offline then the job will fail because there is no available appserver to run the job. running the job has nothing to do w/ being the target of a job. i would ask why you need routing rules at all in this case ? either don't use them or put multiple appservers in the routing rule. for example - if you have 6 JOB instances you could create a rule such that MyJob1 will run on JOB1, JOB2 or JOB3 - whichever is online and happens to get the job, but never on JOB4,5 or 6.
Hi Ashish, there is no doc for this, what I wrote is as good as you'll get besides what it already in the online doc of BSA. If you mean the doc to create a VIP this is beyond my knowledge and would need to be done externally on a network device anyway, not in BSA. That said, as Bil suggested, I think you are either misusing the application concepts or don't understand all of them, as we can't understand exactly what you mean and why you need it. Maybe if you explain your use case and explain why your current solution doesn't work, it will help.
Regarding the last part, that's why I suggested that a 3rd target pointing to a vip with failover, which is in turn pointing to either one of the app servers, would do the tick. The job target wouldn't change, so unless the app server goes down while a job is running against it, it will automatically run against the next one as soon as the vip fails over to it. The question though, is why do you need any job to run against an appserver agent to begin with?
Yeah – the last part i’m confused about. if he needs to target the online appserver then he could use the vip. If he needs whatever appserver is online to pickup the job and run it, then either no routing rules, or routing rules w/ multiple acceptable appservers in it.