cancel
Showing results for 
Search instead for 
Did you mean: 

km global service

Former Member
0 Kudos

Hi,

I created a km global service.

When i deploy the constructor it's executed but the startUpImpl not.

When i deploy i have also an error:

#1.5#0002A5E7E2DF00440000003A000015C8000402806F3E6706#1128650552291#com.sapportals.wcm.repository.runtime.CmSystem#sap.com/irj#com.sapportals.wcm.repository.runtime.CmSystem#Guest#116####6be82c5036d611daa2e40002a5e7e2df#SAPEngine_Application_Thread[impl:3]_25##0#0#Info#1#/Applications/KMC/RF#Plain###CM system is shutting down...

#

#1.5#0002A5E7E2DF00440000003C000015C8000402806F3E6A74#1128650552291#com.sapportals.wcm.repository.runtime.CmSystem#sap.com/irj#com.sapportals.wcm.repository.runtime.CmSystem#Guest#116####6be82c5036d611daa2e40002a5e7e2df#SAPEngine_Application_Thread[impl:3]_25##0#0#Info#1#/Applications/KMC/RF#Plain###CM system is shutting down... - shutdown of CRT#

#1.5#0002A5E7E2DF00440000003E000015C8000402806F429F14#1128650552572#com.sapportals.wcm.WcmException#sap.com/irj#com.sapportals.wcm.WcmException.WcmException(90)#Guest#116####6be82c5036d611daa2e40002a5e7e2df#SAPEngine_Application_Thread[impl:3]_25##0#0#Error##Plain###Failed to access the component instance: already shut down: class=com.sapportals.wcm.service.urlgenerator.URLGenerator, uri=crt://runtime/services/URLGeneratorService com.sapportals.wcm.crt.component.ComponentException: Failed to access the component instance: already shut down: class=com.sapportals.wcm.service.urlgenerator.URLGenerator, uri=crt://runtime/services/URLGeneratorService

at com.sapportals.wcm.crt.CrtComponentManager.lookup(CrtComponentManager.java:325)

at com.sapportals.wcm.crt.CrtComponentManager.lookupChildComponent(CrtComponentManager.java:403)

at com.sapportals.wcm.crt.CrtContainerManager.lookupComponent(CrtContainerManager.java:44)

at com.sapportals.wcm.repository.runtime.CmAdapter.getService(CmAdapter.java:605)

at com.sapportals.wcm.repository.manager.um.UMRepositoryManager.shutDownImpl(UMRepositoryManager.java:103)

at com.sapportals.wcm.repository.manager.AbstractRepositoryManager.stop(AbstractRepositoryManager.java:605)

at com.sapportals.wcm.crt.CrtThreadSafeComponentHandler.handleShutDown(CrtThreadSafeComponentHandler.java:172)

at com.sapportals.wcm.crt.CrtComponentManager.shutDown(CrtComponentManager.java:303)

Any help will be well appreciated.

Thanks and regards,

Florin

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Florian,

when you deploy your component, KM will restart in order to include your component.

The mentioned exception won't prevent KM from successfully shutting down and thus won't prevent KM from successfully restarting.

Have a look in the application.log file. There you might find some additional informations regarding the restart of KM.

Regards,

Dieter

Former Member
0 Kudos

Yes,i found an error:

java.lang.ClassCircularityError: com/sapportals/wcm/crt/component/ComponentEvent

at com.sapportals.wcm.repository.VirtualRootRepositoryManager.notify(VirtualRootRepositoryManager.java:62)

at com.sapportals.wcm.crt.CrtNotifier.sendComponentAdded(CrtNotifier.java:96)

at com.sapportals.wcm.crt.CrtComponentManager.addComponent(CrtComponentManager.java:618)

at com.sapportals.wcm.crt.CrtComponentManager.addChildToContainer(CrtComponentManager.java:452)

at com.sapportals.wcm.crt.CrtContainerManager.addChild(CrtContainerManager.java:65)

at com.sapportals.wcm.service.taskqueue.JDBCTaskQueueFactory.createTaskQueue(JDBCTaskQueueFactory.java:105)

at com.sapportals.wcm.service.taskqueue.TaskQueueService.createTaskQueue(TaskQueueService.java:443)

