Posts

Showing posts with the label enqueue

Performance Tests to Assess Enqueue Bottlenecks

Image
You can use the Diagnosis environment on the transaction SM12 to Check the configuration of enqueue function Perform tests to evaluate known possible bottlenecks and Perform tests for known issues To use this feature call SM12 and go to Error handling > Diagnosis environment or enter DUDEL in OK-CODE field. If this option is not available on the current SPS level of your release, download and configure the report Z_ENQUEUE_PERF from SAP note  1320810 .

Work Processes held by the program SAPLSENA

The program SAPLSENA is the lock handler that takes care of locking and unlocking operations in an SAP system. If a process is held by SAPLSENA for a long duration, it means that an application program is making a large number of lock requests. A large number of work processes are occupied because the DEQUEUE function module is called separately for each request. You can analyse the lock situation by following the steps provided in the SAP note 653996. You may have to run the application program ( by controlling selection criteria) to limit the number of lock requests. Alternately you can adjust the enqueue parameters (enqueue/tablesize, enqueue/snapshot_pck_size, enqueue/snapshot_pck_ids etc.).

Enqueue Server Max Requests and Enqueue Table Size

If you start noticing I/O or memory errors in the dev_enqio_* trace file, the enqueue server is being overloaded. enque/server/max_requests and enque/server/max_query_requests determine the number of requests that can be processed parallely. These numbers should atleast be equal to the number of work processes or the number of Java threads (in all instance). enque/table_size determines the size of the enqueue table. If there is a memory error in the trace files, increase enque/table_size. Sample calculations of the max_*request parameters based on number of WPs/threads and enqueue table size: For ASCS Total number of WPs = 1000 Lock Table Size = 500MB enque/server/max_query_requests = 1000 enque/server/max_requests = 1000 + 500 * 25 = 13500. #The additional 25*500 is for handling replication in HA systems. enque/table_size = 500000 For SCS Total number of Java Threads per node = 350 Total number of nodes = 3 Lock Table Size = 32MB enque/server/max_query_re...

Checking the Lock Handler on SCS Instance Using jenqulib.jar

The J2EE server nodes uses the lock handler class jenqulib.jar (you should be able to find this jar file in oslibs folder). This library can be used to test the enqueue locking in a standalone JVM using the following command: java -cp jenqulib.jar com.sap.bc.krn.enqu.EnquLocktableTest -server <SCS host> 32<SCS_Instance_Number> -enq Check the help option for more information: java -cp jenqulib.jar com.sap.bc.krn.enqu.EnquLocktableTest -help