[Logo] Terracotta Discussion Forums (LEGACY READ-ONLY ARCHIVE)
  [Search] Search   [Recent Topics] Recent Topics   [Members]  Member Listing   [Groups] Back to home page 
[Register] Register / 
[Login] Login 
[Expert]
WebLogic Pageflow web app: Problem with the Global class  XML
Forum Index -> Terracotta for Web Sessions
Author Message
vidarmoe

neo

Joined: 08/03/2006 10:46:55
Messages: 5
Offline

Hi!

Just added the terracotta persistence type to my weblogic.xml session descriptor in my small test web app. The web app is a BEA Pageflow web app created with BEA WebLogic Workshop.

I get the following error in my server log file when starting the page flow (before the begin action is reached):

####<03.aug.2006 kl 23.36 CEST> <Error> <HTTP> <Server1> <cgServer> <ExecuteThread: '14' for queue: 'default'> <<WLS Kernel>> <> <BEA-101020> <[ServletContext(id=14631366,name=terracottaWeb,context-path=/terracottaWeb)] Servlet failed with Exception
java.lang.Throwable:
************************************************************************************************
Attempt to share an instance of a non-portable class referenced by a portable class. This
unshareable class is a subclass of a JVM- or host machine-specific resource. Please either
modify the class hierarchy or ensure that instances of this class don't enter the shared object
graph.

Referring class : global.Global
Referring field : com.bea.wlw.netui.pageflow.FlowController._transientActionServlet
Thread : ExecuteThread: '14' for queue: 'default'
JVM ID : VM(0)
Unshareable superclass names: javax.servlet.GenericServlet
************************************************************************************************

at com.tc.object.ClientObjectManagerImpl.throwNonPortableException(ClientObjectManagerImpl.java:541)
at com.tc.object.ClientObjectManagerImpl.checkPortabilityOfTraversedRefernce(ClientObjectManagerImpl.java:483)
at com.tc.object.ClientObjectManagerImpl.access$500(ClientObjectManagerImpl.java:61)
at com.tc.object.ClientObjectManagerImpl$NewObjectTraverseTest.checkPortability(ClientObjectManagerImpl.java:734)
at com.tc.object.Traverser.addReferencedObjects(Traverser.java:44)
at com.tc.object.Traverser.traverse(Traverser.java:70)
at com.tc.object.ClientObjectManagerImpl.addToManagedFromRoot(ClientObjectManagerImpl.java:708)
at com.tc.object.ClientObjectManagerImpl.create(ClientObjectManagerImpl.java:253)
at com.tc.object.ClientObjectManagerImpl.lookupOrCreateIfNecesary(ClientObjectManagerImpl.java:306)
at com.tc.object.ClientObjectManagerImpl.lookupOrCreate(ClientObjectManagerImpl.java:293)
at com.tc.object.tx.ClientTransactionManagerImpl.logicalInvoke(ClientTransactionManagerImpl.java:551)
at com.tc.object.TCObjectLogical.logicalInvoke(TCObjectLogical.java:19)
at com.tc.object.bytecode.ManagerImpl.logicalInvoke(ManagerImpl.java:181)
at com.tc.object.bytecode.ManagerUtil.logicalInvoke(ManagerUtil.java:92)
at java.util.HashMap.put(HashMap.java)
at weblogic.servlet.internal.session.TerracottaSessionData.setAttribute(TerracottaSessionData.java:55)
at com.bea.wlw.netui.pageflow.PageFlowUtils.setGlobalApp(PageFlowUtils.java:602)
at com.bea.wlw.netui.pageflow.FlowControllerFactory.getGlobalApp(FlowControllerFactory.java:483)
at com.bea.wlw.netui.pageflow.FlowControllerFactory.getGlobalApp(FlowControllerFactory.java:202)
at com.bea.wlw.netui.pageflow.PageFlowUtils.ensureGlobalApp(PageFlowUtils.java:542)
at com.bea.wlw.netui.pageflow.PageFlowRequestProcessor.process(PageFlowRequestProcessor.java:514)
at com.bea.wlw.netui.pageflow.AutoRegisterActionServlet.process(AutoRegisterActionServlet.java:527)
at com.bea.wlw.netui.pageflow.PageFlowActionServlet.process(PageFlowActionServlet.java:152)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1077)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:465)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:348)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.__TC_run(WebAppServletContext.java:7051)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.WebAppServletContext.__TC_invokeServlet(WebAppServletContext.java:3902)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2773)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)
>

Is there anything I can do to avoid this by adding more configuration to the terracotta config file? I am currently running only with the default config file without any modifications.

Thanks in advance,

Regards
Vidar Moe
achhabra

neo

Joined: 07/06/2006 10:27:12
Messages: 9
Offline

Hi Vidar,

This error can be avoided by configuring Terracotta DSO / Terracotta Sessions so that the object referenced by the field is not shared. To do that modify the configuration file and specify com.bea.wlw.netui.pageflow.FlowController._transientActionServlet in the <application><dso><transient-fields><field-name> tag.

You can find more details about this tag in the DSO product guide.

Arvind
Field Engineer
Terracotta, Inc.
bchever

journeyman

Joined: 05/24/2006 15:10:55
Messages: 18
Offline

An example of the config entry would be;

<dso> <-- at this level -->

<transient-fields>

<field-name>com.bea.wlw.netui.pageflow.FlowController._transientActionServlet</field-name>

</transient-fields>

</dso>

Bill Chever
Product Support Manager
Terracotta, Inc.
 
Forum Index -> Terracotta for Web Sessions
Go to:   
Powered by JForum 2.1.7 © JForum Team