reading further on it, parameter SYSID can also be used, but how - can someone help?
I need to communicate the setup to a team which will make the changes to IMS transactions.
The transaction can be setup with specific CLASS in MSGTYPE= keyword of TRANSACT macro. Usually Message Processing regions are grouped to run transactions with specific classes only (maximum 4 class per region). when a transaction is invoked, IMS SMB will schedule the transactions to run in the message region according to the transaction class.
Talk to the IMS Systems Programmer in your shop. They would have setup some standards.
Joined: 17 Dec 2007 Posts: 50 Location: Victoria, BC, Canada
Does your environment have multiple IMS Control regions executing in a Shared Queues (message queue in the Coupling Facility) environment?
Or, alternatively, do you have just one IMS Control region, with multiple Message Processing Regions as subordinate address spaces?
As others have said, each transaction code will be defined in the TRANSACT macro. The third subparameter of the MSGTYPE parm within the TRANSACT macro specifies the Transaction Class.
If your original transaction is named A, and A message switches to transaction B, then your first step is to ensure transaction A has a Transaction Class that is different than what is specified for transaction B.
For example, you want to put Tran A in Class 007 and Tran B in Class 008.
Next, a Message Processing Region can specify up to 4 different transaction classes that are eligible for the MPR to execute.
You will find this as the second parameter supplied to PGM=DFSRRC00.
For example, this specification
will only process Transaction Class = '007'.
As such, it can process your Tran A.
If you have a second Message Processing Region with
it will only process Transaction Class = '008', '009', '010' and '011'.
As such, it can process your Tran B.
In a non-shared queues environment, you can make these two message regions subordinate address spaces of your single IMS Control Region.
Tran A will run in one MPR, and Tran B will run in the other.
In a shared queues environment where "other regions" in your original question actually means "other control region", you must ensure that the first MPR is a subordinate address space of the first control region, and the second MPR is a subordinate address space of the second control region.
You must also ensure that the transaction class you select for Tran A is not serviced by any MPR under the second control region, and that Tran B is not serviced by any MPR under the first control region.
Thanks Gary for the detailed explanation.
Environment is multiple IMS Control regions executing in a Shared Queues.
There is 1 more problem
Tran A processes the message in steps based on values stored in SPA - on processing the first step it initiates another transaction say Tran B.
When Tran B completes it initiates Tran A again which then processes the second step based on values passed in SPA.
Requirement is to have Tran A execute in a different MPP (in second step) than the first (first step).
IMS Manual says if we set TRANSACT macro parameter PARLIM = 0, IMS will create multiple MPPs to serve the same transaction (if there are multiple transactions to process) - does that mean if I have multiple Tran A then different MPPs will process it? and a second MPP can process TRAN A (step 2) without actually processing TRAN A (step1)?