dev@glassfish.java.net

Re: Monitoring _at_ 3.1.1 branch

From: Ancoron Luciferis <ancoron.luciferis_at_googlemail.com>
Date: Fri, 20 May 2011 20:17:57 +0200

On 05/20/2011 06:04 AM, Sahoo wrote:
> So what happens for embedded glassfish where GlassFish is getting
> embedded in a JVM without -javagent option?

Yes, that would be very interesting for me as well. :)

>
> Sahoo
> On Friday 20 May 2011 09:11 AM, Byron Nevins wrote:
>> Try updating your installation or source -- there have been a few
>> gremlins in getting the class transformation code up and running.
>>
>> It should be fine now.
>>
>> Also after starting a server look in server.log. You should see the
>> JVM option has something like this:
>>
>> -javaagent:D:/glassfish3/glassfish/lib/monitor/flashlight-agent.jar
>>
>>

Well, apparently not. SVN info:
URL: https://svn.java.net/svn/glassfish~svn/branches/3.1.1
Repository Root: https://svn.java.net/svn/glassfish~svn
Repository UUID: 6f3ba3e3-413c-0410-a8aa-90bee3ab43b5
Revision: 46980

A 'ps -ef | grep glassfish | grep agent' yields nothing and this is the
complete command I get (non-IPS build):

/usr/lib/jvm/java-6-sun-1.6.0.24/bin/java -Dosgi.shell.telnet.maxconn=1
-Dfelix.fileinstall.disableConfigSave=false
-Djdbc.drivers=org.apache.derby.jdbc.ClientDriver
-Dfelix.fileinstall.dir=/srv/servers/glassfish/stable/glassfish/modules/autostart/
-Djavax.net.ssl.keyStore=/srv/servers/glassfish/stable/glassfish/domains/domain1/config/keystore.jks
-Dosgi.shell.telnet.port=6666
-Djavax.management.builder.initial=com.sun.enterprise.v3.admin.AppServerMBeanServerBuilder
-Djava.security.policy=/srv/servers/glassfish/stable/glassfish/domains/domain1/config/server.policy
-Djava.awt.headless=true -Dfelix.fileinstall.log.level=2
-Dfelix.fileinstall.poll=5000 -Dosgi.shell.telnet.ip=127.0.0.1
-Dcom.sun.enterprise.config.config_environment_factory_class=com.sun.enterprise.config.serverbeans.AppserverConfigEnvironmentFactory
-Djava.endorsed.dirs=/srv/servers/glassfish/stable/glassfish/modules/endorsed:/srv/servers/glassfish/stable/glassfish/lib/endorsed
-Dfelix.fileinstall.bundles.startTransient=true
-Djava.ext.dirs=/usr/lib/jvm/java-6-sun-1.6.0.24/lib/ext:/usr/lib/jvm/java-6-sun-1.6.0.24/jre/lib/ext:/srv/servers/glassfish/stable/glassfish/domains/domain1/lib/ext
-Dfelix.fileinstall.bundles.new.start=true
-Djavax.net.ssl.trustStore=/srv/servers/glassfish/stable/glassfish/domains/domain1/config/cacerts.jks
-Dorg.glassfish.additionalOSGiBundlesToStart=org.apache.felix.shell,org.apache.felix.gogo.runtime,org.apache.felix.gogo.shell,org.apache.felix.gogo.command,org.apache.felix.fileinstall,org.apache.felix.shell.remote
-Dcom.sun.enterprise.security.httpsOutboundKeyAlias=s1as
-Djava.security.auth.login.config=/srv/servers/glassfish/stable/glassfish/domains/domain1/config/login.conf
-DANTLR_USE_DIRECT_CLASS_LOADING=true -Dgosh.args=--nointeractive
-XX:MaxPermSize=192m -client -XX:+UnlockDiagnosticVMOptions -Xmx512m
-XX:NewRatio=2 -jar
/srv/servers/glassfish/stable/glassfish/modules/glassfish.jar --domain
domain1 --domaindir /srv/servers/glassfish/stable/glassfish/domains/domain1


...then I tried to add it manually:

Error occurred during initialization of VM
agent library failed to init: instrument
Error opening zip file or JAR manifest missing :
${com.sun.aas.installRoot}/lib/monitor/flashlight-agent.jar

...so it doesn't support property expansion. However, with the absolute
path added it does work and I get an error-free startup.


Cheers,

        Ancoron

