Skip to Content
Author's profile photo Former Member

Automate Business Objects Reporting Server Monitoring and Automated Restart on Servers Status

As recommended by SAP, we need to perform Business Object server restart at least once in a week or sometimes twice depending on the load on the servers even if we have clusters servers. It helps to clean out temporary and orphaned jobs.

We have couple of ways to restart the services:

  • Automated: We can have script to restart the computer that is hoisting Business Objects BI server on predefined scheduled time which restarts all the BI services provided you have the property “Automatically start the server when Server Intelligence start “checked

 

  • Manual: There is a way to restart the BI Services manually through Central Configuration Manager & Server Intelligence Agent

On these restart, there is always need to verify the status if BI service whether all those service get up and running to support report runs. There are scenarios when we see couple of services become unresponsive even on Automated Computer restart. Business Objects Administrator has to log in and forcefully kill the process and make it running back. So we found following as problem statement:

Problem statement

  • Planned scheduled restart of Business Objects servers didn’t help much on to keep them healthy twice a week through windows scheduler
  • Found issues as the service doesn’t come up by the required time and keeps hanging. Becomes non responsive which causes all Business Objects application users stopping to run reports
  • Does not allow to run and schedule reports and triggers business escalations

Solution:

  • An automation process to check the all Business Object service status after the immediate weekly restart of servers
  • Monitors all the services to come up and if any of those service does not come up after certain time, it will forcefully terminate and restart the service

Perform in a loop to take care of services On any failures, it restarts and send email notification to preferred list with all service failure details

How to Implement:

We have to get the server status and to do so, with the help of enterprise session ( what we can easily retrieve through  Administrator credential)

The following query helps you to get the IInfoStore & IInfoObjects for the Business Objects servers

“SELECT * FROM CI_SYSTEMOBJECTS WHERE SI_KIND=’SERVER’ AND SI_AUTOBOOT = 1 ORDER BY SI_NAME”;

These IInfoStore & IInfoObjects  helps to get IServer object . The iserver Object eventually gives you the server status , server name etc:

server.getStatusInfo();     server.getName();

We have following server status available per BI SDK API

STOPPED = 0;

STARTING = 1;

INITIALIZING = 2;

RUNNING = 3;

STOPPING = 4;

FAILED = 6;

RUNNING_WITH_ERRORS = 6;

So, either we can go by server status or if there is any need for particular service only, we can go by server name also. If we are going by server status, we can check if there service is not running healthy by its status and on need to we can go for stop.  Let us separate the restart process and putting those into steps:

Step 1) Stop Service

Step 2) Put a pause (server sleep) in between restart

Step 3) Restart Service

 

Step 1) Stop Service:

The server object we already retrieve form IInfoObjects . we have to set the status what we want to put it back to it and make it enabled

server.setExpectedRunState(ExpectedRunState.STOPNOW);

server.setDisabled(false);

server.save();

We have to remember to save the object to proceed further

Step 2) Put a pause (server sleep) in between restart:

We have to have normal java code to delay few seconds so that the process kills the server and get settle before to start the service

Step 3) Restart Service

The server object we already retrieve form IInfoObjects . We have to set the status what we want to put it back to it and make it enabled

server.setExpectedRunState(ExpectedRunState.RESTART);  /API does not have only start option, so we need to go for RESTART

server.setDisabled(false);

server.save();   / saving the object

We have only provided the skeleton to implement the logic. Please let me know if  you need details for implementations

 

Assigned Tags

      6 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Former Member
      Former Member

      Hello Abhijit,

      many thanks for the very interesting article. We are searching for such a solution and would be glad to get some details of the implementation.

      Thanks and
      Kind regards,
      Tobias

      Author's profile photo Kavin Raj Rajkumar
      Kavin Raj Rajkumar

      Thanks  Abhijit.

       

      I would like to implement the same in our servers. Can you please provide some more insights. Where should we make the changes in the code, etc,

      Author's profile photo Former Member
      Former Member

      Hello Abhijit,

       

      We are looking same solution for BOBJ server restart , Can you please provide details how to implement it .We are looking this solution for BOBJ 4.2 SP3.

      Thanks

      Guru

       

      Author's profile photo Former Member
      Former Member

      Hi

      Is there any way to restart only job servers whenever they become worse.

       

      Thanks,

      Brahma

      Author's profile photo Former Member
      Former Member
      Blog Post Author

       

      yes, we do have, you need to check the server status through cron job and if there status is notdesirable, you can force restart. There is API for it.

      Author's profile photo Rajesh Chelluboina
      Rajesh Chelluboina

      Dear Abhijit,

      Could you please share me the Code, I am really required this implementation in my environment SAP BI4.2 sp4

      I need the code and step by step process to execute the same

      Main Expectation : Code should check each BOE services and if any service is in Stopped or Hung status then it should restart and send an email notification on fixing the same

      Personal email ID: rahmat.azam@gmail.com