cancel
Showing results for 
Search instead for 
Did you mean: 

Background jobs only running on central instance

ThomasKjelsrud
Participant
0 Kudos

Hi all,

we have a problem with our background jobs. On our R/3 4.7x200 production system, we have a central instance and three app servers. All our background processing is running on the central instance, and a long queue is building up with jobs that have the status released, and the delay is continuosly increasing. We have plenty of available background processing capability on the three application servers, but it is not being used. The jobs are not scheduled with the central instance as the target server.

Can anyone explain what we can do to ensure that the load balancing is functioning, so that the app servers are used for some of the background processing?

Thanks!

Regards,

Thomas

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

I assume that the jobs don't have a target server set to the central instance? What about operation modes, does the active operation mode have background processess assigned to the application servers?

In transaction sm61, run the health check for all servers.

ThomasKjelsrud
Participant
0 Kudos

Todd,

The jobs do not have the central instance as target server, nor do they have any of the application servers as target server.

In RZ04, how can I tell if the active operation mode have background processed assigned to the application servers?

When I execute the health check, I get a result like this on all three appservers:

********************************************************************************

  • *

  • Analysis Tool - Background Processing *

  • *

********************************************************************************

  • Test: Test environment for external program execution *

********************************************************************************

  • *

  • ==> User SAPCPIC not defined in this client 066 *

  • External programs can not be executed in this client *

  • *

********************************************************************************

  • Test: Check profile parameters *

********************************************************************************

  • Server = sapapp3_P01_00 , Date = 27.02.2007 , Time = 16:41:20 *

********************************************************************************

  • *

  • rdisp/btctime = 60 *

  • rdisp/wp_no_btc = 5 *

  • *

  • ==> Server is configured correctly for background processing *

********************************************************************************

Thomas

Former Member
0 Kudos

Thomas,

In transaction RZ04, double click on an operation mode. (My system has several, with some showing the time they are active). If you double click on an operation mode it takes you to a screen displaying the servers and they're assinged operation modes. For each operation mode there is a column for BP & BPA processess. For each app server make sure their is a value for BP and a lesser value for BPA.

That raises another question...are you jobs all class A? If not try submitting a class A job and target your app server...does that job run?

ThomasKjelsrud
Participant
0 Kudos

Todd,

The operation modes looks like this. So there are at least 5 BP and 0 BPA. Only a few of the background jobs are class A, so this should not be the problem.

Productive instances and their WP distribution

Host Name Server Name Instance Profile

OP Mode Dia BP BPA Spo Upd Up2 Enq Sum

sapapp1 sapapp1_P01_00 P01_D00_SAPAPP1

Normal 15 5 - 1 - - - 21

sapapp2 sapapp2_P01_00 P01_D00_SAPAPP2

Normal 15 5 - 1 - - - 21

sapapp3 sapapp3_P01_00 P01_D00_SAPAPP3

Normal 15 5 - 1 - - - 21

sapr3p sapr3p_P01_00 P01_DVEBMGS00_SAPR3P

Normal 16 5 - 1 15 6 1 44

Thomas

Former Member
0 Kudos

Hi Thomas,

You need to define an application server you want the job to run as the Exec.Target (SM36).

Though it's still not going to work (always) if you have load balancing defined (SMLG). If so, then the only option you have is to remove BTC processes from your central instance and define them on the servers you want to use for background processing.

Thanks,

Mike

ThomasKjelsrud
Participant
0 Kudos

Hi Mike,

I thought the idea of not defining the application server when creating the background job, was that the background scheduler job would determine the application server with the smallest workload (load balancing). What you're saying is that I should define an appserver (target server) for each background job?

Thanks,

Thomas

Former Member
0 Kudos

Hi Thomas,

If you are using Load Balancer then you don't need to define Exec.Target. Load balancer will work as you described picking up the server with the smallest load. What i was trying to say was that even with the hard-coded Exec.Target, Load Balancer may change the executing server while invoking the job.

Regards,

Mike

sascha_tubbesing
Employee
Employee
0 Kudos

Hi,

I just read the discussion here and thought some input on the general workings on ABAP background processing maybe of help:

1) SMLG has <b>nothing</b> to do with load balancing for background jobs.

2) If a background workprocess is running on an SAP instance automatically the time based job scheduler is running on this instance and distributes jobs to workprocesses of his own instance. The scheduler is running every rdisp/btctime seconds on each instance with BKG-WPs. That how load balancing is done.

3) If you specify a target server for a job, the job will for sure run on this specific server and nowwhere else. If the target server has no BKG-wps configured, that target server should not be selectable in SM36.

4) Problems in the Job-scheduling can occur, if the operation modes in RZ04 are not set up correctly, or the timetable is not set up correctly. In some cases deleting and redefining the op modes helps.

5) If one instance has a lot more B-wps than the other, it may occur, that all B-wps are executed on this one server althoug the jobs have no target server specified. This is because the job scheduler of the instance 1 always comes slightly before that of instance 2. A solution would be to set slightly different rdisp/btctime for the two instances.

Regards,

Sascha

p.s.: all this is explained in detail in SAP Education class ADM100

Message was edited by:

Sascha Tubbesing

Answers (3)

Answers (3)

Former Member
0 Kudos

Thomas,

I couldn't help but notice that you are/were having the exact same problem that we were experiencing in our 4.7x200 system. What I didn't notice was any reply that mentioned Background Server Groups. In transaction SM61, there is a button that is titled Job-Servergruppen. If you click on that button, you will notice a background group called SAP_DEFAULT_BTC. When you expand the folder listing, you should see all of the servers that have background work processes assigned to them. Sometimes you don't, especially rigth after the installation. Application servers usually have to be added manually through the Assignment+ button. With this assignment, you can control which servers are/aren't participating in the execution of background jobs.

I'm sure you know all of this by now, but I feel better having typed it!

Thanks,

Phil Luna

ThomasKjelsrud
Participant
0 Kudos

We found not specific course of action to fix this, but we restarted the application server and now things look normal.

Thomas

Former Member
0 Kudos

Check transaction sm61, specifically make sure the Job Starter & Time-Controlled scheduler is activated for each application server. Also make sure that rdisp/btctime is not set to 0 for the application servers.

ThomasKjelsrud
Participant
0 Kudos

Hi Todd,

In SM61, the Job Starter and Time-Controlled scheduler are active on all application servers. In addition, the rdisp/btctime is 60.

Any other ideas?

Regards,

Thomas