MWS 9.9 fails to start up with ClassNotFound

Hi All

This is my first time on here so apologies if question or layout is not appropriate for this forum.

I have installed MWS 9.9 on test Linux VM and have created a server instance that utilities the embedded Derby database. I ran ‘mws.sh -s myws01 init’ command to initialise the instance before starting it up for proper.
There were no errors reported other than WARN or INFO so assume all was well.
Now when it started the MWS instance myws01 it starts then reports FATAL errors and shuts down. Below is an extract from the log file of the first two class not found errors but there are a number of such errors mostly related to the portlet classes wm_xt_*:

jvm 1    | 2016-06-07 13:04:01 BST (Framework:INFO)  - No registered exception delegate
jvm 1    | 2016-06-07 13:04:01 BST (Framework:FATAL)  - [POP.001.0002] A "java.lang.ClassNotFoundException" occurred with the Message "com.webmethods.portal.portlet.impl.wm_folderview.FolderView"
jvm 1    | java.lang.ClassNotFoundException: com.webmethods.portal.portlet.impl.wm_folderview.FolderView
jvm 1    |      at com.webmethods.portal.service.classmanager.impl.ComponentClassManager$ManagerClassLoader.findClass(ComponentClassManager.java:949)
jvm 1    |      at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
jvm 1    |      at com.webmethods.portal.service.classmanager.impl.ComponentClassManager$ManagerClassLoader.loadClass(ComponentClassManager.java:933)
jvm 1    |      at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
jvm 1    |      at com.webmethods.rtl.util.ObjectUtil.getClass(ObjectUtil.java:243)
jvm 1    |      at com.webmethods.portal.system.pool.impl.DefaultPooledObjectManager.initialize(DefaultPooledObjectManager.java:37)
jvm 1    |      at com.webmethods.portal.service.portlet.impl.PortletType$PortletBeanPoolManager.initialize(PortletType.java:509)
jvm 1    |      at com.webmethods.portal.service.portlet.impl.PortletType.init(PortletType.java:88)
jvm 1    |      at com.webmethods.portal.service.portlet.impl.PortletProvider.initComponent(PortletProvider.java:885)
jvm 1    |      at com.webmethods.portal.service.portlet.impl.PortletProvider.initComponents(PortletProvider.java:786)
jvm 1    |      at com.webmethods.portal.system.impl.BaseProvider.init(BaseProvider.java:175)
jvm 1    |      at com.webmethods.portal.service.portlet.impl.PortletProvider.init(PortletProvider.java:364)
jvm 1    |      at com.webmethods.portal.system.init.impl.DefaultPhase.initComponent(DefaultPhase.java:117)
jvm 1    |      at com.webmethods.portal.system.impl.BaseProvider.initComponents(BaseProvider.java:639)
jvm 1    |      at com.webmethods.portal.system.impl.BaseProvider.init(BaseProvider.java:175)
jvm 1    |      at com.webmethods.portal.system.init.impl.DefaultPhase.init(DefaultPhase.java:49)
jvm 1    |      at com.webmethods.portal.system.init.impl.DefaultPhaseProvider.initComponent(DefaultPhaseProvider.java:266)
jvm 1    |      at com.webmethods.portal.system.impl.BaseProvider.initComponents(BaseProvider.java:639)
jvm 1    |      at com.webmethods.portal.system.impl.BaseProvider.init(BaseProvider.java:175)
jvm 1    |      at com.webmethods.portal.system.init.impl.DefaultPhaseProvider.initializePhases(DefaultPhaseProvider.java:91)
jvm 1    |      at com.webmethods.portal.system.init.impl.ClusterPhaseProvider.initializePhases(ClusterPhaseProvider.java:114)
jvm 1    |      at com.webmethods.portal.system.init.impl.PartitionPhaseProvider.initializePhases(PartitionPhaseProvider.java:59)
jvm 1    |      at com.webmethods.portal.system.PortalSystem.init(PortalSystem.java:939)
jvm 1    |      at com.webmethods.portal.system.PortalSystem.main(PortalSystem.java:861)
jvm 1    |      at com.webmethods.portal.system.PortalSystemActivator$1.call(PortalSystemActivator.java:57)
jvm 1    |      at com.webmethods.portal.system.PortalSystemActivator$1.call(PortalSystemActivator.java:53)
jvm 1    |      at java.util.concurrent.FutureTask.run(FutureTask.java:266)
jvm 1    |      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
jvm 1    |      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
jvm 1    |      at java.lang.Thread.run(Thread.java:745)
jvm 1    | 2016-06-07 13:04:01 BST (Framework:FATAL)  - [POP.001.0002] A "java.lang.ClassNotFoundException" occurred with the Message "com.webmethods.portal.portlet.wm_xt_role.Role"
jvm 1    | java.lang.ClassNotFoundException: com.webmethods.portal.portlet.wm_xt_role.Role
jvm 1    |      at com.webmethods.portal.service.classmanager.impl.ComponentClassManager$ManagerClassLoader.findClass(ComponentClassManager.java:949)
jvm 1    |      at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
jvm 1    |      at com.webmethods.portal.service.classmanager.impl.ComponentClassManager$ManagerClassLoader.loadClass(ComponentClassManager.java:933)
jvm 1    |      at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
jvm 1    |      at com.webmethods.rtl.util.ObjectUtil.getClass(ObjectUtil.java:243)
jvm 1    |      at com.webmethods.portal.system.pool.impl.DefaultPooledObjectManager.initialize(DefaultPooledObjectManager.java:37)
jvm 1    |      at com.webmethods.portal.service.portlet.impl.PortletType$PortletBeanPoolManager.initialize(PortletType.java:509)
jvm 1    |      at com.webmethods.portal.service.portlet.impl.PortletType.init(PortletType.java:88)
jvm 1    |      at com.webmethods.portal.service.portlet.impl.PortletProvider.initComponent(PortletProvider.java:885)
jvm 1    |      at com.webmethods.portal.service.portlet.impl.PortletProvider.initComponents(PortletProvider.java:786)
jvm 1    |      at com.webmethods.portal.system.impl.BaseProvider.init(BaseProvider.java:175)
jvm 1    |      at com.webmethods.portal.service.portlet.impl.PortletProvider.init(PortletProvider.java:364)
jvm 1    |      at com.webmethods.portal.system.init.impl.DefaultPhase.initComponent(DefaultPhase.java:117)
jvm 1    |      at com.webmethods.portal.system.impl.BaseProvider.initComponents(BaseProvider.java:639)
jvm 1    |      at com.webmethods.portal.system.impl.BaseProvider.init(BaseProvider.java:175)
jvm 1    |      at com.webmethods.portal.system.init.impl.DefaultPhase.init(DefaultPhase.java:49)
jvm 1    |      at com.webmethods.portal.system.init.impl.DefaultPhaseProvider.initComponent(DefaultPhaseProvider.java:266)
jvm 1    |      at com.webmethods.portal.system.impl.BaseProvider.initComponents(BaseProvider.java:639)
jvm 1    |      at com.webmethods.portal.system.impl.BaseProvider.init(BaseProvider.java:175)
jvm 1    |      at com.webmethods.portal.system.init.impl.DefaultPhaseProvider.initializePhases(DefaultPhaseProvider.java:91)
jvm 1    |      at com.webmethods.portal.system.init.impl.ClusterPhaseProvider.initializePhases(ClusterPhaseProvider.java:114)
jvm 1    |      at com.webmethods.portal.system.init.impl.PartitionPhaseProvider.initializePhases(PartitionPhaseProvider.java:59)
jvm 1    |      at com.webmethods.portal.system.PortalSystem.init(PortalSystem.java:939)
jvm 1    |      at com.webmethods.portal.system.PortalSystem.main(PortalSystem.java:861)
jvm 1    |      at com.webmethods.portal.system.PortalSystemActivator$1.call(PortalSystemActivator.java:57)
jvm 1    |      at com.webmethods.portal.system.PortalSystemActivator$1.call(PortalSystemActivator.java:53)
jvm 1    |      at java.util.concurrent.FutureTask.run(FutureTask.java:266)
jvm 1    |      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
jvm 1    |      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
jvm 1    |      at java.lang.Thread.run(Thread.java:745)
jvm 1    | 2016-06-07 13:04:01 BST (Framework:FATAL)  - [POP.001.0002] A "java.lang.ClassNotFoundException" occurred with the Message "com.webmethods.portal.portlet.wm_xt_access_right.Access_right"
jvm 1    | java.lang.ClassNotFoundException: com.webmethods.portal.portlet.wm_xt_access_right.Access_right
jvm 1    |      at com.webmethods.portal.service.classmanager.impl.ComponentClassManager$ManagerClassLoader.findClass(ComponentClassManager.java:949)
jvm 1    |      at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
jvm 1    |      at com.webmethods.portal.service.classmanager.impl.ComponentClassManager$ManagerClassLoader.loadClass(ComponentClassManager.java:933)
j

