I’m not sure what to make of Chronon

Chronon only gives me "No browsable code recorded" for a client application to a J2EE server (JBoss AS7)

When I try to record my program via the blue record button the whole thing starts up, when I'm ready I press the blue stop button. That works, no errors. When I try to open the recording all I get is a popup saying "No browsable code recorded". Why is this happening?

The program is a pretty bog-standard jar, with a Netty socket server, JMS and EJB connector to a larger J2EE application.

I am currently at my evaluation period, but so far had very little luck in getting any useful output out of the Chronon.

Edit:
I noticed that Chronon can indeed record something if the J2EE application is not running locally. When it is, Chronon fails. The problem is that both are configured to connect via localhost so not running one of them is not an option.

I also tried running the J2EE app from another Eclipse. That didn't change anything. I also tried using an isolated JRE for the process I am trying to analyze, same result.

Edit2:
This is not about having both processes running on the same machine. In fact Chronon stops recording when the JMS connection is established. If I break before that is done I have a short recording. If I wait long enough, I just get the popup as in the title of this posting. I am changing this report to Bug.

For me this issue is a showstopper, as it renders Chronon unusable.

Edit3:
Ditto for the Chronon Recording Server. "No browsable code recorded".

I had such high hopes for Chronon, I do hope that either I am doing something wrong or that this can be fixed.
2 people have
this problem
+1
Reply
  • is it possible to get some code which we can use to reproduce the issue on our side?
    We would like to fix this for you asap.
  • (some HTML allowed)
    How does this make you feel? Add Image
    I'm

    e.g. indifferent, undecided, unconcerned kidding, amused, unsure, silly sad, anxious, confused, frustrated happy, confident, thankful, excited

  • Thank you for responding.

    I was a bit hasty in writing that the CRS didn't work either. In fact I overlooked the fact that our ANT script force compiled the binary into Java 7. That prevented Chronon from recording on the server. However when I hand-compiled the binary into Java 6 I got the following problem. It only occurs under medium or higher load (tens of function calls per second).

    This unfortunately still prevents me from using Chronon, as the functionality of the application is badly affected by the Exceptions being thrown.

    I will see this evening if I can extract some of the application code to demo this problem to you. I will also try on a different, more powerful server machine to see if I get the same symptoms.


    java.lang.reflect.UndeclaredThrowableException
    at $Proxy0.handleEvent(Unknown Source)
    at org.asb.talker15.messaging.events.EventsProcessor.processEvent(EventsProcessor.java:43)
    at org.asb.talker15.messaging.MessagingHandler.messageReceived(MessagingHandler.java:114)
    at org.jboss.netty.channel.SimpleChannelHandler.handleUpstream(SimpleChannelHandler.java:95)
    at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:565)
    at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:793)
    at org.asb.talker15.xmlparsing.RMSUnmarshaller.run(RMSUnmarshaller.java:43)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:722)
    Caused by: java.lang.ClassNotFoundException: java.com.chronon3.sb.recorder.runtime.inject.ChrononSysObject
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:395)
    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
    at org.jboss.marshalling.AbstractClassResolver.loadClass(AbstractClassResolver.java:135)
    at org.jboss.marshalling.AbstractClassResolver.resolveClass(AbstractClassResolver.java:116)
    at org.jboss.marshalling.river.RiverUnmarshaller.doReadClassDescriptor(RiverUnmarshaller.java:870)
    at org.jboss.marshalling.river.RiverUnmarshaller.doReadClassDescriptor(RiverUnmarshaller.java:905)
    at org.jboss.marshalling.river.RiverUnmarshaller.doReadNewObject(RiverUnmarshaller.java:1204)
    at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:272)
    at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:209)
    at org.jboss.marshalling.AbstractObjectInput.readObject(AbstractObjectInput.java:37)
    at org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler.processMessage(MethodInvocationMessageHandler.java:156)
    at org.jboss.as.ejb3.remote.protocol.versionone.VersionOneProtocolChannelReceiver.handleMessage(VersionOneProtocolChannelReceiver.java:170)
    at org.jboss.remoting3.remote.RemoteConnectionChannel$5.run(RemoteConnectionChannel.java:437)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:722)
    at ...asynchronous invocation...(Unknown Source)
    at org.jboss.ejb.client.remoting.InvocationExceptionResponseHandler$MethodInvocationExceptionResultProducer.getResult(InvocationExceptionResponseHandler.java:99)
    at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:270)
    at org.jboss.ejb.client.TransactionInterceptor.handleInvocationResult(TransactionInterceptor.java:47)
    at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:272)
    at org.jboss.ejb.client.ReceiverInterceptor.handleInvocationResult(ReceiverInterceptor.java:132)
    at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:260)
    at org.jboss.ejb.client.EJBClientInvocationContext.awaitResponse(EJBClientInvocationContext.java:399)
    at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:140)
    at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:121)
    at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:104)
    ... 10 more

  • (some HTML allowed)
    How does this make you feel? Add Image
    I'm

    e.g. indifferent, undecided, unconcerned kidding, amused, unsure, silly sad, anxious, confused, frustrated happy, confident, thankful, excited

  • are you running on jvm 6?
    if you run on jvm 7, chronon cannot instrument some of the system classes that it needs
  • (some HTML allowed)
    How does this make you feel? Add Image
    I'm

    e.g. sad, anxious, confused, frustrated happy, confident, thankful, excited kidding, amused, unsure, silly indifferent, undecided, unconcerned

  • (some HTML allowed)
    How does this make you feel? Add Image
    I'm

    e.g. indifferent, undecided, unconcerned kidding, amused, unsure, silly sad, anxious, confused, frustrated happy, confident, thankful, excited

  • Excellent, thank you. I will give Chronon 3.5 a try, and report back within a few days.
  • (some HTML allowed)
    How does this make you feel? Add Image
    I'm

    e.g. indifferent, undecided, unconcerned kidding, amused, unsure, silly sad, anxious, confused, frustrated happy, confident, thankful, excited