How to view recently used transactions by users

There are various ways to do that, two of the quickest ones are
1) Turn the audit log on by using SM19 and SM20 and analyze the audit logs.Put filters while setting up these logs so that you can see the specific data.

2) In ST03N / ST03, you can analyze the transactions run by users by selecting the “User Profile” under the “Analysis Views” section.

Note: ST03N keeps limited data

You can use STAD too, more on that later…

How to check if CUA is used in a System

You can quickly run transaction SU01 and see if the “Systems” tab is available. If it is then CUA has been configured. Well there is another way to see whether CUA is used. Run transaction code SCUA to see if there are any distribution models defined. Run transaction code SCUL to see to view logs that are generated by CUA & if you have logged into a child system, then goto transaction code SU01 and see, there will be no CREATE activity.

Troubleshooting SAP Transport Mechanism

The tp command doesn’t work. It always shows some error which I don’t understand.

Make sure the environment is set up properly. See Troubleshooting Server Startup for details.
After releasing my change request, I can’t find the transport files
in the transport directory.
Make sure you released the request, as well as the tasks under it (the request
is the part of the tree directly under the word “Transportable”).
Check the action logs using SE09 for errors. If there were no errors, try re-transporting an object by changing it and creating a new request. Before releasing the task or request, go to SE09 and list the request. If the request is listed under “Local”, it can NOT be transported to another system.
My change request is always local, but I want it to be transportable
The problem lies in either the workbench setup, the development class assigned to the objects you wish to transport, or both. Check the workbench setup with SE06->Display. Is your system set as a productive system? If so, change requests usually are not transportable. Try creating a new development class Z111, and choose any transport layer that the system allows you to choose (if your system does not allow you to choose any transport layers, then the workbench is not set up to allow any changes to be transportable). If it allows you to choose several layers, create on new class for each layer, and a new change request for each class. Then go to SE09 and check if your requests are transportable. If they are transportable, try to release one of the development classes (release the task and the request) and check that the files are created.
The system won’t let me release a request because the the “target system is the same as the source system.”
Click on the request, hit Shift+F6 (Change), and change the target system to a
SID other than the source system. If your system won’t let you change it to a SID that works, you are either trying to transport from the wrong system, or you need to recreate your system landscape.
How do I recreate the transport system landscape?

