Skip to Main Content

Endeca Experience Management

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Can Endeca compute count of sub-categories for a given category/dimension?

138910Dec 4 2012
Posting this question to see if someone may know the answer. I know within the Dgraph config, one can set the parameter to have total count of products for a given category/dimension, is it possible to have Endeca determine the total number of child categories/dimensions for a given parent category/dimension? Currently we are looking to improve the navigation to show not only top level, but also 2nd level and 3rd level categories in our navigation menu for the user. I do not see anything in the Dgraph parameters that would lend itself to achieve this output.

Thanks,
Kevin

Comments

What kind of application are you running? I'm thinking possibly the issue is MBean server related somehow.

Do you get the same problem if you just run something really simple, like HelloWorld with a for(;;) loop.

(Or start JDK/bin/jdb with the same jvm flags, just prepend them all with -J)

1044925

My application is a daemon that accepts TCP Connections and processing data.

When i created a simple Main class that loops and sleeps on every iteration, it worked.

Any idea what could be wrong with MBean server ?

Is it possible to run it normally, ie. not in daemon mode, and see if that makes any difference?

1044925

I mean i am not doing anything special to run it in Daemon mode. My app runs infinitely loops on a blocking call ( accept() ).

1044925

I also get problem when doing HeapDump. It gives error

Problems when doing Heap Dump for JOverflow analysis

Problems when doing Heap Dump for JOverflow analysis

And when i try to use DTrace from within my JavaMissionControl. I get this error

com.jrockit.mc.dtrace.recorder.DTraceRecorderException: Remote machine not setup correctly for running DTrace.

  at com.jrockit.mc.dtrace.recorder.Factory.createRemoteDTraceRecorder(Factory.java:70)

  at com.jrockit.mc.dtrace.ui.DTraceStartJob.createRemoteRecorder(DTraceStartJob.java:112)

  at com.jrockit.mc.dtrace.ui.DTraceStartJob.startRemote(DTraceStartJob.java:79)

  at com.jrockit.mc.dtrace.ui.DTraceStartJob.run(DTraceStartJob.java:60)

  at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

Caused by: java.lang.RuntimeException: Could not invoke operation SetupState on DTraceMBean

  at com.jrockit.mc.dtrace.recorder.internal.remote.MBeanToolkit.rethrowBadInvoke(MBeanToolkit.java:85)

  at com.jrockit.mc.dtrace.recorder.internal.remote.MBeanToolkit.invokeOperation(MBeanToolkit.java:62)

  at com.jrockit.mc.dtrace.recorder.internal.remote.RemoteRecorder.getSetupState(RemoteRecorder.java:95)

  at com.jrockit.mc.dtrace.recorder.Factory.createRemoteDTraceRecorder(Factory.java:63)

  ... 4 more

Caused by: javax.management.InstanceNotFoundException: com.oracle.management:type=DTrace

  at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getMBean(DefaultMBeanServerInterceptor.java:1095)

  at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getAttribute(DefaultMBeanServerInterceptor.java:643)

  at com.sun.jmx.mbeanserver.JmxMBeanServer.getAttribute(JmxMBeanServer.java:678)

  at com.sun.jmx.remote.security.MBeanServerAccessController.getAttribute(MBeanServerAccessController.java:320)

  at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1464)

  at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:97)

  at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1328)

  at java.security.AccessController.doPrivileged(Native Method)

  at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1427)

  at javax.management.remote.rmi.RMIConnectionImpl.getAttribute(RMIConnectionImpl.java:657)

  at sun.reflect.GeneratedMethodAccessor29.invoke(Unknown Source)

  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

  at java.lang.reflect.Method.invoke(Method.java:606)

  at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322)

  at sun.rmi.transport.Transport$1.run(Transport.java:177)

  at sun.rmi.transport.Transport$1.run(Transport.java:174)

  at java.security.AccessController.doPrivileged(Native Method)

  at sun.rmi.transport.Transport.serviceCall(Transport.java:173)

  at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:556)

  at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:811)

  at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:670)

  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

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

  at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:275)

  at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:252)

  at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:161)

  at com.sun.jmx.remote.internal.PRef.invoke(Unknown Source)

  at javax.management.remote.rmi.RMIConnectionImpl_Stub.getAttribute(Unknown Source)

  at javax.management.remote.rmi.RMIConnector$RemoteMBeanServerConnection.getAttribute(RMIConnector.java:902)

  at com.jrockit.mc.rjmx.subscription.internal.AttributeValueToolkit.getAttribute(AttributeValueToolkit.java:51)

  at com.jrockit.mc.rjmx.internal.MCMBeanServerConnection.getAttribute(MCMBeanServerConnection.java:153)

  at com.jrockit.mc.dtrace.recorder.internal.remote.MBeanToolkit.invokeOperation(MBeanToolkit.java:53)

  ... 6 more

1044925

So i experimented with different things and i realized that if i TURN OFF jmx authentication then Flight Recorder works.

Thanks for your help.

I was just about to suggest that it might be an issue with authentication. Does it work if you give readWrite permissions (if you had it set to readOnly before)?

1044925

Permission was readWrite and it didnt work

Hirt-Oracle
Answer

Hi there!

You need to ensure that the user you want to access the flight recorder has permission to create the relevant MBeans. You have probably defined the roles in the jmxremote.access file. Try adding:

<your-role-name-goes-here> readwrite \
  create com.sun.management.*,com.oracle.jrockit.* \
  unregister

Kind regards,

Marcus

Marked as Answer by 1044925 · Sep 27 2020

Ah, so that's how you do it. Must be many people having the same problem. We should add it to the FAQ.

Hirt-Oracle

Yep. I've been thinking about writing up a blog on how to safely navigate JMX configuration hell, as there are quite a few more thinks that can go wrong. It will have to wait a bit though. Too busy.

1 - 11
Locked Post
New comments cannot be posted to this locked post.

Post Details

Locked on Jan 1 2013
Added on Dec 4 2012
0 comments
66 views