at com.sapportals.wcm.service.taskqueue.TaskQueueService.getTaskQueue(TaskQueueService.java:425)

at com.sapportals.wcm.service.taskqueue.TaskQueueOperator.getTaskQueue(TaskQueueOperator.java:117)

at com.sapportals.wcm.service.taskqueue.TaskQueueReader.get(TaskQueueReader.java:68)

at com.sapportals.wcm.service.taskqueue.TaskQueueReader.get(TaskQueueReader.java:58)

at com.sapportals.wcm.service.indexmanagement.TaskQueueReaderTask.run(TaskQueueReaderTask.java:45)

at com.sapportals.wcm.service.scheduler.SchedulerEntry.run(SchedulerEntry.java:130)

at com.sapportals.wcm.service.scheduler.crt.PoolWorker.run(PoolWorker.java:107)

at java.lang.Thread.run(Thread.java:534)

Thank you,

Florin

Former Member
0 Kudos

The exception from your post reveals, that you have been hit by the famous ClassCircularityError. Originally this is a bug in Sun's VM (see http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4699981 for details), although SAP has been working on some workarounds lately.

Anyway, the mentioned exception may hinder the TaskQueueService from working properly, but this won't stop KM from successfully restarting.

Are there any log entries like "CM System is starting..." and "... successfully started" ?

Regards,

Dieter

Former Member
0 Kudos

Hi,

I receive first error when i deploy my application.

k it's not working to deploy without restarting....

After i restart the portal i receive the second error.

My problem it's why my service doesn't register any respositories and doesn't receive any event.

Kind regards,

Florin

Former Member
0 Kudos

Again, the first error does not hinder KM from successfully restarting.

I did not understand the rest of your post:

"k it's not working to deploy without restarting...."?

In my previous post I asked for log entries like "CM System is starting..." and "... successfully started". Are there any in your application.log file?

Regards,

Dieter

Former Member
0 Kudos

I know that when you deploy a global service you need to restart the irj or the portal.

My first error when the CM didn't want to start it was when i deployed and i didn't restart the portal.

But after i restarted the portal my global service doesn't want to work.

There is no other errors in log files.

My problem it's not why the CM it's not starting after deploying.

Do you have experience with creating custom global service for km??

Thank you for you interest,

Florin

Former Member
0 Kudos

Although hot-deployment is not officially supported for KM components, doing so may work in most cases.

If your global service does not work even after restarting the portal, then it has some "other" problems.

All KM components register their classloader at the CRT classloader (the basic KM classloader) during startup.

The code necessary for this registration is generated by the KM plugins from NetWeaver DevStudio.

If your component is registering successfully, you will find and entry like "...register new classloader with id com.sap.tc.pcd.kmsearchadapter..." in your application.log file.

If this entry is missing, then either your registration code was modified after the generation of it through the km plugins, or you changed the startup behaviour of your par file from "auto" to something else.

Regards,

Dieter

detlev_beutner
Active Contributor
0 Kudos

Hi Florin,

- On what version are you on? (Probably 6.40, from the exception...)

- If you have some "real logic" within your implementation, I would suggest to strip it down to an absolute minimum to reproduce the non-functionality (proven by (non-appearing) log entries, for example)

- Also put corresponding log outputs to into the RFWrapperService method.

- If you've done all this still without getting an idea what's wrong, you can send me the project by mail; I cannot promise how fast I will have the chance to get a look on it, but maybe it'll be faster than to poke around the different possible problem areas.

General hints:

- Non-restarting the portal after restarting KM through KM hot deployment definitely slows down the portal and will cause OutOfMemoryExceptions after a number of hot deployments. If the rest "works", it might be OK to restart the EP after 3 to 5 hot deployments to save time (on an "average" 2GB machine).

- Non-restarting leads to different additional possible problems, for example with showing up XMLForms (leads to possible ClassCastExceptions when using a cache), at least up to SPS13 (SAP: "fix will not be delivered until at least SPS14").

Hope it helps

Detlev

Former Member
0 Kudos

Hi Detlev,

Thank you for yur response.

I'm working on sp13.

I made a Repository Service and for this service startup it's executing.

I registered a GET event for a repository but when i receive the event i don't get the resource that has genertaed this GET event.

I will send you the first project with global service where the startup function it's not executing.

Kind regards,

Florin

Answers (0)