Purpose
With the following steps, you will be able to setup CSOL functionality.
In addition, I will try to give tips and tricks for the configuration of this functionality in SAP Solution Manager 7.1 and also troubleshooting tips for the possible issues when using this functionality.
*NEW* 7.2: How to work with Change Request Management Cross System Object Lock CSOL
Overview
Software changes are done in one system and will be transported to the system landscape which is linked to this system by transport routes of the Transport Management System. But sometimes there are several developers that require making parallel changes to the same workbench or customizing objects within one landscape.
The cross-system object lock ensures that when an object is changed in a managed system, it is locked in the SAP Solution Manager system. Depending on the conflict scenario, this prevents multiple edits of the same object in different transport requests or projects at the same time. This applies to all managed systems and clients for which the cross-system lock is active.
A typical user case of CSOL is:
1. A developer modifies an objects in the development system and saves into a transport request created/managed by ChaRM
2. As soon as the object is saved into a transport request some lock entries are created in the central SAP Solution Manager system containing the objects information in that request for all production systems which it will be delivered to
3. Another developer tries to edit the same object in the same development system, or in another development system which will be delivered to at least one production system of the first transport request, and then tries to save the change into another transport request of another change document
4. A lock conflict will raise and one popup screen with error (termination) or warning message for the second developer will be shown to inform him that the same object is currently locked by another transport request and it is not yet imported to the production system
5. When the first transport request is successfully imported to all production systems and the first transport request no longer exists in the import queue of the production systems, then those lock entries will be removed in the SAP Solution Manager system, and then another developer can edit those objects without any restriction. If the import is failed and you have corrected it manually, in CSOL we will treat it the same as successfully imported request.
1. Activation
Before using CSOL functionality, it must be activated. The activation contains two parts: one is globally on the central SAP Solution Manager system; the other is locally for each different managed development system.
1.1. Globally activate the cross-system object lock
In solman 7.1 SP05 and higher: Call /n/TMWFLOW/CONFIG_LOCK
In previous SAP Solution Manager 7.1 patch levels execute report se38: /TMWFLOW/CONFIG_SERVICES. Select Cross-System Object Lock Active -> Execute
1.2. Locally activate CSOL for the managed development system
In transaction /TMWFLOW/CMSCONF, select your system:client from the list and double click on the inactive field of column Cross Sys. Obj. Lock -> Press Yes in the popup screen
Note: In case of problems here check note 1584174 - CSOL: RFC to client 000 is required for activation in case of problems seeing all clients.
A system will appear in /TMWFLOW/CMSCONF if the system is used in a project with ChaRM activated.
2. Configuration
2.1. Settings in the managed system
In the managed system you need to create a SOL_CONNECT entry in /nSM30 > bcos_cust:
In the example the RFC Connection is pointing to the Solman system SMM:001 where the lock entries are saved, and also where ChaRM is configured.
You will require either a trusted system connection from managed to solman system, or you have to create an RFC connection with a special user of the type 'S' (Service). Assign the service user at least the SAP_SOLMANTMWCOL role. See KBA 2004134 - CSOL - RFC from managed system to Solution Manager system.
2.2. Settings in the SAP Solution Manager system: Lock conflict analysis scenarios
When you are activating CSOL globally, you can see these options:
The following aspects will be considered when determining the message type for CSOL conflict popup:
- Project Relation (Same project/Different project): Projects to which transport requests are assigned
- Cross: Transport requests belong to the same project or to different projects (Project(s) are ignored)
- Specific: Transport requests belong to the same project
- Different: Transport requests belong to different projects
- Change Type Relation (Change Transaction Type, also for QGM changes)
- Urgent Only: Both transport requests belong to different urgent changes
- Partial Overlapping: At least one of the two transport requests belongs to an urgent change
- Overlapping: Always (System ignores the type of change to which the transport requests belong)
- Transport object type (All objects, including repository (workbench) and Customizing objects)
- Cross-Client: Object type is cross-client workbench object
- Client-Specific: All object types are taking into account
The selected lock conflict analysis scenario will determine the message type when the object lock has been found.
If you select Warning Only the previous settings are ignored and always a warning message is displayed for all conflicts.
By clicking in the Information button you will get a detailed description of the lock conflict scenarios:
There is an enhancement of integration between CSOL and transport organizer introduced in SAP Notes 1895691 and 1900560. Previously CSOL is only able to prevent the change if it is done in official transport request saving popup. After both SAP Notes are implemented, system will be able to issue a warning/error before the change is started when the object is switched to edit mode, and even if the change is carried out manually in transport organizer transactions such as SE01 or SE09.
Note: QGM changes are treated as urgent changes
3. Operation
As soon as a developer modifies an objects in the development system and saves it into a transport request created/managed by ChaRM, some lock entries will be created on the central SAP Solution Manager system, by using the configured RFC in BCOS_CUST, containing the objects information in that request for all production systems which it will be delivered to.
The Change Manager can monitor all CSOL lock entries in the central SAP Solution Manager system by executing /N/TMWFLOW/LOCKMON and choosing appropriate search criteria:
In the output result Repository locks and Customizing locks are displayed in separate tabs, where all relevant information (request, object, project, task list, developer) is displayed.
Here the key fields are the production system/client, which means CSOL can only be used when the project contains at least one production system (even if it is a virtual system). If your project does not have a production system you can not used CSOL.
If the changed object is a workbench object, then only if the transport request is released another user can try to modify the same object for another time and save into a different transport request.
However if the changed object is a customizing object then another user can try to modify the same object for another time and save into a different transport request even when the first transport request is not released. But notice that when the first transport request is released what it is released if the active version of the customizing object at the release time.
When somebody tries to modify the same object for another time, the system will issue a popup to remind the user that this object is already locked in another transport request. If the popup is a warning message, then the second change can still be saved and some new lock entries will be created; if the popup is an error message, then the second change cannot be performed.
In CSOL popup you can find the developer’s user account who was locking that object, together with the transport requests number which were used, and the ChaRM project ID where those transport requests were created.
3.1. Deletion of CSOL Lock entries
When the first transport request is successfully imported to all production systems and the first transport request no longer exists in the import buffer of the production systems, the change is
finalized and the object lock will be deleted automatically in CSOL. Then another developer can edit those objects without any restriction.
If the import is failed and you have corrected it manually, in CSOL we will treat it the same as successfully imported request.
Besides that, user also can delete the locks manually in transaction /N/TMWFLOW/LOCKMON. This normally is needed when there are emergent changes which are blocked by existing CSOL locks. Authorization object SM_CM_CSOL will be checked for this deletion action.
4. Limitations
In SAP Solution Manager 7.1 the CSOL functionality does not support non-ABAP changes.
5. Troubleshooting
5.1 CSOL popup is not shown in the managed development system
Execute report TMW_CONTROL_PROJECT_LOCK in transaction SE38 on your development system and select option Read Client Data "X":
You will see if the CSOL is activated or not for the system:client where you are running the report, if it is activated you will see entry CSL X, and also the used RFC connection to the SAP Solution Manager where the lock entry is stored.
In the case that the CSOL is not activated you can run the same report with option Activate Project Lock or activate the CSOL in the SAP Solution manager system in transaction /tmwflow/cmsconf.
If the CSOL popup still is not comming when editing/saving an object that already has a lock entry check that CSOL is globally activated.
No CSOL popup will appear between two transport requests that belong to the same import group, see KBA 1995630 - No CSOL popup when working with one change document
Ensure that you created the transport requests from a change document for projects having logical component with a production system:client filled, enter a virtual system:client if still you don´t have the production system. If there is not a system:client indicated CSOL will not work.
5.2 SAP Solution Manager is down
If SAP Solution Manager is temporarily unavailable but you still want to change objects in the development system, execute report TMW_CONTROL_PROJECT_LOCK report in the managed system. Select option "Deactivate Project Lock" to deactivate the cross-system object lock temporarily and change the objects. When SAP Solution Manager is available again, you can activate the cross-system object lock by executing the same report and selecting "Activate Project Lock" and run the TMW_TRKORR_LOCK_UPDATE report for the transport request in which you saved objects during the inactive period.
5.3. Update lock entries manually
Report TMW_TRKORR_LOCK_UPDATE can be executed on the development system to synchronize the object information from that system to CSOL lock tables in SAP Solution Manager. This report must be executed by the transport request owner with the transport request number.
This report will be required for example if the SAP Solution Manager system was down and you deactivate the CSOL temporarily. Therefore, this report can also be used to upload those lock information when CSOL has been reactivated.
If you select the "Dialog mode" then you will see the same CSOL popup as when a user is doing the saving of the object to the transport request.
5.4. Bypass error messages for emergent changes
It might happen that your lock conflict will give the developer an error message when performing some emergent changes. In such cases, if you cannot move those previous transport requests which contain the locks to the production systems immediately, you may want to find a way to "ignore" those errors and "forcibly" save the change. In general there are four ways which can be used for this purpose and you can choose any one of them to suit your own needs:
- Temporarily deactivate CSOL globally
- Temporarily deactivate CSOL locally
- Temporarily change the CSOL conflict scenario to a setting which will only show warning message in your lock case
- Manually delete those lock entries from previous requests in the lock monitor
5.5. CSOL performance
If you detect performance issues during the creation of the CSOL entries in the SAP Solution Manager system please read SAP Note 1925605 - CSOL: low performance upon check or change document loading.
This SAP Note can only be implemented until SAPKITL710, however the note is given some perfomrance hints like:
"2. You should consider cleaning up CSOL lock entries through the following steps: 1. Perform project-level import of transport requests into managed systems in their order on the transport track, finally into the production systems; 2. Query all lock entries via the CSOL Lock Monitor, which will clean up lock entries for imported TRs.
3. Monitor the database performance (using transaction ST05) when performing a CSOL check. You can do it through one of below ways:
a) if you saw a change document opening up very slowly, re-open the change document and monitor the database performance
b) if you don't have a change document with the performance issue, but you have an existing transport request that has a low performance, make sure you have SAP Note 1643642 implemented, run report TMW_TRKORR_LOCK_UPDATE on the managed development system, enter the request number, select "Dialogue Mode", and trace the database performance on the Solution Manager system while executing the report
4. If the performance issue isn't related to either /TMWFLOW/TLOCKP or /TMWFLOW/TLOCKPC, then this SAP Note doesn't apply to your issue. Otherwise, update the database index for the table (or tables) with which you have the issue.
a) For /TMWFLOW/TLOCKP, update index QRY if exists. Otherwise, consider creating a new index in this name, and remove all old indexes that are not in use. The index should have below fields in the listed order: hiobject, prod_sys, prod_client, sys, client, lasttrkorr, hikey, lokey.
b) For /TMWFLOW/TLOCKPC, update index R01 if exists. Otherwise, consider creating a new index in this name, and remove all old indexes that are not in use. The index should have below fields in the listed order: tabname, prod_sys, prod_client, sys, client, lasttrkorr, hikey, lokey.
5. If you're using an Oracle database management system, set the following Oracle parameter in the system:alter system set "_OPTIMIZER_SKIP_SCAN_ENABLED" = FALSE scope = both; For this parameter, refer to SAP Note 1577484."
Read also SAP Note 2073071 - DGP: performance issues and resolution carefully. This SAP Note if for DGP, but DGP is based on the CSOL entries for some checks like transport request release so it is relevant here.
Try to keep the number of entries in tables /TMWFLOW/TLOCKP and /TMWFLOW/TLOCKPC as small than possible.
Check the number of objects of your tranport request as try to keep it as small as possible.
One example, don´t use one single transport request for saving several roles, a mean one role can have for example 30 different objects.
Per each object in a tranport request CSOL logic will check the already existing lock entries in table TMWFLOW/TLOCKPC for the same object.
So if you save a role in a transport request already containing let say 1000 other objects then the CSOL logic will look into table TMWFLOW/TLOCKPC for 1030 objects.
From the SAP Note you can read:
" Total Number of Lock Entries
Issue: You get message "Error when getting CTS lock entries for transport requests via RFC" when try to assign a large transport in to ChaRM/QGM; typically, the number of lock entries is in this request is above 100,000
Solution: Proceed as follows:
- Check whether you can split the transport request into smaller pieces and then try to assign them to ChaRM/QGM
- If that is not possible, try to deactivate DGP/CSOL and then assign them to ChaRM/QGM You may also transport this single request manually out of ChaRM/QGM"
So check the number of lock entries for your tranport request, if there are too many objects in one request, there could be performance issues.
6. Authorization object
SM_CM_CSOL is the authorization object to control access Cross-System Object Lock functions in Change Management.
7. CSOL tables
/TMWFLOW/TLOCKP: Lock entries for workbench requests
/TMWFLOW/TLOCKPC: Lock entries for customizing requests
/TMWFLOW/SERVICE: Globally activation info for SOLMAN system
/TMWFLOW/REPCLNT: Locally activation info for managed systems on SOLMAN side
TMW_ADM: Table on managed system showing if system:client is having CSOL activated (CID_ACTIVE X) and the RFC destination to the SAP Solution Manager where the lock entry will be saved.
Related Content
Related Documentation
SAP Help: Cross-System Object Lock
*NEW* 7.2: How to work with Change Request Management Cross System Object Lock CSOL
Related Notes
Managed systems
1703391 - General note for managed systems in Change Management
908496 - Cross-system object locking: Editor control
1895691 - CSOL: Locks are not written by Workbench Organizer
1591120 - CSOL: Inconsistency in non-SAP GUI application scenario
Solution Manager system
1584174 - CSOL: RFC to client 000 is required for activation
2004134 - CSOL - RFC from managed system to Solution Manager system
1900560 - CSOL: Enhanced Transport Organizer Integration
2161500 - Update of CSOL role SAP_SOLMANTMWCOL since ST 7.1 SP10 to SP13
2230847 - CSOL: lock entries deleted even if the transport request still stays in the imp
2141951 - CSOL: lock conflict is not detected for large transport request
1826789 - Preliminary import actions are not deleting CSOL lock entries
1995804 -CSOL lock entries not deleted when working with Urgent change documents
2015471 - CSOL: conflict detected for transports in the same normal change/defect correction after a new cycle is generated
1995630 - No CSOL popup when working with one change document
1591120 - CSOL: Inconsistency in non-SAP GUI application scenario
1925605 - CSOL: low performance upon check or change document loading
2073071 - DGP: performance issues and resolution
2 Comments
Former Member
Hi, nice tutorial!
As far as you described you should activate Charm in a project with this system, so, it means I cannot use CSOL with QGM?
Thanks for your help
Dolores Correa
Hi Hernan,
CSOL can also be used with QGM.
Best regards,
Dolores