Deadlock classification
I apologize for the length of this post. I am trying to develop a methodology for classifying deadlocks based on the profile in their trace file and to reliably recreate them. There are many gaps in my understanding and I would appreciate the considered advice of a deadlock specialist.
For background, please refer to Exhibit A: http://download-uk.oracle.com/docs/cd/B19306_01/server.102/b14220/consist.htm#i5704
In my experience, there are 3 main types of deadlock:
Deadlock Type 1. Classic deadlock
This is the textbook case of "bad application logic": two sessions requesting resources out of order. This type of deadlock only occurs on updates, never on inserts.
Sample trace file:
---------Blocker(s)-------- ---------Waiter(s)---------
Resource Name process session holds waits process session holds waits
TX-0001002c-00000ca4 18 146 X 20 158 X
TX-0003001b-00000f02 20 158 X 18 146 X
session 146: DID 0001-0012-0000070D session 158: DID 0001-0014-00000052
session 158: DID 0001-0014-00000052 session 146: DID 0001-0012-0000070D
Rows waited on:
Session 158: obj - rowid = 00010ABE - AAAQq+AAEAAAN8PAAA
(dictionary objn - 68286, file - 4, block - 57103, slot - 0)
Session 146: obj - rowid = 00010ABD - AAAQq9AAEAAAN8HAAA
(dictionary objn - 68285, file - 4, block - 57095, slot - 0)In plain English, the graph is saying,
Session 146 has an X lock on Resource A and is waiting for an X lock on Resource B.
Session 158 holds an X lock on Resource B and is waiting for an X lock on Resource A.
Questions:
* What is the meaning of the Resource Names (TX-0001002c-00000ca4 and TX-0003001b-00000f02)? Obviously these names refer to the tables being updated, but is the TX-* identifier something I can look up in the data dictionary somewhere?
* Likewise, what do the DID * identifiers refer to?
Steps to reproduce this kind of deadlock:
create table a(c int);
insert into a values(1);
insert into a values(2);
create table b as select * from a;
-- Session 1:
update a set c=2 where c=1;
-- Session 2:
update b set c=2 where c=1;
update a set c=2 where c=1;
-- (session 2 hangs at this point)
-- Session 1:
update b set c=2 where c=1;
-- (session 2 deadlocks at this point)
Deadlock Type 2. DML on a bitmap index
Frequent inserts and updates on a table with a bitmap index are resource intensive and can also cause deadlocks because as the index is being updated it places a lock on the rows that are associated with the index branch it is updating. If the transaction does not commit quickly enough, there can be time for another session to pop in and try to lock the same resources. This kind of deadlock can occur on both updates AND inserts.
Sample trace file:
---------Blocker(s)-------- ---------Waiter(s)---------
Resource Name process session holds waits process session holds waits
TX-001d0004-000076fc 22 31 X 21 39 S
TX-001e0050-00007700 21 39 X 22 31 S
session 31: DID 0001-0016-00000002 session 39: DID 0001-0015-00000002
session 39: DID 0001-0015-00000002 session 31: DID 0001-0016-00000002
Rows waited on:
Session 39: obj - rowid = 00036241 - AAA2JBAAEAAAKAKAAA
Session 31: no rowNow, instead of waiting to obtain X-locks, the blocked sessions are waiting for S-locks.
Questions:
* S (share-table) locks lock the entire table (according to table 13-3 in Exhibit A). However, I have read that when a bitmap index is updated, it only locks the rows affiliated with that index entry, not the entire table. Can someone explain this apparent discrepancy?
* In the Rows waited on section, sometimes I see "no row" for both sessions and I don't understand why. I guess I need a common-sense explanation of what is going on at the index level in the case of bitmap index updates.
Steps to recreate:
create table a(c int);
create bitmap index BI_A on a(c);
insert into a values(1);
insert into a values(2);
commit;
-- Session 1:
insert into a values(1);
-- Session 2:
insert into a values(2);
-- Session 1:
insert into a values(2);
-- (session 1 hangs)
-- Session 2:
insert into a values(1);
-- (deadlock in session 1)
Deadlock Type 3. Unindexed foreign key
This one is harder for me to understand. Suppose you have a parent and child table: If you were to update the child's foreign key, and there is no index on that column, then the whole of the parent table is locked for the duration of the update. (Question: is this correct? the whole table is locked?) Therefore if the transaction runs long enough, there is a chance another session will try to lock the same resources and cause deadlock. This kind of deadlock only occurs on updates of the foreign key, never on inserts.
Sample trace file:
I have never knowingly seen a trace file for this kind of deadlock so I'm not sure what the graph would look like. Can anyone fill me in here?
Steps to recreate:
Again, I am unsure how to consistently recreate this kind of deadlock. This is as far as I get:
create table p (p_id int primary key);
create table c (c_id int primary key, p_id int);
alter table c add constraint fk_c_p foreign key(p_id)
references p (p_id) enable;
insert into p values(1);
insert into p values(2);
insert into c values(1,1);
insert into c values(2,2);
insert into c values(3,1);
insert into c values(4,2);
-- Session 1:
update c set p_id=1 where p_id=2;
-- Session 2:
update c set p_id=1 where p_id=2;
-- (session 2 hangs)However, I am unable to induce a deadlock in Session 2, so I cannot see the trace file lock graph created by this kind of deadlock. Can anyone make a suggestion?
Thanks; I appreciate any help that is offered.
Well, consider what happens when a deadlock occurs. (Assume the simple case of two sessions deadlocking on each other.) Both are waiters and blockers. That's the definition of a deadlock.
After three seconds, the deadlock is detected, and one of the sessions catches an ORA-00060.
Now, when that happens, the session that did not catch the error is still a blocker and a waiter.
The other session, which caught the ORA-00060, is a blocker, but is no longer waiting.
So, the deadlock situation does not last more than three seconds. There is no need for you to worry about finding and freeing them. Oracle will do that much for you. Your time is best spent trying to understand the root cause, and how to avoid the deadlock in the first place. If you need to, you can code your application to do something when it sees ORA-00060, say, rollback and restart the transaction.
Hope that helps,
-Mark
Similar Messages
-
Error-Code: ora-4020 Deadlock error, while updating a record
Hello!
Is it possible to get a deadlock error when two or more users try to update the same record simultaneously? And what would be the best solution to circumvent this?
Thanks
Your help is appreciated.<BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by ( vidya):
Hello Vidhya,
Issue either Commit or Rollback without much delay once the statement(s) is/are executed.
vmkrish
[email protected]
Is it possible to get a deadlock error when two or more users try to update the same record simultaneously? And what would be the best solution to circumvent this?
Thanks
Your help is appreciated.<HR></BLOCKQUOTE>
null -
No key field found for creation of DataSource - Classification Datasource
Hello,
While trying to create a clasiffication datasource based on 0PLANT_ATTR, when i assign a characteristic and push the DataSource button, i get the following message:
No key field found for creation of DataSource
Diagnosis
During generation of a classification or configuration DataSource, only those key fields for the object table (field "Obj.Tabelle") that are already present in the basis DataSource transferred to the extract structure. This is the case when none of the key fields of the object table were found in the structure of the basis DataSource.
System response
A DataSource cannot be created without key fields. The action was cancelled.
Procedure
Check whether you have selected the correct basis DataSource and object table. For more information, please see SAP Note 569849.
Do you know what can be the problem?
Thank you and regardsHi Alberto,
plants are a special case. The key which is used for the classification
of plants (object type BETR) is not the same as the key which is used in
datasource 0PLANT_ATTR.
BETR has key LOCNR (Site). That's a customer related to a plant. The
customer number will be extracted in field LOCNR.
0PLANT_ATTR extracts the plant in its key field WERKS.
Transaction CTBW and the generic extraction program for classifications
don't know the relationship between LOCNR and WERKS. So they cannot map
them.
I do recommend a solution which would add the mapping between
LOCNR and WERKS:
1. Create please the classification datasource as intended, but use
datasource 0RT_LOC_MGR_ATTR as basis datasource. It's the only
datasource of the content where LOCNR is a key field. So
0RT_LOC_MGR_ATTR is used as a dummy here, to allow transaction CTBW to
create the classification datasource. It's not necessary to extract
data with datasource 0RT_LOC_MGR_ATTR.
2. Extend please the extract structure of the created classification
datasource. Add please field WERKS using component type WERKS_D. Make
this field visible.
3. Fill field WERKS in the extractor user exit EXIT_SAPLRSAP_002. WERKS
can be read from table KNA1 by using the customer number extracted to
LOCNR to select on field KNA1-KUNNR.
4. Transaction CTBW_META on the BW system isn't able to append the
characteristics from the classification datasource to infosource
0PLANT, because the keys are different. So create please a new info
source with CTBW_META. This allows CTBW_META to create the info objects
for the characteristics used in the classification datasource.
5. Add please the characteristics used in the classification datasource
to infosource 0PLANT manually. You will find the info object names of
the characteristics by looking up the characteristic datasources which
are assigned to the classification datasource in transaction CTBW. From
these names you can derive the info object names:
1CL_A... -> C_A...
6. Disconnect the infosource which has been created with CTBW_META from
the classification datasource.
7. Connect please the classification datasource to infosource 0PLANT
Use following info object:
info object field
0PLANT WERKS
The info object names for the characteristics are explained in step 5.
8. Add an infopackage to infosource 0PLANT for the classification
datasource.
Now the extraction of classifications of sites should work.
Best regards,
Rolf
P.S. I saw the system messed it up and doesn't display any new and empty lines. Sorry, I hope you still can read it.
Edited by: Rolf Doersam on Mar 26, 2010 6:56 PM -
Copy of Material Master charac. values to the batch classif. in GR for PO
Dear gurus,
Could you please help me with the following issue. I have a material managed in batches, and it has a classification type 023 in material master. I fill one chaacteristic of this classification with some value. Now I want this value to be copied to the batch classification during the creation of new batch while making GR to production order.
Is it possible?Hi Nikolaj,
What I am understand your requirement is like,
You want to fetch the value of Characteristic maintain in Batch class in Material master to the Batches, correct?
But my Friend if you maintain value of characteristic in Batch Class in material master then it will works as a validation.
For Example,
Suppose your Characteristic is Colour and in Material Master Batch classification view you have maintain value as Red.Then system will not allow you any other colour in Batches.You will find that value in Drop Down list.
Regards,
Dhaval -
Creation of Classification View in Material Master
Hi,
I need to create Classification View for a Material. The user would provide the data in the file, example
Material Number MATNR
Class type TCLA-KLART
Class Type description TCLAT-ARTXT
Class Group TCLG-KLAGR
Class Group Description TCLGT-KTEXT
Class M_CLASB-CLASS
Class Description M_CLASB-CSCHG
Status RMCLF-STATU
Std class RMCLF-STDCL
Characteristics Group TCMG-ATKLA
Characteristics Group Description TCMGT-ATKLT
Characteristics RCTAV-ATNAM
Characteristics Description CABNT-ATBEZ
I read in the posts there is BAPI_OBJCL_CREATE. But I am not able to Map the above fields to pass to this BAPI.
Can someone please suggest me how to do this..
Thanks and Regards,
VanessaHi,
Thanks for the suggestion. But i want to do this through a program. There is a selection screen with 6 radio buttons based o view to be created and an input field for the filename.
Could you provide me any BAPI to do the same.
Thanks and Regards,
Vanessa -
Batch managment with classification
Hi,
I have material with batch and classification. Material master have base unit KG, but I need second unit PC or M and other parameters of material. (coefficient between KG and PC is not constant).
I give to classification attributes fields: quantity, length. width, ...
In goods receipt I input batch with classification (quantity, length. width, ...)
Where can I see batch balance with classification ?
Is possible recalculate attribute of classification quantity after goods issue or how I can manage balance of quantity?
thank
betoHi,
Once you fix the classification, i don't think you can recalculate the classification, what do you mean by batch balance?
Aktar -
ORA-00060: Deadlock detected
I getting error as "ORA-00060: Deadlock detected. More info in file /d01/oracle/VIS/db/tech_st/10.2.0/.................". Following are my observations on the occurence of this error.
The deadlock is encountered first time when trying to login to applications. I have R12 vision instance on linux.
Following the content of the alert_VIS.log file
Mon Jun 15 04:41:41 2009
Starting ORACLE instance (normal)
LICENSE_MAX_SESSION = 0
LICENSE_SESSIONS_WARNING = 0
Picked latch-free SCN scheme 3
Using LOG_ARCHIVE_DEST_1 parameter default value as /d01/oracle/VIS/db/tech_st/10.2.0/dbs/arch
Autotune of undo retention is turned on.
IMODE=BR
ILAT =44
LICENSE_MAX_USERS = 0
SYS auditing is disabled
ksdpec: called for event 13740 prior to event group initialization
Starting up ORACLE RDBMS Version: 10.2.0.3.0.
System parameters with non-default values:
tracefiles_public = TRUE
processes = 200
sessions = 400
timed_statistics = TRUE
shared_pool_size = 419430400
shared_pool_reserved_size= 41943040
nls_language = american
nls_territory = america
nls_sort = binary
nls_date_format = DD-MON-RR
nls_numeric_characters = .,
nls_comp = binary
nls_length_semantics = BYTE
sga_target = 1073741824
control_files = /d01/oracle/VIS/db/apps_st/data/cntrl01.dbf, /d01/oracle/VIS/db/apps_st/data/cntrl02.dbf, /d01/oracle/VIS/db/apps_st/data/cntrl03.dbf
db_block_checksum = TRUE
db_block_size = 8192
compatible = 10.2.0
log_buffer = 14251008
log_checkpoint_interval = 100000
log_checkpoint_timeout = 1200
db_files = 512
log_checkpoints_to_alert = TRUE
dml_locks = 10000
undo_management = AUTO
undo_tablespace = APPS_UNDOTS1
db_block_checking = FALSE
O7_DICTIONARY_ACCESSIBILITY= FALSE
session_cached_cursors = 500
utl_file_dir = /usr/tmp, /usr/tmp, /d01/oracle/VIS/db/tech_st/10.2.0/appsutil/outbound/VIS_oracleebsr12, /usr/tmp
plsql_native_library_dir = /d01/oracle/VIS/db/tech_st/10.2.0/plsql/nativelib
plsql_native_library_subdir_count= 149
plsql_code_type = native
plsql_optimize_level = 2
job_queue_processes = 2
systemtrig_enabled = TRUE
cursor_sharing = EXACT
parallel_min_servers = 0
parallel_max_servers = 8
background_dump_dest = /d01/oracle/VIS/db/tech_st/10.2.0/admin/VIS_oracleebsr12/bdump
user_dump_dest = /d01/oracle/VIS/db/tech_st/10.2.0/admin/VIS_oracleebsr12/udump
max_dump_file_size = 20480
core_dump_dest = /d01/oracle/VIS/db/tech_st/10.2.0/admin/VIS_oracleebsr12/cdump
db_name = VIS
open_cursors = 600
ifile = /d01/oracle/VIS/db/tech_st/10.2.0/dbs/VIS_oracleebsr12_ifile.ora
sortelimination_cost_ratio= 5
btree_bitmap_plans = FALSE
fastfull_scan_enabled = FALSE
sqlexecprogression_cost= 2147483647
likewith_bind_as_equality= TRUE
pga_aggregate_target = 1073741824
workarea_size_policy = AUTO
optimizer_secure_view_merging= FALSE
aq_tm_processes = 1
olap_page_pool_size = 4194304
Mon Jun 15 04:42:05 2009
WARNING:Oracle instance running on a system with low open file descriptor
limit. Tune your system to increase this limit to avoid
severe performance degradation.
PSP0 started with pid=3, OS id=6824
PMON started with pid=2, OS id=6822
MMAN started with pid=4, OS id=6826
DBW0 started with pid=5, OS id=6828
CKPT started with pid=7, OS id=6832
SMON started with pid=8, OS id=6834
RECO started with pid=9, OS id=6836
CJQ0 started with pid=10, OS id=6838
LGWR started with pid=6, OS id=6830
MMON started with pid=11, OS id=6840
MMNL started with pid=12, OS id=6842
Mon Jun 15 04:42:19 2009
ALTER DATABASE MOUNT
Mon Jun 15 04:42:25 2009
Setting recovery target incarnation to 2
Mon Jun 15 04:42:27 2009
Successful mount of redo thread 1, with mount id 243370348
Mon Jun 15 04:42:27 2009
Database mounted in Exclusive Mode
Completed: ALTER DATABASE MOUNT
Mon Jun 15 04:42:28 2009
ALTER DATABASE OPEN
Mon Jun 15 04:42:48 2009
Thread 1 opened at log sequence 16
Current log# 3 seq# 16 mem# 0: /d01/oracle/VIS/db/apps_st/data/log3.dbf
Successful open of redo thread 1
Mon Jun 15 04:42:48 2009
MTTR advisory is disabled because FAST_START_MTTR_TARGET is not set
Mon Jun 15 04:42:48 2009
SMON: enabling cache recovery
Mon Jun 15 04:42:48 2009
Incremental checkpoint up to RBA [0x10.a779.0], current log tail at RBA [0x10.a779.0]
Mon Jun 15 04:43:01 2009
Successfully onlined Undo Tablespace 18.
Mon Jun 15 04:43:01 2009
SMON: enabling tx recovery
Mon Jun 15 04:43:04 2009
Database Characterset is UTF8
Mon Jun 15 04:43:18 2009
replication_dependency_tracking turned off (no async multimaster replication found)
Mon Jun 15 04:43:44 2009
Starting background process QMNC
QMNC started with pid=14, OS id=6884
Mon Jun 15 04:46:48 2009
Completed: ALTER DATABASE OPEN
Mon Jun 15 05:03:23 2009
Incremental checkpoint up to RBA [0x10.b1bd.0], current log tail at RBA [0x10.b1f3.0]
Mon Jun 15 05:23:33 2009
Incremental checkpoint up to RBA [0x10.b5b3.0], current log tail at RBA [0x10.b5c2.0]
Mon Jun 15 05:45:12 2009
Incremental checkpoint up to RBA [0x10.b7b0.0], current log tail at RBA [0x10.fbce.0]
This is upto the point where all DB and application services has been started.
Once trying to login to applications following content got appended to the log file
Mon Jun 15 05:53:39 2009
ORA-00060: Deadlock detected. More info in file /d01/oracle/VIS/db/tech_st/10.2.0/admin/VIS_oracleebsr12/udump/vis_ora_8149.trc.
Mon Jun 15 05:53:51 2009
ORA-00060: Deadlock detected. More info in file /d01/oracle/VIS/db/tech_st/10.2.0/admin/VIS_oracleebsr12/udump/vis_ora_8149.trc.
Mon Jun 15 05:54:02 2009
ORA-00060: Deadlock detected. More info in file /d01/oracle/VIS/db/tech_st/10.2.0/admin/VIS_oracleebsr12/udump/vis_ora_8149.trc.
Mon Jun 15 05:54:12 2009
ORA-00060: Deadlock detected. More info in file /d01/oracle/VIS/db/tech_st/10.2.0/admin/VIS_oracleebsr12/udump/vis_ora_8149.trc.
Mon Jun 15 05:54:22 2009
ORA-00060: Deadlock detected. More info in file /d01/oracle/VIS/db/tech_st/10.2.0/admin/VIS_oracleebsr12/udump/vis_ora_8149.trc.
Mon Jun 15 05:54:28 2009
ORA-00060: Deadlock detected. More info in file /d01/oracle/VIS/db/tech_st/10.2.0/admin/VIS_oracleebsr12/udump/vis_ora_8149.trc.
Mon Jun 15 05:54:35 2009
ORA-00060: Deadlock detected. More info in file /d01/oracle/VIS/db/tech_st/10.2.0/admin/VIS_oracleebsr12/udump/vis_ora_8149.trc.
Mon Jun 15 05:54:42 2009
ORA-00060: Deadlock detected. More info in file /d01/oracle/VIS/db/tech_st/10.2.0/admin/VIS_oracleebsr12/udump/vis_ora_8149.trc.
Mon Jun 15 05:59:06 2009
Process J000 died, see its trace file
Mon Jun 15 05:59:11 2009
kkjcre1p: unable to spawn jobq slave process
Mon Jun 15 05:59:11 2009
Errors in file /d01/oracle/VIS/db/tech_st/10.2.0/admin/VIS_oracleebsr12/bdump/vis_cjq0_6838.trc:
Mon Jun 15 05:59:23 2009
Process J000 died, see its trace file
Mon Jun 15 05:59:24 2009
kkjcre1p: unable to spawn jobq slave process
Mon Jun 15 05:59:24 2009
Errors in file /d01/oracle/VIS/db/tech_st/10.2.0/admin/VIS_oracleebsr12/bdump/vis_cjq0_6838.trc:
Mon Jun 15 05:59:50 2009
Process J000 died, see its trace file
Mon Jun 15 05:59:50 2009
kkjcre1p: unable to spawn jobq slave process
Mon Jun 15 05:59:50 2009
Errors in file /d01/oracle/VIS/db/tech_st/10.2.0/admin/VIS_oracleebsr12/bdump/vis_cjq0_6838.trc:
I did the TKPROF on .trc files but the tkprof file does not show any details as such except similar to :- (don't know if I am missing anything while issuing TKPROF as $ tkprof filename.trc
filename.txt explain=apps/apps)
TKPROF: Release 10.2.0.3.0 - Production on Mon Jun 15 06:07:14 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Trace file: /d01/oracle/VIS/db/tech_st/10.2.0/admin/VIS_oracleebsr12/bdump/vis_cjq0_6838.trc
Sort options: default
count = number of times OCI procedure was executed
cpu = cpu time in seconds executing
elapsed = elapsed time in seconds executing
disk = number of physical reads of buffers from disk
query = number of buffers gotten for consistent read
current = number of buffers gotten in current mode (usually for update)
rows = number of rows processed by the fetch or execute call
0 statements EXPLAINed in this session.
Trace file: /d01/oracle/VIS/db/tech_st/10.2.0/admin/VIS_oracleebsr12/bdump/vis_cjq0_6838.trc
Trace file compatibility: 10.01.00
Sort options: default
1 session in tracefile.
0 user SQL statements in trace file.
0 internal SQL statements in trace file.
0 SQL statements in trace file.
0 unique SQL statements in trace file.
22 lines in trace file.
0 elapsed seconds in trace file.
Yesterday, I did login to applications after multiple attempts and tried submitting a concurrent request of a standard report (after resolving the data block corrupt issue) and got the same ORA-00060 Error.
I have a fresh VISION R12 (12.0.4) installed without any customizations. My installation looks to be quite unstable, takes 2-3 attempts for successful login to apps.
Can you please give any clues on this and how to overcome the problem?
Thanks,
AmitI have run cmclean.sql as per :- Re: R12 Vision install - Unable to submit concurrent request
This is the only change made. No new patches etc. Before running cmclean.sql I believe the instance was working fine.
Now everytime I start the application services, its causing ORA=00060: Deadlock error. There are no issues with just DB services up and running.
And after apps services up, when trying to Login to apps it just hangs, get error as follows:
Tue Jun 23 02:04:55 2009
Process J001 died, see its trace file
Tue Jun 23 02:04:55 2009
kkjcre1p: unable to spawn jobq slave process
Tue Jun 23 02:04:55 2009
Errors in file /d01/oracle/VIS/db/tech_st/10.2.0/admin/VIS_oracleebsr12/bdump/vis_cjq0_6747.trc:
Tue Jun 23 02:05:04 2009
Process q002 died, see its trace file
Tue Jun 23 02:05:04 2009
ksvcreate: Process(q002) creation failed
Tue Jun 23 02:05:55 2009
Process J000 died, see its trace file
Tue Jun 23 02:05:55 2009
kkjcre1p: unable to spawn jobq slave process
Tue Jun 23 02:05:55 2009
Errors in file /d01/oracle/VIS/db/tech_st/10.2.0/admin/VIS_oracleebsr12/bdump/vis_cjq0_6747.trc:
Tue Jun 23 02:06:11 2009
Process J000 died, see its trace file
Tue Jun 23 02:06:11 2009
kkjcre1p: unable to spawn jobq slave process
Tue Jun 23 02:06:11 2009
Errors in file /d01/oracle/VIS/db/tech_st/10.2.0/admin/VIS_oracleebsr12/bdump/vis_cjq0_6747.trc:
Tue Jun 23 02:08:51 2009
Process J000 died, see its trace file
Tue Jun 23 02:08:52 2009
kkjcre1p: unable to spawn jobq slave process
Tue Jun 23 02:08:52 2009
Errors in file /d01/oracle/VIS/db/tech_st/10.2.0/admin/VIS_oracleebsr12/bdump/vis_cjq0_6747.trc:
The OS also hangs (Linux) and I have to exit abnormally everytime which is frustrating.
I am not sure the reason for the same. I have gone through the metalink notes pointed which says to install the health check engine.
Do you have any clues based on above information as to what might be causing this problem.
I have 4 GB RAM installed on my Windows and 2 GB has been allocated to Linux on VMware.
Please let me know if I need to upgrade the memory.
Any pointers would be really helpful.
Thanks,
Amit -
Classification of IFLOT & EQUI via CLB2 / CLB1
Hi all,
I've used CLB2 to mass populate & update classifications assigned to functional locations & equipments. This has worked well to date.
However, I am now attempting to improve processing performance. While reviewing available functionality, I noted the availability of CLB1 to generate batch input sessions from the logical filename provided & supports essentially the same input file.
Experimentation proves that this transaction is essentially completely unsuitable for general use any longer since it applies the batch input sessions against transactions CL20 & CL22 which are no longer used.
Assuming I have 800,000 updates to apply, is there a standard mechanism other than CLB2, where I configure additional logical filenames to allow streaming the updates in the background.
regards
DanielHi Daniel,
Asumming you are trying to update classification data for IS-U type functional locations and devices, you can update classification data for these using ISMW - migration object OBJCLASS. Although I think this object would work for non-ISU FLs and Equipments too.
Wherein, below fields can be defaulted depending if you are updating classification for FL or DEVICES.
HEADER-OBJECT_TYPE = "IFLOT" or "EQUI".
DATA-FIELD = TPLNR or EQUNR
Other structures and fields are self explanatory. But feel free to ask follow up clarification.
ALternately, LSMW also provides for a standard BI object (0130 classification) that may be utilized as well. Although I have not used LSMW object but have used the ISMW OBJCLASS.
Hope this helps.
Ash -
Automatic batch classification with procedure on goods receipt does not wor
Hi,
I have a material with batch classification.
The material has two characteristics.
One is a number called VALUE.
The other is also a number (called CONVERSION) and shall be deived from the first.
A procedure is created and assigned to the second characteristic.
$SET_DEFAULT ($SELF, CONVERSION , $SELF.VALUE / 6000)
When I post a goods receive (movement Type 501) the characteristics can be filled . The field VALUE is set with 12000.
I was expecting the characteristic CONVERSION to be calculated as '2' and filled by the procedure.
This is not the case.
If however, I try to fill it manually, the system accepts only the calculated value '2'. Otherwise an error is shown.
How can I force the system to calculate and fill the second characteristic when insserting a value in the first ?
Thanks for any help.Hi Marcus,
i have the same problem with movement type 101.
How did you solve this issue?
Can you help me.
Thank you.
CM -
Hi All,
<br/>
<br/>We are now facing some problems on our smartform printing programs, sometimes some of the smartform programs look getting stuck, from SM50, the processing time is endless, and from the detailed tracing log, there are repeated messages like below for every ONE MINUTE:
<br/>I WARNING: MtxLock 0x70000000636197c rrol0046 owner=33 deadlock ?
<br/>
<br/>I've searched the forum and also did google and SAP notes but can not get useful information match with my error, so could anyone please help to analyse what exact cause of this problem? Any suggestions is highly appreciated.
<br/>
<br/>The smartform program itself is simple and correct, just has one header and several items and uses normal SSF_FUNCTION_MODULE_NAME and CALL FNAME to do the print work, in most of time it works correct, but sometimes it just has problem and then the deadlock error occurred. I guess maybe it's because user tried to print too fast than the capability of the printer and then user canceled the job, then in some situations, the upcoming printing jobs get blocked and then get stuck, but it's just a guess, i've no proof to identify it.
<br/>
<br/>Here I attached the full trace log, hope someone could give me a idea, thank you very much!
<br/>
<br/>----
<br/>trc file: "dev_w38", trc level: 1, release: "701"
<br/>----
<br/>M Thu Dec 9 14:03:55 2010
<br/>M db_connect o.k.
<br/>M ICT: exclude compression: .zip,.cs,.rar,.arj,.z,.gz,.tar,.lzh,.cab,.hqx,.ace,.jar,.ear,.war,.css,.pdf,.js,.gzip
<br/>I MtxInit: 38 0 0
<br/>M SHM_PRES_BUF (addr: 0x700001050000000, size: 44000000)
<br/>M SHM_ROLL_AREA (addr: 0x700001060000000, size: 536870912)
<br/>M SHM_PAGING_AREA (addr: 0x700001080000000, size: 536870912)
<br/>M SHM_ROLL_ADM (addr: 0x700000006221000, size: 5506336)
<br/>M SHM_PAGING_ADM (addr: 0x7000010a0000000, size: 1311776)
<br/>M ThCreateNoBuffer allocated 544152 bytes for 1000 entries at 0x7000010b0002000
<br/>M ThCreateNoBuffer index size: 3000 elems
<br/>M ThCreateVBAdm allocated 11776 bytes (50 server) at 0x7000010d0000000
<br/>X EmInit: MmSetImplementation( 2 ).
<br/>X MM global diagnostic options set: 0
<br/>X EM/TOTAL_SIZE_MB = 262144
<br/>X mm.dump: set maximum dump mem to 96 MB
<br/>M Deactivate statistics hyper index locking
<br/>I *** INFO Shm 44 in Pool 40 18928 KB estimated 14500 KB real ( -4427 KB -24 %)
<br/>I *** INFO Shm 45 in Pool 40 12928 KB estimated 8500 KB real ( -4427 KB -35 %)
<br/>B dbntab: NTAB buffers attached
<br/>B dbntab: Buffer FTAB(hash header) (addr: 0x7000010b0088088, size: 584)
<br/>B dbntab: Buffer FTAB(anchor array) (addr: 0x7000010b00882d0, size: 1280008)
<br/>B dbntab: Buffer FTAB(item array) (addr: 0x7000010b01c0ad8, size: 5120000)
<br/>B dbntab: Buffer FTAB(data area) (addr: 0x7000010b06a2ad8, size: 122880000)
<br/>B dbntab: Buffer IREC(hash header) (addr: 0x7000010b7bd4088, size: 584)
<br/>B dbntab: Buffer IREC(anchor array) (addr: 0x7000010b7bd42d0, size: 1280008)
<br/>B dbntab: Buffer IREC(item array) (addr: 0x7000010b7d0cad8, size: 1280000)
<br/>B dbntab: Buffer IREC(data area) (addr: 0x7000010b7e452d8, size: 12288000)
<br/>B dbntab: Buffer STAB(hash header) (addr: 0x7000010b89ff088, size: 584)
<br/>B dbntab: Buffer STAB(anchor array) (addr: 0x7000010b89ff2d0, size: 1280008)
<br/>B dbntab: Buffer STAB(item array) (addr: 0x7000010b8b37ad8, size: 1280000)
<br/>B dbntab: Buffer STAB(data area) (addr: 0x7000010b8c702d8, size: 6144000)
<br/>B dbntab: Buffer TTAB(hash header) (addr: 0x7000010b924e088, size: 6720)
<br/>B dbntab: Buffer TTAB(anchor array) (addr: 0x7000010b924fac8, size: 1280008)
<br/>B dbntab: Buffer TTAB(item array) (addr: 0x7000010b93882d0, size: 3200000)
<br/>B dbntab: Buffer TTAB(data area) (addr: 0x7000010b96956d0, size: 23360000)
<br/>B db_con_shm_ini: WP_ID = 38, WP_CNT = 59, CON_ID = -1
<br/>B dbstat: TABSTAT buffer attached (addr: 0x7000010f002d2d0)
<br/>B dbtbxbuf: Buffer TABL (addr: 0x700001100000100, size: 180000000, end: 0x70000110aba9600)
<br/>B dbtbxbuf: Buffer TABLP (addr: 0x700000006763100, size: 20480000, end: 0x700000007aeb100)
<br/>B dbexpbuf: Buffer EIBUF (addr: 0x700000007aec108, size: 67108864, end: 0x70000000baec108)
<br/>B dbexpbuf: Buffer ESM (addr: 0x700001110000108, size: 4194304, end: 0x700001110400108)
<br/>B dbexpbuf: Buffer CUA (addr: 0x7000010bace2108, size: 18432000, end: 0x7000010bbe76108)
<br/>B dbexpbuf: Buffer OTR (addr: 0x700001120000108, size: 4194304, end: 0x700001120400108)
<br/>B dbcalbuf: Buffer CALE (addr: 0x70000000baee000, size: 500000, end: 0x70000000bb68120)
<br/>M CCMS: AlInitGlobals : alert/use_sema_lock = TRUE.
<br/>S *** init spool environment
<br/>S TSPEVJOB updates inside critical section: event_update_nocsec = 0
<br/>S initialize debug system
<br/>T Stack direction is downwards.
<br/>T debug control: prepare exclude for printer trace
<br/>T new memory block 0x114388060
<br/>S spool kernel/ddic check: Ok
<br/>S using table TSP02FX for frontend printing
<br/>S 1 spool work process(es) found
<br/>S frontend print via spool service enabled
<br/>S printer list size is 150
<br/>S printer type list size is 50
<br/>S queue size (profile) = 300
<br/>S hostspool list size = 3000
<br/>S option list size is 30
<br/>I *** INFO Shm 49 in Pool 40 2898 KB estimated 1632 KB real ( -1266 KB -44 %)
<br/>S found processing queue enabled
<br/>S found spool memory service RSPO-RCLOCKS at 0x7000010bbe77070
<br/>S doing lock recovery
<br/>S setting server cache root
<br/>S found spool memory service RSPO-SERVERCACHE at 0x7000010bbe78160
<br/>S using messages for server info
<br/>S size of spec char cache entry: 297032 bytes (timeout 100 sec)
<br/>S size of open spool request entry: 2512 bytes
<br/>S immediate print option for implicitely closed spool requests is disabled
<br/>A **GENER Trace switched on ***
<br/>A
<br/>A -PXA--
<br/>A PXA INITIALIZATION
<br/>A PXA: Locked PXA-Semaphore.
<br/>A System page size: 4kb, total admin_size: 237304kb, dir_size: 58960kb.
<br/>A Attached to PXA (address 0x700001130000000, size 3000000K, 4 fragments of 690676K )
<br/>A
<br/>A Thu Dec 9 14:03:59 2010
<br/>A abap/pxa = shared unprotect gen_remote
<br/>A PXA INITIALIZATION FINISHED
<br/>A -PXA--
<br/>A
<br/>A ABAP ShmAdm attached (addr=0x700000f4046c000 leng=20955136 end=0x700000f41868000)
<br/>A >> Shm MMADM area (addr=0x700000f40915418 leng=247168 end=0x700000f40951998)
<br/>A >> Shm MMDAT area (addr=0x700000f40952000 leng=15818752 end=0x700000f41868000)
<br/>A RFC rfc/signon_error_log = -1
<br/>A RFC rfc/dump_connection_info = 0
<br/>A RFC rfc/dump_client_info = 0
<br/>A RFC rfc/cp_convert/ignore_error = 1
<br/>A RFC rfc/cp_convert/conversion_char = 23
<br/>A RFC rfc/wan_compress/threshold = 251
<br/>A RFC rfc/recorder_pcs not set, use defaule value: 2
<br/>A RFC rfc/delta_trc_level not set, use default value: 0
<br/>A RFC rfc/no_uuid_check not set, use default value: 0
<br/>A RFC rfc/bc_ignore_thcmaccp_retcode not set, use default value: 0
<br/>A RFC Method> initialize RemObjDriver for ABAP Objects
<br/>M ThrCreateShObjects allocated 122630 bytes at 0x70000000c124000
<br/>N SsfSapSecin: putenv(SECUDIR=/usr/sap/PRD/DVEBMGS00/sec): ok
<br/>N
<br/>N =================================================
<br/>N === SSF INITIALIZATION:
<br/>N ===...SSF Security Toolkit name SAPSECULIB .
<br/>N ===...SSF library is /usr/sap/PRD/DVEBMGS00/exe/libsapcrypto.o .
<br/>N ===...SSF default hash algorithm is SHA1 .
<br/>N ===...SSF default symmetric encryption algorithm is DES-CBC .
<br/>N ===...SECUDIR="/usr/sap/PRD/DVEBMGS00/sec"
<br/>N ===...loading of Security Toolkit successfully completed.
<br/>N === SAPCRYPTOLIB 5.5.5C pl29 (Jan 30 2010) MT-safe
<br/>N =================================================
<br/>N MskiInitLogonTicketCacheHandle: Logon Ticket cache pointer retrieved from shared memory.
<br/>N MskiInitLogonTicketCacheHandle: Workprocess runs with Logon Ticket cache.
<br/>M JrfcVmcRegisterNativesDriver o.k.
<br/>W =================================================
<br/>W === ipl_Init() called
<br/>B dbtran INFO (init_connection '<DEFAULT>' [ORACLE:700.08]):
<br/>B max_blocking_factor = 5, max_in_blocking_factor = 5,
<br/>B min_blocking_factor = 5, min_in_blocking_factor = 5,
<br/>B prefer_union_all = 0, prefer_join = 0,
<br/>B prefer_fix_blocking = 0, prefer_in_itab_opt = 1,
<br/>B convert AVG = 0, alias table FUPD = 0,
<br/>B escape_as_literal = 1, opt GE LE to BETWEEN = 0,
<br/>B select * =0x0f, character encoding = STD / <none>:-,
<br/>B use_hints = abap->1, dbif->0x1, upto->2147483647, rule_in->0,
<br/>B rule_fae->0, concat_fae->0, concat_fae_or->0
<br/>W ITS Plugin: Path dw_gui
<br/>W ITS Plugin: Description ITS Plugin - ITS rendering DLL
<br/>W ITS Plugin: sizeof(SAP_UC) 2
<br/>W ITS Plugin: Release: 701, [7010.0.97.20020600]
<br/>W ITS Plugin: Int.version, [33]
<br/>W ITS Plugin: Feature set: [22]
<br/>W ===... Calling itsp_Init in external dll ===>
<br/>W PpioRecoverLocks, table: 0x700000f418f2778
<br/>W PpioRecoverLocks, number of file locks 256
<br/>W PpioRecoverLocks: file lock set to: (nil)
<br/>W PpioRecoverLocks: directory lock set to: (nil)
<br/>W PpioRecoverLocks: global lock set to: (nil)
<br/>W PpioRecoverLocks() done
<br/>W PprcRecoverLocks, table: 0x700000f418f27e8
<br/>W PprcRecoverLocks: directory lock set to: (nil)
<br/>W PprcRecoverLocks() done
<br/>W === ipl_Init() returns 0, ITSPE_OK: OK
<br/>W =================================================
<br/>N VSI: WP init in ABAP VM completed with rc=0
<br/>E Profile-Parameter: enque/deque_wait_answer = FALSE
<br/>E Profile-Parameter: enque/sync_dequeall = 0
<br/>E EnqId_SuppressIpc: local EnqId initialization o.k.
<br/>E EnqCcInitialize: local enqueue client init o.k.
<br/>M ThCheckPrevUser: previous user was T78/M0, clean counter 0
<br/>M ThCheckPrevUser: clean previous user T78/U26013/M0/I2/V-1
<br/>M
<br/>M Modeinfo for User T78/M0
<br/>M
<br/>M tm state = 4
<br/>M uid = 26013
<br/>M term type = 0x4
<br/>M display = 0x8
<br/>M cpic_no = 0
<br/>M cpic_idx = -1
<br/>M usr = >8000199 <
<br/>M terminal = >ceegsap20 <
<br/>M client = >800<
<br/>M conversation_ID = > <
<br/>M appc_tm_conv_idx = -1
<br/>M its_plugin = NO
<br/>M allowCreateMode = YES
<br/>M wp_ca block = -1
<br/>M appc_ca block = -1
<br/>M blockSoftCanel = NO
<br/>M session_id = >4CFF77CE4A6A0068E10080000A04C87E<
<br/>M ext_session_id = >4CFF77CE4A6A0068E10080000A04C87E<
<br/>M imode = 2
<br/>M mode state = 0x1a
<br/>M mode clean_state = 2
<br/>M task_type = ZTTADIA
<br/>M lastThFc = THFCTERM
<br/>M lastAction = TH_IACT_NO_ACTION
<br/>M th_errno = 0
<br/>M rollout_reason = 1
<br/>M last_rollout_level = 7
<br/>M async_receives = 0
<br/>M cpic_receive = 0
<br/>M em handle = 67
<br/>M roll state = 3
<br/>M abap state = 3
<br/>M em state = 2
<br/>M eg state = 1
<br/>M spa state = 3
<br/>M enq state = 0
<br/>M softcancel = 1
<br/>M cancelInitiator = DISPATCHER
<br/>M clean_state = DP_SOFTCANCEL
<br/>M next hook = T-1/U-1/M255
<br/>M master hook = T-1/U-1/M255
<br/>M slave hook = T-1/U-1/M255
<br/>M debug_tid = 255
<br/>M debug_mode = 0
<br/>M mode type = 0x1
<br/>M debug = 0
<br/>M msg_count = 6
<br/>M tcode = >ZPP015 <
<br/>M last_wp = 38
<br/>M client conversation_ID = > <
<br/>M server conversation_ID = > <
<br/>M lock = 0
<br/>M max enq infos = 0
<br/>M act enq infos = 0
<br/>M em_hyper_hdl = 0x700000f41d918e8
<br/>M plugin_info = NULL
<br/>M act_plugin_hdl = -1
<br/>M act_plugin_no = 0
<br/>M max_plugin_no = 0
<br/>M
<br/>M ThCheckPrevUser: reset spa state for user T78/U26013/M0
<br/>M ThSetDoSafeCleanup: th_do_safe_cleanup = FALSE (wanted FALSE)
<br/>M LOCK WP ca_blk 44
<br/>M ThAtWpBlk: set zttatiln to zero
<br/>M ThAtWpBlk: set zttatoln to zero
<br/>M DpVmcGetVmByTmAdm: no VM found for T78/M0/I2
<br/>M LOCK APPC ca_blk 640
<br/>M set task type ZTTADIA
<br/>M ThCleanPrevUser: clean U26013 T78 M0 I2 no VM clean state DP_SOFTCANCEL clean counter 1
<br/>M ThCleanPrevUser: saved MODE_REC = 10
<br/>M PfStatDisconnect: disconnect statistics
<br/>M ThCleanPrevUser: found soft cancel flag
<br/>M ThSoftCancel: set clean state of T78/M0 to DP_DEFAULT_CLEANING
<br/>M ThSoftCancel session in state TM_DISCONNECTED, delete mode
<br/>M ThIAMDel: delete tid/mode 78/0 (th_errno 47, release 1)
<br/>M ThIDeleteMode (78, 0, 3, ><, 0, 255, TRUE)
<br/>M ThIDeleteMode: no modes found ..
<br/>M no sub modes
<br/>M ThCheckMemoryState (0, 0, 1)
<br/>M ThRollIn: roll in T78/U26013/M0/I2 (level=7, abap_level=1, attach_em=1)
<br/>M ThCheckEmState: check ATTACH for em hdl 67
<br/>M ThCheckEmState: call EmContextAttach (em_hdl=67)
<br/>I Thu Dec 9 14:05:00 2010
<br/>I WARNING: MtxLock 0x70000000636197c rrol0046 owner=33 deadlock ?
<br/>I Thu Dec 9 14:06:00 2010
<br/>I WARNING: MtxLock 0x70000000636197c rrol0046 owner=33 deadlock ?
<br/>I Thu Dec 9 14:07:00 2010
<br/>I WARNING: MtxLock 0x70000000636197c rrol0046 owner=33 deadlock ?
<br/>I Thu Dec 9 14:08:00 2010
<br/>I WARNING: MtxLock 0x70000000636197c rrol0046 owner=33 deadlock ?Hi Sitarama,
<br/>
<br/>Thanks very much for your fast reply. Yes, the smartforms are custom-built. Besides the deadlock error, there still has some errors in SP01 says "Could not pass request to host spool system". But it previews wonderfully in SP01. The detailed SP01 error log is like below:
Print request processing log
Errors occurred processing this print request
Error during print request output. l_rc = 99
There may be no printout
Most important attributes of spool request
Request number 2828
Request name SMART LOCA 8000199
Client 800
Owner 8000199
Request attributes
Time created 2010120906014800
Remaining life +00007235800
Dispo 1 (Go/Hold) G
Dispo 2 (Keep/Delete) D
Dispo 3 (Indirect/Direct) D
Default output device LOCA
Default no. copies 1
Format ZTEST
Main print request characteristics
Spool request number 2828
Print request number 1
Print request attributes
Time created 2010120906020500
Output device LOCA
Format ZTEST
What do you mean parallel processing on table level? The smartforms extract data from different SAP tables and then transfer to smartform interface, then they can added in form pages. Do you think this results parallel processing towards tables?
<br/>
Thank you and hope to hear more from you.
Best Regards,
Jeff -
Batch characteristic in classification not updating
Hello expert,
I have created classification for batch (class type 023) with characteristic MCH1 -LWEDT to record last GR date. Batch number has to be entered manually during GR posting. And i expect that during GR posting, characteristic value of GR date will be automatically updated in the classification but i've found that it is blank.
My query is, do GR date in characteristic value of batch class can be automatically updated during GR posting?
If it yes, what's wrong with my class? and how to make it works as expected?
Really appreciate your help.
Thank you in advanceHi Rahul,
Just to make sure. Have you created a characteristic named MCH1-LWEDT or have you actually linked your characteristic to the field MCH1-LWEDT in the "Addtnl Data" tab in CT04?
BR
Raf
Edited by: Rafael Zaragatzky on Aug 5, 2011 1:03 PM -
Values not getting updated in Classification tab by BAPI_BATCH_SAVE_REPLICA
Hello Experts ,
I am currently facinmg problem with value updation in Classification Tab for Batch Master. To create the classification I have marked BATCHCONTROLFIELDS-DOCLASSIFY = 'X' and to pass values to classification I have done the below coding.
wa_classvaluationschar-value_char = wa_itab-value1.
APPEND wa_classvaluationschar TO it_classvaluationschar.
wa_classvaluationsnum-value_from = wa_itab-value1.
wa_classvaluationsnum-unit_from = wa_itab-meins.
APPEND wa_classvaluationsnum TO it_classvaluationsnum.
Finally called the FM 'BAPI_BATCH_SAVE_REPLICA'. But , inspite of this I am not able to see values in the created Batch. Please advice on the same.
Thanks
-Trishna.Hi Trishna,
You need to update below mentioned fields to udpate that.
OBJECTKEY = concatenate (Internal Material number & plant & batch number)
OBJECTTABLE = MCHA
in both the structures CLASSALLOCATIONS and CLASSVALUATIONSCHAR. It will udpate.
Cheers,
Luri -
How to get the values inputted by the user in Classification view of MM02
Hello,
Does anyone know how to get the inputted values in Classification view of MM02/MM01? I tried to use CLAF_CLASSIFICATION_OF_OBJECTS but this gets the values that is currently saved in the tables and not the values that the user recently inputted in the screen.
Regards,
Alfredhi
try this...
How to Display the Batch Characteristics in BOM? -
Vendor Report without classification.
Hi Experts,
My client wants a report to display all those vendors for whom the classification data is not maintained.
Please help..
Thanks in advanceI dont know a transaction that shows it directly.
I would execute CL30N to get a list of all vendor that have a class assignment.
then I would download all vendor numbers from table LFA1
And then I would compare both e.g. in MS ACCESS or in Excel with VLOOKUP to see which vendor is without classification.
If recurring requirement, then a small ABAP report would do the job. -
Report: Classification view of material master
Hi,
We have activated Batch management for materials.
But for certain material codes, users have not maintained the Classification view.
Is there any report by which we can knowu2019 whether classification view for the material have been maintained or not?Hi,
Check with MM50 with Maintenance status as C
Regards,
Biju K
Maybe you are looking for
-
Hi, I hope to upgrade my current controller to PXIe-8135RT. My application requires me to have at least four display output (VGA, DVI or HDMI). So now, I have these questions: 1. Since the controller will run in RT, how do I make use of the two displ
-
Help! App Store spinning wheel when trying to download OS X Lion
I've spent several hours today trying to download OS X Lion from the App Store. Everytime I click on the 29.99 button, and then the Buy App button the spinning wheel starts at the top of the App Store Window. If anyone has any advice, I'd love to h
-
HOWTO: Install and use opensync-0.22 to sync Evolution to Nokia phone
Opensync-0.3x is unstable and fraught with danger, the only relatively-safe version is opensync-0.22. Installing opensync-0.22 is quite a task in x86-64 (i686 users might be able to use the unofficial kpiche repository on this page http://wiki.archl
-
can anyonehelp, i have updated to ios7 which has put a passcode on my ipad, i keep getting the code wrong, i have no itunes or cloud sync
-
Strange Beep When Shutting Down
Today, when shutting down Windows, I received a strange beep from my MSI Mega 865. I checked the temp, and it's only 48C. Any ideas on what would make it beep when it shuts down? Note: This noise came as soon as I chose to shut down, and prior to