remote jprofiler integration with mule - mule

How can I integrate Jprofiler UI running in my laptop connect to mule server running in a remote server. I had installed jprofiler remotely in the server box and tried to run jpenable to attach to the mule server, and it's unable to. Here is the error I'm getting.
Connecting to org.mule.module.reboot.MuleContainerBootstrap start0 [9828] ...
Please select the profiling mode:
GUI mode (attach with JProfiler GUI) [1, Enter]
Offline mode (use config file to set profiling settings) [2]
1
ERROR: Attaching is not supported: Unable to open socket file: target process not responding or HotSpot VM not loaded
com.sun.tools.attach.AttachNotSupportedException: Unable to open socket file: target process not responding or HotSpot VM not loaded
at sun.tools.attach.LinuxVirtualMachine.<init>(LinuxVirtualMachine.java:100)
at sun.tools.attach.LinuxAttachProvider.attachVirtualMachine(LinuxAttachProvider.java:63)
at com.sun.tools.attach.VirtualMachine.attach(VirtualMachine.java:195)
at com.jprofiler.frontend.attach.c.b(ejt:265)
at com.jprofiler.frontend.attach.c.a(ejt:252)
at com.jprofiler.frontend.attach.c.a(ejt:222)
at com.jprofiler.frontend.EnableApplication.a(ejt:118)
at com.jprofiler.frontend.EnableApplication.g(ejt:81)
at com.jprofiler.frontend.EnableApplication.main(ejt:238)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.exe4j.runtime.LauncherEngine.launch(Unknown Source)
at com.install4j.runtime.launcher.Launcher.main(Unknown Source)

The attach mechanism in the JVM is not very reliable, there are circumstances that can cause it to fail that are outside the control of a tool vendor.
First, check if jpenable is run as the same user as the application that you want to profile. If using the same users has no effect, you have to add the VM parameter for profiling to the startup command of your application and restart it.
You can get that that parameter in JProfiler by invoking
Session->Integration Wizards->New Remote Integration
and following the steps in the wizard.

change permissions to /usr/lib/jvm(set it 777) to probe

Related

An exception apears while deploying KIE Execution Server

I want to delpoy the Execution Server in follwing environment:
Wildfly17.0.0.Final
JVM memory, min:64m, max:1024m
Execution Server WAR package: kie-server-7.22.0.Final-ee7.war
A message shows in deployment page of Wildfly's HAL Management Console:
{"WFLYCTL0080: Failed services" => {"jboss.deployment.unit.\"kie-server-7.22.0.Final-ee7.war\".PARSE" => "WFLYSRV0153: Failed to process phase PARSE of deployment \"kie-server-7.22.0.Final-ee7.war\"
Caused by: org.jboss.msc.service.ServiceNotFoundException: Service service jboss.ejb.default-resource-adapter-name-service not found"}}
can someone help? thanks in advance!
It seems that you started WildFly with default standalone profile. However Kie server requires standalone-full profile as it uses JMS queues.
Please try to start WildFly with standalone-full profile. For linux based system you can achieve that using command:
./standalone.sh -c standalone-full.xml

Exception is thrown when tried to run a jmeter test having websocket sampler in it , on remote host

I am trying to run a jmeter test script which has a single websocket sampler.It works fine when i run it from single machine through java GUI or command line.
But , When i try to run it on remote host (by running jmeter-server on other machine) then following exception is thrown.
ERROR
- jmeter.engine.ClientJMeterEngine: Error in rconfigure() method java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.lang.ClassNotFoundException: JMeter.plugins.functional.samplers.websocket.WebSocketSampler (no security manager: RMI class loader disabled)
2016/10/06 07:03:20 INFO - jmeter.engine.ClientJMeterEngine: Interrupting RMI Reaper
Both Master/slave jmeter installations are having same version of jmeter(v3.0) and websocket plugin(v1.0.2).
Any other http distributed test runs fine when it is run in same setup.
According to the error message, it looks like the WebSocket plugin is missing on the remote slave. The main pre-requisite of distributed JMeter tests execution is having the same JMeter version with the same config, plugins, 3rd-party libraries, etc. on remove slaves as on the master.
So make sure you have identical setup on master and all the slaves, i.e. install the WebSocket Sampler to all the slaves.
JMeter restart will be required to pick the plugins up
The easiest way of installing JMeter Plugins and keeping them up-to-date is using JMeter Plugins Manager

Error generating thread dump from console in weblogic

I am trying to generate thread dump from weblogic console(Server-> -> Monitoring -> Threads -> Dump Thread Stacks.
I am getting below message: Server must be running before thread stacks can be displayed.
But, when I try to generate thread dump using kill -3 <PID>, it gets generated.
OS: Centos
Weblogic: WebLogic Server Version: 10.3.6.0
Can anyone please help me in understanding, why thread dump does not get generated from console and Why I am getting the message saying server must be running.
NOTE: Server is in running state.
As you are executing the Thread Dump command from Console, there might be an issue with AdminServer and managed server communication.
Console uses WLST to capture Thread Dumps and before generating thread dumps it will check Managed Server status. May be Admin Server unable to get current state of Managed Server hence you're seeing the error.
Recommended way to take Thread Dumps is OS command (kill -3 ) and from JDK tools, jstack for hostpot and jrcmd for JRockit. Thread Dumps taken from Console might not have lock related information and it might get truncated if thread dump is too long
I guess you was using JDK 7. It is a kind of bug in WLS 10.3.6.0 when using JDK 7. You can either downgrade the JDK to JDK 6 or patch the weblogic.

Mule 3.7CE enabling jmx

i'm trying to get JMX monitoring to work on a Mule 3.7 CE server.
I've got a flow with
<management:jmx-server >
<management:connector-server url="service:jmx:rmi:///jndi/rmi://my-server:1099/server" rebind="false" />
</management:jmx-server>
when i deploy the app it get this error
Failed to deploy artifact 'jmx_ce37', see below +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ org.mule.module.launcher.DeploymentInitException:
RegistrationException: More than one object of type class
org.mule.module.management.agent.AbstractJmxAgent registered but only
one expected. at
org.mule.module.launcher.application.DefaultMuleApplication.init(DefaultMuleApplication.java:197)
~[?:?]
I would assume that there's already some jmx process running; but i didn't enable it, and i don't know how to connect to it. There are no processes listening on the default jmx port (1096) on this machine.
Any suggestions on what to do to use jmx with Mule3.7CE ?
Mule server already provides indeed a JMX server with basic statistics around the server and the applications, please try and use a different port if the default out-of-the-box behaviuor does not work for you.

How to detach Jprofiler8 'jpenable' remote agent

Since I need to profile the application runs in remote machine where GUI is not allowed. I started remote session profiling with JProfiler8 and ran /bin/jpenable agent in remote host. After the successful analysis I need to stop that remote jpenable jprofiler8 agent. How can I do that?
To make sure previously started agent is still in running state or not, I ran the /bin/jpenable agent again. Now I don't see previously binded JVM. So i assume it already bind with previous agent.
Unfortunately, it is not possible to unload a JVMTI profiling agent. The JVM only unloads agents when it shuts down.