Wait parameter in Enqueue FM
Hi,
I have a scenario where i want to lock the table before updating it.
In FM Enqueue, I want the program to retry it after some time, it if fails in first attempt.
Can i do it through Wait parameter and where do i need to give the parameter to retry it after some time.
Also if it fails to attempt for some number of time , then it should throw an error mesage.
call function 'ENQUEUE_EZVZVPDDELE'
exporting
mode_zvpddel = 'E'
mode_zvpddpr = 'E'
mandt = sy-mandt
zpddelcd = wa_podd_del_header-zpddelcd
x_zpddelcd = ' '
_scope = '3'
_wait = ' '
_collect = ' '
exceptions
foreign_lock = 1
system_failure = 2
error_message = 3
others = 4.
Please suggest.
Regards,
Sonika
If it is critical to update this table then u can put a do....enddo. loop and check the return code of the FM like:
Do.
call function 'ENQUEUE_EZVZVPDDELE'
exporting
mode_zvpddel = 'E'
mode_zvpddpr = 'E'
mandt = sy-mandt
zpddelcd = wa_podd_del_header-zpddelcd
x_zpddelcd = ' '
_scope = '3'
_wait = ' '
_collect = ' '
exceptions
foreign_lock = 1
system_failure = 2
error_message = 3
others = 4.
if sy-subrc = 0.
exit.
endif.
enddo.
But otherwise u can follow the procedure mentioned in ur post.
Regards,
Joy.
Similar Messages
-
(V7.X ~ V8.X) OPS 환경의 WAIT EVENT DFS ENQUEUE LOCK ACQUISITION에 대하여
제품 : ORACLE SERVER
작성날짜 : 2004-08-13
(V7.X ~ V8.X) OPS 환경의 WAIT EVENT DFS ENQUEUE LOCK ACQUISITION에 대하여
=========================================================================
PURPOSE
이 자료는 OPS 환경에서 V$SESSION_WAIT 뷰에 나타나는 'DFS lock
acquisition'과 'DFS enqueue lock acquisition'에 의하여
performance가 저하될 경우 해결책에 대하여 알아보기로 한다.
SCOPE
Oracle Parallel Server(OPS) Option은 7~9i Standard Edition에서는
지원하지 않는다.
Problem Description
OPS 환경에서 많은 user들이 동시에 접속하려 할 때 connection이
매우 늦어지면서 V$SESSION_WAIT 뷰에는 'DFS lock acquisition'과
'DFS enqueue lock acquisition' 이라는 event가 나타나며 slow
performance를 보이는 문제가 발생한다.
Workaround
none
Solution Description
데이타베이스에 동시에 로그인하는 user의 수를 근거로 sequence sys.audses$
의 cache_size를 더 큰 값으로 증가시켜야 한다.
예를 들어, 200 으로 증가시켜 본다. (default value is only 20).
sequence sys.audses$의 cache_size를 변경하기 위해서는 다음과 같이 수행한다.
SQL> alter sequence sys.audses$ nocache;
SQL> alter sequence sys.audses$ cache 200;
변경된 값을 확인하기 위해서는 다음과 같이 수행한다.
SQL> select * from dba_sequences where sequence_name='AUDSES$';
Explanation
로그인을 하는 동안 모든 데이타베이스 user들은 audit session id를 retrieve
하기 위하여 sequence sys.audses$를 액세스할 필요가 있다. Default로 20개의
sequence만이 cache되기 때문에 DFS enqueue lock에 높은 concurrency가 일어난다.
이것은 OPS 환경에서만 발생하는 문제인데, 이 event 하에 발생하는 lock들은
Parallel Server mode 에서만 발생하기 때문이다. 그래서, 이 때에는 반드시
DLM에 의해서 lock convert operation이 일어나야 한다.
Reference Documents
<Note:106014.1>
<Note:1031850.6> SEQUENCE NUMBERS IN PARALLEL SERVER -
The ENQUEUE function module also has the parameter _WAIT. This parameter determines the lock behavior when there is a Structure linklock conflict.
You have the following options:
· X: If a lock attempt fails because there is a competing lock, the lock attempt is repeated after waiting for a certain time. The exception FOREIGN_LOCK is triggered only if a certain time limit has elapsed since the first lock attempt. The waiting time and the time limit are defined by profile parameters.
i want to know what parameter define the wait time, thanks very much!Dear,
Please look to the below link, especially "Creating lock objects and Example of lock objects"...
http://help.sap.com/saphelp_46c/helpdata/en/cf/21eebf446011d189700000e8322d00/frameset.htm
Regards,
Sreenivas .Y -
How and when to use WAIT parameter in BAPI_TRANSACTION_COMMIT? Help!
Hi Experts,
In the BAPI_TRANSACTION_COMMIT function module there is an input parameter "WAIT".
What is the significance or use of WAIT?
How do we use it? What values does it take?
For which case do we use WAIT and for which not?
KIndly help me understand this.
Thanks
GopalHi,
This method executes a COMMIT WORK command. It is required for transactions developed externally to the R/3 System that change data in the R/3 System via BAPI calls.
When you call BAPIs in your program that change data in the R/3 System, afterwards you must call this method to write the changes to the database.
The default value of this parameter is SPACE. If the parameter contains the value SPACE or it does not contain a value at all, then a simple COMMIT WORK is executed.
If the parameter WAIT contains a value other than SPACE, a COMMIT WORK AND WAIT command is executed.
The result is that the data within a Logical Unit of Work (LUW), changed by one or more BAPIs after the BAPI 'BapiService.TransactionCommit' has been called, is immediately available in the database.
The following values are possible:
The command 'COMMIT WORK' is executed - the program does not wait, until COMMIT WORK is completed. When the database is next accessed directly, all the old data may still be able to be read.
'X'
The command 'COMMIT WORK AND WAIT' is executed - the program waits until the COMMIT WORK is completed. When the database is next accessed, the updated data is read.
reference : function module documentation.
thanx.
Edited by: Dhanashri Pawar on Sep 18, 2008 6:41 AM -
Configuring profile parameter for a table lock object
Hi Experts-
I want to set the 'wait time' (_WAIT) parameter as a profile parameter for a table lock object.
I have created a lock object on a ZTable. I lock and unlock this object in exclusive non-cumulative mode through the enqueue and dequeue lock object function modules. These generated FMs are invoked via my custom function module.
My function module will run in the background as a scheduled task in R/3. I execute the Enqueue FM at the start of the FM and keep the table locked until the last step finishes in my FM and then I Dequeue it. I want to have the processing wait and retry the Enqueuring FM at set intervals in case the one run doesn't finish entirely and a new run of this same job kicks off.
Thank you,
- Vik.Set the wait parameter = 'X'. These means that if it encounters a lock, then it will wait a certain time for the lock to be released. This certain time is a system value set by your basis team. I don't imagine it being a very long time.
CALL FUNCTION 'ENQUEUE_EZPIPHYINVREF'
EXPORTING
MODE_ZPIPHYINVREF = 'E'
MANDT = SY-MANDT
_WAIT = 'X'.
Regards,
Rich Heilman -
USER I/O Wait (Please help kind of stuck here from long time)
I have a delete statement running from more than 24 hrs now and the session info says its waiting on user I/O. There are no blocking sessions and its doing a full table scan of a table having around 500000 records. I dont understand what exactly its waiting on and how to check that and why it taking more than 24 hrs to FTS of 1 table? Here are some of the statistics:
SQL> select blocking_session, event, wait_class, wait_time, seconds_in_wait, state from v$session where sid=1026;
BLOCKING_SESSION EVENT WAIT_CLASS WAIT_TIME SECONDS_IN_WAIT
STATE
db file scattered read User I/O 0 0
WAITING
SQL> select * from table(dbms_xplan.display_cursor('1g5k0k3qpy8j2'));
PLAN_TABLE_OUTPUT
SQL_ID 1g5k0k3qpy8j2, child number 0
DELETE FROM RX_TX WHERE ID IN (SELECT ID FROM TEMP_PURGE WHERE TABLE_NAME = 'rx_
tx')
Plan hash value: 3126475949
PLAN_TABLE_OUTPUT
| Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)
| Time |
| 0 | DELETE STATEMENT | | | | | 17239 (100)
| |
| 1 | DELETE | RX_TX | | | |
| |
PLAN_TABLE_OUTPUT
|* 2 | HASH JOIN RIGHT SEMI| | 513K| 123M| 14M| 17239 (2)
| 00:03:27 |
|* 3 | TABLE ACCESS FULL | TEMP_PURGE | 557K| 8717K| | 2789 (2)
| 00:00:34 |
| 4 | TABLE ACCESS FULL | RX_TX | 578K| 130M| | 6918 (2)
| 00:01:24 |
PLAN_TABLE_OUTPUT
Predicate Information (identified by operation id):
2 - access("ID"="ID")
3 - filter("TABLE_NAME"='rx_tx')
22 rows selected.
SQL> select b.name, a.value from v$sesstat a, v$statname b
where a.statistic# = b.statistic#
and a.value > 0 2 3
4 and b.name like '%wait%'
5 and a.sid=1026;
NAME VALUE
concurrency wait time 1615
application wait time 388
user I/O wait time 13403000
enqueue waits 1
shared hash latch upgrades - no wait 7924935
redo log space wait time 2852
6 rows selected.
Any help would be appreciable.
This deletes more that 60% of the records from this table so indexed should be out of question here, i think.
Daljit Singh
Message was edited by:
DaljitThanks for replying Reega, here is the required
info:
SQL> select p1text, p1, p2text, p2, p3text, p3 from
v$session where sid=1026;
P1TEXT
1
P2TEXT
2
P3TEXT
3
file#
block#
16937
blocks
6
Actually Reega had a good point, not sure why he didn't go down the route.
You may want to find out what's that table/index your session is waiting from the value, something like
select owner||'.'||segment_name, segment_type
from dba_extents
where file_id=4 and (block_id between 116937 and 116937+66)This might be a long run query if you have many objects.
Actually the better view to query is v$session_wait instead of v$session.
Check article you might find useful,
Oracle wait tuning with v$session_wait -
Hi All,
I am using ENQUEUE FM to lock a Table .I am passing Value (which is not avalilable in the table ) as a parameter to ENQUEUE FM.I am able to see One locking entry in SM12. If we pass value to ENQUEUE FM (for which record does not exist in the table) then what is this locking entry?
1. Will this lock entire table?
2. Will this lock is for future entry?
Please help me out.
Thanks & Regards
K.Nirmalaif one user updating the data base table another user can't use it at the time of updation at same time.
*-------------lock Table
CALL FUNCTION 'ENQUEUE_E_TABLE'
EXPORTING
tabname = table_name
EXCEPTIONS
foreign_lock = 1
system_failure = 2
OTHERS = 3.
*-------------Unlock Table
CALL FUNCTION 'DEQUEUE_E_TABLE'
EXPORTING
tabname = table_name
also check ....
Lock Object
Re: How to lock and and unlock the table for inserting and deleting
Regards,
Santosh -
Can I get the wait parameter (ex. PT10M) from a variable?
I've tried with this, but it don't seems to work:
<wait xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/" for="bpws:getVariableData("pippo", "payload", "/tns:ProvaCatapultResponse/tns:result")" name="wait"/>
Variable "pippo" contains the value for my wait activity.
This is the normal sintax for the wait activity:
<wait xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/" for="PT10M" name="wait"/>
Thank you
Andreathe args for getVariableData needs be escaped using single quote ('), like:
<wait xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/" for="bpws:getVariableData('pippo', 'payload', '/tns:ProvaCatapultResponse/tns:result')" name="wait"/>
Attribute "for" takes literal xpath expression, here you need to esacpe using single quote ('), like
<wait xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/" for=""PT10M"" name="wait"/> -
Data lock even after commit work and wait
Hi Experts,
Data is still locked even after commit work and wait step has run, which made me very confusing.
The following are the details:
These steps are in a FOP.
Step1: Change Move-in Date of a move-in document in background after get the new move-date from user.
Step2: Run BAPI_TRANSACTION_COMMIT and pass the wait parameter.
Step3: Bring move-in document transaction to the user for other information changes.
After the user confirms the changes and presses SAVE button, error message shows that the move-in document is still locked. But no other transaction is opened for the specified move-doc changing.
Does any1 have any idea on this? How can I solve this issue?
Thanks in advance and points will be rewarded.
VincentHi,
Normally every BAPI will work on Update task so that the data will be updated once the commit work is done. For the commit work, we will normally call the bapi function module - BAPI_TRANSACTION_COMMIT. It should work.
In your case, just try the below option:
Please call the bapi - BAPI_ACC_DOCUMENT_POST & BAPI_TRANSACTION_COMMIT in a seperate function module and call this function module in your program (just pass the import / export / table parameters accordingly).
For the information, I had once a similar type of issue and it got solved once I did like the above.
Regards,
Selva K. -
Database wait Event after startup
Hello,
I just dropped 2 partitions from the database table. Before dropping the partitions, I truncated the table as well.
Since then I found that there are many sessions in waiting in the database.
The CPU usage of the system was not at the high level, rather sometimes only waits were there and CPU usage was not there!
I restarted my database and also re-booted the system, but still the same problem persisted.
Can anyone make me understand what should I do in this scenario? One of the other senior DBA resolved the matter and the waits were reduced. I did not know what he did neither he told me what he did?
Pleas guide me on this.
Thanks in advanceWait event was IPC and some message associated with this. and the other wait event was "ENQUEUE".
I am using Oracle 9.2.0.8 on Unix box
The database was just started and the application servers (supporting the website were not started) still the wait events were shown and these events were continued to increase.
I don't know what the other DBA did, but he managed to resolve the problem? -
Hi,
I use 'BAPI_PROCORD_COMPLETE_TECH' to TECO process order. However, the confirmation prompt it sends is sometimes not showing sometimes it's showing. It's weird.
I introduce WAIT UP TO 2 SECONDS after it commit the work.
What else do i need to do in order for the prompt to appear everytime there is a warning in the TECO? Do I have to extend the time? Thanks a lot!
Sample code is below:
Technically complete process Order
CALL FUNCTION 'BAPI_PROCORD_COMPLETE_TECH'
IMPORTING
return = i_messages
TABLES
orders = i_orders.
IF sy-subrc EQ 0.
IF i_messages[] IS INITIAL.
REFRESH i_messages3.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = ' '
IMPORTING
return = i_messages3.
IF sy-subrc EQ 0.
WAIT UP TO 2 SECONDS.
CLEAR x_messages3.
READ TABLE i_messages3 INTO x_messages3
WITH KEY type = c_error.
IF sy-subrc EQ 0.
MESSAGE i000 WITH x_messages3-message.
EXIT.
ELSE.
MESSAGE i008.
ENDIF.
ENDIF.Hi
First, If you use your BAPI call independently in your own custom program and you are sure the LUW is complete you don have to set the WAIT parameter (WAIT = ' ').
If you use your BAPI call within another program (standard/User-exit) then you should set the WAIT parameter (WAIT = 'X'). Seting the WAIT parameter will sinchronize the commit with the next commit work (set by standard program), using WAIT parameter in standard program especially in User-exit prevents data inconsistency caused by premature commit work.
Second , Are you checking the return table parameter for any errors? from the first fm? Please check it first. If it is having error then there is no problem.
Else put COMMIT WORK AND WAIT for the BAPI_transaction_COMMIT. Then in order to find wheter if it is a posting problem,
Just put the statement WAIT UPTO 2 SECONDS.
and try if there is some posting proble then the above WAIT will find it for you.
Have a nice day
Reward if useful
~Lakshmiraj~ -
Hi,
I have an sid which waiting on an enqueue...
Is it possible to get more details like with which session is this one in an enqueue..
Thanks,
Kractually the ctime here is getting on increased...
select * from v$lock where sid like '147';
ADDR KADDR SID TY ID1 ID2 LMODE REQUEST CTIME BLOCK
C000000396542A38 C000000396542A60 1437 TM 7293 0 3 0 50912 2
C000000369281F68 C000000369281F88 1437 TX 7733271 3664863 0 6 50911 0
C000000369281BC0 C000000369281BE0 1437 TO 1350135 1 3 0 51615 2
but when i query the v_sess_io...
there is no change ...
select * from v$sess_io where sid like '147';
SID BLOCK_GETS CONSISTENT_GETS PHYSICAL_READS BLOCK_CHANGES CONSISTENT_CHANGES
147 42197 4313445 101038 46129 4087
SQL> /
SID BLOCK_GETS CONSISTENT_GETS PHYSICAL_READS BLOCK_CHANGES CONSISTENT_CHANGES
147 42197 4313445 101038 46129 4087
SQL> /
SID BLOCK_GETS CONSISTENT_GETS PHYSICAL_READS BLOCK_CHANGES CONSISTENT_CHANGES
147 42197 4313445 101038 46129 4087
.....As far as i understod from the first link
V$LOCKThis view lists the locks currently held by the Oracle Database and outstanding requests for a lock or latch.
Column Datatype Description
ADDR RAW(4 | 8) Address of lock state object
KADDR RAW(4 | 8) Address of lock
SID NUMBER Identifier for session holding or acquiring the lock
the sid shows the one which is currently holding the lock
and 147 is showing and the ctime is getting increased..
but why then in v$sess_io...nothing is happpening...
any inputs on this...?
Thanks,
kr -
Runtime Errors TIME_OUT
guyz,
i am facing the below issue while running DTP to load the master data attr to info object.
previoulsy it was working perfect but from last few days its getting hanged and throwing this error.
also records are very few around 2500.
dont know why its getting hanged.
Runtime Errors TIME_OUT
Date and Time 10/04/2011 16:35:09
Short text
Time limit exceeded.
What happened?
The program "SAPLSENA" has exceeded the maximum permitted runtime without
interruption and has therefore been terminated.
What can you do?
Note down which actions and inputs caused the error.
To process the problem further, contact you SAP system
administrator.
Using Transaction ST22 for ABAP Dump Analysis, you can look
at and manage termination messages, and you can also
keep them for a long time.
Error analysis
After a specific time, the program is terminated to make the work area
available to other users who may be waiting.
This is to prevent a work area being blocked unnecessarily long by, for
example:
- Endless loops (DO, WHILE, ...),
- Database accesses with a large result set
- Database accesses without a suitable index (full table scan)
The maximum runtime of a program is limited by the system profile
parameter "rdisp/max_wprun_time". The current setting is 600 seconds. If this
time limit is
exceeded, the system attempts to cancel any running SQL statement or
signals the ABAP processor to stop the running program. Then the system
waits another 60 seconds maximum. If the program is then still active,
the work process is restarted.
How to correct the error
Programs with long runtime should generally be started as background
jobs. If this is not possible, you can increase the system profile
parameter "rdisp/max_wprun_time".
Depending on the cause of the error, you may have to take one of the
following measures:
- Endless loop: Correct program;
- Dataset resulting from database access is too large:
Instead of "SELECT * ... ENDSELECT", use "SELECT * INTO internal table
(for example);
- Database has unsuitable index: Check index generation.
If the error occures in a non-modified SAP program, you may be able to
find an interim solution in an SAP Note.
If you have access to SAP Notes, carry out a search with the following
keywords:
"TIME_OUT" " "
"SAPLSENA" or "LSENAF01"
"FLUSH_PACKAGE"
If you cannot solve the problem yourself and want to send an error
notification to SAP, include the following information:
1. The description of the current problem (short dump)
To save the description, choose "System->List->Save->Local File
(Unconverted)".
2. Corresponding system log
Display the system log by calling transaction SM21.
Restrict the time interval to 10 minutes before and five minutes
after the short dump. Then choose "System->List->Save->Local File
(Unconverted)".
3. If the problem occurs in a problem of your own or a modified SAP
program: The source code of the program
In the editor, choose "Utilities->More
Utilities->Upload/Download->Download".
4. Details about the conditions under which the error occurred or which
actions and input led to the error.
also sometimes when i try to refresh the requests in the manage option of the info object, it doesnt show the previous requests and throws the message
Refresh of the display terminated because InfoCube/DSO cannot be locked
Message no. RSM854
Diagnosis
InfoProvider 0PROD_CATEG cannot be locked with lock argument RSICCONT.
System Response
The display is not refreshed and contains old or incorrect data, that can come from other InfoProviders.
Procedure
Check why the sm12 lock is not yet released on the table RSICCONT; Where necessary delete the lock.
With reproduction of an unauthorized lock, write a message to SAP.
please guide.
cheerz,
raps.Dear Raps,
The program SAPLSENA is the lock handler tool. It is doing
enqueue/dequeue operations.
The error should come from the program created running in this dialog
process and calls the SAPLSENA program to create the lock.
The problem actually occurs because an application program commits many
separate calls of DEQUEUE function modules, and thus causes the
dispatcher queue in the enqueue dispatcher to overflow. Such an
application program always causes a performance problem. DEQUEUE calls
are started asynchronously, that is, they normally do not give a
response, and the calling program continues without waiting time.
If an overflow of the ENQ dispatcher queue occurs in this case, locks
are kept forever, and processes that are waiting for an enqueue
response, will keep hanging.
Please kindly refer to some notes for more information.
653996 Analyzing lock situations
142054 Processes in status stopped ENQ
97760 Enqueue: Performance and resource consuption
74141 Resource Management for tRFC and aRFC
39412 How many work processes to configure
Please check as well attached note 74141 for RFC load distribution.
Regards,
arvind -
Hello,
The system we use is a kind of OLTP thing.
platform - linux
version - 10.2
here, in the statspack everything seems okay to me except the logical reads.(if not tell)
the problems is, the cpu grows gradually and reaches 100.
i need the cpu to be steady.
can somebody tell what is happening here?
STATSPACK report for
Database DB Id Instance Inst Num Startup Time Release RAC
~~~~~~~~ ----------- ------------ -------- --------------- ----------- ---
2386172435 apple22a 1 11-Aug-09 23:14 10.2.0.1.0 NO
Host Name: xxxxxxxxx Num CPUs: 4 Phys Memory (MB): 2
~~~~
Snapshot Snap Id Snap Time Sessions Curs/Sess Comment
~~~~~~~~ ---------- ------------------ -------- --------- -------------------
Begin Snap: 1747 11-Aug-09 23:23:46 96 7.6
End Snap: 1752 11-Aug-09 23:34:00 218 12.5
Elapsed: 10.23 (mins)
Cache Sizes Begin End
~~~~~~~~~~~ ---------- ----------
Buffer Cache: 2,864M Std Block Size: 8K
Shared Pool Size: 656M Log Buffer: 29,855K
Load Profile Per Second Per Transaction
~~~~~~~~~~~~ --------------- ---------------
Redo size: 8,051,891.15 5,042.02
Logical reads: 289,821.64 181.48
Block changes: 49,889.55 31.24
Physical reads: 197.76 0.12
Physical writes: 717.84 0.45
User calls: 1,908.82 1.20
Parses: 962.84 0.60
Hard parses: 0.25 0.00
Sorts: 591.85 0.37
Logons: 0.35 0.00
Executes: 25,757.48 16.13
Transactions: 1,596.96
% Blocks changed per Read: 17.21 Recursive Call %: 94.11
Rollback per transaction %: 26.58 Rows per Sort: 628.58
Instance Efficiency Percentages
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Buffer Nowait %: 99.97 Redo NoWait %: 100.00
Buffer Hit %: 99.93 In-memory Sort %: 100.00
Library Hit %: 100.01 Soft Parse %: 99.97
Execute to Parse %: 96.26 Latch Hit %: 99.78
Parse CPU to Parse Elapsd %: 91.30 % Non-Parse CPU: 99.31
Shared Pool Statistics Begin End
Memory Usage %: 47.56 49.99
% SQL with executions>1: 60.62 73.55
% Memory for SQL w/exec>1: 77.58 84.79
Top 5 Timed Events Avg %Total
~~~~~~~~~~~~~~~~~~ wait Call
Event Waits Time (s) (ms) Time
CPU time 1,362 31.6
log file sync 16,960 1,264 75 29.4
PL/SQL lock timer 10 586 58606 13.6
buffer busy waits 57,444 388 7 9.0
enq: TX - row lock contention 12,036 298 25 6.9
Host CPU (CPUs: 4)
~~~~~~~~ Load Average
Begin End User System Idle WIO WCPU
0.20 10.74 53.82 9.51 36.67
Note: There is a 8% discrepancy between the OS Stat total CPU time and
the total CPU time estimated by Statspack
OS Stat CPU time: 2261(s) (BUSY_TIME + IDLE_TIME)
Statspack CPU time: 2456(s) (Elapsed time * num CPUs in end snap)
Instance CPU
~~~~~~~~~~~~
% of total CPU for Instance: 63.51
% of busy CPU for Instance: 100.30
%DB time waiting for CPU - Resource Mgr:
Memory Statistics Begin End
~~~~~~~~~~~~~~~~~ ------------ ------------
Host Mem (MB): 1.9 .0
SGA use (MB): 3,584.0 3,584.0
PGA use (MB): 164.2 258.5
% Host Mem used for SGA+PGA: 194875.2 8987233.1
Avg
%Time Total Wait wait Waits
Event Waits -outs Time (s) (ms) /txn
log file sync 16,960 4 1,264 75 0.0
PL/SQL lock timer 10 100 586 58606 0.0
buffer busy waits 57,444 0 388 7 0.1
enq: TX - row lock contention 12,036 0 298 25 0.0
log file parallel write 11,870 0 163 14 0.0
db file sequential read 21,324 0 95 4 0.0
log file sequential read 3,963 0 47 12 0.0
db file scattered read 22,614 0 29 1 0.0
log file switch completion 102 17 28 272 0.0
latch: cache buffers chains 5,829 0 11 2 0.0
Log archive I/O 4,346 0 9 2 0.0
enq: TX - index contention 1,153 0 7 6 0.0
latch free 1,483 0 4 3 0.0
control file parallel write 328 0 4 11 0.0
control file sequential read 1,593 0 2 1 0.0
latch: enqueue hash chains 337 0 2 6 0.0
buffer deadlock 1,091 99 2 2 0.0
Segments by Logical Reads DB/Inst: apple22A/apple22a Snaps: 1747-1752
-> End Segment Logical Reads Threshold: 10000
-> Pct Total shows % of logical reads for each top segment compared with total
logical reads for all segments captured by the Snapshot
Subobject Obj. Logical Pct
Owner Tablespace Object Name Name Type Reads Total
TPCCDB TPCCDB NEW_ORDER TABLE 89,638,240 51.4
TPCCDB TPCCDB PK_STOCK INDEX 22,913,776 13.1
TPCCDB TPCCDB PK_ORDER_LINE INDEX 14,941,264 8.6
TPCCDB TPCCDB PK_O_ORDER INDEX 10,503,040 6.0
TPCCDB TPCCDB ORDER_LINE TABLE 6,368,896 3.7
Segments by Physical Reads DB/Inst: apple22A/apple22a Snaps: 1747-1752
-> End Segment Physical Reads Threshold: 1000
Subobject Obj. Physical Pct
Owner Tablespace Object Name Name Type Reads Total
TPCCDB TPCCDB NEW_ORDER TABLE 49 12.2
TPCCDB TPCCDB WAREHOUSE TABLE 49 12.2
TPCCDB TPCCDB DISTRICT TABLE 49 12.2
TPCCDB TPCCDB INDEX_NO_D_ID INDEX 49 12.2
TPCCDB TPCCDB PK_NEW_ORDER INDEX 49 12.2
SQL Memory Statistics DB/Inst: apple22A/apple22a Snaps: 1747-1752
Begin End % Diff
Avg Cursor Size (KB): 65.12 67.79 3.95
Cursor to Parent ratio: 1.03 1.02 -.08
Total Cursors: 560 620 9.68
Total Parents: 546 605 9.75
init.ora Parameters DB/Inst: apple22A/apple22a Snaps: 1747-1752
End value
Parameter Name Begin value (if different)
aq_tm_processes 1
audit_file_dest /rdbms/oracle/apple22i/64/admin/o
background_dump_dest /rdbms/oracle/apple22i/64/admin/o
commit_write BATCH,NOWAIT
compatible 10.2.0.1.0
control_files /rdbms/oracle/apple22i/64/oradata
core_dump_dest /rdbms/oracle/apple22i/64/admin/o
cursor_sharing EXACT
db_block_size 8192
db_domain yyyyyyy
db_file_multiblock_read_count 16
db_name apple22a
db_recovery_file_dest /rdbms/oracle/apple22i/64/flash_r
db_recovery_file_dest_size 2147483648
dispatchers (PROTOCOL=TCP) (SERVICE=apple22aX
dml_locks 30028
global_names TRUE
job_queue_processes 10
log_archive_dest_1 LOCATION=/perf0/Archivelog_10g_ch
log_archive_format arch_%t_%s_%r.dbf
log_buffer 30571520
open_cursors 300
pga_aggregate_target 524288000
processes 2000
remote_login_passwordfile EXCLUSIVE
sessions 2205
sga_max_size 3758096384
sga_target 3758096384
transactions 7507
undo_management AUTO
undo_tablespace UNDOTBS1
user_dump_dest /rdbms/oracle/apple22i/64/admin/o
-------------------------------------------------------------Process Memory Summary Stats DB/Inst: apple22A/apple22a Snaps: 2147-2151
-> B: Begin snap E: End snap
-> All rows below contain absolute values (i.e. not diffed over the interval)
-> Max Alloc is Maximum PGA Allocation size at snapshot time
Hist Max Alloc is the Historical Max Allocation for still-connected processes
-> Num Procs or Allocs: For Begin/End snapshot lines, it is the number of
processes. For Category lines, it is the number of allocations
-> ordered by Begin/End snapshot, Alloc (MB) desc
Hist Num
Avg Std Dev Max Max Procs
Alloc Used Freeabl Alloc Alloc Alloc Alloc or
Category (MB) (MB) (MB) (MB) (MB) (MB) (MB) Allocs
B -------- 192.0 95.1 8.8 2.0 6.4 51 55 97
Other 179.0 1.8 6.3 50 54 97
Freeable 8.8 .0 .8 .6 2 11
PL/SQL 2.7 1.4 .0 .0 0 0 95
SQL 2.0 1.0 .0 .0 0 2 58
E -------- 311.2 166.7 11.3 1.4 4.3 52 55 220
Other 284.0 1.3 4.1 49 52 220
Freeable 11.4 .0 1.0 1.0 3 11
PL/SQL 10.0 5.4 .0 .0 0 0 218
SQL 5.8 2.8 .0 .0 0 2 208
Top Process Memory (by component) DB/Inst: apple22A/apple22a Snaps: 2147-2151
-> ordered by Begin/End snapshot, Alloc (MB) desc
Alloc Used Freeabl Max Hist Max
PId Category (MB) (MB) (MB) Alloc (MB) Alloc (MB)
B 5 DBW0 -------- 51.3 22.5 1.0 51.3 54.8
Other 50.3 50.3 53.8
Freeable 1.0 .0 1.0
PL/SQL .0 .0 .0 .0
6 LGWR -------- 24.7 11.7 .1 24.7 25.5
Other 24.5 24.5 25.4
Freeable .1 .0 .1
PL/SQL .0 .0 .0 .0
16 ARC0 -------- 21.9 10.3 .0 21.9 21.9
Other 21.9 21.9 21.9
PL/SQL .0 .0 .0 .0
17 ARC1 -------- 21.9 10.3 .0 21.9 21.9
Other 21.9 21.9 21.9
PL/SQL .0 .0 .0 .0
54 TNS V1-V3 --- 4.4 1.3 1.7 4.4 4.4
Other 2.6 2.6 2.6
Freeable 1.7 .0 1.7
SQL .2 .1 .2 2.3
PL/SQL .0 .0 .0 .0
11 MMON -------- 3.5 1.6 1.3 3.5 3.6
Other 2.1 2.1 2.1
Freeable 1.3 .0 1.3
SQL .1 .0 .1 1.1
PL/SQL .0 .0 .0 .1
8 SMON -------- 2.8 .7 1.9 2.8 2.8
Freeable 1.9 .0 1.9
Other .8 .8 .8
SQL .1 .0 .1 .6
PL/SQL .0 .0 .0 .0
10 CJQ0 -------- 1.6 .6 .8 1.6 1.7
Freeable .8 .0 .8
Other .7 .7 .7
SQL .1 .0 .1 .6
PL/SQL .0 .0 .0 .0
20 q000 -------- 1.6 .7 .2 1.6 1.6
Other 1.3 1.3 1.3
Freeable .2 .0 .2
SQL .1 .1 .1 .5
PL/SQL .0 .0 .0 .0
24 ------------ 1.6 .6 .3 1.6 1.6
Other 1.2 1.2 1.2
Freeable .3 .0 .3
SQL .1 .0 .1 .6
PL/SQL .1 .0 .1 .1
7 CKPT -------- 1.4 .4 .8 1.4 2.3
Freeable .8 .0 .8
Other .6 .6 1.4
SQL .0 .0 .0 .1
PL/SQL .0 .0 .0 .0
9 RECO -------- 1.2 .5 .6 1.2 1.2
Freeable .6 .0 .6
Other .5 .5 .5
SQL .1 .1 .1 .5
Top Process Memory (by component) DB/Inst: apple22A/apple22a Snaps: 2147-2151
-> ordered by Begin/End snapshot, Alloc (MB) desc
Alloc Used Freeabl Max Hist Max
PId Category (MB) (MB) (MB) Alloc (MB) Alloc (MB)
B 9 PL/SQL .0 .0 .0 .0
21 ------------ 1.1 .5 .0 1.1 1.1
Other 1.0 1.0 1.0
PL/SQL .0 .0 .0 .0
SQL .0 .0 .0 .2
31 ------------ 1.1 .6 .1 1.1 1.1
Other .9 .9 .9
SQL .1 .0 .1 .2
Freeable .1 .0 .1
PL/SQL .1 .0 .1 .1
E 5 DBW0 -------- 52.4 23.4 3.3 52.4 54.8
Other 49.2 49.2 51.5
Freeable 3.3 .0 3.3
PL/SQL .0 .0 .0 .0
6 LGWR -------- 24.7 11.7 .1 24.7 25.5
Other 24.5 24.5 25.4
Freeable .1 .0 .1
PL/SQL .0 .0 .0 .0
16 ARC0 -------- 21.9 10.3 .0 21.9 21.9
Other 21.9 21.9 21.9
PL/SQL .0 .0 .0 .0
17 ARC1 -------- 21.9 10.3 .0 21.9 21.9
Other 21.9 21.9 21.9
PL/SQL .0 .0 .0 .0
54 TNS V1-V3 --- 4.6 1.3 1.9 4.6 4.6
Other 2.4 2.4 2.4
Freeable 2.1 .0 2.1
SQL .1 .1 .1 2.5
PL/SQL .0 .0 .0 .0
11 MMON -------- 3.5 1.6 1.3 3.5 3.6
Other 2.1 2.1 2.1
Freeable 1.3 .0 1.3
SQL .1 .0 .1 1.1
PL/SQL .0 .0 .0 .1
8 SMON -------- 2.8 .7 1.8 2.8 2.8
Freeable 1.8 .0 1.8
Other 1.0 1.0 1.0
SQL .1 .0 .1 .6
PL/SQL .0 .0 .0 .0
10 CJQ0 -------- 1.6 .6 .8 1.6 1.7
Freeable .8 .0 .8
Other .7 .7 .7
SQL .1 .0 .1 .6
PL/SQL .0 .0 .0 .0
20 q000 -------- 1.6 .7 .2 1.6 1.6
Other 1.3 1.3 1.3
Freeable .2 .0 .2
SQL .1 .1 .1 .5
PL/SQL .0 .0 .0 .0
24 ------------ 1.6 .6 .6 1.6 1.6
Other .9 .9 .9
Freeable .6 .0 .6
SQL .1 .0 .1 .6
Top Process Memory (by component) DB/Inst: apple22A/apple22a Snaps: 2147-2151
-> ordered by Begin/End snapshot, Alloc (MB) desc
Alloc Used Freeabl Max Hist Max
PId Category (MB) (MB) (MB) Alloc (MB) Alloc (MB)
E 24 PL/SQL .1 .0 .1 .1
7 CKPT -------- 1.5 .4 .7 1.5 2.3
Other .8 .8 1.5
Freeable .7 .0 .7
SQL .0 .0 .0 .1
PL/SQL .0 .0 .0 .0
9 RECO -------- 1.2 .5 .6 1.2 1.2
Freeable .6 .0 .6
Other .5 .5 .5
SQL .1 .1 .1 .5
PL/SQL .0 .0 .0 .0
219 ------------ 1.2 .5 .0 1.2 1.2
Other 1.1 1.1 1.1
PL/SQL .0 .0 .0 .0
SQL .0 .0 .0 .2
21 ------------ 1.1 .5 .0 1.1 1.1
Other 1.0 1.0 1.0
PL/SQL .0 .0 .0 .0
SQL .0 .0 .0 .2
31 ------------ 1.1 .6 .1 1.1 1.1
Other .9 .9 .9
SQL .1 .0 .1 .2
Freeable .1 .0 .1
PL/SQL .1 .0 .1 .1
205 ------------ 1.1 .5 .0 1.1 1.1
Other 1.0 1.0 1.0
PL/SQL .1 .0 .1 .1
SQL .0 .0 .0 .1
27 ------------ 1.1 .5 .0 1.1 1.1
Other 1.0 1.0 1.0
PL/SQL .1 .0 .1 .1
SQL .0 .0 .0 .1
158 ------------ 1.1 .5 .0 1.1 1.1
Other 1.0 1.0 1.0
PL/SQL .1 .0 .1 .1
SQL .0 .0 .0 .1
172 ------------ 1.1 .5 .0 1.1 1.1
Other 1.0 1.0 1.0
PL/SQL .1 .0 .1 .1
SQL .0 .0 .0 .1
Enqueue activity DB/Inst: apple22A/apple22a Snaps: 2147-2151
-> only enqueues with waits are shown
-> Enqueue stats gathered prior to 10g should not be compared with 10g data
-> ordered by Wait Time desc, Waits desc
Enqueue Type (Request Reason)
Requests Succ Gets Failed Gets Waits Wt Time (s) Av Wt Time(ms)
TX-Transaction (row lock contention)
106,475 106,474 0 106,341 20,273 190.64
TX-Transaction (index contention)
44,355 44,355 0 44,319 2,784 62.81
TX-Transaction (allocate ITL entry)
184 184 0 182 9 46.81
HW-Segment High Water Mark
1,975 1,975 0 70 5 66.29
FB-Format Block
2,164 2,164 0 50 3 54.60
TX-Transaction
394,649 394,668 0 30 0 4.33
Undo Segment Summary DB/Inst: apple22A/apple22a Snaps: 2147-2151
-> Min/Max TR (mins) - Min and Max Tuned Retention (minutes)
-> STO - Snapshot Too Old count, OOS - Out Of Space count
-> Undo segment block stats:
uS - unexpired Stolen, uR - unexpired Released, uU - unexpired reUsed
eS - expired Stolen, eR - expired Released, eU - expired reUsed
Undo Num Undo Number of Max Qry Max Tx Min/Max STO/ uS/uR/uU/
TS# Blocks (K) Transactions Len (s) Concy TR (mins) OOS eS/eR/eU
1 117.7 322,423 49 73 15/15 0/0 0/0/0/0/0/0
Undo Segment Stats DB/Inst: apple22A/apple22a Snaps: 2147-2151
-> Most recent 35 Undostat rows, ordered by End Time desc
Num Undo Number of Max Qry Max Tx Tun Ret STO/ uS/uR/uU/
End Time Blocks Transactions Len (s) Concy (mins) OOS eS/eR/eU
17-Aug 03:40 117,733 322,423 49 73 15 0/0 0/0/0/0/0/0
Latch Activity DB/Inst: apple22A/apple22a Snaps: 2147-2151
->"Get Requests", "Pct Get Miss" and "Avg Slps/Miss" are statistics for
willing-to-wait latch get requests
->"NoWait Requests", "Pct NoWait Miss" are for no-wait latch get requests
->"Pct Misses" for both should be very close to 0.0
Pct Avg Wait Pct
Get Get Slps Time NoWait NoWait
Latch Requests Miss /Miss (s) Requests Miss
Consistent RBA 3,517 0.0 0 0
FAL request queue 11 0.0 0 0
FAL subheap alocation 11 0.0 0 0
FIB s.o chain latch 20 0.0 0 0
FOB s.o list latch 361 0.0 0 0
JS mem alloc latch 2 0.0 0 0
JS queue access latch 2 0.0 0 0
JS queue state obj latch 3,706 0.0 0 0
JS slv state obj latch 16 0.0 0 0
KGX 0 0 353,668 6.5
KMG MMAN ready and start 636 0.0 0 0
KMG resize request state 27 33.3 1.0 0 0
KTF sga latch 2 0.0 0 165 0.0
KWQP Prop Status 4 0.0 0 0
MQL Tracking Latch 0 0 11 0.0
Memory Management Latch 660 0.2 0.0 0 624 0.0
OS process 294 0.0 0 0
OS process allocation 507 0.0 0 0
OS process: request allo 333 0.0 0 0
PL/SQL warning settings 270,940 0.3 0.0 0 0
SGA IO buffer pool latch 2,654 0.0 0 5,801 0.0
SQL memory manager latch 4 0.0 0 158 0.0
SQL memory manager worka 11,158 0.0 0 0
Shared B-Tree 29 0.0 0 0
active checkpoint queue 8,205 0.0 0 0
active service list 2,335 0.0 0.0 0 174 0.0
archive control 13 0.0 0 0
archive process latch 171 0.0 0 0
buffer pool 139 0.0 0 0
cache buffer handles 46,062 0.1 0.0 0 0
cache buffers chains 457,192,374 0.2 0.0 1082 3,785,637 0.6
cache buffers lru chain 447,547 0.5 0.3 8 90,454,746 2.6
cache table scan latch 0 0 11,447 0.0
cas latch 100 0.0 0 0
channel handle pool latc 333 0.0 0 0
channel operations paren 8,286 0.0 0 0
checkpoint queue latch 199,380 0.0 0.0 0 386,367 0.0
client/application info 1,208 0.0 0 0
compile environment latc 791,470 0.0 0.1 1 0
dml lock allocation 3,552,580 0.5 0.1 117 0
dummy allocation 336 0.3 0.0 0 0
enqueue hash chains 5,288,101 0.3 0.1 45 23,479 0.4
enqueues 1,120,394 0.1 0.1 2 0
event group latch 239 0.0 0 0
file cache latch 2,388 0.0 0 0
global KZLD latch for me 236 0.0 0 0
hash table column usage 0 0 4,564 0.0
hash table modification 30 0.0 0 0
job workq parent latch 0 0 4 0.0
job_queue_processes para 11 0.0 0 0
Latch Activity DB/Inst: apple22A/apple22a Snaps: 2147-2151
->"Get Requests", "Pct Get Miss" and "Avg Slps/Miss" are statistics for
willing-to-wait latch get requests
->"NoWait Requests", "Pct NoWait Miss" are for no-wait latch get requests
->"Pct Misses" for both should be very close to 0.0
Pct Avg Wait Pct
Get Get Slps Time NoWait NoWait
Latch Requests Miss /Miss (s) Requests Miss
kks stats 302 0.0 0 0
ksuosstats global area 58 0.0 0 0
ktm global data 270 0.0 0 0
kwqbsn:qsga 29 0.0 0 0
lgwr LWN SCN 3,520 0.0 0 0
library cache 19,899,407 0.4 0.0 199 16,683 ######
library cache load lock 1,030 0.0 0 63 0.0
library cache lock 17,688 0.2 0.0 0 0
library cache lock alloc 990 0.0 0 0
library cache pin 19,007,237 0.2 0.0 35 1,074 0.0
library cache pin alloca 681 0.0 0 0
list of block allocation 1,042 0.1 1.0 0 0
longop free list parent 8 0.0 0 16 12.5
messages 38,525 0.0 0.0 0 0
mostly latch-free SCN 2,543,316 0.1 0.0 0 0
multiblock read objects 30,207 0.0 1.0 0 0
ncodef allocation latch 8 0.0 0 0
object queue header heap 10 0.0 0 1,365 0.0
object queue header oper 1,198,162 0.1 0.1 0 0
object stats modificatio 832 0.0 0 0
parallel query alloc buf 64 0.0 0 0
parameter table allocati 116 1.7 0.5 0 0
post/wait queue 28,580 0.4 0.0 0 8,842 0.0
process allocation 333 0.0 0 239 0.0
process group creation 333 0.0 0 0
qmn state object latch 1 0.0 0 0
qmn task queue latch 124 0.0 0 0
redo allocation 22,668 2.0 0.2 1 9,366,319 0.5
redo copy 13 76.9 1.3 0 9,367,099 0.4
redo on-disk SCN 11,212 0.0 0 0
redo writing 23,270 0.0 0.0 0 0
resmgr group change latc 244 0.0 0 0
resmgr:actses active lis 347 0.0 0 0
resmgr:actses change gro 238 0.0 0 0
resmgr:free threads list 335 0.3 0.0 0 0
resmgr:schema config 12 0.0 0 0
rm cas latch 1,038 0.0 0 0
row cache objects 464,390 0.0 0.0 0 0
rules engine rule set st 400 0.0 0 0
sequence cache 752 0.0 0 0
session allocation 1,627,067 0.2 0.0 1 0
session idle bit 1,875,662 0.0 0.0 0 0
session state list latch 486 0.0 0 0
session switching 8 0.0 0 0
session timer 174 0.0 0 0
shared pool 58,091 0.3 0.3 1 0
simulator hash latch 32,009,012 0.0 0.0 0 0
simulator lru latch 20,996,297 4.9 0.0 1243 15,131 0.2
slave class 1 0.0 0 0
slave class create 3 0.0 0 0
Latch Activity DB/Inst: apple22A/apple22a Snaps: 2147-2151
->"Get Requests", "Pct Get Miss" and "Avg Slps/Miss" are statistics for
willing-to-wait latch get requests
->"NoWait Requests", "Pct NoWait Miss" are for no-wait latch get requests
->"Pct Misses" for both should be very close to 0.0
Pct Avg Wait Pct
Get Get Slps Time NoWait NoWait
Latch Requests Miss /Miss (s) Requests Miss
sort extent pool 100 0.0 0 0
threshold alerts latch 29 0.0 0 0
transaction allocation 965 0.0 0 0
transaction branch alloc 8 0.0 0 0
undo global data 24,845,984 0.2 0.0 20 0
user lock 658 4.4 0.9 1 0
Latch Sleep breakdown DB/Inst: apple22A/apple22a Snaps: 2147-2151
-> ordered by misses desc
Get Spin
Latch Name Requests Misses Sleeps Gets
simulator lru latch 20,996,297 1,020,829 20,140 1,003,339
cache buffers chains 457,192,374 1,016,828 24,247 994,418
library cache 19,899,407 86,387 3,201 83,529
undo global data 24,845,984 42,072 497 41,638
library cache pin 19,007,237 36,024 619 35,469
dml lock allocation 3,552,580 17,725 1,223 16,696
enqueue hash chains 5,288,101 14,754 1,086 13,773
simulator hash latch 32,009,012 7,219 54 7,171
session allocation 1,627,067 2,489 117 2,385
cache buffers lru chain 447,547 2,278 583 1,792
mostly latch-free SCN 2,543,316 1,814 14 1,802
enqueues 1,120,394 1,253 89 1,172
object queue header operat 1,198,162 1,010 52 965
PL/SQL warning settings 270,940 682 5 677
redo allocation 22,668 448 71 389
session idle bit 1,875,662 387 8 380
compile environment latch 791,470 176 12 165
shared pool 58,091 171 48 127
checkpoint queue latch 199,380 33 1 32
user lock 658 29 25 5
redo copy 13 10 13 0
KMG resize request state o 27 9 9 0
parameter table allocation 116 2 1 1
multiblock read objects 30,207 1 1 0
list of block allocation 1,042 1 1 0
-------------------------------------------------------------Edited by: praveenkumaar on Aug 18, 2009 4:07 AM -
RFC calls are taking too many work process -- system knock out
Hi,
I have an interface remote function, which is going to be called by a java program.
Data is going to be sent to the system, processed and sent back syncronous to the caller.
The calls are working on SAP tables, so I needed to lock and unlock the tables. The java program
is opening many parallell threads and starts them the same time.
That means, that the sap system is getting attacked by many rfc calls on the same function, with the
same user at the same time.
The system has in development 15 dialog work processes set up. If I run that with up to 15 parallell rfc calls, all is working ok!
Let me now explain the problem:
I have programmed the table lock, that it´s trying to lock the table at the beginning of the function.
If it´s not possible it tries it again. At first I have just inserted a one second wait and let that run maximum 3 times. If the table is still locked, it breaks down with an error.
But because the calls come nearly to exactly the same time to the system, the first call locks all others out, and the rest ran out of the 3 seconds and ended up with an error.
So I tried to build an endless loop, which is just ending, when the table could be locked again, or when the runtime of 5 seconds has reached. That means, it´s not waiting for a second, if the table is locked, but it´s trying again and again up to 5 seconds.
That is all ok, because sometime the table is free again and all calls are then processed alright.
BUT if I now run that with MORE than 15 rfc calls from the java program (15 dialog processes are set up), the system got knocked out! It is using all free work processes for the RFC calls and get stucked. I think, the first call is locking the table, and the got stopped by the system. And then all the others are running in the endless loop....
So, shouldn´t be there a limit for dialog processes taken by RFC calls? For example here for this user? In this case it should f.e. be set to 10 free processes with 5, which are reserved for other users...
Any advices?
The second is, how can I change the lock mechanism, that I don´t use an endless loop? Waiting for one second and doing that 3 times, is not good enough... Because all the rfc calls wait then for one second, up to 3 times, and end with an error....
Is it possible to wait for half seconds, or defined milli seconds?
Thank you for all advices!Hi,
What I have understood is you are trying to lock the table in a loop and just checking the duration by explicitly putting wait statement.
Hope you are NOT locking the entire table rather a particular record in each lock.
No need to use explicit wait statement rather its better to let SAP thinks when to lock the table T1 when its already locked by another work process. So just set the wait parameter for the Enqueue function module as 'X' and check how it behaves. Until the table is not unlocked the process will wait.
If you see the wait parameter for the Enqueue function module is not available then create your own lock object for the table and use that. Make sure its getting dequeued else you can understand better
Cheers
Somnath
Maybe you are looking for
-
Windows update error code 80246002
I have 4 PCs running Windows 7 (both 64 and 32 bit) and found that after the last update on Wednesday morning, all 4 are now getting a code 80246002 when I did a check for updates today. I tried uninstalling the latest updates and this did not help.
-
How can I lauch a PDF from a URL from within my Plug-In?
I have my plug-in working pretty good with the exception that I can not figure out how to launch a PDF using a URL. I am able to launch a PDF file from the file path, just not a URL. Any assistance is appreciated. Gregory
-
Hi anybody, Please tell me what is IDOC and ALE? What pupose using IDOC and ALE? Give me Example sample code of using IDOC and ALE. Thanks S.Muthu.
-
Oversaturated images on browser
I m using Lightroom 5 and I am looking for a function to export images to web (similar to the save for web function in photoshop). The exported images from lightroom are over saturated (e.g. very red) when viewed on a browser such as Firefox (no pro
-
FM/BAPI needed for transaction KP06
Hi folks, I need a BAPI/FM for posting using tcode KP06. I am using layout 1-102 Activity Input. I am passing data to cost center, sender cost center and sender activity type group . I need a BAPI to perform its posting which can be seen on the overv