Okay, I think I have this.  I'm never fond of things that I can't control directly, and in this scenario the one thing I cannot control is where the monitor job goes.  But I can at least indirectly affect its pool, since I know it's the first pool defined.  I leave that in *BASE where I presumably always have enough activity so that it doesn't get otherwise limited.  However, everything else needs to go into the shared pool, and that means changing the routing entries.

It is a lot easier to just change the first pool to a shared pool, but that has the negative affect of MIMIX startup jobs getting clogged, especially as I start to reduce the resources available to that pool.  And I have to apply this same calculus to any subsystem where I want to give it its own pool.  So basically if I want to limit resources, I'll need to change all the routing entries to pool 2.  Just to be absolutely sure: the monitor job never gets moved out of the first pool, correct?

Thanks, Jim.  This is next level stuff.  I'm getting a lot of opinions from various people, but nobody has been able to explain it other than "this is how we do it", which doesn't do it for me.


On 12/22/2018 1:10 PM, Jim Oberholtzer wrote:
As a job starts it will ALWAYS use subsystem pool number 1 to start. If subsystem pools 1 is busy or otherwise loaded up, the new job will have to wait until a timeslice opens up and it can get some CPU.

Yes:
Subsystem pool 1 is *BASE
Subsystem pool 2 is (in your case) *SHRPOOL6

Clearly shared pool 6 needs sufficient memory to run the jobs. What ever the Mimix folks tell you there.

All of the routing entries all point to subsystem pool 2 in the scenario that I am suggesting.


--
Jim Oberholtzer
Agile Technology Architects

-----Original Message-----
From: MIDRANGE-L <midrange-l-bounces@xxxxxxxxxxxx> On Behalf Of Joe Pluta
Sent: Saturday, December 22, 2018 11:28 AM
To: midrange-l@xxxxxxxxxxxx
Subject: Re: Subsystems, Shared Pools and Routing Entries

That implies two pools, one for the monitor and one for the jobs. I don't see any obvious way to route the monitor, so does it magically get assigned to the first pool defined in the POOLS keyword? That would mean something like

POOLS((1 *BASE) (2 *SHRPOOLx))

If so, then I have to change all my routing entries to point to the second pool. Not impossible, but a bit more tedious since MIMIX has about 20 routing entries. Or is there a special routing entry you can add just for the subsystem monitor?


On 12/22/2018 11:11 AM, Jim Oberholtzer wrote:
Joe,

In that misconfiguration IBM i saves you buy simply moving the job to *BASE (In my view the job should fail to start but that's another discussion) so work continues.

One other thing. Vision/Syncsort recommending that the Mimix subsystem only have a shared pool is in my opinion (and many other folks) incorrect. The subsystem monitor needs to get an activity level whenever it wants, and it could very likely run into conflicts if the specific shared pool is not set up properly. I've fixed this at I don't know how many Mimix customers. Now jobs in those subsystems start quickly and get on with it without any hold up.


--
Jim Oberholtzer
Agile Technology Architects

-----Original Message-----
From: MIDRANGE-L <midrange-l-bounces@xxxxxxxxxxxx> On Behalf Of Joe
Pluta
Sent: Saturday, December 22, 2018 11:05 AM
To: Midrange Systems Technical Discussion <midrange-l@xxxxxxxxxxxx>
Subject: Subsystems, Shared Pools and Routing Entries

I'm just going through some steps to clean up a few things. One thing is that the fine folks from MIMIX recommend we move MIMIX into its own pool. Not a bad idea. They recommend a shared pool rather than a private pool, and I'm okay with that. I was able to create the shared pool with no problem by assigning memory to it (although I'm not sure how to remove it, but that's a different issue). And then they say to set up the MIMIX subsystem to have only that shared pool using POOLS((1 *SHRPOOLx)). Again, I understand. And finally, make sure all the routing entries point to pool 1 (which they should have been already, and were).

So I'm okay with this. Instead of all the MIMIX routing entries shoving jobs into *BASE, they'll now go into a shared pool. Yay!

But while reviewing things I ran into a weird case. I found a
subsystem pointing to a shared pool, but the shared pool has no memory
defined in WRKSHRPOOL. For arguments sake, say it has POOLS((1
*SHRPOOL6)) but
*SHRPOOL6 is currently defined with no memory. How does THAT work? Obviously it's wrong, but the subsystem is running. Since that subsystem is incorrectly defined, do all the routing entries just get funneled into *BASE? That's what seems to be happening according to WRKACTJOB.



As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.