This should be done by a consultant during installation, and should not be changed after installation. If you really want to do it yourself, release all locked objects, log onto client 000 with DDIC, go to SE06, choose the landscape you want (usually 2- or 3-system group, and press Create. Tell the system which SIDs do which roles, and the rest is set up automatically.

I want to import objects into a system other than the one for which the transport files are targeted.

Use the tp unconditional modes. I have previously posted about the Unconditional modes.

After using the override options, tp won’t let me delete the request from the buffer.

Re-import the request, and then delete it from the buffer. If you cannot  re-import (because, for instance, it is a very old request, and you do not know if re-importing will overwrite newer object), you can delete the entries directly from the file /usr/sap/trans/buffer/SID. This of course is not a “real” solution, but it does work (the “real” solution maybe would involve further editing of the E070, E071, or E070C tables).

I have created local objects in both the target system and the source system.
Now I want to organize development and create objects only in the DEV system, and allow no direct changes to the target system. What do I do about the objectsalready created?

They need to be reassigned to a development class before they can be transported.
Create a development class (or use an existing one) and test to make sure its objects can be exported and imported successfully.

How do I delete all the old change request/task clutter from my system.

If none of the tasks in the request have been released, the entire task/request
can be deleted. Before deletion, however, you should check to make sure that the related objects are either changed back to the state they were in before the change that resulted in their being linked to the change request.
The system says that I have to release all locked objects before I can perform a certain task. How do I find out what objects are locked?

Look in the tables TLOCK, E070, E071, and E070C. Sometimes, data in these tables can become orphaned, and may need to be processed manually (this is rarely necessary).

What do I do with all these transport files?

You can backup and delete old transport files every once in a while. Directories to be backed up and deleted in the /usr/sap/trans directory include: data, cofiles, log, olddata, EPS/out, EPS/log, and put/*. Note that SAP-delivered files can be deleted without backup; this includes directories such as put/exe, put/tools, and EPS/in.

What is Heap Memory?

Heap Memory stores User Context when Extended Memory allocated to a work process gets exhausted and the work process requires more space to continue. Heap Memory stores contains same type of Data as Extended Memory. Heap Memory is allocated dynamically according to requirement and not during system startup. When the workprocess starts using heap area it enters in to PRIV mode


SAPOSCOL is SAP Operating System Collector is a standalone program that runs in background at OS level. It collects information about operating system resource usage like:

  • CPU Utilization
  • Main Memory and Virtual Memory utilization.
  • Physical Disk and File System utilization.
  • Resource usage by running processes.

How many instances of SAPOSCOL to be run?
A)Only one instance of SAPOSCOL needed to be run per hardware. Even if there are multiple instances running on a single hardware only one SAPOSCOL
process is needed.

What is the frequency of data collection by SAPOSCOL?
A) Data is collected every ten seconds.

Where is the data collected by SAPOSCOL stored?
A)The data is stored in shared memory and for long & future usage data is stored in tables MONI & OSMON.
Tha data collected by SAPOSCOL copied to tables MONI & OSMON by background job COLLECTOR_FOR_PERFMONITOR

What are the SAP level tcodes to view this data?
A) At SAP level you can view the information collected by SAPOSCOL using tcodes/transactions ST06, OS06 & OS07.

Memory related profile parameters in SAP

abap/heaplimit Work Process
ztta/roll_extension Limit for Extended Memory
ztta/roll_extension_dia EM Quota for Dialog Work Processes
ztta/roll_extension_nondia EM Quota for Non-Dialog Work
abap/heap_area_dia Heap Memory Limit for Dialog Work
abap/heap_area_nondia Heap Memory Limit for Non-Dialog
Work Processes
abap/heap_area_total Total Quota for Heap Memory
ztta/roll_area Size of Roll Area Roll Area
ztta/roll_first Size of the Initial Allocation
from the Roll Area
abap/heap_area_total Heap Memory Limit
em/initial_size_MB Extended Memory Pool Size
rdisp/ROLL_SHM Roll Buffer Size
rdisp/ROLL_MAXFS Maximum Roll File Size
rdisp/PG_SHM Size of the Paging Buffer
rdisp/PG_MAXFS Maximum Size of SAP Paging File
em/blocksize_KB Segment Size for the Extended
Memory Memory Management Statistics
em/stat_log_size_MB Statistics – User Context Size
em/stat_log_timeout Statistics – User Context Size

Understanding transaction code SM50 in SAP

Tcode SM50 is used to see the workprocess overview in application
server you are logged in.
There are several fields diplayed in the work
process overview screen.
Each of the field value is described in below

Menu path for this tcode is
Tools –> Administration–> Monitor –>System monitoring –> Process –> overview

No This is the work process number and is unique to each work process.
Type This denotes the type of work process.
These are the possible values for type field
DIA: Dialog
UPD: Update
BGD: Background
ENQ: Enqueue
SPO: Spool
PID Process ID which is a unique no to identify the process at os level.
Status This shows the status of work process like PRIV mode etc..
Ended Work process has been terminated because of some error in SAP kernel.

Running – work process is busy processing user request.

Waiting – work process is ready to accept user request.

PRIV – Work process running with heap memory (noramally basis admins terminate the dia wp if it enters priv mode).

Completed The work process has been terminated and they can not be restarted.
Reason If a work process status is stopped, this field gives the reason why it is stopped.
Start This field tells if the dispatcher can restart the work process if it gets terminated.
Err Err field gives the no of times the work process .
Sem Number of semaphore.

With Green background =>Process is holding the semaphore.

With Red background => Process is waiting for the semaphore.

CPU The CPU Time utilization by each work process format minutes:seconds
Time The time that has been consumed processing the current request (in seconds).
Report The name of report which is being executed
Clie Client No.
User Name of user whose request is currently being executed.
Action For the work process with status “running”, this displays the current action.
Table The DB tables that is accessed previously by work process.

Memory allocation of non-dialog work process in UNIX

Memory allocation of non-dialog work process in UNIX

In UNIX, if Roll memory gets full Heap memory is occupied and if heap memory gets full extended memory is used.

in windows it is different, after roll memory (ztta/roll_first) is
filled the work process uses Extended memory, after extended memory is
fill then remainder of roll memory ( ztta/roll_area – ztta/roll_first)
is used soon..

Unix or Unix like systems Windows
Roll Memory
up to
Roll Memory
up to
Heap Memory
up to
or HM Exhaust
Extended Memory
up to
or EM Exhaust
Extended Memory
up to
or EM Exhaust
Roll Memory
Remainder of
Heap Memory
up to
or HM Exhaust

SAP Lock concept

SAP has an independent locking processover and above the database that it runs on, a LUW on SAP is may have different meaning and execution to what it is on Oracle or DB2.

Read on…

Lock Transaction SM12:

The SAP system is equipped with a special lock mechanism the purpose of the lock mechanism is to prevent two transactions from changing the same data on the database simultaneously.
Locks are defined generically as “lock objects” in the Data Dictionary. Lock entries are usually set and deleted automatically when user programs access a data object and release it again.

The SAP lock mechanism is closely related to the Update Mechanism .

The documentation is divided into the following sections:

SAP Lock Concept: describes how the SAP lock works. You have to understand the concepts described here in order to use the SAP locks when you are programming applications. You can use different types of locks. The lock mode describes what type of lock it is.

S (shared Lock): Several users can access locked data at the same time in display mode. Requests from further shared locks are accepted, even if they are from different users. An exclusive lock set on an object that already has a shared lock will be rejected.

E(Exclusive): An exclusive lock protects the locked object against all types of locks from other transactions. Only the same lock owner can reset the lock .

Important Profile Parameters: A list of the profile parameters relevant for the lock concept.
enque/table_size: Size of the lock table managed by the enqueue server in the main memory. The lock table contains information on which locks are currently held by whom.

In this case, you should check whether the update server is functioning correctly, since the lock table can grow very fast if the update function stops. If no update problems exist, you can use this parameter to increase the size of the lock table.
The Computing Center Management System (CCMS) monitors the status of the lock table constantly and outputs warnings if the space available is not adequate.
Default value: 4096kb

rdisp/wp_no_enq: Number of enqueue work processes that are to run on this instance.
rdisp/enqname: Name of the application server that provides the enqueue service.

Managing Lock Entries: It describes lock management , which you use to display, check, and delete lock entries. This may be necessary if the SAP dispatcher, the operating system, or the network connection fails, and the dispatcher cannot delete lock entries. In this case, invalid lock entries remain effective and block access to the locked data when the system is restarted.

How to monitor a Lock entry:In SM12 check any lock entry older than 2 days, if any outdated entry check the corresponding User and check the user online or offline in AL08 and contact that User (you can get the User info from su01) and inform about the lock else if the user is offline release the table from lock by deleting the lock.