Lock row in 1 table while update other tables
Gurus,
I want to read 1 table. If the date is less than today, I want to update 4 other tables. I only want to do this update once a day.
While the 4 other tables are being updated, I want the other web users to pause for the update while this procedure runs.
Is there a better way to do this?
TIA
Steve42
Here is what I have:
CREATE OR REPLACE PROCEDURE TEST_TODAY2 AS
-- to create the table
-- create table test_today(updated_date date);
-- insert into test_today(updated_date) values (sysdate-1);
-- select * from test_today;
cursor daily_update_cur is
select updated_date from test_today
for update of updated_date;
last_updated_date date;
BEGIN
NULL;
open daily_update_cur;
fetch daily_update_cur into last_updated_date;
IF trunc(last_updated_date) < trunc(sysdate) THEN
-- update 4 other tables
-- After those are updated, update test_today
dbms_output.put_line('After updating tables');
update test_today set updated_date=sysdate;
ELSE
dbms_output.put_line('Tables already up to date');
null;
END IF;
execute immediate 'commit';
close daily_update_cur;
END TEST_TODAY2;Edited by: BluShadow on 15-Oct-2012 14:22
Please use {noformat}{noformat} tags before and after your code as described in the FAQ: {message:id=9360002}.
I've corrected it this time for you.
Steve,
I just checked your requirements and program. It seems fine.
You can modify something on this. As below part is not required as it ll never happen.. :)
ELSE
dbms_output.put_line('Tables already up to date');
null;
END IF;
/* execute immediate 'commit'; -- No need to write in dynamic sql as its not a DDL statement */
commit;Sorry for going out of topic.
Since I'm a NEWBIE, I just wanted to make sure that this would work before
we roll this out to LIVE PRODUCTION.Newbie is defined on the basis of the date you joined/registered. It never asked for your experience or a screening while signing up.
Better you can have an other idea to filter out people by their replies/sense with quality/weight of statements as newbies or experts ! .. :)
Thanks!
Similar Messages
-
JBO-28004: Could not lock row in control table for table null
hello.
we have deployed two application on a server.
both have code like this:
select = "SELECT * from tab";
vo = e.getDBTransaction().createViewObjectFromQueryStmt(select);
vo.executeQuery();
RowSet rs = vo.getRowSet();
if(rs != null)
Row lastRow = vo.getRowSet().last();
the last line throws sometimes an exception (.last()).
JBO-28004: Could not lock row in control table for table null
at oracle.jbo.PCollException.throwException(PCollException.java:34)
at oracle.jbo.pcoll.OraclePersistManager.commit(OraclePersistManager.java:229)
at oracle.jbo.pcoll.OraclePersistManager.dropTable(OraclePersistManager.java:499)
at oracle.jbo.pcoll.OraclePersistManager.createTable(OraclePersistManager.java:692)
at oracle.jbo.pcoll.OraclePersistManager.insert(OraclePersistManager.java:1492)
at oracle.jbo.pcoll.PCollNode.passivateElem(PCollNode.java:542)
at oracle.jbo.pcoll.PCollNode.passivate(PCollNode.java:657)
at oracle.jbo.pcoll.PCollection.passivateLRULeafNode(PCollection.java:351)
at oracle.jbo.pcoll.PCollection.checkActiveLeafLimit(PCollection.java:404)
at oracle.jbo.pcoll.PCollection.nodeRecentlyUsed(PCollection.java:252)
at oracle.jbo.pcoll.PCollNode.<init>(PCollNode.java:73)
at oracle.jbo.pcoll.PCollNode.checkForSplit(PCollNode.java:1553)
at oracle.jbo.pcoll.PCollNode.addObject(PCollNode.java:1622)
at oracle.jbo.pcoll.PCollNode.addObject(PCollNode.java:1610)
at oracle.jbo.pcoll.PCollection.addElement(PCollection.java:753)
at oracle.jbo.server.QueryCollection.fetch(QueryCollection.java:1247)
at oracle.jbo.server.QueryCollection.getRowCount(QueryCollection.java:1065)
at oracle.jbo.server.ViewRowSetImpl.getRowCount(ViewRowSetImpl.java:1444)
at oracle.jbo.server.ViewRowSetIteratorImpl.last(ViewRowSetIteratorImpl.java:1183)
at oracle.jbo.server.ViewRowSetImpl.last(ViewRowSetImpl.java:2246)
at oracle.jbo.server.ViewObjectImpl.last(ViewObjectImpl.java:4352)
at com.omv.emis.extemis.bc.EmsFreigabeImpl.checkFullMonth(EmsFreigabeImpl.java:327)
at com.omv.emis.extemis.bc.EmsFreigabeImpl.doDML(EmsFreigabeImpl.java:293)
at oracle.jbo.server.EntityImpl.postChanges(EntityImpl.java:3410)
at oracle.jbo.server.DBTransactionImpl.doPostTransactionListeners(DBTransactionImpl.java:2274)
at oracle.jbo.server.DBTransactionImpl.postChanges(DBTransactionImpl.java:2216)
at oracle.jbo.server.DBTransactionImpl.commitInternal(DBTransactionImpl.java:1511)
at oracle.jbo.server.DBTransactionImpl.commit(DBTransactionImpl.java:1677)
at EmsFreigabeView1_BrowseEdit._jspService(_EmsFreigabeView1__BrowseEdit.java:134)
at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:56)
at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:317)
at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:465)
at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:379)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:64)
at oracle.security.jazn.oc4j.JAZNFilter.doFilter(JAZNFilter.java:283)
at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:563)
at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:309)
at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:767)
at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:259)
at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:106)
this exception does not occur every time just sometimes.
(no other user/application uses the specific table, so there is no other lock)
maybe someone knows an error source.
thx in advance.Gina:
Could you run you app with diagnostic turned on?
If you're launching your middle tier from command prompt, you should invoke java as
java -Djbo.debugoutput=console ...
If you're launching your middle tier from w/i JDev..
1. Select the project.
2. Do right mouse click and select "Project Settings..."
3. On the Settings dialog, select Configurations/Runner.
4. In the righthand side pane, you should see a textbox for "Java
Options". Please add the following JVM switch:
-Djbo.debugoutput=console
Then, rerun. The run command should include
-Djbo.debugoutput=console as in
"D:\JDev9i\jdk\bin\javaw.exe" -Djbo.debugoutput=console -classpath ...
Then, you should see a lot of diagnostic messages. It will also give you complete stack trace including that of the detail exception.
When you get the exception diagnostic output, please post that to this thread.
Thanks.
Sung -
Locked objects, Locked rows in a table, kind of locks
Well, final question for the day.
I created multiple session using sql plus, and in one session sql plus got lunch, it hour glasses and does nothing. I called up a DBA friend and he opined that it might be becasue one of my sessions has got a lock on a row in a table. I was also told that locks can be table level locks and row level locks.
Please help me understand the below( I did try to read about locks, but atleast after first reading it is more confusing.. in order to update a row in a table why would oracle obtain a table level lock?)
1. What are the different database objects which can get locked ?
2. What are the different kinds of locks and what do they mean?
3. When a row is locked by a session, can we identify that particular session and how ?
4. What is the difference between pessimistic locking and optmistic locking ?
5. Any scripts which I can use to get lock related info from database ?
Gony1. What are the different database objects which can get locked ?There are locks which oracle acquire on any useful resource. We , as the users are most focussed on tables and their locks. But locks do happen in memory as well.
2. What are the different kinds of locks and what do they mean?http://download.oracle.com/docs/cd/B28359_01/server.111/b28320/dynviews_2.htm#REFRN30121
3. When a row is locked by a session, can we identify that particular session and how ?Sure, there is a default script that comes up, utllockt.sql which can show you. Other than that, you can EM to do so as well. Read this,
4. What is the difference between pessimistic locking and optmistic locking ?http://download.oracle.com/docs/cd/B28359_01/server.111/b28274/instance_tune.htm#sthref748
5. Any scripts which I can use to get lock related info from database ?See #4 above.
HTH
Aman.... -
How to find the LOCKED ROWS in a table?
Not locked objects, but for a table the locked rows.
Check below links :
http://www.jlcomp.demon.co.uk/faq/locked_rows.html
How to find the locked row.
who are waiting for same record?
HTH
Girish Sharma -
How to find rowid of locked rows?
Hello All,
I have the "before update trigger" I want to know the rowid of all the locked row before update so that I dont try to update the same row which is locked by some other user. In Ask Tom forum I have seen how to know the rowid of locked row, but it will work only when Some body got hanged in that Perticular row while trying to update it. I dont want the User to get hanged, for that I want to user before update trigger. Help me.I believe this is a duplicate of another question in this forum
How to find out rowid of locked row
which I answered.
Justin -
Get Error while update the User defined row table through DSK Code
Hi experts,
I have got an error while updating the user row defined table.
Error is - "Invalid row"
I have created one master table "@CBF_FARM " and Child table "@CBF_FAR1"
First i inserted 5 record in the child table so in my my child table there are 5 Line id (1,2,3,4,5 one for each row).
after that i delete 2 rows (3rd & 4th row) from child table now in my child table there are 3 rows( Line id 1, 2, 5). Please See attachment.
Now i am updating the last record of child table through Code (Line id is 5) from other form, then i got error invalid row.
Following Code used for updating the user defined child table.
SAPbobsCOM.GeneralService oGeneralService1 = null;
SAPbobsCOM.GeneralData oGeneralData1 = null;
SAPbobsCOM.GeneralDataParams oGeneralParams1 = null;
SAPbobsCOM.CompanyService sCmp1 = null;
SAPbobsCOM.GeneralData oChild1 = null;
SAPbobsCOM.GeneralDataCollection oChildren1 = null;
sCmp1 = clsAddOn.LDNA_Company.GetCompanyService();
oGeneralService1 = sCmp1.GetGeneralService("CBF_FARM");
// Get UDO record
oGeneralParams1 = ((SAPbobsCOM.GeneralDataParams)(oGeneralService1.GetDataInterface(SAPbobsCOM.GeneralServiceDataInterfaces.gsGeneralDataParams)));
oGeneralParams1.SetProperty("Code", oForm.Items.Item("edtFarmCd").Specific.Value);
oGeneralData1 = oGeneralService1.GetByParams(oGeneralParams1);
// Add lines on UDO Child Table
oChildren1 = oGeneralData1.Child("CBF_FAR1");
// Create data for rows in the child table
SAPbouiCOM.Item oItem = oForm.Items.Item("cmbShed");
oCombo = oItem.Specific;
string ShedCode = oCombo.Selected.Value;
ldna_Rec = clsAddOn.LDNA_Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset);
string strQuery1 = "select LineId from [@CBF_FAR1] where U_ShedCd = " + ShedCode;
ldna_Rec.DoQuery(strQuery1);
oChild1 = oChildren1.Item(ldna_Rec.Fields.Item("LineId").Value - 1);
oChild1.SetProperty("U_Status", "Ready For Schedule");
//Update the UDO Record
oGeneralService1.Update(oGeneralData1);
Please Help me it is an urgent requirement,
-Regards
Vikashi.
Error is - "Invalid row"
Now i am updating the last record of child table through Code (Line id is 5) from other form, then i got error invalid row.
As per my knowledge
What i understood is you have 5 lines and you are going to be update 5th line
am i correct..
while u are updating the line in child table
you have to consider like this..
line number u have to update like
1 0
2 1
3 2
4 3
5 4
which means in child table treat
line 1 as 0
line 2 as 1
line 5 as 4
If you want to update the line 5 u have to mention 4 th line -
Error while updating JDBD table
Hi all,
Am getting the error at the receiver JDBC CC. I have checked the conceren mapping also . i t is working under test tab.
Error while parsing or executing XML-SQL document: Error processing request in sax parser: Error when executing statement for table/stored proc. 'SAP_STG_AP_SAP_REF' (structure 'Statement'): com.sybase.jdbc3.jdbc.SybSQLException: Attempt to insert duplicate key row in object 'SAP_STG_AP_SAP_REF' with unique index 'SAP_STG_AP_SAP_REF_IX1'
Any sugestion?
Thanks,
kananya issue is while updating the jdbc table ..duplicate entries are coming...I have check the maping xml also with the same data..I think I need to change the mapping -to remove the duplicate (entry in that field) using some function. Any idea which will be the function?? + please let me know how to find out which field is the error refering to in the jdbc table-- with unique index 'SAP_STG_AP_SAP_REF_IX1'
In my scenario Action is INSERT. At the mapping output, there are some entries (5-6 ACCESS) where all the fields under the ACCESS are similar
kanan -
There was an error while updating row count for "SH".."SH".CHANNELS
Hi All,
Am new to OBIEE.Pls help in this regard.
Am building the physical layer as per Repository guide.When am importing the data in to this,am getting the below error.
*"There was an error while updating row count for "SH".."SH".CHANNELS" :"*
channles is the table name and having 5 rows.
but am able to see the data in the sql prompt. like SELECT * FROM SH.CHANNELS then 5 rows data would be displaying..
pls help in this regard and where is the excat problem?
Thanks,what is the error?
Make sure that your connection pool settings are okay..
Make sure that, you are using correct driver in case of if you are using ODBC dsn..
Also make sure that, your oracle server is running... TNS and Oracle server services -
Re: Transactions and Locking Rows for Update
Dale,
Sounds like you either need an "optimistic locking" scheme, usually
implemented with timestamps at the database level, or a concurrency manager.
A concurrency manager registers objects that may be of interest to multiple
users in a central location. It takes care of notifying interested parties
(i.e., clients,) of changes made to those objects, using a "notifier" pattern.
The optimistic locking scheme is relatively easy to implement at the
database level, but introduces several problems. One problem is that the
first person to save their changes "wins" - every one else has to discard
their changes. Also, you now have business policy effectively embedded in
the database.
The concurrency manager is much more flexible, and keeps the policy where
it probably belongs. However, it is more complex, and there are some
implications to performance when you get to the multiple-thousand-user
range because of its event-based nature.
Another pattern of lock management that has been implemented is a
"key-based" lock manager that does not use events, and may be more
effective at managing this type of concurrency for large numbers of users.
There are too many details to go into here, but I may be able to give you
more ideas in a separate note, if you want.
Don
At 04:48 PM 6/5/97 PDT, Dale "V." Georg wrote:
I have a problem in the application I am currently working on, which it
seems to me should be easily solvable via appropriate use of transactions
and database locking, but I'm having trouble figuring out exactly how to
do it. The database we are using is Oracle 7.2.
The scenario is as follows: We have a window where the user picks an
object from a dropdown list. Some of the object's attributes are then
displayed in that window, and the user then has the option of editing
those attributes, and at some point hitting the equivalent of a 'save'button
to write the changes back to the database. So far, so good. Now
introduce a second user. If user #1 and user #2 both happen to pull up
the same object and start making changes to it, user #1 could write back
to the database and then 15 seconds later user #2 could write back to the
database, completely overlaying user #1's changes without ever knowing
they had happened. This is not good, particularly for our application
where editing the object causes it to progress from one state to the next,
and multiple users trying to edit it at the same time spells disaster.
The first thing that came to mind was to do a select with intent to update,
i.e. 'select * from table where key = 'somevalue' with update'. This way
the next user to try to select from the table using the same key would not
be able to get it. This would prevent multiple users from being able to
pull the same object up on their screens at the same time. Unfortunately,
I can think of a number of problems with this approach.
For one thing, the lock is only held for the duration of the transaction, so
I would have to open a Forte transaction, do the select with intent to
update, let the user modify the object, then when they saved it back again
end the transaction. Since a window is driven by the event loop I can't
think of any way to start a transaction, let the user interact with the
window, then end the transaction, short of closing and re-opening the
window. This would imply having a separate window specifically for
updating the object, and then wrapping the whole of that window's event
loop in a transaction. This would be a different interface than we wanted
to present to the users, but it might still work if not for the next issue.
The second problem is that we are using a pooled DBSession approach
to connecting to the database. There is a single Oracle login account
which none of the users know the password to, and thus the users
simply share DBSession resources. If one user starts a transaction
and does a select with intent to update on one DBSession, then another
user starts a transaction and tries to do the same thing on the same
DBSession, then the second user will get an error out of Oracle because
there's already an open transaction on that DBSession.
At this point, I am still tossing ideas around in my head, but after
speaking with our Oracle/Forte admin here, we came to the conclusion
that somebody must have had to address these issues before, so I
thought I'd toss it out and see what came back.
Thanks in advance for any ideas!
Dale V. Georg
Indus Consultancy Services [email protected]
Mack Trucks, Inc. [email protected]
>
>
>
>
====================================
Don Nelson
Senior Consultant
Forte Software, Inc.
Denver, CO
Corporate voice mail: 510-986-3810
aka: [email protected]
====================================
"I think nighttime is dark so you can imagine your fears with less
distraction." - CalvinWe have taken an optimistic data locking approach. Retrieved values are
stored as initial values; changes are stored seperately. During update, key
value(s) or the entire retieved set is used in a where criteria to validate
that the data set is still in the initial state. This allows good decoupling
of the data access layer. However, optimistic locking allows multiple users
to access the same data set at the same time, but then only one can save
changes, the rest would get an error message that the data had changed. We
haven't had any need to use a pessimistic lock.
Pessimistic locking usually involves some form of open session or DBMS level
lock, which we haven't implemented for performance reasons. If we do find the
need for a pessimistic lock, we will probably use cached data sets that are
checked first, and returned as read-only if already in the cache.
-DFR
Dale V. Georg <[email protected]> on 06/05/97 03:25:02 PM
To: Forte User Group <[email protected]> @ INTERNET
cc: Richards* Debbie <[email protected]> @ INTERNET, Gardner*
Steve <[email protected]> @ INTERNET
Subject: Transactions and Locking Rows for Update
I have a problem in the application I am currently working on, which it
seems to me should be easily solvable via appropriate use of transactions
and database locking, but I'm having trouble figuring out exactly how to
do it. The database we are using is Oracle 7.2.
The scenario is as follows: We have a window where the user picks an
object from a dropdown list. Some of the object's attributes are then
displayed in that window, and the user then has the option of editing
those attributes, and at some point hitting the equivalent of a 'save' button
to write the changes back to the database. So far, so good. Now
introduce a second user. If user #1 and user #2 both happen to pull up
the same object and start making changes to it, user #1 could write back
to the database and then 15 seconds later user #2 could write back to the
database, completely overlaying user #1's changes without ever knowing
they had happened. This is not good, particularly for our application
where editing the object causes it to progress from one state to the next,
and multiple users trying to edit it at the same time spells disaster.
The first thing that came to mind was to do a select with intent to update,
i.e. 'select * from table where key = 'somevalue' with update'. This way
the next user to try to select from the table using the same key would not
be able to get it. This would prevent multiple users from being able to
pull the same object up on their screens at the same time. Unfortunately,
I can think of a number of problems with this approach.
For one thing, the lock is only held for the duration of the transaction, so
I would have to open a Forte transaction, do the select with intent to
update, let the user modify the object, then when they saved it back again
end the transaction. Since a window is driven by the event loop I can't
think of any way to start a transaction, let the user interact with the
window, then end the transaction, short of closing and re-opening the
window. This would imply having a separate window specifically for
updating the object, and then wrapping the whole of that window's event
loop in a transaction. This would be a different interface than we wanted
to present to the users, but it might still work if not for the next issue.
The second problem is that we are using a pooled DBSession approach
to connecting to the database. There is a single Oracle login account
which none of the users know the password to, and thus the users
simply share DBSession resources. If one user starts a transaction
and does a select with intent to update on one DBSession, then another
user starts a transaction and tries to do the same thing on the same
DBSession, then the second user will get an error out of Oracle because
there's already an open transaction on that DBSession.
At this point, I am still tossing ideas around in my head, but after
speaking with our Oracle/Forte admin here, we came to the conclusion
that somebody must have had to address these issues before, so I
thought I'd toss it out and see what came back.
Thanks in advance for
any
ideas!
Dale V. Georg
Indus Consultancy Services [email protected]
Mack Trucks, Inc. [email protected]
------ Message Header Follows ------
Received: from pebble.Sagesoln.com by notes.bsginc.com
(PostalUnion/SMTP(tm) v2.1.9c for Windows NT(tm))
id AA-1997Jun05.162418.1771.334203; Thu, 05 Jun 1997 16:24:19 -0500
Received: (from sync@localhost) by pebble.Sagesoln.com (8.6.10/8.6.9) id
NAA11825 for forte-users-outgoing; Thu, 5 Jun 1997 13:47:58 -0700
Received: (from uucp@localhost) by pebble.Sagesoln.com (8.6.10/8.6.9) id
NAA11819 for <[email protected]>; Thu, 5 Jun 1997 13:47:56 -0700
Received: from unknown(207.159.84.4) by pebble.sagesoln.com via smap (V1.3)
id sma011817; Thu Jun 5 13:47:43 1997
Received: from tes0001.macktrucks.com by relay.macktrucks.com
via smtpd (for pebble.sagesoln.com [206.80.24.108]) with SMTP; 5 Jun
1997 19:35:31 UT
Received: from dale by tes0001.macktrucks.com (SMI-8.6/SMI-SVR4)
id QAA04637; Thu, 5 Jun 1997 16:45:51 -0400
Message-ID: <[email protected]>
Priority: Normal
To: Forte User Group <[email protected]>
Cc: "Richards," Debbie <[email protected]>,
"Gardner," Steve <[email protected]>
MIME-Version: 1.0
From: Dale "V." Georg <[email protected]>
Subject: Transactions and Locking Rows for Update
Date: Thu, 05 Jun 97 16:48:37 PDT
Content-Type: text/plain; charset=US-ASCII; X-MAPIextension=".TXT"
Content-Transfer-Encoding: quoted-printable
Sender: [email protected]
Precedence: bulk
Reply-To: Dale "V." Georg <[email protected]> -
Getting "JTA transaction is not present" error while updating db table.
Hi All,
In one of my BPEL process, In a loop, I am updating value of database column Flag from 0 to 1. It was working fine in dev environment, but failed in Prod with below errors, Can Any one suggest on this.
There is a system exception while performing the BPEL instance, the reason is "JTA transaction is not present or the transaction is not in active state. The current JTA transaction is not present or it is not in active state when processing activity or instance "1020112-BpInv7-BpSeq14.87-2". The reason is The execution of this instance "1020112-BpInv7-BpSeq14.87-2" for process "UpdateOrderReqABCS" is supposed to be in a jta transaction, but the transaction is not present or in active state, please turn on the application server transaction debug logs to get more information.. Please consult your administrator regarding this error. ". Please check the error log file for more infromation. Please try to use bpel fault handlers to catch the faults in your bpel process. If this is a system exception, please report this to your system administrator. Administrator could perform manual recovery of the instance from last non-idempotent activity or dehydration point.
OPMN logs:
<2010-05-05 01:56:49,395> <ERROR> <gemptp.collaxa.cube.engine> The execution of this instance "1020112-BpInv7-BpSeq14.87-2" for process "UpdateOrderReqABCS" is supposed to be in a jta transaction, but the transaction is not present or in active state, please turn on the application server transaction debug logs to get more information.
The current JTA transaction is not present or it is not in active state when processing activity or instance "1020112-BpInv7-BpSeq14.87-2". The reason is The execution of this instance "1020112-BpInv7-BpSeq14.87-2" for process "UpdateOrderReqABCS" is supposed to be in a jta transaction, but the transaction is not present or in active state, please turn on the application server transaction debug logs to get more information..
The current JTA transaction is not present or it is not in active state when processing activity or instance "1020112-BpInv7-BpSeq14.87-2". The reason is The execution of this instance "1020112-BpInv7-BpSeq14.87-2" for process "UpdateOrderReqABCS" is supposed to be in a jta transaction, but the transaction is not present or in active state, please turn on the application server transaction debug logs to get more information..
The current JTA transaction is not present or it is not in active state when processing activity or instance "1020112-BpInv7-BpSeq14.87-2". The reason is The execution of this instance "1020112-BpInv7-BpSeq14.87-2" for process "UpdateOrderReqABCS" is supposed to be in a jta transaction, but the transaction is not present or in active state, please turn on the application server transaction debug logs to get more information..
Thanks in advance.I can envisage this happening only in a case where the update is taking a longer time than the value of JTA transaction timeout.
Is this happening for all BPEL instances or some of them get thru succesfully ?
Are you EVER updating that particular row of your table ( before/after) ?
-Shishir -
hi friends...
i am posting fico document using bapi BAPI_ACC_GL_POSTING_POST.
after that i am updating the document number to my custom table.
but in some cases while updating the document in my custom table i am getting the fallowing dump..
in ST22
How to correct the error:
Database error text........: "[1205] Transaction (Process ID 66) was deadlocked
on lock resources with another process and has been chosen as the deadlock
victim. Rerun the transaction."
Internal call code.........: "[RSQL/UPDT/ZIF004_PKT ]"
Please check the entries in the system log (Transaction SM21).
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:
"DBIF_RSQL_SQL_ERROR" "CX_SY_OPEN_SQL_DB"
"ZFI_01_MONTHLY_RESULT_FRM_PKT" or "ZFI_01_MONTHLY_RESULT_FRM_PKT"
"UPLOAD_SAP"
Source Code Extract
LOOP AT i_zif004_pkt_sum .
UPDATE zif004_pkt SET xblnr = i_zif004_pkt_sum-xblnr ---> i am getting DUMP here
gjahr = i_zif004_pkt_sum-gjahr
sap_flag_posting = i_zif004_pkt_sum-sap_flag_posting
WHERE compcode = i_zif004_pkt_sum-compcode
AND ccode = i_zif004_pkt_sum-ccode
AND wbselement = i_zif004_pkt_sum-wbselement
AND kostl = i_zif004_pkt_sum-kostl
AND code = i_zif004_pkt_sum-code
AND month1 = l_ltx
AND year1 = p_year.
IF sy-subrc = 0.
WRITE :/ 'Document ', i_zif004_pkt_sum-xblnr, 'is posted for ', i_zif004_pkt_sum-code.
ENDIF.
ENDLOOP.
kindly give some inputs..
regards
SelvaHi,
You will face this issue if your oracle data base is lack of work processes. try to check the work processes and increase them if possible with the helps basis guys.
check the below thread.
DI job failed ORA-12537: TNS:connection closed.
Regards,
Venkatesh -
Issue while Updating a table having Unique Secondary Index
Hi,
I am trying to update a 'Z' table in which there are 5 fields comprising of primary key. Out of them 2 key fields are defined as a part of seconadry index with 'Unique' option selected.
As per the requirement, I am trying to update the table using modify statement so whenever this statement occurs it will check the primary keys and accordingly try to m958572 wrote:
Hi,
We have observed the exception *'JDBC activity timed out while updating the table -Table1"* in our logs in prod environment.
1)we verified the AWR report for that particular time and observed that one update statement was trying to update the table table1.
its a simple update statement as below
UPADTE TABLE1 SET COL1=VAL1,COL2=VAL2 WHERE ID1=VAL1 AND ID2=VAL2;
there is a PK index on ID2 column.
2)we also came to know that there were no locks on TABLE1 during this time.
can some one please let me know what could be the possible reason for this kind of exception?
ThanksOS/Networking mis-configuration.
Oracle does not know or care about the type or flavor of remote client (JDBC, OCI, ODBC, etc).
Oracle's default configuration contains no timeout.
I suspect a FireWall setting. -
OIM DB Row LOCK Exception on Quartz tables
I am facing db row lock error in Prod OIM due to which the Scheduler fails to kick off and an OIM Restart is required to release the lock and start the Scheduler again.
This Error is occuring at any time when none of the scheduler( Custom as well as House Keeping) are scheduled.The OIM Version is 9.0.3.1.
I have enabled Database logs in Debug mode but there are no logs corresponding to the table where lock occured.
This Error was encountered long back with OIM 9.0.1 and was reported as Bug 6491465, but was suspended because of no response from Customer.
The Error trace is as follows
ERROR,11 Sep 2009 16:57:05,497,[org.quartz.core.ErrorLogger],An error occured while scanning for the next trigger to fire.
org.quartz.impl.jdbcjobstore.LockException: Failure obtaining db row lock: Io exception: Connection reset [See nested exception: java.sql.SQLException: Io ex
ception: Connection reset]
at org.quartz.impl.jdbcjobstore.StdRowLockSemaphore.obtainLock(StdRowLockSemaphore.java:154)
at org.quartz.impl.jdbcjobstore.JobStoreCMT.acquireNextTrigger(JobStoreCMT.java:1376)
at org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:231)
* Nested Exception (Underlying Cause) ---------------
java.sql.SQLException: Io exception: Connection reset
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:138)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:175)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:287)
at oracle.jdbc.driver.T4CPreparedStatement.execute_for_describe(T4CPreparedStatement.java:515)
at oracle.jdbc.driver.OracleStatement.execute_maybe_describe(OracleStatement.java:1029)
at oracle.jdbc.driver.T4CPreparedStatement.execute_maybe_describe(T4CPreparedStatement.java:535)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1126)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3001)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3043)
at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:92)
at org.quartz.impl.jdbcjobstore.StdRowLockSemaphore.obtainLock(StdRowLockSemaphore.java:137)
at org.quartz.impl.jdbcjobstore.JobStoreCMT.acquireNextTrigger(JobStoreCMT.java:1376)
at org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:231)
Did anyone had ever encountered this error.Any Hints?I would check the network pieces as suggested in our internal emails. If the connection is dropping somewhere on your network, the lock would never be released.
-Kevin -
TX - row lock contention in SELECT query without update clause
Hi,
We are having problem in one of our application on production. The ASH report shows 'eq: Tx row lock contention' for only Select statements. There is no FOR UPDATE in the select statements. The exact statement is
enq: TX - row lock contention : SELECT COUNT (1) FROM Table1 WHERE col1= :1 AND col2= :1 AND col3= :1 AND ROWNUM = 1
enq: TX - row lock contention : SELECT MODULE_CD , MSG_DESC , SEVERITY FROM GS_ERROR_MSG WHERE MSG_NUM = :1
I don't know why the select are locking the table rows and resulting in waits..
Our environment is Oracle 10g and Forms & Reports..
Please help.
-- PrashantHi,
are you sure that there is no dml against the tables?
You can query v$active_session_history (eg column BLOCKING_SESSION) to see which session locked the row.
HTH..
- wiZ -
How to find who has locked a row in a table?
My DB is a Oracle Database 10g Enterprise Edition Release 10.2.0.4.0.
My question is very simple: You try to update a row of a table but find out it is locked by somebody else.
How do I find which user (or session) has locked that row?SELECT Decode(request, 0, 'Holder: ',
'Waiter: ')
||vl.sid sess,
status,
id1,
id2,
lmode,
request,
vl.TYPE
FROM v$lock vl,
v$session vs
WHERE ( id1, id2, vl.TYPE ) IN (SELECT id1,
id2,
TYPE
FROM v$lock
WHERE request > 0)
AND vl.sid = vs.sid
ORDER BY id1,
request
Maybe you are looking for
-
Can i upgrade my laptop furthur ?
hey ! i am using HP Pavilion G6 2007tx laptop with 8gb ram 500gb hardisk and i guess 1 gb Radeon graphics and still m facing lags while gaming and post production i want to khow is there any way to expand my ram furthur 8gb and my graphics card to 2g
-
email send program code as follows but note that we dont have e-mail server . is it possible without email server or not? REPORT zattach_email MESSAGE-ID zz LINE-SIZE 132 NO STANDARD PAGE HEADING. DATA:
-
Help needed in auto-increment in Oracle SQLPlus
hi everybody I have a table in which the id column should be autoincrementing. Whenever i insert a row in the table, the id should be autoincremented. How to create the table in Oracle SQL Plus. I insert the row using JDBC connection. So how to inser
-
Leopard and Adobe CS3 Products. Design and Video Production a must read.
Adobe posted this pdf. http://www.adobe.com/support/products/pdfs/leopardsupport.pdf Should answer any questions on compatibility. Web designers are safe if you use CS3. Studio 8, your out of luck. InDesign CS3, Photoshop CS3, Illustrator CS3 is safe
-
Can't empty trash in iPhoto 9.1.1
At some point, probably since upgrading to iPhoto 9 ('11), I stopped being able to empty the iPhoto trash. When I bring up the trash album, it shows the number of items in the trash (currently up to 2300), but there are no photos listed. Clicking Emp