Deadlocks & Toplink in a cluster
We need to cluster a very critical 7x24 app for both scalability and failover.
Given that the performance of synchrous commits to a distributed cache (on a cluster) isn't recommended the only way to run a cluster of weblogic app servers seems to eliminate the use of an identity map. We are pinning most, if not all of the operational data in ram on the oracle db server to improve performance to compensate for the absence of a toplink cache.
Has anyone run toplink in a cluster ??? If so what toplink configurations were used.
Is there a possiblity of a deadlock if indirection is used with no identity map. I've read that some deadlock detection algorithms were added with version 9.0.x. Will these work in the absence of an identity map
TopLink's cache-sync using JMS is documented at:
http://download-east.oracle.com/docs/cd/A97688_12/toplink.903/b10064/enterpri.htm#1022229
This shows examples of using sessions.xml and Java API to configure the use of JMS. You will need to configure your JMS to operate in your application server cluster. This will involve you following the instructions of your JMS to create a connection factory and topic that TopLink can make use of.
One note of caution about using cache-sync in general though. It does not eliminate concurrency issues and it does not prevent stale data. It minimizes the chance of stale data and is typically most efficient in systems with a small percentage of writes compared to read operations.
You will need to build your application taking concurrency into effect. This will involve setting up locking (typically optimistic locking) on all concurrently accessed types and also ensuring that the commit of UnitOfWork will catch all locking failure exceptions and handle them correctly.
If you are building a system with a larger (> 15%) percentage of writes you will probably not want to use cache-sync and may be more interested in proper cache configuration (use WeakIdentityMap for volatile data) and using possibly using refresh on queries in critical sections of the application's code. You will still require locking for these configurations as well.
Doug
Similar Messages
-
Toplink in a cluster architecture
Hi,
I'm trying to integrate TopLink in a clustered application server architecture (EJB + Servlet) with dynamic memory sharing for HTTP session synchronisation using Datasources for access to the DB.
The DB should also be clustered (this is not sure and will be decided at a later point but should not have any bearing on the configuration of TopLink).
I have only found some very vague information about clustering the cache of TopLink.
Can anyone give me more information about how it works, how to parameter it and the does and don'ts?
Thank youTopLink's cache-sync using JMS is documented at:
http://download-east.oracle.com/docs/cd/A97688_12/toplink.903/b10064/enterpri.htm#1022229
This shows examples of using sessions.xml and Java API to configure the use of JMS. You will need to configure your JMS to operate in your application server cluster. This will involve you following the instructions of your JMS to create a connection factory and topic that TopLink can make use of.
One note of caution about using cache-sync in general though. It does not eliminate concurrency issues and it does not prevent stale data. It minimizes the chance of stale data and is typically most efficient in systems with a small percentage of writes compared to read operations.
You will need to build your application taking concurrency into effect. This will involve setting up locking (typically optimistic locking) on all concurrently accessed types and also ensuring that the commit of UnitOfWork will catch all locking failure exceptions and handle them correctly.
If you are building a system with a larger (> 15%) percentage of writes you will probably not want to use cache-sync and may be more interested in proper cache configuration (use WeakIdentityMap for volatile data) and using possibly using refresh on queries in critical sections of the application's code. You will still require locking for these configurations as well.
Doug -
Deadlock in TopLink when using JMS listener on WebLogic
I am experiencing a deadlock in TopLink 10.1.3 on WebLogic 9 in code that previously worked on TopLink 9.0.4 with WebLogic 8.1. As such, I'm not sure if it's due to the TopLink change, the WebLogic change or both. Anyway, we have a JMS listener (note, NOT a MessageDrivenBean) that is updating an existing TopLink cached domaing object. The JMS listener thread gets stuck when attempting to commit the transaction. The thread-dump shows that there is another thread which is blocked in the ConcurrencyManager waiting to obtain the lock on an object which is being updated by the listener thread. It appears to me that the root cause is that the Synchronization.afterCompletion() listener is running on a different thread than the one which owns the locks which were obtained beforeCompletion.
See stack traces.
First, the message listener thread which is waiting for participants in the transaction to commit:
"[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=9 tid=0x3a4a4728 nid=0xa48 in Object.wait() [0x3a0cf000..0x3a0cfbec]
at java.lang.Object.wait(Native Method)
- waiting on <0x0c7a0908> (a weblogic.transaction.internal.ServerTransactionImpl)
at weblogic.transaction.internal.ServerTransactionImpl.globalRetryCommit(ServerTransactionImpl.java:2665)
- locked <0x0c7a0908> (a weblogic.transaction.internal.ServerTransactionImpl)
at weblogic.transaction.internal.ServerTransactionImpl.globalCommit(ServerTransactionImpl.java:2570)
at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:277)
at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:226)
at weblogic.ejb.container.internal.BaseEJBObject.postInvoke1(BaseEJBObject.java:539)
at weblogic.ejb.container.internal.StatelessEJBObject.postInvoke1(StatelessEJBObject.java:72)
at weblogic.ejb.container.internal.BaseEJBObject.postInvokeTxRetry(BaseEJBObject.java:374)
at com.avinamart.BusinessLogic.Bean.JobService.JobService_u1ylwo_EOImpl.submitJobAndRun(JobService_u1ylwo_EOImpl.java:1388)
at com.avinamart.Framework.Event.Task.OptimizationTaskListener._submitAsAJob(OptimizationTaskListener.java:253)
at com.avinamart.Framework.Event.Task.OptimizationTaskListener._submitAsAJob(OptimizationTaskListener.java:217)
at com.avinamart.Framework.Event.Task.OptimizationTaskListener.processMessage(OptimizationTaskListener.java:344)
at com.emptoris.base.event.EPASSMessageBaseListener.onMessage(EPASSMessageBaseListener.java:722)
at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:3824)
at weblogic.jms.client.JMSSession.execute(JMSSession.java:3738)
at weblogic.jms.client.JMSSession.pushMessage(JMSSession.java:3253)
at weblogic.jms.client.JMSSession.invoke(JMSSession.java:4195)
at weblogic.messaging.dispatcher.Request.wrappedFiniteStateMachine(Request.java:674)
at weblogic.messaging.dispatcher.DispatcherServerRef.invoke(DispatcherServerRef.java:262)
at weblogic.messaging.dispatcher.DispatcherServerRef.handleRequest(DispatcherServerRef.java:134)
at weblogic.messaging.dispatcher.DispatcherServerRef.access$000(DispatcherServerRef.java:36)
at weblogic.messaging.dispatcher.DispatcherServerRef$1.run(DispatcherServerRef.java:105)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:179)
Next, the other thread which is participating in the transaction which is stuck:
"[ACTIVE] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=5 tid=0x3adb80a0 nid=0xb30 in Object.wait() [0x3c7af000..0x3c7afd6c]
at java.lang.Object.wait(Native Method)
- waiting on <0x0c7a0000> (a oracle.toplink.internal.helper.ConcurrencyManager)
at java.lang.Object.wait(Object.java:474)
at oracle.toplink.internal.helper.ConcurrencyManager.acquire(ConcurrencyManager.java:76)
- locked <0x0c7a0000> (a oracle.toplink.internal.helper.ConcurrencyManager)
at oracle.toplink.internal.identitymaps.CacheKey.acquire(CacheKey.java:80)
at oracle.toplink.internal.identitymaps.FullIdentityMap.remove(FullIdentityMap.java:164)
at oracle.toplink.internal.identitymaps.HardCacheWeakIdentityMap.remove(HardCacheWeakIdentityMap.java:82)
at oracle.toplink.internal.helper.WriteLockManager.releaseAllAcquiredLocks(WriteLockManager.java:363)
at oracle.toplink.publicinterface.UnitOfWork.afterTransaction(UnitOfWork.java:2123)
at oracle.toplink.transaction.AbstractSynchronizationListener.afterCompletion(AbstractSynchronizationListener.java:135)
at oracle.toplink.transaction.JTASynchronizationListener.afterCompletion(JTASynchronizationListener.java:66)
at weblogic.transaction.internal.ServerSCInfo.callAfterCompletions(ServerSCInfo.java:862)
at weblogic.transaction.internal.ServerTransactionImpl.callAfterCompletions(ServerTransactionImpl.java:2913)
at weblogic.transaction.internal.ServerTransactionImpl.afterCommittedStateHousekeeping(ServerTransactionImpl.java:2806)
at weblogic.transaction.internal.ServerTransactionImpl.setCommittedUnsync(ServerTransactionImpl.java:2857)
at weblogic.transaction.internal.ServerTransactionImpl.ackCommit(ServerTransactionImpl.java:1097)
- locked <0x0c7a0908> (a weblogic.transaction.internal.ServerTransactionImpl)
at weblogic.transaction.internal.CoordinatorImpl.ackCommit(CoordinatorImpl.java:211)
at weblogic.transaction.internal.CoordinatorImpl_WLSkel.invoke(Unknown Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:517)
at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:407)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:147)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:403)
at weblogic.rmi.internal.BasicServerRef.access$300(BasicServerRef.java:56)
at weblogic.rmi.internal.BasicServerRef$BasicExecuteRequest.run(BasicServerRef.java:934)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:179)
Is this the same concurrency bug which was fixed in 10.1.3.1??? As I am writing this, I am attempting to build the application with the updated TopLink jar to test for myself. Has anyone else seen this scenario with WebLogic? I should also point out that the problem only occurs when the listener is running on a separate server than the one hosting the JMS queue it reads from. It may be that when the listener runs on the same server, it does not use multiple threads in the transaction.
Any ideas are greatly appreciated.
- BrunoWe've got the same kind of issue with toplink 10.1.3.0.0 and bea weblogic 8.1 SP5.
I 've not tried with 10.1.3.1.0, did you?
Do you have a new status for this issue.
Chris -
Deploying a TopLink based app in a 9iAS cluster
Hi,
I need to deploy J2EE application written using TopLink in Oracle 9iAS clusters. The software versions I am using are:
9iAS 9.0.3 or 9.0.4 (to be decided)
TopLink 9.0.3.4
One customer has 2 RHES 2.1 app servers and another has 3 Solaris 8 on SPARC app servers.
I think I will need to use TopLink's distributed cache synchronization feature to keep the caches on the different app servers consistent.
Has anyone used TopLink with a 9iAS cluster? Any gotchas or recommendations?
What is the best clustering service to use for distributed cache synchronization? RMIClusteringService, RMIJNDIClusteringService or JMSClusteringService. From what I have read it seems that using JMS would not work very well with 9iAS 9.0.3 because the only JMS that 9.0.3 supports is based on Oracle AQ in the database, which I would expect not to perform very well in this situation. Would the new lightweight JMS implementation in 9.0.4 be any better? Am I correct in thinking that I would need an dedicated OC4J instance just for JMS?
Thanks,
FrancisTron,
Check out the document at $(WL_HOME)/doc/index.html. It has a section titled "Modify
a Resource Adapter for Deployment in the WebLogic Server Environment", which specifically
talks about how to make an existing resource adapter work under WLS.
As for the weblogic-xxx.xml, you can take the one in BlackBoxNoTx.rar and modify
it for you resource adapter. For the beans, take a look at the one under $(WL_HOME)/samples/connector/ejb/basic/beanManaged.
Hope it helps.
Yongtao
[email protected]
"Tron Hvaring" <[email protected]> wrote:
>
>Hi all,
>
>New guy in the room -- with a working connector,
>an EJB to access it, a servlet to start the EJB
>and a Web page to start the servlet. This setup
>works perfectly well under Sun's RI. I'm now
>ready to deploy it in the real world, i.e. I
>want to deploy it all under WLS 6.0 SP1, where
>I've installed the JCA Beta 2 support package
>and EJB 2.0. I'm running WLS on an AIX
>box (4.3.3).
>
>The various weblogic-xxx.xml files needed are a bit
>daunting at first sight. Is there a simple cookbook
>style recipe for what I have to do? I'm concerned
>about JNDI names and mappings thereof, which I find
>a trifle confusing in WLS as compared to the Sun RI.
>
>Any help, suggestions, samples appreciated.
>
>Regards,
>Tron
>
-
Toplink in Cluster without Cache Synchronization
Hello,
Iâm trying to setup my J2EE app that uses Toplink for its persistence in a 9iAS cluster. For the first release Iâm not planning to use Toplink Cache synchronization but planning to deploy the app in 9iAS cluster of nodes say A and B. By default all the requests goes to one app server (say A) in the cluster. When the app in node A goes down app in node B starts and accepts all the requests transparently. For this scenario:
1. Do I need to use any Toplink feature/API?
2. What design considerations I need to consider for my app so that I can achieve my short-term goal and the long-term goal of implementing Cache synchronization easily?
Any references/pointers would help me.
Thanks
-ManiTopLink Cache Coordination (Synchronization) can be enabled at any point during your development. And is not required on a system running in a cluster. No special TopLink API's are required when running in the cluster.
There should be no design decisions made now that would affect the use of Cache Coordination (Synchronization) in the future.
--Gordon -
Dear Friends,
We are facing issue with our systems which is running on win2008 with oracle DB this is MSCS environment.
Automatically some resource moved to node2 from node1 and database went down, in fail safe cluster management i can see error as below.
Cluster resource 'SID.WORLD' (resource type '', DLL 'fsresodbs.dll') either crashed or deadlocked. The Resource Hosting Subsystem (RHS) process will now attempt to terminate, and the resource will be marked to run in a separate monitor.
And
The cluster resource host subsystem (RHS) stopped unexpectedly. An attempt will be made to restart it. This is usually due to a problem in a resource DLL. Please determine which resource DLL is causing the issue and report the problem to the resource vendor.
Kindly help us to solve this issue.
Thanks
BasisHi Deepak,
Thanks for providing the link.
I have seen the link and symptoms are same, but only difference is, this link is talking about clusres.dll' and we have issue with fsresodbs.dll'
Our issue
Cluster resource 'SID.WORLD' (resource type '', DLL 'fsresodbs.dll''') either crashed or deadlocked.
and issue described in the Link
Cluster resource 'SID.WORLD' (resource type '', DLL 'clusres.dll'') either crashed or deadlocked.
Kindly guide.
Thanks
Basis -
Cluster config. - toplink cache
hi all!
A simple question...
I've built an application using ADF and toplink.
Actually the application runs on a single IAS.
now, for load reasons, i'll need to migrate to a cluster configuration.
Is there any kind of problem with the toplink cache?
Thanks.
Lucahi all!
A simple question...
I've built an application using ADF and toplink.
Actually the application runs on a single IAS.
now, for load reasons, i'll need to migrate to a cluster configuration.
Is there any kind of problem with the toplink cache?
Thanks.
Luca -
Keeping the toplink cache insync across a cluster
We would like to deploy our application across a cluster of 10g application servers and we are using toplink as our persistence framework using POJO's. I have been looking around and I have been unable to find anything very helpful on how to setup toplink to be able to keep the cache in sync across the cluster. Has anyone does this on 10g with POJO's? If so can you please point me to an example or a good piece of documentation?
Thanks
MarcThe documentation on Cache synch can be found starting on page 8-3 on the 10g (9.0.4) release.
-
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 ? -
Can I cluster entitybean which build by Toplink
I am using toplink for weblogic(weblogic7.01). All entitybeans are built by using toplink. Now we want to turn weblogic into clustered server. How can I set these entitybean clusterable? Weblogic document says that I need set the cluster property in weblogic-ejb-jar.xml. Should I set in weblogic.xml or my toplink project.xml?
From weblogic console, I can not see any entitybeans list there, I guess since they are wrapped by toplink.Yes, TopLink can be configured for cache-synchronization in a cluster. It involves adding a setting in your toplink-ejb-jar.xml configuration file. TopLink's CMP documentation covers this:
http://download-west.oracle.com/docs/cd/A97688_08/toplink.903/b10065/clusteri.htm#1036378
The configuration details for the toplink-ej-jar.xml file is described at:
http://download-west.oracle.com/docs/cd/A97688_08/toplink.903/b10065/entity_b.htm#1097003
Cheers,
Doug -
Could not create/access the TopLink Session.While invoking OSB proxy.
Hi,
While testing an OSB proxy ,which uses a multi datasource to connect to a remote database, from the sbconsole.I am getting exceptions and it is not able to create/access the TopLink Session.
I have checked the multi datasource jndi name ,which is correct.
The stack trace which I am getting while invoking the service is posted below:
oracle.tip.adapter.sa.api.JCABindingException: oracle.tip.adapter.sa.impl.fw.ext.org.collaxa.thirdparty.apache.wsif.WSIFException: servicebus:/WSDL/CRN_CommonServices/SaveTransactionBSV2 [ SaveTransactionBSV2_ptt::SaveTransactionBSV2(InputParameters,OutputParameters) ] - WSIF JCA Execute of operation 'SaveTransactionBSV2' failed due to: Could not create/access the TopLink Session.
This session is used to connect to the datastore.
; nested exception is:
JCA-11622
Could not create/access the TopLink Session.
This session is used to connect to the datastore.
See root exception for the specific exception. You may need to configure the connection settings in the deployment descriptor (i.e. $J2EE_HOME/application-deployments/default/DbAdapter/oc4j-ra.xml) and restart the server. Caused by javax.resource.spi.InvalidPropertyException: Missing Property Exception.
Missing Property: [DBManagedConnectionFactory.userName].
Make sure the property is set in the interaction (activation) spec by editing its definition in the wsdl.
at oracle.tip.adapter.sa.impl.JCABindingReferenceImpl.request(JCABindingReferenceImpl.java:225)
at com.bea.wli.sb.transports.jca.binding.JCATransportOutboundBindingServiceImpl.invoke(JCATransportOutboundBindingServiceImpl.java:136)
at com.bea.wli.sb.transports.jca.JCAOutboundMessageContext.sendRequestResponse(JCAOutboundMessageContext.java:152)
at com.bea.wli.sb.transports.jca.JCAOutboundMessageContext.send(JCAOutboundMessageContext.java:113)
at com.bea.wli.sb.transports.jca.JCATransportProvider.sendMessageAsync(JCATransportProvider.java:464)
at sun.reflect.GeneratedMethodAccessor249.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.bea.wli.sb.transports.Util$1.invoke(Util.java:82)
at $Proxy76.sendMessageAsync(Unknown Source)
at com.bea.wli.sb.transports.LoadBalanceFailoverListener.sendMessageAsync(LoadBalanceFailoverListener.java:148)
at com.bea.wli.sb.transports.LoadBalanceFailoverListener.sendMessageToServiceAsync(LoadBalanceFailoverListener.java:543)
at com.bea.wli.sb.transports.LoadBalanceFailoverListener.sendMessageToService(LoadBalanceFailoverListener.java:478)
at com.bea.wli.sb.transports.TransportManagerImpl.sendMessageToService(TransportManagerImpl.java:544)
at com.bea.wli.sb.transports.TransportManagerImpl.sendMessageAsync(TransportManagerImpl.java:422)
at com.bea.wli.sb.pipeline.PipelineContextImpl.doDispatch(PipelineContextImpl.java:583)
at com.bea.wli.sb.pipeline.PipelineContextImpl.dispatchSync(PipelineContextImpl.java:466)
at stages.transform.runtime.WsCalloutRuntimeStep$WsCalloutDispatcher.dispatch(WsCalloutRuntimeStep.java:1401)
at stages.transform.runtime.WsCalloutRuntimeStep.processMessage(WsCalloutRuntimeStep.java:236)
at com.bea.wli.sb.stages.StageMetadataImpl$WrapperRuntimeStep.processMessage(StageMetadataImpl.java:346)
at com.bea.wli.sb.stages.impl.SequenceRuntimeStep.processMessage(SequenceRuntimeStep.java:33)
at com.bea.wli.sb.pipeline.PipelineStage.processMessage(PipelineStage.java:84)
at com.bea.wli.sb.pipeline.PipelineContextImpl.execute(PipelineContextImpl.java:866)
at com.bea.wli.sb.pipeline.Pipeline.processMessage(Pipeline.java:141)
at com.bea.wli.sb.pipeline.PipelineContextImpl.execute(PipelineContextImpl.java:866)
at com.bea.wli.sb.pipeline.PipelineNode.doRequest(PipelineNode.java:55)
at com.bea.wli.sb.pipeline.Node.processMessage(Node.java:67)
at com.bea.wli.sb.pipeline.PipelineContextImpl.execute(PipelineContextImpl.java:866)
at com.bea.wli.sb.pipeline.Router.processMessage(Router.java:191)
at com.bea.wli.sb.pipeline.MessageProcessor.processRequest(MessageProcessor.java:75)
at com.bea.wli.sb.pipeline.RouterManager$1.run(RouterManager.java:508)
at com.bea.wli.sb.pipeline.RouterManager$1.run(RouterManager.java:506)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
at weblogic.security.service.SecurityManager.runAs(Unknown Source)
at com.bea.wli.sb.security.WLSSecurityContextService.runAs(WLSSecurityContextService.java:55)
at com.bea.wli.sb.pipeline.RouterManager.processMessage(RouterManager.java:505)
at com.bea.wli.sb.test.service.ServiceMessageSender.send0(ServiceMessageSender.java:263)
at com.bea.wli.sb.test.service.ServiceMessageSender.access$000(ServiceMessageSender.java:68)
at com.bea.wli.sb.test.service.ServiceMessageSender$1.run(ServiceMessageSender.java:125)
at com.bea.wli.sb.test.service.ServiceMessageSender$1.run(ServiceMessageSender.java:123)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
at weblogic.security.service.SecurityManager.runAs(Unknown Source)
at com.bea.wli.sb.security.WLSSecurityContextService.runAs(WLSSecurityContextService.java:55)
at com.bea.wli.sb.test.service.ServiceMessageSender.send(ServiceMessageSender.java:128)
at com.bea.wli.sb.test.service.ServiceProcessor.invoke(ServiceProcessor.java:441)
at com.bea.wli.sb.test.TestServiceImpl.invoke(TestServiceImpl.java:169)
at com.bea.wli.sb.test.client.ejb.TestServiceEJBBean.invoke(TestServiceEJBBean.java:136)
at com.bea.wli.sb.test.client.ejb.TestService_sqr59p_EOImpl.invoke(TestService_sqr59p_EOImpl.java:572)
at com.bea.wli.sb.test.client.ejb.TestService_sqr59p_EOImpl_WLSkel.invoke(Unknown Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:589)
at weblogic.rmi.cluster.ClusterableServerRef.invoke(ClusterableServerRef.java:230)
at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:477)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
at weblogic.security.service.SecurityManager.runAs(Unknown Source)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:473)
at weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:118)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
Caused by: oracle.tip.adapter.sa.impl.fw.ext.org.collaxa.thirdparty.apache.wsif.WSIFException: servicebus:/WSDL/CRN_CommonServices/SaveTransactionBSV2 [ SaveTransactionBSV2_ptt::SaveTransactionBSV2(InputParameters,OutputParameters) ] - WSIF JCA Execute of operation 'SaveTransactionBSV2' failed due to: Could not create/access the TopLink Session.
This session is used to connect to the datastore.
; nested exception is:
JCA-11622
Could not create/access the TopLink Session.
This session is used to connect to the datastore.
See root exception for the specific exception. You may need to configure the connection settings in the deployment descriptor (i.e. $J2EE_HOME/application-deployments/default/DbAdapter/oc4j-ra.xml) and restart the server. Caused by javax.resource.spi.InvalidPropertyException: Missing Property Exception.
Missing Property: [DBManagedConnectionFactory.userName].
Make sure the property is set in the interaction (activation) spec by editing its definition in the wsdl.
at oracle.tip.adapter.sa.impl.fw.wsif.jca.WSIFOperation_JCA.executeRequestResponseOperation(WSIFOperation_JCA.java:619)
at oracle.tip.adapter.sa.impl.JCABindingReferenceImpl.invokeWsifProvider(JCABindingReferenceImpl.java:331)
at oracle.tip.adapter.sa.impl.JCABindingReferenceImpl.request(JCABindingReferenceImpl.java:220)
... 57 more
Caused by: JCA-11622
Could not create/access the TopLink Session.
This session is used to connect to the datastore.
See root exception for the specific exception. You may need to configure the connection settings in the deployment descriptor (i.e. $J2EE_HOME/application-deployments/default/DbAdapter/oc4j-ra.xml) and restart the server. Caused by javax.resource.spi.InvalidPropertyException: Missing Property Exception.
Missing Property: [DBManagedConnectionFactory.userName].
Make sure the property is set in the interaction (activation) spec by editing its definition in the wsdl.
at oracle.tip.adapter.db.exceptions.DBResourceException.createEISException(DBResourceException.java:473)
at oracle.tip.adapter.db.exceptions.DBResourceException.couldNotCreateTopLinkSessionException(DBResourceException.java:216)
at oracle.tip.adapter.db.DBManagedConnectionFactory.acquireSession(DBManagedConnectionFactory.java:638)
at oracle.tip.adapter.db.transaction.DBTransaction.getSession(DBTransaction.java:457)
at oracle.tip.adapter.db.DBConnection.getSession(DBConnection.java:222)
at oracle.tip.adapter.db.DBInteraction.executeStoredProcedure(DBInteraction.java:1001)
at oracle.tip.adapter.db.DBInteraction.execute(DBInteraction.java:232)
at oracle.tip.adapter.sa.impl.fw.wsif.jca.WSIFOperation_JCA.executeRequestResponseOperation(WSIFOperation_JCA.java:463)
... 59 more
Caused by: javax.resource.spi.InvalidPropertyException: Missing Property Exception.
Missing Property: [DBManagedConnectionFactory.userName].
Make sure the property is set in the interaction (activation) spec by editing its definition in the wsdl.
at oracle.tip.adapter.db.exceptions.DBResourceException.missingPropertyException(DBResourceException.java:348)
at oracle.tip.adapter.db.DBManagedConnectionFactory.createServerSession(DBManagedConnectionFactory.java:932)
at oracle.tip.adapter.db.DBManagedConnectionFactory.acquireSession(DBManagedConnectionFactory.java:413)
... 64 more
Looking forward for your help.
Thanks a lot in advance.
SumitHave you created XA data source? If yes then make sure that in connection factory you are assigning the JNDI name of data-source in XAdataSource property (NOT in datasource property). Also make sure that your datasource is up and running and you are updating the dbadapter after creating connection factory.
Regards,
Anuj -
WebLogic 5.1 sp6 .. session in cluster not working properly
It seems like there is a problem in Weblogic 5.1 with sessions in a
clustered environment. The problem is immediately visible with sp3 but
also appears in different form with sp6 . I discovered the problem is
actually with session while testing the cluster with a Session servlet
given with the Weblogic 5.1 kit.
I regiestered the servlet as servlet/session.
The environment is briefly as follows:
Solaris 2.6
Weblogic 5.1.0 sp3 or sp6 - 2 servers clustered and running on same
machine with two multihome addreses like home1:7001 and home2:7001
Cluster properties in mycluster/weblogic.properties are set as,
weblogic.httpd.clustering.enable=true
weblogic.httpd.session.enable=true
weblogic.httpd.session.persistence=true
weblogic.httpd.session.persistentStoreType=replicated
and also started with required cluster properties in startup.
iPlanet 4.0 webserver - obj.conf has entries like
WebLogicCluster="home1:7001,home2:7001"
All requests are made as http://<host>/servlet/session
sp3 ) After both members are booted up, the first call to session
servlet from any new browser session throws a NullException in server,
but subsequent calls work fine. Single server works fine.
After looking at sp6 release notes it appeared to me that it was a known
problem with cluster.
sp6 ) After both members are booted up, all calls to session servlet do
not complete and eventually it times out. Other servlets work fine.
It only works if we do these steps,
- one of the member is booted up and then session servlet is called and
response comes back.
- second member is booted up and it works well if session servlet is
called. Subsequent requests to both members work fine.
Another strange behaviour:
While running a snoop servlet in cluster subsequent requests show,
Requested url :
either http://<host>/servlet/snoop
or http://<host>:7001/servlet/snoop alternatively
which is strange.
You are not using the same service pack on both the servers. let try do that and see how it goes.
1. Also, if you are doing testing why do you so many threads.
2. The servers are unable to open sockets to each other. Could be network related. Please check into that also, but first start the servers with the same service pack.
- Prasad
Sutanu Ghosh wrote:
> Here are the thread dumps from both members of the cluster. I took the dumps
> about 5 times in 10 secs interval. It will be helpful for us if you can give
> some insight about this problem.
> Also about the snoop servlet, can you explain why the requested url is
> different (one with weblogic port another without it) in every alternate
> requests ?
> thanks
>
> Prasad Peddada wrote:
>
> > Sutanu Ghosh wrote:
> >
> > > It seems like there is a problem in Weblogic 5.1 with sessions in a
> > > clustered environment. The problem is immediately visible with sp3 but
> > > also appears in different form with sp6 . I discovered the problem is
> > > actually with session while testing the cluster with a Session servlet
> > > given with the Weblogic 5.1 kit.
> > > I regiestered the servlet as servlet/session.
> > >
> > > The environment is briefly as follows:
> > > Solaris 2.6
> > > Weblogic 5.1.0 sp3 or sp6 - 2 servers clustered and running on same
> > > machine with two multihome addreses like home1:7001 and home2:7001
> > > Cluster properties in mycluster/weblogic.properties are set as,
> > > weblogic.httpd.clustering.enable=true
> > > weblogic.httpd.session.enable=true
> > > weblogic.httpd.session.persistence=true
> > > weblogic.httpd.session.persistentStoreType=replicated
> > > and also started with required cluster properties in startup.
> > >
> > > iPlanet 4.0 webserver - obj.conf has entries like
> > > WebLogicCluster="home1:7001,home2:7001"
> > >
> > > All requests are made as http://<host>/servlet/session
> > >
> > > sp3 ) After both members are booted up, the first call to session
> > > servlet from any new browser session throws a NullException in server,
> > > but subsequent calls work fine. Single server works fine.
> > > After looking at sp6 release notes it appeared to me that it was a known
> > > problem with cluster.
> > >
> > > sp6 ) After both members are booted up, all calls to session servlet do
> > > not complete and eventually it times out. Other servlets work fine.
> > > It only works if we do these steps,
> >
> > Take thread dumps in intervals of 10 seconds and post them again.
> >
> > > - one of the member is booted up and then session servlet is called and
> > > response comes back.
> > > - second member is booted up and it works well if session servlet is
> > > called. Subsequent requests to both members work fine.
> > >
> > > Another strange behaviour:
> > > While running a snoop servlet in cluster subsequent requests show,
> > > Requested url :
> > > either http://<host>/servlet/snoop
> > > or http://<host>:7001/servlet/snoop alternatively
> > > which is strange.
>
> ------------------------------------------------------------------------
> SIGQUIT
> A SIGQUIT has been received. Do you want to:
> [ 0 ] continue program
> [ 1 ] check & print one deadlock
> [ 2 ] check & print all deadlocks
> [ 3 ] dump thread stacks
> [ 4 ] dump lock registry
> [ 5 ] heap inspection
> [ 6 ] terminate program
> Type number corresponding to selected action: Found 0 deadlock
>
> Full thread dump:
> "HighPriority TimeEventGenerator" (TID:0xe7f658, sys_thread_t:0xe7f590, state:CW, thread_t: t@90, threadID:0xc9751dd8, stack_bottom:0xc9752000, stack_size:0x20000) prio=9
>
> [1] weblogic.time.common.internal.TimeTable.snooze(TimeTable.java:256)
> [2] weblogic.time.common.internal.TimeEventGenerator.run(TimeEventGenerator.java:131)
> [3] java.lang.Thread.run(Thread.java:479)
> -------------------
> "SSLListenThread" (TID:0xe4e270, sys_thread_t:0xe4e1a8, state:R, thread_t: t@89, threadID:0xc9841dd8, stack_bottom:0xc9842000, stack_size:0x20000) prio=5
>
> [1] java.net.PlainSocketImpl.socketAccept(Native Method)
> [2] java.net.PlainSocketImpl.accept(PlainSocketImpl.java:406)
> [3] java.net.ServerSocket.implAccept(ServerSocket.java:240)
> [4] java.net.ServerSocket.accept(ServerSocket.java:224)
> [5] weblogic.security.SSL.SSLServerSocket.acceptNoHandshake(SSLServerSocket.java:121)
> [6] weblogic.security.SSL.SSLServerSocket.accept(SSLServerSocket.java:112)
> [7] weblogic.t3.srvr.ListenThread.run(ListenThread.java:226)
> -------------------
> "ListenThread" (TID:0xe247f0, sys_thread_t:0xe24728, state:R, thread_t: t@88, threadID:0xc9801dd8, stack_bottom:0xc9802000, stack_size:0x20000) prio=5
>
> [1] java.net.PlainSocketImpl.socketAccept(Native Method)
> [2] java.net.PlainSocketImpl.accept(PlainSocketImpl.java:406)
> [3] java.net.ServerSocket.implAccept(ServerSocket.java:238)
> [4] java.net.ServerSocket.accept(ServerSocket.java:223)
> [5] weblogic.t3.srvr.ListenThread.run(ListenThread.java:226)
> -------------------
> "NBExecuteThread-1" (TID:0xa9b748, sys_thread_t:0xa9b680, state:CW, thread_t: t@84, threadID:0xc9891dd8, stack_bottom:0xc9892000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "NBExecuteThread-0" (TID:0xa9a388, sys_thread_t:0xa9a2c0, state:CW, thread_t: t@83, threadID:0xc98c1dd8, stack_bottom:0xc98c2000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-69" (TID:0xa98fc8, sys_thread_t:0xa98f00, state:R, thread_t: t@82, threadID:0xc9911dd8, stack_bottom:0xc9912000, stack_size:0x20000) prio=5
>
> [1] java.net.PlainDatagramSocketImpl.peek(Native Method)
> [2] java.net.DatagramSocket.receive(DatagramSocket.java:348)
> [3] weblogic.cluster.TDMSocketIPM.receive(TDMSocketIPM.java:80)
> [4] weblogic.cluster.TMSocket.execute(TMSocket.java:233)
> [5] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-68" (TID:0xa97be8, sys_thread_t:0xa97b20, state:R, thread_t: t@81, threadID:0xc9941dd8, stack_bottom:0xc9942000, stack_size:0x20000) prio=5
>
> [1] weblogic.socket.PosixSocketMuxer.poll(Native Method)
> [2] weblogic.socket.PosixSocketMuxer.processSockets(PosixSocketMuxer.java:259)
> [3] weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:23)
> [4] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-67" (TID:0xa96828, sys_thread_t:0xa96760, state:MW, thread_t: t@80, threadID:0xc9991dd8, stack_bottom:0xc9992000, stack_size:0x20000) prio=5
>
> [1] weblogic.socket.PosixSocketMuxer.processSockets(PosixSocketMuxer.java:259)
> [2] weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:23)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-66" (TID:0xa95468, sys_thread_t:0xa953a0, state:MW, thread_t: t@79, threadID:0xc99c1dd8, stack_bottom:0xc99c2000, stack_size:0x20000) prio=5
>
> [1] weblogic.socket.PosixSocketMuxer.processSockets(PosixSocketMuxer.java:259)
> [2] weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:23)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-65" (TID:0xa940a8, sys_thread_t:0xa93fe0, state:CW, thread_t: t@78, threadID:0xc9a11dd8, stack_bottom:0xc9a12000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-64" (TID:0xa92ce8, sys_thread_t:0xa92c20, state:CW, thread_t: t@77, threadID:0xc9a41dd8, stack_bottom:0xc9a42000, stack_size:0x20000) prio=5
>
> [1] weblogic.rjvm.ResponseImpl.waitForData(ResponseImpl.java:43)
> [2] weblogic.rjvm.ResponseImpl.getThrowable(ResponseImpl.java:58)
> [3] weblogic.rmi.extensions.BasicResponse.getThrowable(BasicResponse.java:13)
> [4] weblogic.rmi.extensions.AbstractRequest.sendReceive(AbstractRequest.java:74)
> [5] weblogic.jndi.internal.RemoteContextFactoryImpl_WLStub.getContext(RemoteContextFactoryImpl_WLStub.java:95)
> [6] weblogic.jndi.WLInitialContextFactoryDelegate.newRemoteContext(WLInitialContextFactoryDelegate.java:316)
> [7] weblogic.jndi.WLInitialContextFactoryDelegate.newContext(WLInitialContextFactoryDelegate.java:224)
> [8] weblogic.jndi.WLInitialContextFactoryDelegate.getInitialContext(WLInitialContextFactoryDelegate.java:164)
> [9] weblogic.jndi.Environment.getContext(Environment.java:122)
> [10] weblogic.jndi.Environment.getInitialContext(Environment.java:104)
> [11] weblogic.cluster.replication.ReplicationManager.getRepMan(ReplicationManager.java:362)
> [12] weblogic.cluster.replication.ReplicationManager.createSecondary(ReplicationManager.java:406)
> [13] weblogic.cluster.replication.ReplicationManager.register(ReplicationManager.java:585)
> [14] weblogic.servlet.internal.session.ReplicatedSession.<init>(ReplicatedSession.java:106)
> [15] weblogic.servlet.internal.session.ReplicatedSessionContext.getNewSession(ReplicatedSessionContext.java:50)
> [16] weblogic.servlet.internal.session.SessionContext.getNewSessionInstance(SessionContext.java:331)
> [17] weblogic.servlet.internal.ServletRequestImpl.getNewSession(ServletRequestImpl.java:1215)
> [18] weblogic.servlet.internal.ServletRequestImpl.getSession(ServletRequestImpl.java:1118)
> [19] examples.servlets.SessionServlet.doGet(SessionServlet.java:51)
> [20] javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
> [21] javax.servlet.http.HttpServlet.service(HttpServlet.java:865)
> [22] weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:123)
> [23] weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImpl.java:761)
> [24] weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImpl.java:708)
> [25] weblogic.servlet.internal.ServletContextManager.invokeServlet(ServletContextManager.java:252)
> [26] weblogic.socket.MuxableSocketHTTP.invokeServlet(MuxableSocketHTTP.java:346)
> [27] weblogic.socket.MuxableSocketHTTP.execute(MuxableSocketHTTP.java:246)
> [28] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-63" (TID:0xa91b10, sys_thread_t:0xa91a48, state:CW, thread_t: t@76, threadID:0xc9a91dd8, stack_bottom:0xc9a92000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-62" (TID:0xa90750, sys_thread_t:0xa90688, state:CW, thread_t: t@75, threadID:0xc9ac1dd8, stack_bottom:0xc9ac2000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-61" (TID:0xa8f390, sys_thread_t:0xa8f2c8, state:CW, thread_t: t@74, threadID:0xc9b11dd8, stack_bottom:0xc9b12000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-60" (TID:0xa8dfd0, sys_thread_t:0xa8df08, state:CW, thread_t: t@73, threadID:0xc9b41dd8, stack_bottom:0xc9b42000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-59" (TID:0xa8cc10, sys_thread_t:0xa8cb48, state:CW, thread_t: t@72, threadID:0xc9b91dd8, stack_bottom:0xc9b92000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-58" (TID:0xa8ba38, sys_thread_t:0xa8b970, state:CW, thread_t: t@71, threadID:0xc9bc1dd8, stack_bottom:0xc9bc2000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-57" (TID:0xa89670, sys_thread_t:0xa895a8, state:CW, thread_t: t@70, threadID:0xc9c11dd8, stack_bottom:0xc9c12000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-56" (TID:0xa882b0, sys_thread_t:0xa881e8, state:CW, thread_t: t@69, threadID:0xc9c41dd8, stack_bottom:0xc9c42000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-55" (TID:0xa86ef0, sys_thread_t:0xa86e28, state:CW, thread_t: t@68, threadID:0xc9c91dd8, stack_bottom:0xc9c92000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-54" (TID:0xa85b30, sys_thread_t:0xa85a68, state:CW, thread_t: t@67, threadID:0xc9cc1dd8, stack_bottom:0xc9cc2000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-53" (TID:0xa84958, sys_thread_t:0xa84890, state:CW, thread_t: t@66, threadID:0xc9d11dd8, stack_bottom:0xc9d12000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-52" (TID:0xa83598, sys_thread_t:0xa834d0, state:CW, thread_t: t@65, threadID:0xc9d41dd8, stack_bottom:0xc9d42000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-51" (TID:0xa821d8, sys_thread_t:0xa82110, state:CW, thread_t: t@64, threadID:0xc9d91dd8, stack_bottom:0xc9d92000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-50" (TID:0xa80a10, sys_thread_t:0xa80948, state:CW, thread_t: t@63, threadID:0xc9dc1dd8, stack_bottom:0xc9dc2000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-49" (TID:0xa7f650, sys_thread_t:0xa7f588, state:CW, thread_t: t@62, threadID:0xc9e11dd8, stack_bottom:0xc9e12000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-48" (TID:0xa7e478, sys_thread_t:0xa7e3b0, state:CW, thread_t: t@61, threadID:0xc9e41dd8, stack_bottom:0xc9e42000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-47" (TID:0xa7d0b8, sys_thread_t:0xa7cff0, state:CW, thread_t: t@60, threadID:0xc9e91dd8, stack_bottom:0xc9e92000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-46" (TID:0xa7bcf8, sys_thread_t:0xa7bc30, state:CW, thread_t: t@59, threadID:0xc9ec1dd8, stack_bottom:0xc9ec2000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-45" (TID:0xa7a938, sys_thread_t:0xa7a870, state:CW, thread_t: t@58, threadID:0xc9f11dd8, stack_bottom:0xc9f12000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-44" (TID:0xa79578, sys_thread_t:0xa794b0, state:CW, thread_t: t@57, threadID:0xc9f41dd8, stack_bottom:0xc9f42000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-43" (TID:0xa783a0, sys_thread_t:0xa782d8, state:CW, thread_t: t@56, threadID:0xc9f91dd8, stack_bottom:0xc9f92000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-42" (TID:0xa76fe0, sys_thread_t:0xa76f18, state:CW, thread_t: t@55, threadID:0xc9fc1dd8, stack_bottom:0xc9fc2000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-41" (TID:0xa74c18, sys_thread_t:0xa74b50, state:CW, thread_t: t@54, threadID:0xca011dd8, stack_bottom:0xca012000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-40" (TID:0xa73858, sys_thread_t:0xa73790, state:CW, thread_t: t@53, threadID:0xca041dd8, stack_bottom:0xca042000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-39" (TID:0xa72498, sys_thread_t:0xa723d0, state:CW, thread_t: t@52, threadID:0xca091dd8, stack_bottom:0xca092000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-38" (TID:0xa712c0, sys_thread_t:0xa711f8, state:CW, thread_t: t@51, threadID:0xca0c1dd8, stack_bottom:0xca0c2000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-37" (TID:0xa6ff00, sys_thread_t:0xa6fe38, state:CW, thread_t: t@50, threadID:0xca111dd8, stack_bottom:0xca112000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-36" (TID:0xa6eb40, sys_thread_t:0xa6ea78, state:CW, thread_t: t@49, threadID:0xca141dd8, stack_bottom:0xca142000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-35" (TID:0xa6d780, sys_thread_t:0xa6d6b8, state:CW, thread_t: t@48, threadID:0xca191dd8, stack_bottom:0xca192000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-34" (TID:0xa3c940, sys_thread_t:0xa3c878, state:CW, thread_t: t@47, threadID:0xca1c1dd8, stack_bottom:0xca1c2000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-33" (TID:0xa3c720, sys_thread_t:0xa3c658, state:CW, thread_t: t@46, threadID:0xca211dd8, stack_bottom:0xca212000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-32" (TID:0xa3aa60, sys_thread_t:0xa3a998, state:CW, thread_t: t@45, threadID:0xca241dd8, stack_bottom:0xca242000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-31" (TID:0xa3a658, sys_thread_t:0xa3a590, state:CW, thread_t: t@44, threadID:0xca291dd8, stack_bottom:0xca292000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-30" (TID:0xa45828, sys_thread_t:0xa45760, state:CW, thread_t: t@43, threadID:0xca2c1dd8, stack_bottom:0xca2c2000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-29" (TID:0xa23d00, sys_thread_t:0xa23c38, state:CW, thread_t: t@42, threadID:0xca311dd8, stack_bottom:0xca312000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-28" (TID:0xa14fe8, sys_thread_t:0xa14f20, state:CW, thread_t: t@41, threadID:0xca341dd8, stack_bottom:0xca342000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-27" (TID:0xa21eb0, sys_thread_t:0xa21de8, state:CW, thread_t: t@40, threadID:0xca391dd8, stack_bottom:0xca392000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-26" (TID:0xa0fee0, sys_thread_t:0xa0fe18, state:CW, thread_t: t@39, threadID:0xca3c1dd8, stack_bottom:0xca3c2000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-25" (TID:0x9c54c8, sys_thread_t:0x9c5400, state:CW, thread_t: t@38, threadID:0xca411dd8, stack_bottom:0xca412000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-24" (TID:0x9c7cc8, sys_thread_t:0x9c7c00, state:CW, thread_t: t@37, threadID:0xca441dd8, stack_bottom:0xca442000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-23" (TID:0xa0acc8, sys_thread_t:0xa0ac00, state:CW, thread_t: t@36, threadID:0xca491dd8, stack_bottom:0xca492000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-22" (TID:0xa17b08, sys_thread_t:0xa17a40, state:CW, thread_t: t@35, threadID:0xca4c1dd8, stack_bottom:0xca4c2000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-21" (TID:0x9c8498, sys_thread_t:0x9c83d0, state:CW, thread_t: t@34, threadID:0xca511dd8, stack_bottom:0xca512000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-20" (TID:0x9fb8f8, sys_thread_t:0x9fb830, state:CW, thread_t: t@33, threadID:0xca541dd8, stack_bottom:0xca542000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-19" (TID:0x9fd4f8, sys_thread_t:0x9fd430, state:CW, thread_t: t@32, threadID:0xca591dd8, stack_bottom:0xca592000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-18" (TID:0xa0f628, sys_thread_t:0xa0f560, state:CW, thread_t: t@31, threadID:0xca5c1dd8, stack_bottom:0xca5c2000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-17" (TID:0x9c0cf8, sys_thread_t:0x9c0c30, state:CW, thread_t: t@30, threadID:0xca611dd8, stack_bottom:0xca612000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-16" (TID:0x9bc4f8, sys_thread_t:0x9bc430, state:CW, thread_t: t@29, threadID:0xca641dd8, stack_bottom:0xca642000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-15" (TID:0x9b38f8, sys_thread_t:0x9b3830, state:CW, thread_t: t@28, threadID:0xca691dd8, stack_bottom:0xca692000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-14" (TID:0x9b3cf8, sys_thread_t:0x9b3c30, state:CW, thread_t: t@27, threadID:0xca6c1dd8, stack_bottom:0xca6c2000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:103)
> [3] weblogic.kernel.ExecuteThread.run(ExecuteThread.java:111)
> -------------------
> "ExecuteThread-13" (TID:0x9c94f8, sys_thread_t:0x9c9430, state:CW, thread_t: t@26, threadID:0xca711dd8, stack_bottom:0xca712000, stack_size:0x20000) prio=5
>
> [1] java.lang.Object.wait(Object.java:424)
> [2] weblogic.ke -
Toplink locking oracle tables?
Does toplink ever issues a "Lock Table" or "Select xxx From xxx FOR UPDATE"?
I'm getting a oracle error: ORA-00060: deadlock detected while waiting for resource
When I query the v$locks table I can see
SID Type LMODE
252 TM 3
From what I've read this is a table lock. Is TM LMODE 3 a table lock? Or just a row exclusive lock?
http://rahulagarwal.wordpress.com/2006/03/27/locking-in-oracle-dml-locks/TopLink never issues a Lock table but can issue a SELECT ... FOR UPDATE. The pessimistic locking SELECT ... FOR UPDATE requires the developer to configure its use on a query or through the UnitOfWork API.
Doug -
Combining TopLink with DynaBeans
I am going to use DynaBeans in an application that uses TopLink for its persistence.
When I instantiate an object, I have to instantiate a DynaClass object that contains a class description (which is stored in a database), call newInstance on the DynaClass and then set all properties in the resulting DynaBean.
Does TopLink support such a mechanism. Any pointers?
TIA,
MichaelMichael,
I have not used DynaBeans myself but TopLink should be able to fit into this environment.
I am assuming from your question that you will be copying the contents of your persistent object (mapped with TopLink) into a DynaClass object (view object). It is not typical to map and persist the view object itself. These are geared for the presentation layer and do not always have the necessary relationships that the persistent model would have. If I am incorrect in these assumptions let me know.
Typically this is a manual process to copy values into a presentation layer object. Many customer have built a generic framework for copying from the persistent object into the view object and vice versa. On the return side your application logic will need to cordinate applying the changes from the view object into the persistent ones using the UnitOfWork.
Some pointers on this front:
- Typically you'll use optimistic locking to ensure you don't overwrite other users changes accidentally. Make sure if you use an optimistic locking field (timestamp or number) that this value is mapped into the persistent object and copied to and from your view object.
- When you are developing the write logic make sure you re-read the persistent object through the UnitOfWork to ensure it is in the cache of the server you are writing to and that it has not been deleted from the database. A null returned from the query will indicate it is no longer in the database. Your query to retrieve the persistent object from the UnitOfWork should be primary key (only) based to ensure a cache hit where possible.
These pointers hsould help you build a stateless system that scales. WHen you migrate to multiple servers you will want to try and configure the cluster to have clients stick to the same node they read their data from. TopLink's cache-sync capabilities will also be useful in minimizing any stale data in the cluster.
I hope this helps get you started and that it fits with what you are trying to accomplish,
Doug Clarke
Product Manager, Oracle9iAS TopLink
[email protected]
I am going to use DynaBeans in an application that uses TopLink for its persistence.
When I instantiate an object, I have to instantiate a DynaClass object that contains a class description (which is stored in a database), call newInstance on the DynaClass and then set all properties in the resulting DynaBean.
Does TopLink support such a mechanism. Any pointers?
TIA,
Michael -
We are trying to use TopLink (version 9.0.4.3) in a cluster of Oracle 10g application servers (9.0.4.0.0) but we are having a number of issues getting it to work. When I add the following into the sessions.xml file I get a number of toplink errors on startup:
<cache-synchronization-manager>
<clustering-service>
oracle.toplink.remote.rmi.RMIJNDIClusteringService
</clustering-service>
<jndi-user-name>userName</jndi-user-name>
<jndi-password>password</jndi-password>
<naming-service-initial-context-factory-name>
oracle.com.evermind.server.rmi.RMIInitialContextFactory
</naming-service-initial-context-factory-name>
<naming-service-url>ormi://hostname:23791/appName</naming-service-url>
</cache-synchronization-manager>
The errors that we get are:
Exception Description: Several [5] SessionLoaderExceptions were thrown:
Exception [TOPLINK-9003] (OracleAS TopLink - 10g (9.0.4) (Build 031126)): oracle.toplink.exceptions.SessionLoaderException
Exception Description: Unable to process XML tag [clustering-service] with value [
oracle.toplink.remote.rmi.RMIJNDIClusteringService
Internal Exception: java.lang.ClassNotFoundException:
oracle.toplink.remote.rmi.RMIJNDIClusteringService
Exception [TOPLINK-9003] (OracleAS TopLink - 10g (9.0.4) (Build 031126)): oracle.toplink.exceptions.SessionLoaderException
Exception Description: Unable to process XML tag [jndi-user-name] with value [admin].
Internal Exception: java.lang.NullPointerException
Exception [TOPLINK-9003] (OracleAS TopLink - 10g (9.0.4) (Build 031126)): oracle.toplink.exceptions.SessionLoaderException
Exception Description: Unable to process XML tag [jndi-password] with value [XXX].
Internal Exception: java.lang.NullPointerException
Exception [TOPLINK-9003] (OracleAS TopLink - 10g (9.0.4) (Build 031126)): oracle.toplink.exceptions.SessionLoaderException
Exception Description: Unable to process XML tag [naming-service-initial-context-factory-name] with value [
oracle.com.evermind.server.rmi.RMIInitialContextFactory
Internal Exception: java.lang.NullPointerException
Exception [TOPLINK-9003] (OracleAS TopLink - 10g (9.0.4) (Build 031126)): oracle.toplink.exceptions.SessionLoaderException
Exception Description: Unable to process XML tag [naming-service-url] with value [ormi://localhost:23791/XXX].
Internal Exception: java.lang.NullPointerException
All feedback is appreciated,
MarcThere was a recent thread on this issue,
Missing Descriptor in Servlet
Basically TopLink does not get notified of the undeployment of an app, so cannot remove the session from the SessionManager. (unless you are using CMP)
If you can receive notification of the deploy/undeploy you could remove or refresh the session from the session manager.
A simple way to do this would be to keep a static boolean variable in your apps class that accesses the session from the session manager. The first time you access the session refresh it and set the static to true.
To refresh a session from the session manager use the API,
SessionManager.getSession(XMLSessionConfigLoader/XMLLoader xmlLoader, String sessionName, ClassLoader classLoader, boolean shouldLoginSession, boolean shouldRefreshSession)
i.e.
SessionManager.getManager().getSession(new XMLSessionConfigLoader/XMLLoader("sessions.xml/or your file name/path"), "yourSessionName", yourClassLoader, true, true);
Only use this API the first time you access the session from the app.
You can also use the following code to remove a session,
SessionManager.getManager().getSessions().remove("yourSessionName");
I have logged this issue internally, hopefully a better solution will be provided in the 10.1.3 release.
Maybe you are looking for
-
I just want to purchase everything in my wishlist all at once. Can it be done?
-
Hi All, I am using essbase 7.1.5. Is there any way to rollback the database in case if it finds any error. For example if source file (Flat file) contains 1000 records where at 501 record essbase found an error and has rejected that record (501) and
-
Hello, the question of content.
Hello, the question of content. in the past we used a link to our content in the U.S. Store now this is not possible because the system says that the content can not be manufactured in the U.S. Store. the problem could you explain? link to the conten
-
Hi, I wonder if anybody know how to dynamically adjust Frequency, Phase and Amplitude for a Generated Sine Wave in C/C++? This is a part of my project: I need to dynamically generate a sine wave voltage signal by some calculation using the data from
-
When one decide to edit controls or functions palletes, one of the options available is the insertion of a submenu and, when it´s done, the user is prompted to select which menu file - a file with a .mnu extension - he wants to use. All I want to kno