Topic
2 replies Latest Post - ‏2013-05-01T19:08:59Z by andymc_
ellisdp
ellisdp
1 Post
ACCEPTED ANSWER

Pinned topic Class not found error using WXS with Liberty Profile

‏2013-04-23T16:42:44Z |

Hi,

Adding WXS to a Liberty Profile Server, and trying to enable an objectgrid cache.

Whatever I try, I get the following errors when attempting to start up the server:

CWOBJ0095E: The eXtreme Scale server failed to start container grids, from the monitored grids directory.

...

FFDC1015I: An FFDC Incident has been created: "com.ibm.websphere.objectgrid.ObjectGridRuntimeException: com.ibm.websphere.objectgrid.config.ObjectGridConfigurationException: CWOBJ3019E: The class com.ibm.ws.xs.sessionmanager.SessionHandleManager cannot be found for ObjectGrid session. 

I have got the jar "sessionobjectgrid.jar" which appears to contain this class, and have tried adding this to server.xml as a shared library, or as a global library, and referencing this from the classloader as described in the documentation. But whichever I try it always says that it cannot find this class.

Any clues?

Thanks

David

  • Abelard Chow
    Abelard Chow
    1 Post
    ACCEPTED ANSWER

    Re: Class not found error using WXS with Liberty Profile

    ‏2013-05-01T18:41:53Z  in response to ellisdp

    Hi David,

       Looks like the object grid definition you have in the "grids" folder referring to some XS session management class.

       Depends on which version of extreme scale you are using, you can enable session management in Liberty without creating a object grid (i.e. require a object grid definition).  Here is a link to our infoCenter describing XS session management in Liberty

      http://pic.dhe.ibm.com/infocenter/wxsinfo/v8r6/topic/com.ibm.websphere.extremescale.doc/txsconfiglibertysess.html

      Also, I believe you got the "sessionobjectgrid.jar" from stand alone WXS?  Those jars are for running XS on other platform and will not run well under Liberty environment.   WXS has it functions available in Liberty as features and are enable-able via <feature> tag in server.xml

      Please let me know if there is question. 

     Thanks

    Abelard

     

  • andymc_
    andymc_
    1 Post
    ACCEPTED ANSWER

    Re: Class not found error using WXS with Liberty Profile

    ‏2013-05-01T19:08:59Z  in response to ellisdp

    Hi David,

    The WXS release for Liberty attempts to simplify setting up a session grid by allowing users to use the eXtremeScale.webgrid-1.1 feature in your server.xml.  When this feature is enabled (it includes the eXtremeScale.server-1.1 feature), you can configure the session grid with the xsWebGrid element.  Here is an example:

     

     

    <server description="WXS WebGrid Example">
    <!-- 
    This sample program is provided AS IS and may be used, executed, copied and modified
    without royalty payment by customer
    (a) for its own instruction and study,
    (b) in order to develop applications designed to run with an IBM WebSphere product,
    either for customer's own internal use or for redistribution by customer, as part of such an
    application, in customer's own products.
    Licensed Materials - Property of IBM
    5724-X67, 5655-V66 (C) COPYRIGHT International Business Machines Corp. 2013
    -->
        <!-- Enable features -->
        <featureManager>
            <feature>eXtremeScale.webgrid-1.1</feature>
        </featureManager>
     
        <logging traceSpecification="*=info" maxFileSize="200" maxFiles="10" />
     
        <xsWebApp objectGridType="REMOTE" objectGridName="mySessionGrid" mapSetNumberOfPartitions="47" mapSetMaxAsyncReplicas="2" />
     
    </server>

     

    As fro the ClassNotFoundExceptions, they occur because the WXS classes are loaded in Liberty's runtime OSGi framework.  Classes in Java EE or EBA applications are in a child classloader - WXS can load classes from these classloaders, but they are specifically intended to be user classes (i.e. plugins, agents, etc.) - these classes are loaded using the thread's context classloader.  

    As an alternative to putting classes into Java EE apps, shared libs, EBAs, etc., I would suggest putting them into an OSGi bundle in the server's "grids" directory - you can also use OSGi services to expose user classes.

    Here are some links that may help:

    http://pic.dhe.ibm.com/infocenter/wxsinfo/v8r6/topic/com.ibm.websphere.extremescale.doc/txsprogramosgi.html

    http://pic.dhe.ibm.com/infocenter/wxsinfo/v8r6/topic/com.ibm.websphere.extremescale.doc/txsadminsogixscmd.html

    http://pic.dhe.ibm.com/infocenter/wxsinfo/v8r6/topic/com.ibm.websphere.extremescale.doc/txsconfigosgiplugs.html

    http://pic.dhe.ibm.com/infocenter/wxsinfo/v8r6/topic/com.ibm.websphere.extremescale.doc/txswebgridLiberty.html

     

    Hope this helps,

    Andy