It would seem as though the environment is missing a specific jar file or the jar file has not been added to the class path of the JVM some how.

I have tried the following to resolve this issue but with no success:

  1. Delete and re-create the instance myws01, fails to start with same error
  2. Reinstall MWS afresh and create new myws01 instance, fails to start with same errors

Appreciate any ones help with resolving this as I am at a loss as to what to try next.
Many thanks in advance for all the help.

Rajni

Create a new instance default with ./mws.sh new -Dserver.name=default … syntax, point correct db details in mws.db.xml file and then try to start mws with syntax: ./mws.sh -s default run &

Update me once done.

Thanks,

By the way, which wM version you are using ?

Thanks,

Usually that error means that you are trying to do the first startup of an MWS instance that is pointing at a database that is not empty. In other words, there is unexpected data in the database tables before MWS has done it’s bootstrap initialization.

This may happen if there is junk in the database from some previous failed (or incomplete) startup attempt.

For example, running this SQL query against your database should report a result of “105” for a clean database that hasn’t been bootstrapped yet: SELECT count() FROM TBLTHING
And running this SQL query against your database should report a result of “20” for a clean database that hasn’t been bootstrapped yet: SELECT count(
) FROM TBLXTYPE

I would suggest re-creating the database and trying again.

Improved error checking for this condition has already been applied for the next release (9.12)

