Regarding the dead lock while index creation
Hi,
We have a requirement where we are trying to load and create the index for few cubes simulatneously, but it has resulted in dead lock situation, can you please tell us about this problem in detail.
Thanks
Hi Mahesh,
This kind of problem will arrive when the index creation for ur data targets are happening and those data targets shares some common data like master data, since both will be refering to the same, usually dead locks situation comes into picture
thanks,
vinay
Edited by: vinaykumarhs on Mar 20, 2011 12:26 AM
Similar Messages
-
Ho do i check bcz of which query's the dead locks happend in 11g
Hi,
I am working on 11g database and recently dead locks happend and it's released it's fine. But i need to know becz of which query's the dead locks happend and who fired those query's.
i hope we can get these info from trace file i opend trace file but am fully confusing how do i know all these details. Can any one help me on this...
Thanks in advance
RegardsCheck
How to find where is deadlock? -
Table lock while index rebuild
Dear all,
Can anyone kindly tell if the rebuild index operation locks the table on which rebuild index is performed ? (meaning that no inserts or updates are possible on that table during that time)
I am using Oracle 10.1.0.4
Thanks in advance
LDear all,
Can anyone kindly tell if the rebuild index operation
locks the table on which rebuild index is performed ?
(meaning that no inserts or updates are possible on
that table during that time)
I am using Oracle 10.1.0.4
Thanks in advance
LThe online index rebuild allow DML statements on the tables during the index creation. When you use the ONLINE option to create or alter an index, the current index is left intact while a new copy of the index is created. This allows DML statements to access the old index.
Message was edited by:
oraburn -
Changing the Profit Center while PO creation
Hi All,
I am trying to update the Profit Center(EKKN-PRCTR) while PO creation using the transactions ME21N and ME22N. I used ME_PROCESS_PO_CUST which is not even triggering and include ZXM06U22, ZXM06U43 which also are not working. Can you please guide me which EXIT or BADI can be used to achieve this requirement.
Thanks in Advance.Hi
Check the BADI ME_PROCESS_PO_CUST with PROCESS_ACCOUNT AND POST methods.
Refere the link
Re: BADI for Purchase Order
Regards
Sanil Bhandari -
Gurus,
Please clarify me the three questions which I am posting below
1) What's the deadlock situation ? How oracle treats the dead lock situation
2) Disadvantages of having index
3) I have two tables A and B .. In table A, I have two columns (say col1, col2) .. Col1 is a primary key column .. In table B, I have two columns (say col3, col4) .. Col3 is a primary key column .. Col2 of A has a referrential integrity to Col3 of B ..And Col4 of B has a referrential integrity to col2 of A .. Now if I am inserting a values in table A ...it is showing error "parent value doesnt exist" .. like wise, if I am inserting values in table B, the above mentioned error is comming ..
How to overcome this error
Please advice
RegardsHi.
1) A dead lock is a situation where two or more sessions acquire locks which then prevent each other from moving on. ie session one updates a row aaa in a table and session two updates row bbb (no commits). Session one then attempts to update row bbb and session two attempts to update row aaa and both wait for the locks to clear (default behaviour). Oracle monitors for these situations and will automatically kill one of the sessions and allow the other to complete.
2) Indexes are used to speed up access to data in the database and if associated with a Primary or Unique Key, enforce uniqueness. They have the disadvantages of taking up space and slowing down updates and inserts.
3) This is not a deadlock. It is a circular reference. You cannot insert into one table because the other table is expected to have a parent value and vice versa. From a data modelling point of view a circular reference is unsupportable and meaningless. Like trying to be your father's son and your father's father at the same time.
Regards
Andre -
FOR UPDATE cursor is causing Blocking/ Dead Locking issues
Hi,
I am facing one of the complex issues regarding blocking / dead locking issues. Please find below the details and help / suggest me the best approach to ahead with that.
Its core Investment Banking Domain, in Our Day to day Business we are using many transaction table for processing trades and placing the order. In specific there are two main transaction table
1) Transaction table 1
2) Transaction table 2
These both the tables are having huge amount of data. In one of our application to maintain data integrity (During this process we do not want other users to change these rows), we have placed SELECT …………….. FOR UPDATE CURSOR on these two table and we have locked all the rows during the process. And we have batch jobs (shell scripts ) , calling this procedure , we will be running 9 times per day 1 hrs each start at 7:15AM in the morn finish it up in the eve 5PM . Let’s say. The reason we run the same procedure multiple times is, our business wants to know the voucher before its finalized. Because there is a possibility that order can be placed and will be updated/cancelled several times in a single day. So at the end of the day , we will be sending the finalized update to our client.
20 07 * * 1-5 home/bin/app_process_prc.sh >> home/bin/app1/process.out
20 08 * * 1-5 home/bin/app_process_prc.sh >> home/bin/app1/process.out
20 09 * * 1-5 home/bin/app_process_prc.sh >> home/bin/app1/process.out
20 10 * * 1-5 home/bin/app_process_prc.sh >> home/bin/app1/process.out
20 11 * * 1-5 home/bin/app_process_prc.sh >> home/bin/app1/process.out
20 12 * * 1-5 home/bin/app_process_prc.sh >> home/bin/app1/process.out
20 13 * * 1-5 home/bin/app_process_prc.sh >> home/bin/app1/process.out
20 14 * * 1-5 home/bin/app_process_prc.sh >> home/bin/app1/process.out
20 15 * * 1-5 home/bin/app_process_prc.sh >> home/bin/app1/process.out
20 16 * * 1-5 home/bin/app_process_prc.sh >> home/bin/app1/process.out
20 17 * * 1-5 home/bin/app_process_prc.sh >> home/bin/app1/process.out
Current Program will look like:
App_Prc_1
BEGIN
/***** taking the order details (source) and will be populate into the table ****/
CURSOR Cursor_Upload IS
SELECT col1, col2 … FROM Transaction table1 t 1, Source table 1 s
WHERE t1.id_no = t2.id_no
AND t1.id_flag = ‘N’
FOR UPDATE OF t1.id_flag;
/************* used for inserting the another entry , if theres any updates happened on the source table , for the records inserted using 1st cursor. **************/
CURSOR cursor_update IS
SELECT col1, col2 … FROM transaction table2 t2 , transaction table t1
WHERE t1.id_no = t2.id_no
AND t1.id_flag = ‘Y’
AND t1.DML_ACTION = ‘U’,’D’ -- will retrieve the records which are updated and deleted recently for the inserted records in transaction table 1 for that particular INSERT..
FOR UPDATE OF t1.id_no,t1.id_flag;
BLOCK 1
BEGIN
FOR v_upload IN Cursor_Upload;
LOOP
INSERT INTO transaction table2 ( id_no , dml_action , …. ) VALUES (v_upload.id_no , ‘I’ , … ) RETURNING v_upload.id_no INTO v_no -- I specify for INSERT
/********* Updating the Flag in the source table after the population ( N into Y ) N order is not placed yet , Y order is processed first time )
UPDATE transaction table1
SET id_FLAG = ‘Y’
WHERE id_no = v_no;
END LOOP;
EXCEPTION WHEN OTHER THEN
DBMS_OUTPUT.PUT_LINE( );
END ;
BLOCK 2
BEGIN -- block 2 starts
FOR v_update IN Cursor_Update;
LOOP;
INSERT INTO transaction table2 ( id_no ,id_prev_no, dml_action , …. ) VALUES (v_id_seq_no, v_upload.id_no ,, … ) RETURNING v_upload.id_no INTO v_no
UPDATE transaction table1
SET id_FLAG = ‘Y’
WHERE id_no = v_no;
END LOOP;
EXCEPTION WHEN OTHER THEN
DBMS_OUTPUT.PUT_LINE( );
END; -- block2 end
END app_proc; -- Main block end
Sample output in Transaction table1 :
Id_no | Tax_amt | re_emburse_amt | Activ_DT | Id_Flag | DML_ACTION
01 1,835 4300 12/JUN/2009 N I ( these DML Action will be triggered when ever if theres in any DML operation occurs in this table )
02 1,675 3300 12/JUN/2009 Y U
03 4475 6500 12/JUN/2009 N D
Sample output in Transaction table2 :
Id_no | Prev_id_no Tax_amt | re_emburse_amt | Activ_DT
001 01 1,835 4300 12/JUN/2009 11:34 AM ( 2nd cursor will populate this value , bcoz there s an update happened for the below records , this is 2nd voucher
01 0 1,235 6300 12/JUN/2009 09:15 AM ( 1st cursor will populate this record when job run first time )
02 0 1,675 3300 12/JUN/2009 8:15AM
003 03 4475 6500 12/JUN/2009 11:30 AM
03 0 1,235 4300 12/JUN/2009 10:30 AM
Now the issues is :
When these Process runs, our other application jobs failing, because it also uses these main 2 tranaction table. So dead lock is detecting in these applications.
Solutin Needed :
Can anyone suggest me , like how can rectify this blocking /Locking / Dead lock issues. I wants my other application also will use this tables during these process.
Regards,
Maranhmmm.... this leads to a warning:
SQL> ALTER SESSION SET PLSQL_WARNINGS='ENABLE:ALL';
Session altered.
CREATE OR REPLACE PROCEDURE MYPROCEDURE
AS
MYCOL VARCHAR(10);
BEGIN
SELECT col2
INTO MYCOL
FROM MYTABLE
WHERE col1 = 'ORACLE';
EXCEPTION
WHEN PIERRE THEN
NULL;
END;
SP2-0804: Procedure created with compilation warnings
SQL> show errors
Errors for PROCEDURE MYPROCEDURE:
LINE/COL ERROR
12/9 PLW-06009: procedure “MYPROCEDURE” PIERRE handler does not end in RAISE or RAISE_APPLICATION_ERROR
:) -
AQ subscription (dead)locks
Hi,
I posted a question in the OCCI forum (Subscribing/unsubscribing call is blocking (lock?) but now I'm starting to suspect that this is a general AQ problem.
We have a AQ queue with multiple subscribers, where the subscribing clients are implemented in OCI/OCCI. At the startup of the client program, we subscribe to the queue trough a stored procedure, and creates a callback in the OCCI implementation of the client.
The problem is that sometimes the subscription query / callback creation seems to block. Could this be because a lock has been put on the subscriber/queue? There is no explicit locking in our code, as far as I know.
The stored procedure for subscribing basically does this:
DBMS_AQADM.ADD_SUBSCRIBER(queue_name => v_queue_name,
subscriber => subscriber,
rule => p_rule);
I'm an experienced programmer, but not too familiar with Oracle/AQ, so it would be great if someone could point me in the right direction of debugging this. I have access to Toad.
EDIT: We are running three threads simultanously, all calling add_subscriber. Could this be a problem, creating some sort of deadlock?
Thanks,
SverreHi,
do the clients have the same subcription name?
In the documentation see this link:
http://www.stanford.edu/dept/itss/docs/oracle/10g/server.101/b10785/jm_create.htm#i1005628
EDIT (Sorry i assumed that you use JMS ;-(
Can you tell me, what is the statement which shows up in the dbconsole in the top activity when the (dead)lock appears? (I hope you use 10g)
Message was edited by:
HEWizard -
hi friends
i have one question, Few days before i read that
" If there is deadlock in your database and if you enter SHUTDOWN IMMEDATE
then it will wait to resolve the dead lock"
i want to know that is it correct or not. plz replay
saurabhDeadlock is resolved immediately by Oracle when it encounters one. One of the sessions in deadlock is terminated by Oracle. So I do not see a possibility that you can enter a shutdown immediate command while two other sessions are in deadlock.
Btw, any reference about that reading? -
Hi...
I am passing the values of the fields SOURCE and IMPORTANCE in the exporting parameter IT_LEAD_H to the FM CRM_ORDER_MAINTAIN while lead creation...When I check the CRM_LEADH table I find that these values arent gettin reflected ...The guid and the leadtype are gettin saved but the values of these two fields are not present...This is the code I'm using.....
CT_ORDERADM_H
ls_orderadm_h-handle = '1'.
. ls_orderadm_h-PROCESS_TYPE = 'LEAD'.
ls_orderadm_h-mode = 'A'.
INSERT ls_orderadm_h INTO TABLE lt_orderadm_h.
build table with change fields
FREE lt_input_field_names.
ls_input_field_names-fieldname = 'PROCESS_TYPE'.
INSERT ls_input_field_names INTO TABLE lt_input_field_names.
ls_input_field_names-fieldname = 'MODE'.
INSERT ls_input_field_names INTO TABLE lt_input_field_names.
CLEAR ls_input_fields.
ls_input_fields-ref_handle = '1'.
ls_input_fields-objectname = 'ORDERADM_H'.
ls_input_fields-field_names = lt_input_field_names.
INSERT ls_input_fields INTO TABLE ct_input_fields.
CRMT_LEAD_H_COMT
IF IT_LEAD_H IS INITIAL.
ls_lead_h-ref_handle = '1'.
ls_lead_h-SOURCE = '002'.
ls_lead_h-IMPORTANCE = '2'.
ENDIF.
INSERT ls_lead_h INTO TABLE lt_lead_h.
build table with change fields
FREE lt_input_field_names.
IF ls_lead_h-SOURCE IS NOT INITIAL.
ls_input_field_names-fieldname = 'SOURCE'.
INSERT ls_input_field_names INTO TABLE lt_input_field_names.
ENDIF.
IF ls_lead_h-IMPORTANCE IS NOT INITIAL.
ls_input_field_names-fieldname = 'IMPORTANCE'.
INSERT ls_input_field_names INTO TABLE lt_input_field_names.
ENDIF.
CLEAR ls_input_fields.
ls_input_fields-ref_handle = '1'.
ls_input_fields-ref_kind = 'A'.
ls_input_fields-objectname = 'LT_LEAD_H'.
ls_input_fields-field_names = lt_input_field_names.
INSERT ls_input_fields INTO TABLE ct_input_fields.
IT_STATUS
IF is_status IS INITIAL.
ls_status-ref_handle = '1'.
ls_status-status = STATUS.
ls_status-user_stat_proc = 'CRMLEAD'.
ls_status-activate = 'X'.
ls_status-process = 'ACCI'.
ENDIF.
INSERT ls_status INTO TABLE lt_status.
build table with change fields
FREE lt_input_field_names.
IF ls_status-status IS NOT INITIAL.
ls_input_field_names-fieldname = 'STATUS'.
INSERT ls_input_field_names INTO TABLE lt_input_field_names.
ENDIF.
IF ls_status-activate IS NOT INITIAL.
ls_input_field_names-fieldname = 'ACTIVATE'.
INSERT ls_input_field_names INTO TABLE lt_input_field_names.
ENDIF.
CLEAR ls_input_fields.
ls_input_fields-ref_handle = '1'.
ls_input_fields-ref_kind = 'A'.
ls_input_fields-objectname = 'STATUS'.
ls_input_fields-field_names = lt_input_field_names.
INSERT ls_input_fields INTO TABLE ct_input_fields.
ENDIF.
bring changed fields with values to object layer
CALL FUNCTION 'CRM_ORDER_MAINTAIN'
EXPORTING
it_lead_h = lt_lead_h
it_survey = it_survey
it_status = lt_status
CHANGING
ct_orderadm_h = lt_orderadm_h
ct_orderadm_i = lt_orderadm_i
ct_input_fields = ct_input_fields
EXCEPTIONS
error_occurred = 1
document_locked = 2
no_change_allowed = 3
no_authority = 4
OTHERS = 5.
Are there any other parameters that I have to pass?Plz suggest a solution for this......Hi Francois,
Thank you for looking into the issue. Your first response was did you try get_form_field. Yes I did, and it did not work. I realised later (hopefully correctly) that get_form_field will work only if the field below is treated as an input field within <htmlb:form> and </htmlb:form>.
I shall re-explain the scenario. In default.htm, I enter an IDoc Number(input field) and click submit button. In the <form action > I have mentioned idoc.htm page. In idoc.htm, in On Initialization , I create a tree.
Method of creating tree
a) I create a table of type TVIEWNODE and populate the relevant details, except for the link field. The parameters that needs to be passed to the next page is a structure. In order to achieve this(I found this method in one of the posts in the forum),
Step I -- Serialize the structure data using CL_BSP_UTILITY=>SERIALIZE_DATA and fill a table LT_PARAMETER_LIST.
Step II -- I then construct a URL using CL_BSP_RUNTIME=>IF_BSP_RUNTIME~CONSTRUCT_BSP_URL passing APPLICATION NAME, 'SEGMENT.HTM' and table LT_PARAMETER_LIST.
Step III -- This method returns a URL which is then appended in the TVIEWNODE table and the tree is created.
The tree is created perfectly and the links are perfect as well.
However as mentioned in my earlier post when I click on the link, the URL shows all the attributes but I am not able to fetch the same using GET_ATTRIBUTE method or GET_FORM_DATA method.
Next point mentioned was create an attribute. This is an interesting point that you have mentioned. In page attributes, when I try pa_s_idoc-segnam, it mentions special characters not allowed.
I will explore the possibility of creating fields of internal table as page attributes i.e. using SEGNAM instead of pa_s_idoc-SEGNAM and then pass values to these.
If there are any other solutions do let me know.
Thanks again, Francois. -
Frequenet dead locks in SQL Server 2008 R2 SP2
Hi,
We are experiencing frequent dead locks in our application. We are using MSSQL Server 2008 R2 SP2 version. When our application is configured for 5-6 app servers, this issue is occurring frequently.
But, when the same application is used with the MSSQL Server 2008 R2 or SQL Server 2012, we don't see the dead lock issue. From the error lock and sql trace, the error message is thrown for the database table JobLock. We have a stored procedure to insert/update
for the above table when the job moves from one service to other. The same procedure works fine when used with the 2008 R2 and SQL Server 2012 Version.
Is the above issue related to the hotfix from the below url?
http://support.microsoft.com/kb/2703275
Following error message is seen frequently in the log file.
INFO : 03/24/2014 10:26:30:290 PM: [00007900:00005932] [Xerox.ISP.Workflow.ManagedActivity.PersistInTransaction] System.Data.SqlClient.SqlException (0x80131904): Transaction (Process ID 62) was deadlocked on lock resources with another process and has been
chosen as the deadlock victim. Rerun the transaction.
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite)
at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite)
at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
at Microsoft.Practices.EnterpriseLibrary.Data.Database.DoExecuteNonQuery(DbCommand command)
at Microsoft.Practices.EnterpriseLibrary.Data.Database.ExecuteNonQuery(DbCommand command, DbTransaction transaction)
at Xerox.ISP.DataAccess.Data.Utility.ExecuteNonQuery(TransactionManager transactionManager, DbCommand dbCommand)
at Xerox.ISP.DataAccess.Data.SqlClient.SqlActivityProviderBase.ActivityReady(TransactionManager transactionManager, Int32 start, Int32 pageLength, Nullable`1 ActivityID, Nullable`1 JobId, String ContentUrl, Nullable`1 PrevWorkStep, Nullable`1
CurrentWorkStep, String Principal, Nullable`1 Status, Nullable`1 ServerID, String HostName, Nullable`1 LockUserID, Nullable`1& ErrorCode, Byte[]& Activity_TS)
at Xerox.ISP.DataAccess.Domain.ActivityBase.ActivityReady(Nullable`1 ActivityID, Nullable`1 JobId, String ContentUrl, Nullable`1 PrevWorkStep, Nullable`1 CurrentWorkStep, String Principal, Nullable`1 Status, Nullable`1 ServerID, String HostName,
Nullable`1 LockUserID, Nullable`1& ErrorCode, Byte[]& Activity_TS, Int32 start, Int32 pageLength)
at Xerox.ISP.DataAccess.Domain.ActivityBase.ActivityReady(Nullable`1 ActivityID, Nullable`1 JobId, String ContentUrl, Nullable`1 PrevWorkStep, Nullable`1 CurrentWorkStep, String Principal, Nullable`1 Status, Nullable`1 ServerID, String HostName,
Nullable`1 LockUserID, Nullable`1& ErrorCode, Byte[]& Activity_TS)
at Xerox.ISP.Workflow.ManagedActivity.<>c__DisplayClass2f.<ActivityReady>b__2d()
at Xerox.ISP.Workflow.ManagedActivity.PersistInTransaction(Boolean createNew, PersistMethod persist)
ClientConnectionId:9e44a64f-5014-4634-9cee-4581e1b9c299
I look forward to the suggestions to get the issue resolved. Your input is much appreciated.
Thanks,
Keshava.If you are having deadlock trouble in your SQL Server instance, this recipe demonstrates how to make sure deadlocks are logged to the SQL ServerManagement Studio SQL log appropriately using
the DBCC TRACEON, DBCC TRACEOFF, and DBCC TRACESTATUS commands. These functions enable, disable, and check the status of trace flags.
To determine the cause of a deadlock, we need to know
the resources involved and the types of locks acquired and requested. For this kind of information, SQL Server provides
Trace Flag 1222 (this flag supersedes 1204, which was frequently used in earlier versions of SQL Server.)
DBCCTRACEON(1222,
-1);
GO
With this flag enabled, SQL Server will provide output in the form of a deadlock graph, showing the executing statements
for each session, at the time of the deadlock; these are the statements that were blocked and so formed the conflict or cycle that led to the deadlock.
Be aware that it is rarely possible to guarantee that deadlocks will never occur. Tuning for deadlocks
primarily involves minimizing the likelihood of their occurrence. Most of the techniques for minimizing the occurrence of deadlocks are similar to the general techniques for minimizing blocking problems. -
Systemcopy using R3load - Index creation VERY slow
We exported a BW 7.0 system using R3load (newest tools and SMIGR_CREATE_DDL) and now importing it into the target system.
Source database size is ~ 800 GB.
The export was running a bit more than 20 hours using 16 parallel processes. The import is still running with the last R3load process. Checking the logs I found out that it's creating indexes on various tables:
(DB) INFO: /BI0/F0TCT_C02~150 created#20100423052851
(DB) INFO: /BIC/B0000530000KE created#20100423071501
(DB) INFO: /BI0/F0COPC_C08~01 created#20100423072742
(DB) INFO: /BI0/F0COPC_C08~04 created#20100423073954
(DB) INFO: /BI0/F0COPC_C08~05 created#20100423075156
(DB) INFO: /BI0/F0COPC_C08~06 created#20100423080436
(DB) INFO: /BI0/F0COPC_C08~07 created#20100423081948
(DB) INFO: /BI0/F0COPC_C08~08 created#20100423083258
(DB) INFO: /BIC/B0000533000KE created#20100423101009
(DB) INFO: /BIC/AODS_FA00~010 created#20100423121754
As one can see on the timestamps the creation of one index can take an hour or more.
x_cons is showing constant CrIndex reading in parallel, however, the througput is not more than 1 - 2 MB/sec. Those index creation processes are running now since over two days (> 48 hours) and since the .TSK files don't mentioned those indexes any more I wonder how many of them are to be created and how long this will take.
The whole import was started at "2010-04-20 12:19:08" (according to import_monitor.log) so running now since more than three days with four parallel processes. Target machine has 4 CPUs and 16 GB RAM (CACHE_SIZE is 10 GB). The machine is idling though with 98 - 99 %.
I have three questions:
- why does index creation take such a long time? I'm aware of the fact, that the cache may not be big enough to take all the data but that speed is far from being acceptable. Doing a Unicode migration, even in parallel, will lead to a downtime that may not be acceptable by the business.
- why are the indexes not created first and then filled with the data? Each savepoint may take longer but I don't think that it will take that long.
- how to find out which indexes are still to be created and how to estimate the avg. runtime of that?
Markusi Peter,
I would suggest creating an SAP ticket for this, because these kind of problems are quite difficult to analyze.
But let me describe the index creation within MaxDB. If only one index creation process is active, MaxDB can use multiple Server Tasks (one for each Data Volume) to possibly increase the I/O throughput. This means the more Data Volumes you have configured, the faster the parallel index creation process should be. However, this hugely depends on your I/O system being able to handle an increasing amount of read/write requests in parallel. If one index creation process is running using parallel Server tasks, all further indexes to be created at that time can only utilize one single User Task for the I/O.
The R3load import process assumes that the indexes can be created fast, if all necessary base table data is still present in the Data Cache. This mostly applies to small tables up to table sizes that take up a certain amount of the Data Cache. All indexes for these tables are created right after the table has been imported to make use of the fact, that all the needed data for index creation is still in the cache. Many idexes may be created simultaneously here, but only one index at a time can use parallel Server Tasks.
If a table is too large in relation to the total database size, then its indexes are being queued for serial index creation to be started when all tables were imported. The idea is that the needed base table data would likely have been flushed out of the Data Cache already and so there is additional I/O necessary rereading that table for index creation. And this additional I/O would greatly benefit from parallel Server Tasks accessing the Data Volumes. For this reason, the indexes that are to be created at the end are queued and serialized to ensure that only one index creation process is active at a time.
Now you mentioned that the index creation process takes a lot of time. I would suggest (besides opening an OSS ticket) to start the MaxDB tool 'Database Analyzer' with an interval of 60 seconds configured during the whole import. In addition, you should activate the 'time measurement' to get a reading on the I/O times. Plus, ensure that you have many Data Volumes configured and that your I/O system can handle that additional loag. E.g. it would make no sense to have 25 Server Tasks all writing to a single local disk, I would assume that the disk would become a bottle neck...
Hope my reply was not too confusing,
Thorsten -
Regarding the exchange rate used in shopping cart
Hi,
Iam facing one problem regarding the currency conversion while crerating the shopping cart. The basic currency in my organizational profile is CHF. But I have a requirement to create a shopping cart in NZD(New Zealand dollars). After entering all the details and click on Shop, Iam going back to the home page and the error Iam getting is " Error during currency translation from NZD to CHF". I have checked for some other currencies like EURO, AUD etc and for all these currencies Iam not getting any error and the value gets converted to CHF with some exchange rate.
I want to know which table the system looks at for getting the exchange rate and why this error is coming only for NZD to CHF?
I checked some standard tables like TCURR and TCURX.
Any feed back will be very much appreciated.
Thanks and regards,
Ramachandra DNHi,
I am also facing this same issue.... Currency conversion is working fine for other currencies except for GBP to IDR.
Is it some config issue or wht as the functional guys have checked every thing.. they have maintained the exhange rate and etc...
we tried runing the report BBP_GET_EXRATE also butit says No records found.
Please help.
Thanks,
Vaibhav Goel.
Edited by: Vaibhav goel on Sep 3, 2010 12:09 PM -
Shift Register while Indexing Arrays in Formula Node
Hello,
I am having trouble using the formula node while indexing my two arrays. I keep getting "NaN" for my output array. I believe the problem lies within my shift register. My guess is that for the first calculation there is not a PreviousAngle so that is why it is giving me "NaN." For the first index I would like the value of the PreviousAngle to be 0. I am new to LabView and unsure what to do.
Thanks!
Christian Seymour
Solved!
Go to Solution.
Attachments:
Complementary Filter.vi 21 KBThe shift register should contain 0 by default since you are using a double [if uninitalized, the shfit register takes the default value of the data type. In this case, the default Double is 0], but you should explicitly initalize the shift register to a default value in most cases.
To do so, right click on the "previous angle" shift register and select "Create constant". This will create a Double value of 0 to fill in the register for the first calculation.
If you need a number other than 0 to start, you can just change this constant.
**Note: This is a good habit to have. Shift registers retain value as long as the VI is in memory. So if you run this more than once, it will have the value from the last execution automatically! This is usually unintended behavior for new LabVIEW users -- however you can sometimes take advantage of this feature in some applications and make it intended behavior
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If someone helped you out, please select their post as the solution and/or give them Kudos! -
ORA-00060 dead lock happen on R12 demo database
We have EBS R12 (12.0.4) on Redhat Linux system when I check alert.log file and found demo database (VIS) have ORA-00060 dead lock. The dead lock happen on statement:
UPDATE FND_CONCURRENT_REQUESTS SET PP_END_DATE = SYSDATE, POST_REQUEST_STATUS = 'E' WHERE REQUEST_ID = :B1
Do I need do anthing relate to this ORA- error or just ignore it?
Thanks.Thank you for answer. I checked CM log and did NOT find any error.
I also read document 153717.1 and compare FND_CONCURRENT_REQUESTS table definition. The initial number of trnasaction is 10 and max is 255. I try to use OEM to change "initial transaction number" and it don't allow to.
Any ideal??? -
Dead lock problem occur in Ms-Sql Server
Hi friends,
I am using the 1,Tomcat server
2, jdbc-odbc-bridge driver
In my applicaiton .mutli user access time its throw -deadlock
exception . How to solve the dead lock problem.. please help it.
Can i modify the Db connection?
please help me .... How solve the dead lock problem..
please ............ its urgentI am using this stored procedure to occur dead lock condtion. Orderly insert table values ..
Imm_tblGameTransactions- Primary Tables
Imm_tblGameDetailsBJ - Secondary tables
Please check it.....
Please explain breifly..... ....
please.........
CREATE procedure IMM_BJDeal
@plid int,
@gameid int,
@betamt money,
@bal money,
@winamt money,
@usercards nvarchar(500),
@dealercards nvarchar(500),
@useracecnt int,
@dealeracecnt int,
@dealerbj int,
@userbj int,
@insurance int,
@split int,
@push int,
@sessionid int,
@ltransid int out
as
begin
declare
@transdate datetime,
@linitbal money,
@lfinalbal money,
@errormesg varchar(50)
select @linitbal=balance from Imm_players.dbo.Imm_tblPlayerbalance where playerid=@plid
select @transdate=getdate()
--set @ldealcards ='['+@dealercard1+','+@dealercard2+']'
--print @ldealcards
if(@userbj=1)
begin
select @lfinalbal= @bal
begin transaction
insert into Imm_tblGameTransactions
(playerid,gameid,Initialbalance,transactiondate,betamount,winamount,currencycode,finalbalance,sessionid)
values(@plid,@gameid,@linitbal,@transdate,@betamt,@winamt,'USD',@lfinalbal,@sessionid)
IF @@ERROR <> 0
Begin
-- There's an error b/c @ERROR is not 0, rollback
ROLLBACK
return
End
select @ltransid=@@identity from Imm_tblGameTransactions
insert into Imm_tblGameDetailsBJ(transid,playercard,dealercard,typeid,result,statusid,split,insurance,playercardcount,dealercardcount,winvalue,betvalue)
values(@ltransid,@usercards,@dealercards ,1,1,'PB',@split,@insurance,@useracecnt,@dealeracecnt,@winamt,@betamt)
IF @@ERROR <> 0
begin
-- There's an error b/c @ERROR is not 0, rollback
ROLLBACK
return
end
update Imm_players.dbo.Imm_tblPlayerbalance set balance=@lfinalbal where playerid=@plid
IF @@ERROR <> 0
begin
-- There's an error b/c @ERROR is not 0, rollback
ROLLBACK
return
end
commit transaction
return
end
else
begin
begin transaction
insert into Imm_tblGameTransactions(playerid,gameid,Initialbalance,transactiondate,betamount,winamount,currencycode,finalbalance,sessionid)
values(@plid,@gameid,@linitbal,@transdate,@betamt,@winamt,'USD',@bal,@sessionid)
IF @@ERROR <> 0
Begin
-- There's an error b/c @ERROR is not 0, rollback
ROLLBACK
return
End
/*ELSE
COMMIT -- Success! Commit the transaction*/
select @ltransid=@@identity from Imm_tblGameTransactions
insert into Imm_tblGameDetailsBJ(transid,playercard,dealercard,typeid,result,split,insurance,playercardcount,dealercardcount,winvalue,betvalue,statusid)
values(@ltransid,@usercards,@dealercards,1,3,@split,@insurance,@useracecnt,@dealeracecnt,@winamt,@betamt,'G')
IF @@ERROR <> 0
Begin
-- There's an error b/c @ERROR is not 0, rollback
ROLLBACK
return
End
/*ELSE
COMMIT -- Success! Commit the transaction*/
commit transaction
return
end
end
GO
Maybe you are looking for
-
PS Report with the Profit Center
Hi All Is there a standard PS Report that will give me values as per the hierarchial structure of the WBS Element and additionally the Profit center also as an output. Thanks much RS.
-
Problem getting with monitor please help me
Hi All, Am trying with these options...but it is not working for me.....Is there any wrong with my parameters? I tried with all three also pop3, imap.Will you please tell me how to trace and solve this problem? Please help me if anybody knows... java
-
DI Integrator XI and Data Service Designer
Hi all I am playing with DI XI (11.7) now, but very soon we would have Data Service Designer (new version of DI which is called Data Service Designer). I'm just wondering what the difference is between DI Integrator 11.7 and Data Service Designer. Th
-
Action Servlet..a special servlet ?
is action servelt a special servlet ? can i use methods which i use in normal simple servlet(like doGet,doPost etc ) ? it seems to me its a different servlet that normal servlet . i dont see to use servletConfig(),init(),service() etc for these kind
-
Missing numeric keypad & Character Styles shortcuts
Hello everyone, Is there a way of activating the keyboard shortcuts we customized for Character & Paragraph Styles using the new Mac keyboards that don't have numeric keypads? Without the numeric keypads, one has to open Character/Paragraph Styles pa