>>
>>
>> On 11:59 AM, Ancoron Luciferis wrote:
>>> Hi devs,
>>>
>>> I just wanted to know why the flashlight-agent.jar is no longer an OSGi
>>> bundle, nor a HK2 archive, as opposed to 3.1 release?
>>>
>>> I see that it moved from .../modules/ to .../lib/monitor/ but that path
>>> does not seem to be referenced anywhere.
>>>
>>> How's that supposed to work?
>>>
>>> I ask because I'm getting this:
>>>
>>> WARNING: Error while getting Instrumentation object from ProbeAgentmain
>>> java.lang.ClassNotFoundException:
>>> org.glassfish.flashlight.agent.ProbeAgentMain
>>> at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
>>> at java.security.AccessController.doPrivileged(Native Method)
>>>
>>>
>>> Two days ago it used to work and as I'm currently implementing a new
>>> monitoring module it really blocks me here.
>>>
>>>
>>> Thanx for any pointer,
>>>
>>> Ancoron
>>>
>>>
>>> P.S.: Full exception stacktrace (repeating for each probe provider
>>> registration):
>>>
>>> WARNING: Error while getting Instrumentation object from ProbeAgentmain
>>> java.lang.ClassNotFoundException:
>>> org.glassfish.flashlight.agent.ProbeAgentMain
>>> at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
>>> at java.security.AccessController.doPrivileged(Native Method)
>>> at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
>>> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
>>> at
>>> org.glassfish.flashlight.transformer.ProbeProviderClassFileTransformer.getInstrumentation(ProbeProviderClassFileTransformer.java:106)
>>> at
>>> org.glassfish.flashlight.transformer.ProbeProviderClassFileTransformer.transform(ProbeProviderClassFileTransformer.java:58)
>>> at
>>> org.glassfish.flashlight.impl.client.FlashlightProbeClientMediator.transformProbes(FlashlightProbeClientMediator.java:256)
>>> at
>>> org.glassfish.flashlight.impl.client.FlashlightProbeClientMediator.registerListener(FlashlightProbeClientMediator.java:169)
>>> at
>>> org.glassfish.admin.monitor.StatsProviderManagerDelegateImpl.registerStatsProviderToFlashlight(StatsProviderManagerDelegateImpl.java:643)
>>> at
>>> org.glassfish.admin.monitor.StatsProviderManagerDelegateImpl.enableStatsProvider(StatsProviderManagerDelegateImpl.java:394)
>>> at
>>> org.glassfish.admin.monitor.StatsProviderManagerDelegateImpl.tryToRegister(StatsProviderManagerDelegateImpl.java:191)
>>> at
>>> org.glassfish.admin.monitor.StatsProviderManagerDelegateImpl.register(StatsProviderManagerDelegateImpl.java:157)
>>> at
>>> org.glassfish.external.probe.provider.StatsProviderManager.registerStatsProvider(StatsProviderManager.java:91)
>>> at
>>> org.glassfish.external.probe.provider.StatsProviderManager.register(StatsProviderManager.java:66)
>>> at
>>> org.glassfish.external.probe.provider.StatsProviderManager.register(StatsProviderManager.java:57)
>>> at
>>> com.sun.enterprise.v3.services.impl.monitor.GrizzlyMonitoring.registerThreadPoolStatsProvider(GrizzlyMonitoring.java:148)
>>> at
>>> com.sun.enterprise.v3.services.impl.GrizzlyProxy.registerMonitoringStatsProviders(GrizzlyProxy.java:362)
>>> at
>>> com.sun.enterprise.v3.services.impl.GrizzlyProxy.configureGrizzly(GrizzlyProxy.java:130)
>>> at
>>> com.sun.enterprise.v3.services.impl.GrizzlyProxy.<init>(GrizzlyProxy.java:121)
>>> at
>>> com.sun.enterprise.v3.services.impl.GrizzlyService.createNetworkProxy(GrizzlyService.java:443)
>>> at
>>> com.sun.enterprise.v3.services.impl.GrizzlyService.postConstruct(GrizzlyService.java:350)
>>> at
>>> com.sun.hk2.component.AbstractCreatorImpl.inject(AbstractCreatorImpl.java:131)
>>> at
>>> com.sun.hk2.component.ConstructorCreator.initialize(ConstructorCreator.java:91)
>>> at
>>> com.sun.hk2.component.AbstractCreatorImpl.get(AbstractCreatorImpl.java:82)
>>> at
>>> com.sun.hk2.component.SingletonInhabitant.get(SingletonInhabitant.java:67)
>>> at
>>> com.sun.hk2.component.EventPublishingInhabitant.get(EventPublishingInhabitant.java:139)
>>> at
>>> com.sun.hk2.component.AbstractInhabitantImpl.get(AbstractInhabitantImpl.java:76)
>>> at
>>> com.sun.enterprise.v3.server.AppServerStartup.run(AppServerStartup.java:243)
>>> at
>>> com.sun.enterprise.v3.server.AppServerStartup.start(AppServerStartup.java:135)
>>> at
>>> com.sun.enterprise.glassfish.bootstrap.GlassFishImpl.start(GlassFishImpl.java:79)
>>> at
>>> com.sun.enterprise.glassfish.bootstrap.GlassFishMain$Launcher.launch(GlassFishMain.java:117)
>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>> at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>> at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>> at java.lang.reflect.Method.invoke(Method.java:597)
>>> at
>>> com.sun.enterprise.glassfish.bootstrap.GlassFishMain.main(GlassFishMain.java:97)
>>> at com.sun.enterprise.glassfish.bootstrap.ASMain.main(ASMain.java:55)
>>>
>>>
>>
>> --
>> Oracle <http://www.oracle.com>
>> Byron Nevins | Principal MTS
>> Phone: +1 6503958992 <tel:+1%206503958992>
>>
>> Green Oracle <http://www.oracle.com/commitment> Oracle is committed to
>> developing practices and products that help protect the environment
>