Author |
Message |
|
I found another reference to the dao layer which references the spring jpatemplate and fixed the first problem and everything now starts up correctly.
I now have a problem when a method in a clustered object gets invoked.
The class is definitely included in the instrumentation and i have an
autolock on a method higher up in the execution process.
Does terrocatta recognise synchronized(this) as a boundary?
Do locks have to be configured for every method or just for the top level invocation?
James
The cause may be one or more of the following:
* Terracotta locking was not configured for the shared code.
* The code itself does not have synchronization that Terracotta
can use as a boundary.
* The class doing the locking must be included for instrumentation.
* The object was first locked, then shared.
at com.tc.object.tx.ClientTransactionManagerImpl.getTransaction(ClientTr
ansactionManagerImpl.java:202)
at com.tc.object.tx.ClientTransactionManagerImpl.fieldChanged(ClientTran
sactionManagerImpl.java:405)
at com.tc.object.TCObjectImpl.objectFieldChanged(TCObjectImpl.java:331)
|
|
|
I am trying to start a spring application and get this error message:
1) Reconfigure to include the unshareable classes
* edit your tc-config.xml file
* locate the <dso> element
* add this snippet inside the <dso> element
<instrumented-classes>
<include>
<class-expression>org.springframework.aop.framework.JdkDynamicAopProx
y</class-expression>
</include>
</instrumented-classes>
I guess this is because it is analysing all my instrumented classes and has found the dao layer. I tried to fix this by specifying the dao to be transient but this does not work.
How do I get round this?
James
|
|
|