TOPLINK-5006
Please look at the following exception . Does it mean I have versionLocking policy set for a descriptor . What can be concluded from the trace.
Exception [TOPLINK-5006] (TopLink (WLS CMP) - 10g (9.0.4.5) (Build 040930)): oracle.toplink.exceptions.OptimisticLockException
Exception Description: The object [[email protected]086c] cannot be updated because it has changed or been deleted since it was last read.
Class> com.rhii.mjplus.fo.people.beans.People_z2e2a7__TopLink_CMP_2_0 Primary Key> [200152710, 3]
at oracle.toplink.exceptions.OptimisticLockException.objectChangedSinceLastReadWhenUpdating(OptimisticLockException.java:109)
at oracle.toplink.descriptors.VersionLockingPolicy.validateUpdate(VersionLockingPolicy.java:658)
at oracle.toplink.internal.queryframework.DatabaseQueryMechanism.updateObjectForWriteWithChangeSet(DatabaseQueryMechanism.java:1007)
at oracle.toplink.queryframework.WriteObjectQuery.executeCommitWithChangeSet(WriteObjectQuery.java:107)
This exception happens when you've enabled Optimistic locking, and have two concurrent transactions trying to modify/delete the same object in the concurrent transactions.
- Don
Similar Messages
-
MergeClone in Toplink 10.1.3
I have an object model with Booking and Status objects, where Booking has 1-1 relationship with Status.
Since we're using Webservices, we try to perform update on the object returned by webservice with MergeClone as follows:
Session session = getSession();
UnitOfWork uow = session.acquireUnitOfWork();
uow.registerObject(booking);
uow.mergeCloneWithReferences(booking);
uow.commit();
However, I got SQL Exception when commit:
Internal Exception: java.sql.SQLException: ORA-00001: unique constraint (CS2_DEV_EXERCISE.SYS_C007756) violated
Error Code: 1
Call:INSERT INTO TEST_NGSC_BOOKING (BookingID, Name, version, StatusID) VALUES (101, 'changed', 1, NULL)
Query:InsertObjectQuery(booking[101, changed, null, 1] )
It is strange to me that Toplink generate "Insert" statement, but actually the record is already stored in DB, and the PK matched with the object I passed to "mergeClone" call.
I tried again by reading the Object 1st:
UnitOfWork uow = session.acquireUnitOfWork();
uow.registerObject(uow.readObject(booking));
uow.mergeCloneWithReferences(booking);
uow.commit();
Then I got another exception:
Exception [TOPLINK-5006] (Oracle TopLink - 10g Release 3 (10.1.3.1.0) (Build 061004)): oracle.toplink.exceptions.OptimisticLockException
Exception Description: The object [booking[101, changed, null, 1] ] cannot be updated because it has changed or been deleted since it was last read.
Class> com.cargosmart.toplink.test.Booking Primary Key> [101]
Please kindly advice if I have done anything wrong in my code
Many ThanksFor the case:
uow.registerObject(uow.readObject(booking));
uow.mergeCloneWithReferences(booking);
uow.commit();
The same exception thrown as before:
Exception [TOPLINK-5006] (Oracle TopLink -
10g
Release 3 (10.1.3.1.0) (Build 061004)):
oracle.toplink.exceptions.OptimisticLockException
Exception Description: The object [status[51,null,
null, 1] ] cannot be updated because it haschanged
or been deleted since it was last read.
Class> com.cargosmart.toplink.test.Status
Primary
Key> [51]Can you add this line of code after you issue
uow.commit() ?
uow.getUnitOfWorkChangeSet().hasChanges();
If this is false that means there are no changes.
You need to ensure that when the object is sentback
over the wire there are indeed changes or elsewhen
the comparison happens and there are no changes
no
updates will be written.
I was able to reproduce one of your problems(the
unique key violation) but was unable toreproduce
the
optimistic lock exception.I was able to reproduce the optimistic lockexception
as well. On your web services client side code you
have invoked a method that changes the version
attribute on the booking class. The versionattribute
is one that Toplink manages not the developer.Check
to see if this is happening.Thanks for reminding!
Yes, the problem is related to the version field.
I need to take special care on the version value by
performing the "readObject", get the existing version
value and fit into the changed object before
performing mergeClone, and then I was able to commit
the change into DB successfully.I understand that you have to do a "readObject" before you merge to avoid the unique constraint violation exception(the object may no longer be in the cache when you merge especially if you set the Existence check to "Check Cache"). But I am not sure updating the version field is recommended. You may want to confirm that of course. -
We are encountering OptmisticLockException sometimes in our app, when this happens all the other transactions are affected, is there any way to clear the Toplink cache externally? thanks
Thanks, but can you please tell me why Toplnik is issuing an update instead of insert for the object FXSingleLegC.FI120.0#16137966, I have given the list of registered objects and the sql generated, as you
can see the primary key is 0 for the object and Toplink still issues an update statement
2008-10-16 13:30:45,385 DEBUG Thread-199 [[email protected]] ISTransactionManager.endTransaction called
2008-10-16 13:30:45,387 INFO Thread-199 [[email protected]] Persistence - TOPLink: [TopLink Severe]:
2008-10-16 13:30:45,387 INFO Thread-199 [[email protected]] Persistence - TOPLink: 2008.10.16 01:30:45.387--UnitOfWork(16131849)--Thread(Thread[Thread-199,5,ASF Session Pool Threads])--
2008-10-16 13:30:45,387 INFO Thread-199 [[email protected]] Persistence - TOPLink:
UnitOfWork identity hashcode: 16131849
All Registered Clones:
Key: [0] Identity Hash Code: 16153182 Object: com.integral.finance.dealing.fx.FXLegDealingPriceC.CITI.0#16153182
Key: [0] Identity Hash Code: 15825629 Object: com.integral.finance.trade.TradeExternalSystemIdC.MAIN.0#15825629
Key: [0] Identity Hash Code: 16151868 Object: com.integral.finance.dealing.QuoteC.CITI.0#16151868
Key: [0] Identity Hash Code: 16136988 Object: com.integral.finance.dealing.RequestExternalSystemIdC.MAIN.0#16136988
Key: [0] Identity Hash Code: 16165592 Object: com.integral.finance.fx.FXLegC.MAIN.0#16165592
Key: [0] Identity Hash Code: 16152054 Object: com.integral.finance.dealing.fx.FXLegDealingPriceC.CITI.0#16152054
Key: [0] Identity Hash Code: 16136630 Object: com.integral.finance.dealing.RequestC.FI120.0#16136630
Key: [0] Identity Hash Code: 16152405 Object: com.integral.finance.dealing.fx.FXDealingPriceElementC.MAIN.0#16152405
Key: [0] Identity Hash Code: 16261779 Object: com.integral.workflow.WorkflowStateMapC.FI120.0#16261779
Key: [0] Identity Hash Code: 16153490 Object: com.integral.finance.dealing.fx.FXDealingPriceElementC.MAIN.0#16153490
Key: [0] Identity Hash Code: 16137966 Object: com.integral.finance.fx.FXSingleLegC.FI120.0#16137966
Key: [0] Identity Hash Code: 16137678 Object: com.integral.finance.fx.FXLegC.MAIN.0#16137678
Key: [0] Identity Hash Code: 16140011 Object: com.integral.finance.dealing.fx.FXLegDealingPriceC.MAIN.0#16140011
Key: [0] Identity Hash Code: 16262600 Object: com.integral.finance.trade.CptyTradeC.FI120.0#16262600
Key: [0] Identity Hash Code: 16263303 Object: com.integral.finance.trade.CptyTradeC.FXI.0#16263303
Key: [0] Identity Hash Code: 16137383 Object: com.integral.finance.dealing.fx.FXLegDealingPriceC.MAIN.0#16137383
Key: [4434103] Identity Hash Code: 16156067 Object: com.integral.finance.dealing.RequestC.FI120.4434103#16156067
2008-10-16 13:30:45,387 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,387 INFO Thread-199 [[email protected]] Persistence - TOPLink: [TopLink Finer]:
2008-10-16 13:30:45,387 INFO Thread-199 [[email protected]] Persistence - TOPLink: 2008.10.16 01:30:45.387--UnitOfWork(16131849)--Thread(Thread[Thread-199,5,ASF Session Pool Threads])--
2008-10-16 13:30:45,387 INFO Thread-199 [[email protected]] Persistence - TOPLink: begin unit of work commit
2008-10-16 13:30:45,387 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,391 INFO Thread-199 [[email protected]] Persistence - TOPLink: [TopLink Finer]:
2008-10-16 13:30:45,391 INFO Thread-199 [[email protected]] Persistence - TOPLink: 2008.10.16 01:30:45.391--ClientSession(16131816)--Connection(38882854)--Thread(Thread[Thread-199,5,ASF Session Pool Threads])--
2008-10-16 13:30:45,391 INFO Thread-199 [[email protected]] Persistence - TOPLink: begin transaction
2008-10-16 13:30:45,391 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,392 INFO Thread-199 [[email protected]] Persistence - TOPLink: [TopLink Finer]:
2008-10-16 13:30:45,392 INFO Thread-199 [[email protected]] Persistence - TOPLink: 2008.10.16 01:30:45.392--ClientSession(16131816)--Connection(38882854)--Thread(Thread[Thread-199,5,ASF Session Pool Threads])--
2008-10-16 13:30:45,392 INFO Thread-199 [[email protected]] Persistence - TOPLink: Begin batch statements
2008-10-16 13:30:45,392 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,392 INFO Thread-199 [[email protected]] Persistence - TOPLink: [TopLink Fine]:
2008-10-16 13:30:45,392 INFO Thread-199 [[email protected]] Persistence - TOPLink: 2008.10.16 01:30:45.392--ClientSession(16131816)--Connection(38882854)--Thread(Thread[Thread-199,5,ASF Session Pool Threads])--
2008-10-16 13:30:45,392 INFO Thread-199 [[email protected]] Persistence - TOPLink: INSERT INTO IdcWorkflowState (id, modifiedDate, statusLastModified, status, wrkflowCode, wrkflowCodeArg, statelastmodified, createdDate, guid, version, displayKey, workflowparentid, cptyId, changeSetId, workflowErrorsId, namespaceId, lastactor, clsfId, lastStateId, workgroupId, firstactor, lastModifiedById, stateid, type) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
2008-10-16 13:30:45,392 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,392 INFO Thread-199 [[email protected]] Persistence - TOPLink: [TopLink Fine]:
2008-10-16 13:30:45,392 INFO Thread-199 [[email protected]] Persistence - TOPLink: 2008.10.16 01:30:45.392--ClientSession(16131816)--Connection(38882854)--Thread(Thread[Thread-199,5,ASF Session Pool Threads])--
2008-10-16 13:30:45,392 INFO Thread-199 [[email protected]] Persistence - TOPLink: bind => [5036105, 2008-10-16 13:30:45.378, null, A, null, null, 2008-10-16 13:30:45.379, 2008-10-16 13:30:45.378, G2cbe1d024c11d05d9e502972, 1, null, null, null, null, null, 167001, 402003, null, null, null, 402003, 402003, 78, IdcWFStateMapC]
2008-10-16 13:30:45,392 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,392 INFO Thread-199 [[email protected]] Persistence - TOPLink: [TopLink Finer]:
2008-10-16 13:30:45,392 INFO Thread-199 [[email protected]] Persistence - TOPLink: 2008.10.16 01:30:45.392--ClientSession(16131816)--Connection(38882854)--Thread(Thread[Thread-199,5,ASF Session Pool Threads])--
2008-10-16 13:30:45,392 INFO Thread-199 [[email protected]] Persistence - TOPLink: End Batch Statements
2008-10-16 13:30:45,392 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,393 INFO Thread-199 [[email protected]] Persistence - TOPLink: [TopLink Fine]:
2008-10-16 13:30:45,393 INFO Thread-199 [[email protected]] Persistence - TOPLink: 2008.10.16 01:30:45.393--ClientSession(16131816)--Connection(38882854)--Thread(Thread[Thread-199,5,ASF Session Pool Threads])--
2008-10-16 13:30:45,393 INFO Thread-199 [[email protected]] Persistence - TOPLink: UPDATE IdcTrd SET modifiedDate = ?, statusLastModified = ?, origUsrId = ?, takerRefId = ?, origCptyId = ?, workflowStateMapId = ?, tkrCptyId = ?, mkrCptyId = ?, version = ?, lastModifiedById = ? WHERE ((id = ?) AND (version = ?))
bind => [2008-10-16 13:30:45.392, 2008-10-16 13:30:45.378, 402003, test167, 392001, 5036105, 392001, 392012, 1, 402003, 0, 0]
2008-10-16 13:30:45,393 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,395 WARN pool-2-thread-1 [-] HTTPMessageSenderC.sendMessage : status=200 responseStr=com.integral.is.message.ResponseMessageC|{}|{}|null|^1|{}|null|^
2008-10-16 13:30:45,395 WARN pool-2-thread-1 [-] HTTPMessageSenderC.getReturnMessage : objType is com.integral.is.message.ResponseMessageC
2008-10-16 13:30:45,395 WARN pool-2-thread-1 [-] HTTPMessageSenderC.getReturnMessage : objStr is {}|{}|null|^1|{}|null|^
2008-10-16 13:30:45,431 INFO Thread-199 [[email protected]] Persistence - TOPLink: [TopLink Warning]:
2008-10-16 13:30:45,431 INFO Thread-199 [[email protected]] Persistence - TOPLink: 2008.10.16 01:30:45.431--UnitOfWork(16131849)--Thread(Thread[Thread-199,5,ASF Session Pool Threads])--
2008-10-16 13:30:45,453 WARN JMS SessionPool Worker-60 [[email protected]] MessageListenerC.handleTradeResponse: Got trade response for transaction id FXI7423644->com.integral.is.message.TradeVerifyC - Properties{START_TIME=1224163845446,PROCESSED_TIME=1224163845446,} Timing{AcceptanceReceivedByAdapter=1224163845387,VerificationReceivedFromProvider=1224163845446,AcceptanceSentToProvider=1224163845387,} serverId=null,tradeId=FXI7423644,requestReferenceId=null,buySell=0,baseCcy=null,variableCcy=null,statusDesc=null,providerTradeId=FXI742364410,valueDate=Sat Oct 18 00:00:00 GMT 2008,acceptedAmount=0.0,acceptedSettledAmount=0.0,acceptedPrice=0.0
2008-10-16 13:30:45,453 INFO Thread-199 [[email protected]] Persistence - TOPLink: Local Exception Stack:
2008-10-16 13:30:45,454 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,456 INFO Thread-199 [[email protected]] Persistence - TOPLink: Exception [TOPLINK-5006] (Oracle TopLink - 10g Release 3 (10.1.3.4.0) (Build 080602)): oracle.toplink.exceptions.OptimisticLockException
Exception Description: The object [com.integral.finance.fx.FXSingleLegC.FI120.0#16137966] cannot be updated because it has changed or been deleted since it was last read.
Class> com.integral.finance.fx.FXSingleLegC Primary Key> [0]
2008-10-16 13:30:45,457 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,457 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.exceptions.OptimisticLockException.objectChangedSinceLastReadWhenUpdating(OptimisticLockException.java:125)
2008-10-16 13:30:45,457 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,457 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.descriptors.VersionLockingPolicy.validateUpdate(VersionLockingPolicy.java:677)
2008-10-16 13:30:45,457 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,457 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.internal.queryframework.DatabaseQueryMechanism.updateObjectForWriteWithChangeSet(DatabaseQueryMechanism.java:1081)
2008-10-16 13:30:45,457 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,457 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.queryframework.WriteObjectQuery.executeCommitWithChangeSet(WriteObjectQuery.java:98)
2008-10-16 13:30:45,457 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,457 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.internal.queryframework.DatabaseQueryMechanism.executeWriteWithChangeSet(DatabaseQueryMechanism.java:251)
2008-10-16 13:30:45,457 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,457 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.queryframework.WriteObjectQuery.executeDatabaseQuery(WriteObjectQuery.java:47)
2008-10-16 13:30:45,457 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,457 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.queryframework.DatabaseQuery.execute(DatabaseQuery.java:620)
2008-10-16 13:30:45,457 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,457 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.queryframework.DatabaseQuery.executeInUnitOfWork(DatabaseQuery.java:542)
2008-10-16 13:30:45,457 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,457 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.queryframework.ObjectLevelModifyQuery.executeInUnitOfWorkObjectLevelModifyQuery(ObjectLevelModifyQuery.java:100)
2008-10-16 13:30:45,457 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,457 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.queryframework.ObjectLevelModifyQuery.executeInUnitOfWork(ObjectLevelModifyQuery.java:72)
2008-10-16 13:30:45,457 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,457 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.publicinterface.UnitOfWork.internalExecuteQuery(UnitOfWork.java:2631)
2008-10-16 13:30:45,457 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,457 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.publicinterface.Session.executeQuery(Session.java:993)
2008-10-16 13:30:45,457 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,457 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.publicinterface.Session.executeQuery(Session.java:950)
2008-10-16 13:30:45,457 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,457 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.mappings.ObjectReferenceMapping.insert(ObjectReferenceMapping.java:853)
2008-10-16 13:30:45,457 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,457 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.mappings.ObjectReferenceMapping.preInsert(ObjectReferenceMapping.java:469)
2008-10-16 13:30:45,457 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,457 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.publicinterface.DescriptorQueryManager.preInsert(DescriptorQueryManager.java:892)
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.internal.queryframework.DatabaseQueryMechanism.insertObjectForWrite(DatabaseQueryMechanism.java:380)
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.queryframework.InsertObjectQuery.executeCommit(InsertObjectQuery.java:65)
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.queryframework.InsertObjectQuery.executeCommitWithChangeSet(InsertObjectQuery.java:75)
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.internal.queryframework.DatabaseQueryMechanism.performUserDefinedWrite(DatabaseQueryMechanism.java:522)
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.internal.queryframework.DatabaseQueryMechanism.performUserDefinedInsert(DatabaseQueryMechanism.java:490)
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.internal.queryframework.DatabaseQueryMechanism.insertObjectForWrite(DatabaseQueryMechanism.java:357)
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.queryframework.WriteObjectQuery.executeCommitWithChangeSet(WriteObjectQuery.java:110)
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.internal.queryframework.DatabaseQueryMechanism.executeWriteWithChangeSet(DatabaseQueryMechanism.java:251)
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.queryframework.WriteObjectQuery.executeDatabaseQuery(WriteObjectQuery.java:47)
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.queryframework.DatabaseQuery.execute(DatabaseQuery.java:620)
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.queryframework.DatabaseQuery.executeInUnitOfWork(DatabaseQuery.java:542)
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.queryframework.ObjectLevelModifyQuery.executeInUnitOfWorkObjectLevelModifyQuery(ObjectLevelModifyQuery.java:100)
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.queryframework.ObjectLevelModifyQuery.executeInUnitOfWork(ObjectLevelModifyQuery.java:72)
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.publicinterface.UnitOfWork.internalExecuteQuery(UnitOfWork.java:2631)
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.publicinterface.Session.executeQuery(Session.java:993)
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.publicinterface.Session.executeQuery(Session.java:950)
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.mappings.ObjectReferenceMapping.insert(ObjectReferenceMapping.java:853)
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.mappings.ObjectReferenceMapping.preInsert(ObjectReferenceMapping.java:469)
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.publicinterface.DescriptorQueryManager.preInsert(DescriptorQueryManager.java:892)
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.internal.queryframework.DatabaseQueryMechanism.insertObjectForWrite(DatabaseQueryMechanism.java:380)
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.queryframework.InsertObjectQuery.executeCommit(InsertObjectQuery.java:65)
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.queryframework.InsertObjectQuery.executeCommitWithChangeSet(InsertObjectQuery.java:75)
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.internal.queryframework.DatabaseQueryMechanism.executeWriteWithChangeSet(DatabaseQueryMechanism.java:251)
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.queryframework.WriteObjectQuery.executeDatabaseQuery(WriteObjectQuery.java:47)
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.queryframework.DatabaseQuery.execute(DatabaseQuery.java:620)
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.queryframework.DatabaseQuery.executeInUnitOfWork(DatabaseQuery.java:542)
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.queryframework.ObjectLevelModifyQuery.executeInUnitOfWorkObjectLevelModifyQuery(ObjectLevelModifyQuery.java:100)
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.queryframework.ObjectLevelModifyQuery.executeInUnitOfWork(ObjectLevelModifyQuery.java:72)
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.publicinterface.UnitOfWork.internalExecuteQuery(UnitOfWork.java:2631)
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.publicinterface.Session.executeQuery(Session.java:993)
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.publicinterface.Session.executeQuery(Session.java:950)
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.internal.sessions.CommitManager.commitNewObjectsForClassWithChangeSet(CommitManager.java:243)
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.internal.sessions.CommitManager.commitAllObjectsForClassWithChangeSet(CommitManager.java:218)
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.internal.sessions.CommitManager.commitAllObjectsWithChangeSet(CommitManager.java:174)
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.publicinterface.Session.writeAllObjectsWithChangeSet(Session.java:3194)
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.publicinterface.UnitOfWork.commitToDatabase(UnitOfWork.java:1320)
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.publicinterface.UnitOfWork.commitToDatabaseWithChangeSet(UnitOfWork.java:1416)
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.publicinterface.UnitOfWork.commitRootUnitOfWork(UnitOfWork.java:1164)
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink:
2008-10-16 13:30:45,458 INFO Thread-199 [[email protected]] Persistence - TOPLink: at oracle.toplink.publicinterface.UnitOfWork.commit(UnitOfWork.java:932) -
Toplink Cache issues in Cluster
Hi
Our production environment is have a clustered environment and we have been noticing the following problem. When a user is trying to save a record she repeatedly encounters the "Toplink-5006" exception that I have included below.
TopLink Error]: 2006.07.19 04:49:23.359--UnitOfWork(115148745)--null--Exception [TOPLINK-5006] (TopLink (WLS CMP) - 10g (9.0.4.2) (Build 040311)): oracle.toplink.exceptions.OptimisticLockException
Exception Description: The object [[email protected]ce459] cannot be updated because it has changed or been deleted since it was last read.
Class> com.rhii.mjplus.fo.people.beans.People_z2e2a7__TopLink_CMP_2_0 Primary Key> [1001280937, 0]
[TopLink Error]: 2006.07.19 04:49:23.359--UnitOfWork(115148745)--null--Exception [TOPLINK-5006] (TopLink (WLS CMP) - 10g (9.0.4.2) (Build 040311)): oracle.toplink.exceptions.OptimisticLockException
Exception Description: The object [[email protected]ce459] cannot be updated because it has changed or been deleted since it was last read.
Class> com.rhii.mjplus.fo.people.beans.People_z2e2a7__TopLink_CMP_2_0 Primary Key> [1001280937, 0]
<Jul 19, 2006 4:49:23 PM PDT> <Error> <EJB> <BEA-010026> <Exception occurred during commit of transaction Name=[EJB com.rhii.mjplus.fo.people.beans.PeopleManagerBean.setPeople(java.util.HashMap,java.lang.String,java.lang.String,java.lang.String,java.util.HashSet,com.rhii.mjplus.common.login.data.UserInfoDO)],Xid=BEA1-795A6481D2E1938A8EAD(115171166),Status=Rolled back. [Reason=Exception [TOPLINK-5006] (TopLink (WLS CMP) - 10g (9.0.4.2) (Build 040311)): oracle.toplink.exceptions.OptimisticLockException
Exception Description: The object [[email protected]ce459] cannot be updated because it has changed or been deleted since it was last read.
Class> com.rhii.mjplus.fo.people.beans.People_z2e2a7__TopLink_CMP_2_0 Primary Key> [1001280937, 0]],numRepliesOwedMe=0,numRepliesOwedOthers=0,seconds since begin=0,seconds left=60,XAServerResourceInfo[weblogic.jdbc.wrapper.JTSXAResourceImpl]=(ServerResourceInfo[weblogic.jdbc.wrapper.JTSXAResourceImpl]=(state=rolledback,assigned=MS15_mjp),xar=weblogic.jdbc.wrapper.JTSXAResourceImpl@6dcf50b),SCInfo[mjp+MS15_mjp]=(state=rolledback),properties=({weblogic.transaction.name=[EJB com.rhii.mjplus.fo.people.beans.PeopleManagerBean.setPeople(java.util.HashMap,java.lang.String,java.lang.String,java.lang.String,java.util.HashSet,com.rhii.mjplus.common.login.data.UserInfoDO)], weblogic.jdbc=t3://10.253.129.56:2323}),OwnerTransactionManager=ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=MS15_mjp+10.253.129.56:2323+mjp+t3+, XAResources={},NonXAResources={})],CoordinatorURL=MS15_mjp+10.253.129.56:2323+mjp+t3+): Local Exception Stack:
Exception [TOPLINK-5006] (TopLink (WLS CMP) - 10g (9.0.4.2) (Build 040311)): oracle.toplink.exceptions.OptimisticLockException
Exception Description: The object [[email protected]ce459] cannot be updated because it has changed or been deleted since it was last read.
Class> com.rhii.mjplus.fo.people.beans.People_z2e2a7__TopLink_CMP_2_0 Primary Key> [1001280937, 0]
at oracle.toplink.exceptions.OptimisticLockException.objectChangedSinceLastReadWhenUpdating(Ljava/lang/Object;Loracle/toplink/queryframework/ObjectLevelModifyQuery;)Loracle/toplink/exceptions/OptimisticLockException;(OptimisticLockException.java:109)
What is puzzling is that the occurance of this nature has increased with user load and the toplink cache does not seem to have been refreshed after it encounters the first Optimistic Lock exception. We have run several test and this is not reproducabile in the DEV environment where we do not have a clustered set. After making a few updates to a record users starts experiencing the problem ... for some this persist for a really long time.
We do not have Cache synchronization
Cluster setup is as followes
There are 4 boxes and each box has one admin and 4 managed servers.
I have included the toplink-cmp-people.xml ( Thisis the particular entity bean we have a problem with) Our application server is Weblogic and we have Toplink version 9042
<toplink-ejb-jar>
<session>
<name>People</name>
<project-class>
com.rhii.mjplus.fo.people.beans.PeopleToplink
</project-class>
<login>
<datasource>MJPool</datasource>
<non-jts-datasource>MJPool</non-jts-datasource>
</login>
<use-remote-relationships>true</use-remote-relationships>
<customization-class>com.rhii.mjplus.common.TopLinkCustomization
</customization-class>
</session>
</toplink-ejb-jar>
I would appreciate any kind of feedback
Thanks
LakshmiCan you refresh that record using a query before you save it ?
Hi
Our production environment is have a clustered
environment and we have been noticing the following
problem. When a user is trying to save a record she
repeatedly encounters the "Toplink-5006" exception
that I have included below.
TopLink Error]: 2006.07.19
04:49:23.359--UnitOfWork(115148745)--null--Exception
[TOPLINK-5006] (TopLink (WLS CMP) - 10g (9.0.4.2)
(Build 040311)):
oracle.toplink.exceptions.OptimisticLockException
Exception Description: The object
[com.rhii.mjplus.fo.people.beans.People_z2e2a7__TopLin
k_CMP_2_0@6dce459] cannot be updated because it has
changed or been deleted since it was last read.
Class>
com.rhii.mjplus.fo.people.beans.People_z2e2a7__TopLink
CMP2_0 Primary Key> [1001280937, 0]
[TopLink Error]: 2006.07.19
04:49:23.359--UnitOfWork(115148745)--null--Exception
[TOPLINK-5006] (TopLink (WLS CMP) - 10g (9.0.4.2)
(Build 040311)):
oracle.toplink.exceptions.OptimisticLockException
Exception Description: The object
[com.rhii.mjplus.fo.people.beans.People_z2e2a7__TopLin
k_CMP_2_0@6dce459] cannot be updated because it has
changed or been deleted since it was last read.
Class>
com.rhii.mjplus.fo.people.beans.People_z2e2a7__TopLink
CMP2_0 Primary Key> [1001280937, 0]
<Jul 19, 2006 4:49:23 PM PDT> <Error> <EJB>
<BEA-010026> <Exception occurred during commit of
transaction Name=[EJB
com.rhii.mjplus.fo.people.beans.PeopleManagerBean.setP
eople(java.util.HashMap,java.lang.String,java.lang.Str
ing,java.lang.String,java.util.HashSet,com.rhii.mjplus
.common.login.data.UserInfoDO)],Xid=BEA1-795A6481D2E19
38A8EAD(115171166),Status=Rolled back.
[Reason=Exception [TOPLINK-5006] (TopLink (WLS CMP) -
10g (9.0.4.2) (Build 040311)):
oracle.toplink.exceptions.OptimisticLockException
Exception Description: The object
[com.rhii.mjplus.fo.people.beans.People_z2e2a7__TopLin
k_CMP_2_0@6dce459] cannot be updated because it has
changed or been deleted since it was last read.
Class>
com.rhii.mjplus.fo.people.beans.People_z2e2a7__TopLink
CMP2_0 Primary Key> [1001280937,
0]],numRepliesOwedMe=0,numRepliesOwedOthers=0,seconds
since begin=0,seconds
left=60,XAServerResourceInfo[weblogic.jdbc.wrapper.JTS
XAResourceImpl]=(ServerResourceInfo[weblogic.jdbc.wrap
per.JTSXAResourceImpl]=(state=rolledback,assigned=MS15
_mjp),xar=weblogic.jdbc.wrapper.JTSXAResourceImpl@6dcf
50b),SCInfo[mjp+MS15_mjp]=(state=rolledback),propertie
s=({weblogic.transaction.name=[EJB
com.rhii.mjplus.fo.people.beans.PeopleManagerBean.setP
eople(java.util.HashMap,java.lang.String,java.lang.Str
ing,java.lang.String,java.util.HashSet,com.rhii.mjplus
.common.login.data.UserInfoDO)],
weblogic.jdbc=t3://10.253.129.56:2323}),OwnerTransacti
onManager=ServerTM[ServerCoordinatorDescriptor=(Coordi
natorURL=MS15_mjp+10.253.129.56:2323+mjp+t3+,
XAResources={},NonXAResources={})],CoordinatorURL=MS15
_mjp+10.253.129.56:2323+mjp+t3+): Local Exception
Stack:
Exception [TOPLINK-5006] (TopLink (WLS CMP) - 10g
(9.0.4.2) (Build 040311)):
oracle.toplink.exceptions.OptimisticLockException
Exception Description: The object
[com.rhii.mjplus.fo.people.beans.People_z2e2a7__TopLin
k_CMP_2_0@6dce459] cannot be updated because it has
changed or been deleted since it was last read.
Class>
com.rhii.mjplus.fo.people.beans.People_z2e2a7__TopLink
CMP2_0 Primary Key> [1001280937, 0]
at
t
oracle.toplink.exceptions.OptimisticLockException.obje
ctChangedSinceLastReadWhenUpdating(Ljava/lang/Object;L
oracle/toplink/queryframework/ObjectLevelModifyQuery;)
Loracle/toplink/exceptions/OptimisticLockException;(Op
timisticLockException.java:109)
What is puzzling is that the occurance of this nature
has increased with user load and the toplink cache
does not seem to have been refreshed after it
encounters the first Optimistic Lock exception. We
have run several test and this is not reproducabile
in the DEV environment where we do not have a
clustered set. After making a few updates to a record
users starts experiencing the problem ... for some
this persist for a really long time.
We do not have Cache synchronization
Cluster setup is as followes
There are 4 boxes and each box has one admin and 4
managed servers.
I have included the toplink-cmp-people.xml ( Thisis
the particular entity bean we have a problem with)
Our application server is Weblogic and we have
Toplink version 9042
<toplink-ejb-jar>
<session>
<name>People</name>
<project-class>
com.rhii.mjplus.fo.people.beans.PeopleToplink
</project-class>
<login>
<datasource>MJPool</datasource>
<non-jts-datasource>MJPool</non-jts-datasource>
</login>
<use-remote-relationships>true</use-remote-relationsh
ips>
<customization-class>com.rhii.mjplus.common.TopLinkCu
stomization
</customization-class>
</session>
</toplink-ejb-jar>
I would appreciate any kind of feedback
Thanks
LakshmiCan you refresh that record using a query before you save it ? -
Hi
Document link . http://ftp.unex.es/oradoc/application_server_10g/web.904/b10313/conf4as.htm#1121739
I am going over the following documentation and want to understand the significanace of the following .
Collocation
Although the BEA WebLogic cluster enables you to build an application across several servers, related components in the application must still be localized to a server. When you store several beans on the same server, the beans are said to be collocated.
Collocation in a BEA WebLogic cluster imposes the following restrictions:
When you deploy beans on a single server, you can invoke those beans only on that server. This localizes the beans on a given server, and provides a statically-defined means of collocation.
You must cluster bean Home interfaces, but not instances. When you instantiate a bean, you pin it to the server on which it was instantiated.
For more information, see "Pinning".
JTA user transactions must execute completely on a single server, and cannot span servers.
You must collocate all related beans and objects on a single server to support relationships between beans. To simplify the application, also retrieve source and target objects on the same server.
When you create or instantiate a bean, the bean instance is associated with, or pinned to, the server on which it is instantiated. To localize transactions to a particular server, BEA WebLogic Server pins all instantiated beans in a given transaction to the server on which you run the transaction. If beans are pinned to other servers, you cannot localize the transaction.
You can pin beans to a given server dynamically, either through user transactions or through session beans.
In production we have the following setup
Box A has 4 managed server M1 , M2 , M3 , M4
Box B has 4 managed server M5 , M6 , M7 , M8
Box C has 4 managed server M9 , M10 , M11 , M12
Box D has 4 managed server M13 , M14 , M15 , M16
For initial context lookup we use Multiple-address provider URLs resolving to servers example :
WL.Context.PROVIDER_URL = t3://xxx:2321,xxx:2322,xxxx:2323,xxxx:2324
We do not use JMS Cache Synchronization for cluster and rely on Optimitic Locking.
Problems Experienced
Toplink cache is stale and user keeps hitting the TOPLINK-5006 -cannot be updated because it has changed or been deleted since it was last read. exception repeated.
Could this be due to the fact that Reads and updates probbaly occurs thru different managed servers in a box ?
Thanks ... and appreciate any feedback
LakshmiYes. That is most likely what is happening. You will need to look at cache configuration, refresh queries, and possibly cache coordination. Some additional information is available in Re: Configuration for multilpe nodes.
Doug -
Hi All,
i'm getting this exception can any one explain why this exception occurs and how to resolve this issue. I achieved a solution by refreshing the respective object, but i expect this might be occured due to commit of same object twice.
Will this exception occurs if we commit the same object twice.
Exception [TOPLINK-5006] :
The Object cannot be updated because it has changed or been deleted since it was last read
Thanks in advance.
Regards,
PraneethPlease post the code that throws the exception.
Also go through the following link regarding optimistic locking -
http://www.oracle.com/technology/products/ias/toplink/doc/1013/main/_html/descun008.htm -
OptimisticLockException---urgent
Hi All,
i'm getting this exception can any one explain why this exception occurs and how to resolve this issue. I achieved a solution by refreshing the respective object, but i expect this might be occured due to commit of same object twice.
Will this exception occurs if we commit the same object twice.
Exception [TOPLINK-5006] :
The Object cannot be updated because it has changed or been deleted since it was last read
Thanks in advance.
Regards,
PraneethInteresting - an urgent Documentation issue.
Or is it perhaps that you need to discuss this with a TopLink expert - in which case you could try the TopLink forum at TopLink/JPA
If it truly is urgent, you should use your Support Contract to contact Oracle Support. -
How to use jta in toplink and stateless session bean EJB 3.0?
I have an application with techologies jsf,stateless session bean, adf, toplink
generated by toplink workbench.
In web side ı want to use two methods in stateless session bean which are updated
different tables. I call these methods in my page backing bean.
I also want to JTA in web side. My first methods is done correctly, but second method has an error. I wanto to rollback all transaction.
How can ı do that? with using JTA in Toplink...Yuichi
Did you manage to solve this? I'm doing something similar and seeing the same problem, although they're up to 7.3 SP7.
Any help greatly appreciated.
Lewis -
Hi.
We are doing the migration from Weblogic 6.1sp5/TopLink 3.6.3 to Weblogic 8.1 & TopLink 9.0.4
We have been reading available documentation and started the migration. We have not had any problems with package ranaming issues and XML DOCTYPES changes.
As we do have a lot of ammedmed querys, we do prefer to use a java class as our proyect mapping descriptor rather than a huge XML.
We are currently porting all our querys to the new system.
As we are doing a lot of changes we are also updating our EJB 1.1 entity beans to EJB 2.0 (maybe in the future we will deploy our EJBs with local interfaces too).
The main problem we are facing right now is with all the querys we had in our toplink-cmp-<bean>.xml files. Even if most of the finders are "REDIRECT" querys that had to be ammendmed we have a good number of "EXPRESSION"s on them.
As far as we are able to see we should move them to the TopLink Project java file in the querys section. The question is: is it possible to declare them in the ejb-jar.xml file into the <ejb-ql> tag (we have seen that the TopLinkImplemented string appears on the <ejb-ql> telling the container who should handle the query, so if Weblogic can be "tricked" to do that "ejb-ql" it may be possible to do the same with a TopLink expression isn't it?.
Another issue we don't have clear is if now all the querys must be either ejb-ql (compliant with the EJB 2.0 standard) or named querys (either TopLink expressions or SQL querys) defined in the TopLink Project java or XML files. What happened with the redirect querys
I would like to point just another issue we have "solved" but we are not really satisfied with how we solved it.
We are using timestamp locking with our entity beans. The shouldBindAllParameters is set to true too and we have the logging activated so we have been able to track down the problem.
The problem seems to be something like this.
You create a new entity bean and TopLink issues a sentence like this against the DB (Oracle 8.1.7 I must say we have also configured the login session to use the Oracle8PlatformSupport)
INSERT INTO FOO(OID,OCA) VALUES (?, ?)
bind => [1, 2004-04-26 13:16:45.251]
As far as we know Oracle 8.1.7 doesn't store the milliseconds (we are using DATE type in Oracle tables) so the ".251" value is stored as "0"
Then we try to delete the entity bean and TopLink sends this sentence to the database:
DELETE FROM FOO WHERE ((OID = ? AND OCA = ?))
bind => [1, 2004-04-26 13:16:45.251]
Then, a TOPLINK-5003 (the object has been modified or deleted since last read) is raised and the transaction is rolled back.
We tried without binding and it works perfect (it seems that the timestamp is treated as YYYY-MM-DD SSSSS in the "to_date" function issued)
As we would like to keep with binding all parameters in order to optimize our database accesses we have changed the default jdbc driver (sun.jdbc...) that is showed when reading the proper property of the login sesion with the oracle.jdbc.driver.OracleDriver. This latest driver seems to solve the problem with the reminders of the timestamps but this brings us a doubt.
If we have configured two datasources in our Weblogic's config.xml file (one for transactional operations, beeing that one also an XA driver as we need to coordinate RDBMS operations with a JMS service, and the other one being a "standar" oracle.jdbc.driver.OracleDriver) why is that the driver used as default by the login method is that "weird" sun.jdbc... driver? Shouldn't TopLink use one (the XA driver I hopefully) of the drivers defined in Weblogic's datasource?
1. Is the issue we are seeing with the timestamp a known bug/problem?
2. Is there a better way to solve it than changing the driver (we are affraid of the "new" issues changing it could raise)
I have seen that with TopLink 3.6.3 and the "default" driver used in the login (it is the same by default on both TopLink 3.6.3 and TopLink 9.0.4) the binded timestamp are "truncated" to the second resolution and it works without any problem.
Thanks in advance.
IgnacioNot sure on all of the issues, but can provide some information on some of them.
Re-directors:
Support was added for re-director to core queries, so now your named queries can make use of re-director if they require advanced dynamic execution. So all re-director queries can become named queries.
Timestamp locking:
In general we would always suggest numeric version locking if you have the choice. I'm not clear on what you are saying about the driver having an effect on the problem, however in general Oracle 8 does not support milliseconds, if you use timestamp locking with local timestamps they will have milliseconds and the database values will not match the ones in memory.
To resolve this you can,
- Use server timestamps TimestampLockingPolicy.useServerTime()
- Clear the timestamp's milli/nano second value through an aboutToInsert event.
- Extend Oracle8Platform.convertObject to clear the timestamp's milli/nano second value.
- If you can use Oracle 9 or 10 there is now a TIMESTAMP type that does support milliseconds.
If a different driver seems to be solving this, it is most likely the database ignores the milliseconds in the comparison, but the driver you are using sends the millisecond to the database incorrectly when binding. -
Help on Decode function in Toplink
Hi,
I have a sql statement like this:
select field1, field2 from table1 where upper(field1) like 'ADELPHI%'
order by field1,
DECODE(TO_CHAR(NVL(LENGTH(TRANSLATE(field1,'A1234567890','A')),0)),'0',LPAD(field1 ,50),field1)
How would I converted this to toplink query?
I appreciate any help you guys can extend to me.I just spent about a half hour writing a response here, and the damned forum timed out on me. #$^!@$#!^!@$%.
Here is the summary:
- Using TL Expressions and EJBQL are to allow Java developers who don't necessarily know SQL to write queries and to facilitate portability/maintainability of the apps. For REALLY gnarly queries, using TL Expressions or EJBQL won't buy you this. I.e., SQL is more expressive and easier for this kind of quer, so it's not easier to use, and frankly with the code needed to support it, it won't be easier to maintain or port... Bottom line, maybe SQL is the best option here?
- If you want to experiment, search for TO_CHAR on this forum, and the decode function in the javadoc. You need to build the expressions in pieces and you can treat expressions as arguments to other expressions -- in other words, you can build an expression like builder.leftPad(50, builder.get("field1")) and use it as one of the key/values in the hashtable to the decode function (in theory).
- Don -
Multiple Rows Update / Refresh Toplink Query when database trigger involved
Hi everybody!
I have two easy troubles for you; the platform is the same as the SRDemo Toplink version.
1. Multiple Rows Update: I want to update with mergeEntity method, multiple rows for an isolated table; that method receives a parameter that I try to bind with the iterator "dataProvider" but it only merges the first row, not all, any other combination returns an error.
What I want to do is to have a form (like tabular forms in Apex) that lets me update multiple rows in a single page. ¿May anyone tell me how to do it?
2. Refresh Toplink Named Query: I have a list on a page with two columns. From another page, a button does an action that fires a database trigger that updates one of the columns on the list´s page. When I go back to the list, it is not updated; however, the CacheResults´s property is set to false on the iterator.
Thanks in advance,
Alejandro TI didn't use it (yet), but - you might take a look. You'll find a [url http://www.oracle.com/technetwork/developer-tools/apex/application-express/apex-plug-ins-182042.html]Timer plug-in on this page. It is a dynamic action which allows you to periodically fire other dynamic actions in the browser. For example use the timer to refresh a region every five minutes. You can perform any dynamic action you want using this infrastructure.So I was thinking: you might use it to run a dynamic action which would check whether something changed in that table (I suppose you'll know the way) (for example, a database trigger might set a flag in some table, timestamp or similar), and - if you find that something really changed - refresh the page.
As I said, I never used it so that's pure theory. Someone else might know better, though. -
Unable to deploy Web App using JPA TopLink Essentials in Tomcat5.5.17
Hi All,
I am trying to deploy a Web App ( used Top Link Essentials ) to Tomcat and i am getting the following Error..
I am strating tomcat using -javaagent:/Path/To/spring-agaent.jar
Dec 14, 2006 9:52:46 AM org.apache.catalina.loader.WebappClassLoader loadClass
INFO: Illegal access: this web application instance has been stopped already. Could not load oracle.toplink.essentials.internal.weaving.ClassDetails. The eventual following stack trace is caused by an error thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact.
java.lang.IllegalStateException
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1238)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1198)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at oracle.toplink.essentials.internal.weaving.TopLinkWeaver.transform(TopLinkWeaver.java:84)
at org.springframework.orm.jpa.persistenceunit.ClassFileTransformerAdapter.transform(ClassFileTransformerAdapter.java:56)
at sun.instrument.TransformerManager.transform(TransformerManager.java:122)
at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:155)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1812)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:866)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1319)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1198)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2357)
at java.lang.Class.getConstructor0(Class.java:2671)
at java.lang.Class.newInstance0(Class.java:321)
at java.lang.Class.newInstance(Class.java:303)
at org.apache.myfaces.application.ApplicationImpl.createComponent(ApplicationImpl.java:396)
at com.sun.faces.config.ConfigureListener.verifyObjects(ConfigureListener.java:1438)
at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:509)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3729)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4187)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:608)
at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:535)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1122)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:310)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1021)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
at org.apache.catalina.core.StandardService.start(StandardService.java:450)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432) Thanks
SateeshSpring 2.0 provides custom support for TopLink Essentials in Tomcat out-of-the-box. You should follow the instructions here: http://static.springframework.org/spring/docs/2.0.x/reference/orm.html#orm-jpa-setup-lcemfb-tomcat
Essentially, Spring provides a custom class loader for Tomcat and doesn't use an agent.
--Shaun -
How do I use toplink with Spring 2.5 and oc4j 10.1.2?
Our existing java server environment is limited to Oc4j 10.1.2 due to being tied to Oracle Forms.
We've added a java 6 jdk to the machine and linked it to a specific container to examine some newer java features since this version of the application server only comes with java 1.4.2.
Does anyone have some configuration steps for getting toplink essentials and spring to work with oc4j 10.1.2? Even with oc4j 10.1.3 in jdev 10.1.3.4 I'm having problems trying to figure out what needs placed in the persistence.xml file verses what needs placed in the spring-beans.xml file.
I'm trying to either use the J2SE option of keeping the connection information in the persistence.xml file (which doesn't work) - it tries to connect to //localhost:1521/orcl. If I try to define a datasource within Spring's xml file, I'm not sure how to tie that into the persistence.xml file. Could I use the oc4j 10.1.2 container provided datasource?
It seems like I'm at a loss as to how to get this working. If you'd like me to post some files, I can do that later on today when I get back to work.
The configuration that I'm trying to do is based on a modified workspace from an ibm developerworks article with websphere, mixing in the ideas from a JPA with Spring 2.0 article from Mike Keith and Rod Johnson. (That article goes pretty far in the configuration information but never provided an example to download...)
Any help appreciated.
Eric (hbg, pa)I'm still at a loss with this. Rather than worry about the older version, for now, I just want to see JPA in action. So, I've decided on just running the Spring 2.5.6 petclinic example out of the samples folder. When I try to do this, after only tweaking the web.xml to use the applicationContext-jpa.xml file, the application does not initialize properly. Here's the stack trace I get:
Target URL -- http://192.168.0.2:8988/petclinic/index.jsp
09/05/11 23:26:05 Oracle Containers for J2EE 10g (10.1.3.4.0) initialized
WARNING: Code-source C:\javalib\spring-2.5.6\samples\petclinic\war\WEB-INF\lib\connector.jar (from WEB-INF/lib/ directory in C:\javalib\spring-2.5.6\samples\petclinic\war\WEB-INF\lib) has the same filename but is not identical to /C:/jdev10134/j2ee/home/lib/connector.jar (from <code-source> (ignore manifest Class-Path) in META-INF/boot.xml in C:\jdev10134\j2ee\home\oc4j.jar). If it contains different versions of the same classes, it will be masked as the latter is already visible in the search path of loader current-workspace-app.web.petclinic:0.0.0.
WARNING: Code-source C:\javalib\spring-2.5.6\samples\petclinic\war\WEB-INF\lib\jta.jar (from WEB-INF/lib/ directory in C:\javalib\spring-2.5.6\samples\petclinic\war\WEB-INF\lib) has the same filename but is not identical to /C:/jdev10134/j2ee/home/lib/jta.jar (from <code-source> (ignore manifest Class-Path) in META-INF/boot.xml in C:\jdev10134\j2ee\home\oc4j.jar). If it contains different versions of the same classes, it will be masked as the latter is already visible in the search path of loader current-workspace-app.web.petclinic:0.0.0.
WARNING: Code-source C:\javalib\spring-2.5.6\samples\petclinic\war\WEB-INF\lib\persistence.jar (from WEB-INF/lib/ directory in C:\javalib\spring-2.5.6\samples\petclinic\war\WEB-INF\lib) has the same filename but is not identical to /C:/jdev10134/j2ee/home/lib/persistence.jar (from <code-source> (ignore manifest Class-Path) in META-INF/boot.xml in C:\jdev10134\j2ee\home\oc4j.jar). If it contains different versions of the same classes, it will be masked as the latter is already visible in the search path of loader current-workspace-app.web.petclinic:0.0.0.
WARNING: Code-source C:\javalib\spring-2.5.6\samples\petclinic\war\WEB-INF\lib\toplink-essentials.jar (from WEB-INF/lib/ directory in C:\javalib\spring-2.5.6\samples\petclinic\war\WEB-INF\lib) has the same filename but is not identical to /C:/jdev10134/toplink/jlib/toplink-essentials.jar (from <code-source> in /C:/jdev10134/jdev/system/oracle.j2ee.10.1.3.42.70/embedded-oc4j/config/server.xml). If it contains different versions of the same classes, it will be masked as the latter is already visible in the search path of loader current-workspace-app.web.petclinic:0.0.0.
09/05/11 23:26:24 log4j: Parsing for [root] with value=[INFO, stdout].
09/05/11 23:26:24 log4j: Level token is [INFO].
09/05/11 23:26:24 log4j: Category root set to INFO
09/05/11 23:26:24 log4j: Parsing appender named "stdout".
09/05/11 23:26:24 log4j: Parsing layout options for "stdout".
09/05/11 23:26:24 log4j: Setting property [conversionPattern] to [%d %p [%c] - <%m>%n].
09/05/11 23:26:24 log4j: End of parsing for "stdout".
09/05/11 23:26:24 log4j: Parsed "stdout" options.
09/05/11 23:26:24 log4j: Parsing for [org.springframework.samples.petclinic.aspects] with value=[DEBUG].
09/05/11 23:26:24 log4j: Level token is [DEBUG].
09/05/11 23:26:24 log4j: Category org.springframework.samples.petclinic.aspects set to DEBUG
09/05/11 23:26:24 log4j: Handling log4j.additivity.org.springframework.samples.petclinic.aspects=[null]
09/05/11 23:26:24 log4j: Finished configuring.
09/05/11 23:26:24 log4j: Reading configuration from URL file:/C:/javalib/spring-2.5.6/samples/petclinic/war/WEB-INF/classes/log4j.properties
09/05/11 23:26:24 log4j: Parsing for [root] with value=[INFO, stdout].
09/05/11 23:26:24 log4j: Level token is [INFO].
09/05/11 23:26:24 log4j: Category root set to INFO
09/05/11 23:26:24 log4j: Parsing appender named "stdout".
09/05/11 23:26:24 log4j: Parsing layout options for "stdout".
09/05/11 23:26:24 log4j: Setting property [conversionPattern] to [%d %p [%c] - <%m>%n].
09/05/11 23:26:24 log4j: End of parsing for "stdout".
09/05/11 23:26:24 log4j: Parsed "stdout" options.
09/05/11 23:26:24 log4j: Parsing for [org.springframework.samples.petclinic.aspects] with value=[DEBUG].
09/05/11 23:26:24 log4j: Level token is [DEBUG].
09/05/11 23:26:24 log4j: Category org.springframework.samples.petclinic.aspects set to DEBUG
09/05/11 23:26:24 log4j: Handling log4j.additivity.org.springframework.samples.petclinic.aspects=[null]
09/05/11 23:26:24 log4j: Finished configuring.
2009-05-11 23:26:24,593 INFO [org.springframework.web.context.ContextLoader] - <Root WebApplicationContext: initialization started>
2009-05-11 23:26:24,687 INFO [org.springframework.web.context.support.XmlWebApplicationContext] - <Refreshing org.springframework.web.context.support.XmlWebApplicationContext@eeb406: display name [Root WebApplicationContext]; startup date [Mon May 11 23:26:24 EDT 2009]; root of context hierarchy>
2009-05-11 23:26:24,828 INFO [org.springframework.beans.factory.xml.XmlBeanDefinitionReader] - <Loading XML bean definitions from ServletContext resource [WEB-INF/applicationContext-jpa.xml]>
2009-05-11 23:26:25,281 INFO [org.springframework.web.context.support.XmlWebApplicationContext] - <Bean factory for application context [org.springframework.web.context.support.XmlWebApplicationContext@eeb406]: org.springframework.beans.factory.support.DefaultListableBeanFactory@1da817b>
2009-05-11 23:26:25,734 INFO [org.springframework.beans.factory.config.PropertyPlaceholderConfigurer] - <Loading properties file from class path resource [jdbc.properties]>
2009-05-11 23:26:25,796 INFO [org.springframework.context.weaving.DefaultContextLoadTimeWeaver] - <Determined server-specific load-time weaver: org.springframework.instrument.classloading.oc4j.OC4JLoadTimeWeaver>
2009-05-11 23:26:28,296 INFO [org.springframework.web.context.support.XmlWebApplicationContext] - <Bean 'org.springframework.orm.jpa.vendor.TopLinkJpaVendorAdapter#c25ae3' is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)>
2009-05-11 23:26:28,359 INFO [org.springframework.web.context.support.XmlWebApplicationContext] - <Bean 'dataSource' is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)>
2009-05-11 23:26:28,437 INFO [org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean] - <Building JPA container EntityManagerFactory for persistence unit 'PetClinic'>
2009-05-11 23:26:28,468 INFO [org.springframework.web.context.support.XmlWebApplicationContext] - <Bean 'entityManagerFactory' is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)>
2009-05-11 23:26:28,562 INFO [org.springframework.beans.factory.support.DefaultListableBeanFactory] - <Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@1da817b: defining beans [org.springframework.context.weaving.AspectJWeavingEnabler#0,org.springframework.context.config.internalBeanConfigurerAspect,loadTimeWeaver,org.springframework.beans.factory.config.PropertyPlaceholderConfigurer#0,dataSource,entityManagerFactory,transactionManager,org.springframework.context.annotation.internalPersistenceAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.transaction.config.internalTransactionAspect,org.springframework.samples.petclinic.aspects.UsageLogAspect#0,org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor#0,clinic]; root of factory hierarchy>
2009-05-11 23:26:29,671 INFO [org.springframework.web.context.ContextLoader] - <Root WebApplicationContext: initialization completed in 5078 ms>
2009-05-11 23:26:29,734 INFO [org.springframework.web.servlet.DispatcherServlet] - <FrameworkServlet 'petclinic': initialization started>
2009-05-11 23:26:29,734 INFO [org.springframework.web.context.support.XmlWebApplicationContext] - <Refreshing org.springframework.web.context.support.XmlWebApplicationContext@c00e55: display name [WebApplicationContext for namespace 'petclinic-servlet']; startup date [Mon May 11 23:26:29 EDT 2009]; parent: org.springframework.web.context.support.XmlWebApplicationContext@eeb406>
2009-05-11 23:26:29,734 INFO [org.springframework.beans.factory.xml.XmlBeanDefinitionReader] - <Loading XML bean definitions from ServletContext resource [WEB-INF/petclinic-servlet.xml]>
2009-05-11 23:26:30,171 INFO [org.springframework.web.context.support.XmlWebApplicationContext] - <Bean factory for application context [org.springframework.web.context.support.XmlWebApplicationContext@c00e55]: org.springframework.beans.factory.support.DefaultListableBeanFactory@1c5543b>
2009-05-11 23:26:30,375 INFO [org.springframework.beans.factory.support.DefaultListableBeanFactory] - <Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@1c5543b: defining beans [addOwnerForm,addPetForm,addVisitForm,clinicController,editOwnerForm,editPetForm,findOwnersForm,org.springframework.context.annotation.internalPersistenceAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter#0,org.springframework.web.servlet.handler.SimpleMappingExceptionResolver#0,org.springframework.web.servlet.view.InternalResourceViewResolver#0,messageSource]; parent: org.springframework.beans.factory.support.DefaultListableBeanFactory@1da817b>
2009-05-11 23:26:31,828 INFO [org.springframework.web.servlet.DispatcherServlet] - <FrameworkServlet 'petclinic': initialization completed in 2094 ms>
May 11, 2009 11:26:58 PM oracle.toplink.essentials.session.file:/C:/javalib/spring-2.5.6/samples/petclinic/war/WEB-INF/classes/-PetClinic.transaction
WARNING: PersistenceUnitInfo PetClinic has transactionType RESOURCE_LOCAL and therefore jtaDataSource will be ignored
May 11, 2009 11:26:58 PM oracle.toplink.essentials.session.file:/C:/javalib/spring-2.5.6/samples/petclinic/war/WEB-INF/classes/-PetClinic
INFO: TopLink, version: Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))
May 11, 2009 11:26:58 PM oracle.toplink.essentials.session.file:/C:/javalib/spring-2.5.6/samples/petclinic/war/WEB-INF/classes/-PetClinic
INFO: Server: unknown
May 11, 2009 11:26:58 PM oracle.toplink.essentials.session.file:/C:/javalib/spring-2.5.6/samples/petclinic/war/WEB-INF/classes/-PetClinic.connection
CONFIG: connecting(DatabaseLogin(
platform=>EssentialsHSQLPlatformWithNativeSequence
user name=> ""
connector=>JNDIConnector datasource name=>null
May 11, 2009 11:27:03 PM oracle.toplink.essentials.session.file:/C:/javalib/spring-2.5.6/samples/petclinic/war/WEB-INF/classes/-PetClinic
SEVERE:
Local Exception Stack:
Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))): oracle.toplink.essentials.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: Io exception: The Network Adapter could not establish the connection
Error Code: 17002
at oracle.toplink.essentials.exceptions.DatabaseException.sqlException(DatabaseException.java:305)
at oracle.toplink.essentials.jndi.JNDIConnector.connect(JNDIConnector.java:150)
at oracle.toplink.essentials.sessions.DatasourceLogin.connectToDatasource(DatasourceLogin.java:184)
at oracle.toplink.essentials.internal.databaseaccess.DatasourceAccessor.connect(DatasourceAccessor.java:233)
at oracle.toplink.essentials.internal.databaseaccess.DatabaseAccessor.connect(DatabaseAccessor.java:242)
at oracle.toplink.essentials.internal.databaseaccess.DatasourceAccessor.connect(DatasourceAccessor.java:309)
at oracle.toplink.essentials.threetier.ConnectionPool.buildConnection(ConnectionPool.java:117)
at oracle.toplink.essentials.threetier.ExternalConnectionPool.startUp(ExternalConnectionPool.java:135)
at oracle.toplink.essentials.threetier.ServerSession.connect(ServerSession.java:451)
at oracle.toplink.essentials.internal.sessions.DatabaseSessionImpl.login(DatabaseSessionImpl.java:616)
at oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:282)
at oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:229)
at oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerFactoryImpl.getServerSession(EntityManagerFactoryImpl.java:93)
at oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:126)
at oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:120)
at oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:91)
at org.springframework.orm.jpa.JpaTransactionManager.createEntityManagerForTransaction(JpaTransactionManager.java:392)
at org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransactionManager.java:320)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:374)
at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:263)
at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:220)
at org.springframework.transaction.aspectj.AbstractTransactionAspect.ajc$before$org_springframework_transaction_aspectj_AbstractTransactionAspect$1$2a73e96c(AbstractTransactionAspect.aj:63)
at org.springframework.samples.petclinic.jpa.EntityManagerClinic.getVets(EntityManagerClinic.java:39)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:138)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy19.getVets(Unknown Source)
at org.springframework.samples.petclinic.web.ClinicController.vetsHandler(ClinicController.java:53)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.doInvokeMethod(HandlerMethodInvoker.java:421)
at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:136)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:326)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:313)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:713)
at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:370)
at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:871)
at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:453)
at com.evermind.server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:221)
at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:122)
at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:111)
at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
at oracle.oc4j.network.ServerSocketAcceptHandler.procClientSocket(ServerSocketAcceptHandler.java:234)
at oracle.oc4j.network.ServerSocketAcceptHandler.access$700(ServerSocketAcceptHandler.java:29)
at oracle.oc4j.network.ServerSocketAcceptHandler$AcceptHandlerHorse.run(ServerSocketAcceptHandler.java:879)
at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.sql.SQLException: Io exception: The Network Adapter could not establish the connection
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.T4CConnection.logon(T4CConnection.java:328)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:430)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:151)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:608)
at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:218)
at oracle.jdbc.pool.OracleConnectionPoolDataSource.getPhysicalConnection(OracleConnectionPoolDataSource.java:114)
at oracle.jdbc.pool.OracleConnectionPoolDataSource.getPooledConnection(OracleConnectionPoolDataSource.java:77)
at oracle.jdbc.pool.OracleImplicitConnectionCache.makeCacheConnection(OracleImplicitConnectionCache.java:1361)
at oracle.jdbc.pool.OracleImplicitConnectionCache.getCacheConnection(OracleImplicitConnectionCache.java:441)
at oracle.jdbc.pool.OracleImplicitConnectionCache.getConnection(OracleImplicitConnectionCache.java:336)
at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:286)
at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:179)
at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:159)
at oracle.oc4j.sql.DataSourceConnectionPoolDataSource.getPooledConnection(DataSourceConnectionPoolDataSource.java:57)
at oracle.oc4j.sql.xa.EmulatedXADataSource.getXAConnection(EmulatedXADataSource.java:92)
at oracle.oc4j.sql.spi.ManagedConnectionFactoryImpl.createXAConnection(ManagedConnectionFactoryImpl.java:211)
at oracle.oc4j.sql.spi.ManagedConnectionFactoryImpl.createManagedConnection(ManagedConnectionFactoryImpl.java:170)
at com.evermind.server.connector.ApplicationConnectionManager.createManagedConnection(ApplicationConnectionManager.java:1398)
at oracle.j2ee.connector.ConnectionPoolImpl.createManagedConnectionFromFactory(ConnectionPoolImpl.java:327)
at oracle.j2ee.connector.ConnectionPoolImpl.access$800(ConnectionPoolImpl.java:98)
at oracle.j2ee.connector.ConnectionPoolImpl$NonePoolingScheme.getManagedConnection(ConnectionPoolImpl.java:1211)
at oracle.j2ee.connector.ConnectionPoolImpl.getManagedConnection(ConnectionPoolImpl.java:785)
at oracle.oc4j.sql.ConnectionPoolImpl.getManagedConnection(ConnectionPoolImpl.java:45)
at com.evermind.server.connector.ApplicationConnectionManager.getConnectionFromPool(ApplicationConnectionManager.java:1596)
at com.evermind.server.connector.ApplicationConnectionManager.acquireConnectionContext(ApplicationConnectionManager.java:1541)
at com.evermind.server.connector.ApplicationConnectionManager.allocateConnection(ApplicationConnectionManager.java:1486)
at oracle.j2ee.connector.OracleConnectionManager.unprivileged_allocateConnection(OracleConnectionManager.java:238)
at oracle.j2ee.connector.OracleConnectionManager.allocateConnection(OracleConnectionManager.java:192)
at oracle.oc4j.sql.ManagedDataSource.getConnection(ManagedDataSource.java:272)
at oracle.oc4j.sql.ManagedDataSource.getConnection(ManagedDataSource.java:200)
at oracle.oc4j.sql.ManagedDataSource.getConnection(ManagedDataSource.java:142)
at oracle.oc4j.sql.ManagedDataSource.getConnection(ManagedDataSource.java:127)
at oracle.toplink.essentials.jndi.JNDIConnector.connect(JNDIConnector.java:145)
... 60 moreAny ideas? I'd really like to see JPA, Spring and oc4j working together?
Thanks,
Eric -
Was there anything fixed in Oracle TopLink 11g Release 1 (11.1.1.1.0) ?
I don't see anything in release notes ( http://www.oracle.com/technology/products/ias/toplink/doc/11110/relnotes/toplink-relnotes.html ) regarding fixes. Anybody know where I can get that info? We have run into a couple of issues in the previous 11g release (11.1.1.0.1) and want to know if those issues have been addressed in the new release.
Thanks!The two major areas of work in 11gR1 (11.1.1.1.0) are enhancements to EclipseLink included with the its 1.1.1 release as well as enhancements around TopLink Grid (JPA-Coherence integration).
The EclipseLink 1.1.1 fixes are documented here: http://wiki.eclipse.org/EclipseLink/Release/1.1.1
Doug -
How to open and edit a TopLink .mwp file?
I can not open the toplink_mappings.mwp file using JDeveloper tool.
How to open and edit a TopLink .mwp file?
Thank youHi,
Use JDeveloper to import the mwp project .In Jdeveloper,File->Import->ToplinkWorkbench->Select the .mwp file and can work from JDeveloper in editing the tlmap.xml and session.xml.
Regards,
P.Vinay Kumar
Maybe you are looking for
-
Silly Question regarding extended desktop
I have just ordered a new 24" iMac however, the tech specs for the UK note: +Support for external display in video mirroring mode+ Where as the US tech specs note: +Support for extended desktop and video mirroring modes+ Which is correct? Does anyone
-
App Store on Mac osx crash when attempting to update
I am using a Mac mini 2011 late. OSX Mountain lion latest penultimate version, just prior to the release of the AFP upgrade. Problem is: The App Store crashes! When I attempt to run the App Store it loads but as soon as I hit the Update icon, the
-
Hi all, I need to validate data at transacción PTMW. Particularly I need to check field KTART of infotype 2007 for some employees. I did not find any user exit to do this. Ive tried with a field exit, but I dont know how can I get the employee
-
How to find out what configuration changed on sql server last hour?
How to find it?
-
My iPhone is still under a year old
Can I get a replacement if I don't have a receipt coz I got it off a friend