cancel
Showing results for 
Search instead for 
Did you mean: 

MII Scheduler Execution Target

0 Kudos

Hello,

 

we have cpu-intensive scheduled transactions that we want to separate from the load of end users on our production cluster: 

 

MII Production system PRD

Server 1 - DB and 2 NW Java server nodes

Server 2 - 3 NW Java server nodes

Server 3 - 3 NW Java server nodes

By using SAP Web Dispatcher, we can direct users to servers 2 and 3, sparing server 1 to DB and background processing.  But on MII scheduler we can't set the execution target to server 1.  On ABAP jobs we have an execution target, where we can define an aplication server or group where it'll run.  How can we accomplish the same on MII Scheduler?  We're using MII 12.2.5 Build(66).

 

Thank you,

 

Marcos

Accepted Solutions (0)

Answers (1)

Answers (1)

0 Kudos

For those in need to balance the load on a MII cluster: I opened an OSS ticket and was informed that, 'as of now, MII (Scheduler) load balancing cannot be done'.

Follow this message if you need this feature.

Marcos

agentry_src
Active Contributor
0 Kudos

Does anyone know if this is changed in newer MII releases?

Regards, Mike

SAP P&I Technology RIG

0 Kudos

This shouldn't have changed as it has always been based on the standard NetWeaver load balancing of "Round Robin" and this is what MII uses.  Behind the scenes with the scheduler there is a JMS Topics which is used to trigger message driven beans and the JMS thread should automatically push to different server nodes based on the round-robin algorithm.  Of course intermediary threads and event will also cause the algorithm to hop to different nodes so it is possible that a scheduled job can run on the same application server node consecutively.

I explain the operation of the MII scheduler and asynchronous transactions in detail in this document here: and starting on page #24.

Hope this helps,

Sam

agentry_src
Active Contributor
0 Kudos

Thanks Sam! 

0 Kudos

Salvatore,

thank you for your explanation.  I read your document on performance and found that we're trying a 'big data' variation of scenario 5 & 6.  In general terms, the problem that we have is about scaling the background processing while doing online processing concurrently on the same server.  Since we cannot control which transaction will run on each instance, our approach to solve this was to split the productive system in many systems, each one responsible for part of the load:

System 1: user processing - does not have scheduled transactions

System 2: batch processing part 1 - scheduled transactions for sites A and B

System 3: batch processing part 2 - scheduled transactions for site C (part 1)

System 4: batch processing part 3 - scheduled transactions for site C (part 2)

System 5: batch processing part 4 - scheduled transactions for site D

This architecture has many obvious support drawbacks, but it is the only way we found to separate user and batch loads on MII.  On ABAP systems we have job target control.

I wonder what other users are doing to separate the load, or maybe they don't have that much processing on one server, like in your scenario.  Here at Petrobras we're used to deal with massive amounts of data, say 5K tags por request times the varying granularity.

Please advice.

Regards,

Marcos

former_member185280
Active Contributor
0 Kudos

At this point I always recommend separate instances for end users vs job/idoc processing etc. With virtualization this has become much easier. Its often not an issue with the hardware but that it seems you can only really tune Netweaver to be good at one or the other, not both at the same time. FWIW I have seen the same kinds of work distribution issues with PI systems and I believe SAP recommends the approach for Fiori implementations. I am not in the middle of it so I can't speak with any authority but I know SAP is adding some capability in the underlying Netweaver level to have some control over what nodes things run on etc. I also see some frustration with the way Netweaver wants to distribute work across nodes. For example instead of running 4 nodes at 20% each it wants to run one at 60%, one at 20% and idle the rest. Because it has no way to know the next job is a big memory hog it may stick the job on the 60% node and end up killing it. My comments are anecdotal and there may be a way to tune this behavior that I haven't discovered yet but in my experience separate instances does seem to be the way to go.

0 Kudos

Christian,

our goal is to have separate instances.  As we can't control scheduler execution target on MII, to assure online / background processing separation we had to install different MII systems.

If someone knows how to isolate MII instances just to do scheduler processing, please advice.  We are aware of SAP Webdispatcher, we use it to separate online traffic.  Maybe it can be used to balance the MII scheduler too?

Thanks in advance.

Marcos

0 Kudos

Marcos,

I have been looking around the web and it appears that the scheduler engine, which is based on JMS Topics triggering message driven beans, does not allow you to specify a "Target Node" to run the beans on in a clustered environment.  This does not mean that it is not possible but I am not sure how to achieve this in a supported manner.  I did find that you can do this with NW JMS Virtual Providers so you could in theory delete the MII one and create a virtual provider with the same name configured to do this.  However, this is not supported to do and I have not tested it's operation either so it's pretty risky.  Anyway, perhaps this isn't the right forum to ask this as this seems to be a core NetWeaver Java question so the NW Java forum may be better and you can of course reference this thread in your post there to tie the discussions together:

Hope this helps,

Sam