MR as173d and Eric

Than you for the quick response.

The wM version is 9.9 that I am using for MWS.

As stated in the original post I have installed MWS twice and three times I have created a new instance pointing to an embedded Derby database. As I am using a Derby database this should be empty on each creation of the server instance as the database is created within the server installation directory.

Please note I am not using a external relational database in my test environment.

To create the instance I have run:

mws.sh new -Dserver.name=myws01 -Dhttp.port=8580 -Dserver.features=all

This command I understand creates an instance with the name myws01 and an associated Derby database under the instance named directory, myws01/data/db, and so should be an empty database when the instance is created.

After the instance had been created I ran “mws.sh -s myws01 init” to initialize MWS and the Derby database, used “init” as this the action I have used in the past on a first start up of MWS correct me if this should be “run” instead.

The mws.db.xml file which is created by the “new” action when examined contains details of the associated Derby database.

How do I execute the SQL statements provided against a derby database? Do I need to install a specific Client tool and if so where do I get it from.

I will try again by creating a new instance and see what happens.

Thanks

write a java service and pass your sql statement to it. The java should connect to Derby Db and return you the results. Let me know if you stuck in b/w.

Thanks,

I don’t think IS would be able to interact with the embedded DB for MWS without jumping through a lot of hoops.

What fix level is your installation? Do you have the latest MWS fixes installed?

FYI: I just tried running the two commands you specified on a system with MWS 9.9 + MWS_9.9_Fix3 and the server creation and init worked normally.

Okay have resolved the issue but feel it does not install as documented.

I installed MWS 9.9 WITHOUT the option to create a “default” instance being selected, which is optional in the Installer. As there was no “default” instance I created my own instance manually with “mws.sh new -Dserver.name=myws01 -Dhttp.port=9580 -Dserver.features=all” and when the myws01 instance was started it failed to initialize and start reporting the earlier posted error messages.

Uninstalling and reinstalling MWS and deleting and re-creating my instance still gave the same errors.

I then deleted all my instances and manually created the “default” instance and started that up which initialized the embedded Derby database and started up successfully with some minor errors nothing FATAL. I was able to access the “default” instance from a web browser proving that it was working.

I then re-created the instance, myws01, and this too initialized its embedded Derby database and started up okay with no errors and was successful in accessing it from a web browser also.

This seems to imply that the “default” instance needs to have been created once before creating other new instances of MWS which seems to me to be wrong as the importance of creating the default instance is not documented in the webMethods Installation Guide.

Hope this is useful to others who might have the same view or trying to deploy named instances other than “default”.

Thank you all for your help and suggestions.

That doesn’t make sense to me. Each server instance is independent of the others so it shouldn’t matter if a default instance is created or not.

If you have a solid set of repro steps that reproduces the problem, you should open up a support incident so the problem can be investigated and resolved.

I agree with you Eric, it should not matter if default instance has been created before or not. I am in the process of setting up a POC environment for wM9.9 and have lost a couple of days over this issue and will try and recreate the issue over the weekend on a fresh VM.

I will report back next week.

Back again, with no real success. I set up a new VM and installed MWS on it and did not create a default instance during installation. Thereafter, I attempted to create manually a default instance using mws.sh command line and it failed with the same [POP.001.0002] errors. I then tried to create another instance “mymws01” and this too failed with the same error. I then deleted all the instances and tried again and again I got the same error messages.

A least it is consistently failing which I suppose is a plus as opposed to my earlier experience.

However, I did not try uninstalling and re-installing MWS ad creating the instances as I had done in my earlier post in which I was successful.

I am not sure what the problem is may be some network delay, timeout or not enough computing resources.

I am going to close this post for now as I need to get on with proving other webMethods products, might come back to this later.

Thanks for all your help.
Rajni