Lock a table with toplink
Hello
I would like to lock a table with a toplink instruction (ie select for update).
How to lock the data ?
Thank in advance.
You can think of using pessimistic locking if you are wanting SELECT for UPDATE.
Following documentation will help you in this regard -
- http://oraclesvca2.oracle.com/docs/cd/B14099_19/web.1012/b15901/dataaccs008.htm
There is a section on pessimistic locking in that URL.
Similar Messages
-
Count the number of occurence in table with toplink
Hi !
there is no way to build a query with expressionbuilder or .... to count the number of occurences in my table ?
i don't want use query " select count(*) from table "
thanksNot sure of the question. Are you looking to get the sql "select count(*) from table" from using the TopLink expression framework or are you getting that SQL already and want something else?
If you are looking just to get the count from a table/class, you can use a ReportQuery:
ReportQuery rquery = new ReportQuery(ClassToQueryOn.class);
rquery.addCount(); //equivalent to count(*);
session.executeQuery(rquery);
You can use a report query to return data instead of objects, and use selection criteria just like a normal read query.
Best Regards,
Chris -
How oracle locks child table with foreign keys?
I have 3 tables. tab1 , tab2,tab3.
tab2 has FK on tab1.
tab3 has FK on tab2.All the FKs are indexed.
One transaction in my code changes tab3.
One transaction in my code changes tab1,tab2 and tab3.
I am facing deadlock issues on tab3 when both transactions work concurrently.
If I lock tab1 with "for update nowait " at the start of both transaction,will the problem be solved?Let me elaborate on my problem
TAB1
=====
a1 b1 c1
a2 b2 c2
a3 b3 c3
TAB2
=====
x1 y1 z1 a1
x2 y2 z2 a2
x3 y3 z3 a3
(FK indexed)
TAB3
=====
p1 q1 r1 y1
p2 q2 r2 y2
p3 q3 r3 y3
(FK indexed)
Transaction 1 for session1
select * from TAB1 where col1 = a1 for update nowait;
doing activities on tab2 and tab3 depending on the foreign key joins in loop.
Transaction 2 for session 2
select * from TAB1 where col1 = a2 for update nowait;
doing activities on tab2 and tab3 depending on the foreign key joins in loop.
1) Please let me know whether these sessions can head towards deadlock.
2) If some session try to update TAB3 row of y1 when session 1 is still working , how will system behave?
will it go for blocked session or go for dead lock or get an exception message?
Edited by: user9974355 on Dec 17, 2008 11:58 PM
Edited by: user9974355 on Dec 18, 2008 12:00 AM -
Toplink Optimistic Locking not working with Session Bean facade.
I am working on Oracle JDeveloper v 10.1.2 and connecting to an Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit
The application is based on J2EE architecture and the technology stack uses Struts for presentation/controller framework, Stateless Session EJBs as session facade for custom business services, Simple java classes for the business services, Toplink implementation of DAO layer, Domain objects are mapped to database tables using Toplink Workbench that ships with JDeveloper. The transaction is managed by the session bean and hence the toplink session is configured to use external transaction controller and a named datasource as follows.
<session xsi:type="server-session">
<name>DBSession</name>
<server-platform xsi:type="oc4j-1012-platform"/>
<event-listener-classes/>
<logging xsi:type="toplink-log">
<log-level>fine</log-level>
<file-name>D:/ToplinkLog.log</file-name>
</logging>
<primary-project xsi:type="xml">META-INF/toplink-descriptor.xml</primary-project>
<login xsi:type="database-login">
<platform-class>oracle.toplink.platform.database.oracle.Oracle10Platform</platform-class>
<external-connection-pooling>true</external-connection-pooling>
<external-transaction-controller>true</external-transaction-controller>
<sequencing>
<default-sequence xsi:type="native-sequence">
<name>Native</name>
<preallocation-size>1</preallocation-size>
</default-sequence>
</sequencing>
<datasource>jdbc/ORADS</datasource>
</login>
</session>
We intend to use Optimistic Locking based on Timestamp-version locking through an audit field "last_modification_date" of type java.sql.Timestamp. The corresponding database field is also of type Timestamp(6). We are not storing the version in cache.
The problem we are facing is as follows.. we have an edit screen from where user can edit values for a domain object which are then persisted using Toplink...we expect Toplink to check the database record version (modification_date timestamp) before it applies the update. In DAO implementation, we register the object in a unitOfWork, then set the modified values, however we leave the modification_date (version field) unedited. Now when the application is running, on edit, an exception is thrown by the Session bean before ending the transaction.
com.evermind.server.rmi.OrionRemoteException: Transaction was rolled back: Error in transaction: java.lang.NullPointerException
at TrackingMediator_StatelessSessionBeanWrapper2.editOverheadExpenditure(TrackingMediator_StatelessSessionBeanWrapper2.java:1597)
at com.enbridge.dsm.web.action.TrackingPortfolioAction.editOverheadExpenditure(TrackingPortfolioAction.java:264)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:278)
at com.enbridge.dsm.web.shared.BaseAction.execute(BaseAction.java:90)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:465)
at com.enbridge.dsm.web.shared.DSMPojoRequestProcessor.process(DSMPojoRequestProcessor.java:182)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1425)
at com.sourcebeat.strutslive.common.SLActionServlet.process(SLActionServlet.java:44)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)
at oracle.security.jazn.oc4j.JAZNFilter.doFilter(Unknown Source)
at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:16)
at com.enbridge.dsm.web.shared.security.SecurityFilter.doFilter(SecurityFilter.java:142)
at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:645)
at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:322)
at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:790)
at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:270)
at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:112)
at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:192)
at java.lang.Thread.run(Thread.java:534)
Nested exception is:
java.lang.NullPointerException
at oracle.jdbc.driver.PhysicalConnection.commit(PhysicalConnection.java:1190)
at com.evermind.sql.FilterConnection.commit(FilterConnection.java:209)
at com.evermind.sql.DriverManagerXAConnection.commit(DriverManagerXAConnection.java:203)
at com.evermind.server.TransactionEnlistment.commit(TransactionEnlistment.java:251)
at com.evermind.server.ApplicationServerTransaction.singlePhaseCommit(ApplicationServerTransaction.java:745)
at com.evermind.server.ApplicationServerTransaction.commit(ApplicationServerTransaction.java:690)
at com.evermind.server.ApplicationServerTransaction.end(ApplicationServerTransaction.java:1035)
at TrackingMediator_StatelessSessionBeanWrapper2.editOverheadExpenditure(TrackingMediator_StatelessSessionBeanWrapper2.java:1593)
at com.enbridge.dsm.web.action.TrackingPortfolioAction.editOverheadExpenditure(TrackingPortfolioAction.java:264)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:278)
at com.enbridge.dsm.web.shared.BaseAction.execute(BaseAction.java:90)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:465)
at com.enbridge.dsm.web.shared.DSMPojoRequestProcessor.process(DSMPojoRequestProcessor.java:182)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1425)
at com.sourcebeat.strutslive.common.SLActionServlet.process(SLActionServlet.java:44)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)
at oracle.security.jazn.oc4j.JAZNFilter.doFilter(Unknown Source)
at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:16)
at com.enbridge.dsm.web.shared.security.SecurityFilter.doFilter(SecurityFilter.java:142)
at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:645)
at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:322)
at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:790)
at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:270)
at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:112)
at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:192)
at java.lang.Thread.run(Thread.java:534)
Note that the exception is thrown at the time when the session bean is about to commit the transaction. i.e. the DAO code did not throw any exception and was able to check the optimistic locking and submit the update transaction.
I am not able to understand why is the the EJB throwing this weird error with Optimistic locking implementation. The application is working fine when the optimistic locking is disabled.
I am facing another problem due to this problem... since the session bean throws this exception after exiting the bean implemented method, when trying to commit the transaction, I am not able to mark the session context to setRollbackOnly. Hence if I continue on to another transaction by navigating to another screen in the application, mysteriously the previous transaction gets committed!!... again... weird...I am using JDBC driver version 10.1.2.
I saw this additional error message in JDeveloper console, which for some reason was not logged to my log4j log file... if it helps...
06/09/22 18:32:10 Thr[thread 6]-TransactionEnlistment.TransactionEnlistment.Caught forgetandRollback XAException e null
Here are the logs from my Toplink log file....
[TopLink Info]: 2006.09.22 06:31:46.546--ServerSession(989)--Thread(Thread[HttpRequestHandler-86,5,main])--TopLink, version: Oracle TopLink - 10g Release 3 (10.1.3.0.0) (Build 060118)
[TopLink Info]: 2006.09.22 06:31:46.578--ServerSession(989)--Thread(Thread[HttpRequestHandler-86,5,main])--Server: Oracle Application Server Containers for J2EE 10g (10.1.2.0.0)
[TopLink Config]: 2006.09.22 06:31:46.593--ServerSession(989)--Connection(991)--Thread(Thread[HttpRequestHandler-86,5,main])--connecting(DatabaseLogin(
platform=>Oracle10Platform
user name=> ""
connector=>JNDIConnector datasource name=>jdbc/ORADS
[TopLink Config]: 2006.09.22 06:31:47.484--ServerSession(989)--Connection(1432)--Thread(Thread[HttpRequestHandler-86,5,main])--Connected: jdbc:oracle:thin:@10.210.16.37:1521:orabld
User: APP_USR
Database: Oracle Version: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
Driver: Oracle JDBC driver Version: 10.1.0.3.0
[TopLink Config]: 2006.09.22 06:31:47.500--ServerSession(989)--Connection(1433)--Thread(Thread[HttpRequestHandler-86,5,main])--connecting(DatabaseLogin(
platform=>Oracle10Platform
user name=> ""
connector=>JNDIConnector datasource name=>jdbc/ORADS
[TopLink Config]: 2006.09.22 06:31:47.500--ServerSession(989)--Connection(1434)--Thread(Thread[HttpRequestHandler-86,5,main])--Connected: jdbc:oracle:thin:@10.210.16.37:1521:orabld
User: APP_USR
Database: Oracle Version: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
Driver: Oracle JDBC driver Version: 10.1.0.3.0
[TopLink Info]: 2006.09.22 06:31:47.671--ServerSession(989)--Thread(Thread[HttpRequestHandler-86,5,main])--DBSession login successful
[TopLink Fine]: 2006.09.22 06:31:47.703--ServerSession(989)--Connection(1554)--Thread(Thread[HttpRequestHandler-86,5,main])--select * from user_role ur, app_resource ar, role_resource rr where rr.APP_RESOURCE_ID = ar.APP_RESOURCE_ID and rr.USER_ROLE_ID = ur.USER_ROLE_ID
[TopLink Fine]: 2006.09.22 06:31:49.937--ServerSession(989)--Connection(10245)--Thread(Thread[HttpRequestHandler-86,5,main])--SELECT * FROM PROGRAM_SUB_CAT
[TopLink Fine]: 2006.09.22 06:31:50.015--ServerSession(989)--Connection(10332)--Thread(Thread[HttpRequestHandler-86,5,main])--SELECT PROGRAM_ID, CREATED_BY_USERID FROM (SELECT CREATED_BY_USERID, ROWNUM PROGRAM_ID FROM (SELECT DISTINCT(CREATED_BY_USERID) CREATED_BY_USERID, 1 AS PROGRAM_ID FROM PROGRAM))
(I only see my application specific queries after this... no exceptions or debug logs)... as I said before.. the application gives exception in the session bean at the time of commit, and there's no exception raised from Toplink code in DAO... -
Lock escalation on table with no key/index
Hi,
I've got the table with single column only (int) and no indexes nor pk/uq, just auto-created statistics.
now, in transaction, there is a command: SELECT <COL> FROM <TABLE> WITH (ROWLOCK UPDLOCK) WHERE <COL>=100
Table has variable num of records but it doesn't go over 200k, usually below 60k. Column values are mostly unique but can be duplicated in minor portion.
Question 1: when this select executes, what will be locked - row, page or entire table?
Question 2: if I have PK/UQ/index and execute same SELECT as above, what will locked then?Hi,
1. Please note that every lock taken by sql server has some memory associated with it so more the number of locks more memory it will use. To avoid this unnecessary usage sql server uses Lock escalation when it deems necessary that it would be better to
lock whole table instead of locking whole row.
There is no use here using UPDLOCK with select statement, it would just change locking behavior and would force U lock lets see example
I have a table having structure as
CREATE TABLE [dbo].[Logging](
[Id] [int] IDENTITY(1,1) NOT NULL,
[c1] [char](50) NOT NULL DEFAULT ('SOME MORE DATA')
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
it ha some 20 K records now lets concentrate on query which you asked
begin transaction
select @@SPID,ID,C1 from dbo.Logging with (ROWLOCK,UPDLOCK) where id=12
--commit
To see locks taken by this query we would run below query in other SSMS window
Select
resource_type,
request_mode,
request_status,
request_session_id
from sys.dm_tran_locks
where resource_database_id=11--databse ID
below is result
You can see update lock bein taken on row and IX intent exclusive lock on object that is table and shared lock on database.
Now if we change the query to scan whole table like below
Now you can see Only exclusive lock is taken on whole table instead of taking on every row. If you see the query every row has predicate 'some more data' so ultimately a table scan would be required .
Above is assuming default Isolation level
Please mark this reply as answer if it solved your issue or vote as helpful if it helped so that other forum members can benefit from it
My Technet Wiki Article
MVP -
Dynamic table with header locked and vertical scrollbar problem.
Hi,
I have created a dynamic table with header locked.The sample code is as below.
<div style="width:910px ; overflow-x : scroll">
<h:panelgrid ...for header populated by binding to pagecode/>
<div style="width:910px ; height:200px ; overflow-y : scroll">
<h:panelgrid ...for data populated by binding to pagecode/>
</div>
</div>
The above piece of code serves the purpose.
There is an overflow in both x as well as y directions and scrollbars appear.But the y scrollbar can be seen only when the x-scrollbar is moved to the extreme right.
Does anyone have a solution so that both the scrollbars can be seen as soon as the table loads without the need to move x to the extreme right to see y?wa_layout-grid_title = text-039.
wa_layout-sel_mode = 'A'.
APPEND wa_layout TO gs_layout.
wa_layout-grid_title = text-039.
wa_layout-sel_mode = 'A'.
APPEND wa_layout TO gs_layout.
wa_layout-grid_title = text-039.
wa_layout-sel_mode = 'A'.
APPEND wa_layout TO gs_layout.
CALL METHOD gr_alvgrid1->set_table_for_first_display
EXPORTING
is_layout = gs_layout
CHANGING
it_fieldcatalog = it_fieldcatalog1[]
it_outtab = <l_table>.
i am using like but its not accepting more than one line header in is_layout, is there any possibility to take like this.
Regards,
Mallikarjuna. -
Lock the table by user with grant only for select
Hallo.
It is possible that the user has rights only for SELECT, do not lock the table? Now, where do "SELECT * FROM table FOR UPDATE", does not make the change, but it locks the entire table, and another user to get into it.
ThanksAnd here is the "evidence" ;)
SQL> select * from v$version ;
BANNER
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
PL/SQL Release 10.2.0.4.0 - Production
CORE 10.2.0.4.0 Production
TNS for Solaris: Version 10.2.0.4.0 - Production
NLSRTL Version 10.2.0.4.0 - Production
SQL> create user u1 identified by u1 ;
User created.
SQL> grant connect to u1 ;
Grant succeeded.
SQL> connect hr/hr
Connected.
SQL> create or replace view v_t1 as select username, user_id, created from t1 group by username, use
r_id, created with read only ;
View created.
SQL> grant select on v_t1 to u1 ;
Grant succeeded.
SQL> connect u1/u1
Connected.
SQL> select * from hr.v_t1 where rownum = 1 for update ;
select * from hr.v_t1 where rownum = 1 for update
ERROR at line 1:
ORA-02014: cannot select FOR UPDATE from view with DISTINCT, GROUP BY, etc.
SQL> select * from hr.v_t1 where rownum = 1
2 ;
USERNAME USER_ID CREATED
AK 36 08-MAY-00 -
Hi: I am on 10.2.0.3.
Anybody know a view which shows thw tables with locked stats?
Thanks,
GregYou can find table lock details from dba_tables / all_tables check table_lock column
http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/statviews_2.htm#i1592091 -
MYSQL backup, mysql -e "FLUSH TABLES WITH READ LOCK" doesnt work
I want to backup mysql locking tables first using flush tables with readlock, then do rsync and then unlock tables.
I want to do it automatically using script.
When I log in to mysql using: mysql -u root -p
the command:
FLUSH TABLES WITH READ LOCK;
works and locks the tables...but when I create my.cnf with login information to mysql:
[client]
user=root
password=xxx
the command:
mysql -e "SHOW DATABASES"
works and shows the databases....
but when I run this command:
mysql -e "FLUSH TABLES WITH READ LOCK"
it doesnt lock the tables...why?
thanksAre calling the 'mysql -e' command as your user or as root? If you call it as root (typical for a backup script), then the .my.cnf file needs to be in /root instead of $HOME.
Scott -
How to lock the perticular record in table with some of fields
Hi,
I have one Doubt please clarify me.
How to lock the record in table with perticular fields combination please give me example of code.
Thanks,
Hari.Hi,
IT LIKE this....
This is the function mode that you have to create for locking the contents of you internal table.
CALL FUNCTION 'ENQUEUE_EZHFINDID'
EXPORTING
mode_zhfindid = 'E'
mandt = sy-mandt
ownid = w_display-ownid
X_OWNID = ' '
_SCOPE = '2'
_WAIT = ' '
_COLLECT = ' '
EXCEPTIONS
foreign_lock = 1
system_failure = 2
OTHERS = 3.
CASE sy-subrc.
WHEN 1.
w_flag_lock = c_x.
CLEAR w_okflag.
MESSAGE e265 WITH w_display-ownnum.
ENDCASE.
Jayant Sahu. -
How to see lock on table and query?
Hi All,
How do we see lock on table and query?
Thanks,
RafiYes Rafi,
It is working fine at my end. See below:
Opened Session 1 with scott/tiger and:
update emp set ename='xx' where empno=7499;
Opened Session 2 with scott/tiger and:
update emp set ename='xx' where empno=7499;
<<Its lock here>> This session is locked by above one.
Opened Session 3 with sys/pw as sysdba and:
SQL> set serveroutput on
SQL> BEGIN
2 dbms_output.enable(1000000);
3 for do_loop in (select session_id, a.object_id, xidsqn, oracle_username, b.owner owner,
4 b.object_name object_name, b.object_type object_type
5 FROM v$locked_object a, dba_objects b
6 WHERE xidsqn != 0
7 and b.object_id = a.object_id)
8 loop
9 dbms_output.put_line('.');
10 dbms_output.put_line('Blocking Session : '||do_loop.session_id);
11 dbms_output.put_line('Object (Owner/Name): '||do_loop.owner||'.'||do_loop.object_name);
12 dbms_output.put_line('Object Type : '||do_loop.object_type);
13 for next_loop in (select sid from v$lock
14 where id2 = do_loop.xidsqn
15 and sid != do_loop.session_id)
16 LOOP
17 dbms_output.put_line('Sessions being blocked : '||next_loop.sid);
18 end loop;
19 end loop;
20 END;
21 /
Blocking Session : 139
Object (Owner/Name): SCOTT.EMP
Object Type : TABLE
Sessions being blocked : 134
PL/SQL procedure successfully completed.HTH
Girish Sharma -
How can I check if there is a table with the given name ?
I'm using 8i and 9i.
Could anybody teach me how to check if there is a table with a certain name in SQLPLUS without using SELECT
statement ?
I want to use the following logical procedure.
if exists "table_to_be_deleted" then drop table "table_to_be_deleted"
Or, is there any system table that I can check the names of tables like
count = select "table_to_be_deleted" from "an_oracle_system_table"
if ( count != 0 ) then drop table "table_to_be_deleted"
Thanks,
JohnJust create it, but be aware that DDLs can't be executed directly from Pl/Sql, so you'll have to use dynamic Sql, e.g. :
SQL> create table test(a number);
Table created.
SQL> begin
2 drop table test;
3 exception
4 when others then
5 null;
6 end;
SQL> /
drop table test;
ERROR at line 2:
ORA-06550: line 2, column 1:
PLS-00103: Encountered the symbol "DROP" when expecting one of the following:
begin case declare exit for goto if loop mod null pragma
raise return select update while with <an identifier>
<a double-quoted delimited-identifier> <a bind variable> <<
close current delete fetch lock insert open rollback
savepoint set sql execute commit forall merge pipe
SQL> ed
Wrote file afiedt.buf
1 begin
2 execute immediate 'drop table test';
3 exception
4 when others then
5 null;
6* end;
SQL> /
PL/SQL procedure successfully completed.
SQL>Now the table does not exist anymore, but further executions will not generate errors, due to the exception handler :
SQL> desc test
ERROR:
ORA-04043: object test does not exist
SQL> /
PL/SQL procedure successfully completed.
SQL> -
How can I lock a table so that a person can only enter data, not manipulate the table?
I don't want to Lock the table as Numbers does it so perhaps locking is the wrong term. What I want to do is to lock the formatting of the table so it is possible to enter data but not possible to change the position, number of columns etc. I've been searching and all I can come up with is the regular lock function. But I still want to be able to use the cells. Just not change formatting.
Thanks, Bradyou cannot. When you lock a table the whole table is locked. I would consider segmenting the user input into a seprate, un-locked table and placing the calculations in a locked table
-
Error when inserting in a table with an identity column
Hi,
I am new to Oracle SOA suite and ESB.
I have been through the Oracle training and have worked for about 2 months with the tooling.
We have a Database adabter that inserts data in 5 Tables with relations to each other.
Each table has his own not NULL Identity column.
When running/ testing the ESB service we get the error at the end of this post.
From this we learned that the Database adapter inserts the value NULL in the identity column.
We cannot find in the documentation how to get the database adabter to skip this first column and ignore it.
Is this possible within the wizard? Our impression is no
Is this possible somwhere else/
And if so How can we do this?
If anyone can help it would be greatly appreciated
Pepijn
Generic error.
oracle.tip.esb.server.common.exceptions.BusinessEventRejectionException: An unhandled exception has been thrown in the ESB system. The exception reported is: "org.collaxa.thirdparty.apache.wsif.WSIFException: esb:///ESB_Projects/GVB_PDI_PDI_Wegschrijven_Medewerkergegevens/testurv.wsdl [ testurv_ptt::insert(VastAdresCollection) ] - WSIF JCA Execute of operation 'insert' failed due to: DBWriteInteractionSpec Execute Failed Exception.
insert failed. Descriptor name: [testurv.VastAdres]. [Caused by: Cannot insert explicit value for identity column in table 'VastAdres' when IDENTITY_INSERT is set to OFF.]
; nested exception is:
ORABPEL-11616
DBWriteInteractionSpec Execute Failed Exception.
insert failed. Descriptor name: [testurv.VastAdres]. [Caused by: Cannot insert explicit value for identity column in table 'VastAdres' when IDENTITY_INSERT is set to OFF.]
Caused by Uitzondering [TOPLINK-4002] (Oracle TopLink - 10g Release 3 (10.1.3.3.0) (Build 070608)): oracle.toplink.exceptions.DatabaseException
Interne uitzondering: com.microsoft.sqlserver.jdbc.SQLServerException: Cannot insert explicit value for identity column in table 'VastAdres' when IDENTITY_INSERT is set to OFF.Foutcode: 544
Call:INSERT INTO dbo.VastAdres (ID, BeginDatum, Einddatum, Land, Plaats, Postcode, VolAdres) VALUES (?, ?, ?, ?, ?, ?, ?)
bind => [null, 1894-06-24 00:00:00.0, 1872-09-04 00:00:00.0, Nederland, Wijdewormer, 1456 NR, Oosterdwarsweg 8]
Query:InsertObjectQuery(<VastAdres null />).Hi,
Click on the resources tab in the ESB system/ Project to see the ESB system design and all the components in it.
Click on the Database adapter that you want to edit..and make the necesary changes..
Check this link.
http://download-uk.oracle.com/docs/cd/B31017_01/core.1013/b28764/esb008.htm for "6.8.2 How to Modify Adapter Services" section.
If you are calling a database procedure which inturn makes the insert, you will have to make changes in the database and you job would be much simpler. It seems there are limitations on what you can change in the Database adapter once it is created. Please check the link for further details.
Thanks,
Rajesh -
Sample insert into table with BLOB column
This is my first opportunity to work with BLOB columns. I was wondering if anyone had some sample code that shows the loading of a blob column and inserted into the table with a blob column.
I have to produce a report (including crlf) and place it into a blob column. The user will download the report at a later time.
Any suggestions / code samples are greatly appreciated!!!!You can enable string binding in TopLink.
login.useStringBinding(int size);
or you could enable binding in general,
login.bindAllParameters();
Maybe you are looking for
-
Connecting to an Intel Mac remotely
I was wondering if it is possible to use my old Mac iBook running 10.4.11 to connect to an Intel Mac running Snow Leopard remotel? I would like to be able to control the iBook similar to how I can control my iBook remotely with my Intel Mac using S
-
How do i create an effect of binoculars on a video\pic in premiere cs3?
is it possible to create an effect of binoculars on a video\pic in premiere cs3? iv'e tried looking but i cant find does any of you know anything about it?
-
GRC 10.0 SP 14 access request form displays unassigned roles
Dear experts, when I open the Access Request form and I select a user, and then I click on existing assignments, I am shown a list of roles and systems assigned to this user. However, when I go to those corresponding backend systems to see if the rol
-
NEW Iphone 4G-I cannot get emails while on road, but when I get in my house I get them
I don't know why, but my phone cannot connect to the internet UNLESS I am in my house. Any ideas?
-
PowerBook keeps freezing after sleep.
I have a 1Ghz PowerBook that often freeze when I try to wake it up from sleep. The screen goes dark and a box appears in the middle telling me that I need to hold down the power button for a few seconds and to restart, it's written in a few different