geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Jencks <david_jen...@yahoo.com>
Subject Re: Difference between server restart and application restart
Date Thu, 25 Jun 2009 17:35:34 GMT
Hi Chandler,

The mystery is not why this fails when the server is restarted but  
rather why it works when deployed from the console :-)

GBeans are not javaee components and so they don't have java:comp jndi  
contexts available to them.  If you do something with a gbean such as  
starting it from a javaee app such as the console, the gbean will see  
the java:comp context of the calling app, not the java:comp context of  
the (possibly javaee) app in which the gbean is deployed.

Do you have control over what oracle is trying to look up in jndi?

Ideally Oracle should supply a j2ca resource adapter for their  
messaging stuff.  Do you know what they actually do supply?  jms?  Do  
you need to use mdbs or just "plain" jms connections?  I think I  
recall comments in the activemq j2ca adapter that it was pretty much  
jms implementation neutral, you might be able to modify it to wrap the  
oracle jms implementation without much work.

thanks
david jencks

On Jun 25, 2009, at 2:44 AM, chander_bawa wrote:

>
> Hi,
> I have deployed an ear application on geronimo server and am facing a
> strange issue. After starting the server, i deploy the ear and it  
> works
> perfectly. Its  a messaging application with  oracle queues  
> integrated with
> JMS broker using Gbeans and listener classes.
>
> When the server is restarted, the application gets deployed but it  
> is not
> able to establish connection with the oracle queue which it could do  
> so when
> the application was deployed for the first time.
>
> The error that i get is -
> java.lang.NullPointerException: You have accessed the java:comp jndi  
> context
> on a thread that has not initialized it
>
> Strangely, when i restart the application from admin console,  
> everything
> works!
>
> I want to know what is the difference in container's behaviour when  
> server
> is restarted and when an application is restarted. It will be great  
> if you
> find a flaw in code written or in case you anticipate one, please do  
> let me
> know.
> Expecting a prompt response...
>
>
> Following is the piece of code which fails when the server is  
> started again
> -
>
> i_recvrQueueConn =
> oracle 
> .jms.AQjmsQueueConnectionFactory.createQueueConnection( i_dbConnection
> );
> i_recvrQueueConn.start();
> i_recvrQueueSession = i_recvrQueueConn.createSession(false,
> Session.AUTO_ACKNOWLEDGE);
>
> In the createSession statement, i get the following error -
>
> java.lang.NullPointerException: You have accessed the java:comp jndi  
> context
> on a thread that has not initialized it
> 	at
> org 
> .apache 
> .geronimo 
> .gjndi.JavaCompContextGBean.getContext(JavaCompContextGBean.java:34)
> 	at
> org 
> .apache 
> .xbean.naming.context.ContextFlyweight.lookup(ContextFlyweight.java: 
> 47)
> 	at
> org 
> .apache 
> .xbean 
> .naming 
> .context 
> .ContextFederation.getFederatedBinding(ContextFederation.java:69)
> 	at
> org 
> .apache 
> .xbean 
> .naming 
> .context 
> .AbstractFederatedContext.getBinding(AbstractFederatedContext.java:63)
> 	at
> org 
> .apache 
> .xbean.naming.context.AbstractContext.lookup(AbstractContext.java:139)
> 	at
> org 
> .apache 
> .xbean.naming.context.AbstractContext.lookup(AbstractContext.java:625)
> 	at
> org 
> .apache 
> .xbean.naming.context.AbstractContext.lookup(AbstractContext.java:162)
> 	at
> org 
> .apache 
> .xbean.naming.context.AbstractContext.lookup(AbstractContext.java:611)
> 	at javax.naming.InitialContext.lookup(InitialContext.java:392)
> 	at oracle.jms.EmulatedXAHandler.<init>(EmulatedXAHandler.java:69)
> 	at oracle.jms.AQjmsSession.<init>(AQjmsSession.java:378)
> 	at oracle.jms.AQjmsConnection.createSession(AQjmsConnection.java: 
> 1132)
> 	at ltc.vise.hl7.gbean.OracleAQListener.<init>(OracleAQListener.java: 
> 101)
> 	at ltc.vise.hl7.gbean.OracleAQProxy.doStart(OracleAQProxy.java:103)
> 	at
> org 
> .apache 
> .geronimo 
> .gbean.runtime.GBeanInstance.createInstance(GBeanInstance.java:998)
> 	at
> org 
> .apache 
> .geronimo 
> .gbean 
> .runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java: 
> 268)
> 	at
> org 
> .apache 
> .geronimo 
> .gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:102)
> 	at
> org 
> .apache 
> .geronimo 
> .gbean 
> .runtime.GBeanInstanceState.startRecursive(GBeanInstanceState.java: 
> 124)
> 	at
> org 
> .apache 
> .geronimo 
> .gbean.runtime.GBeanInstance.startRecursive(GBeanInstance.java:555)
> 	at
> org 
> .apache 
> .geronimo 
> .kernel.basic.BasicKernel.startRecursiveGBean(BasicKernel.java:379)
> 	at
> org 
> .apache 
> .geronimo 
> .kernel 
> .config 
> .ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java: 
> 456)
> 	at
> org 
> .apache 
> .geronimo 
> .kernel 
> .config 
> .KernelConfigurationManager.start(KernelConfigurationManager.java:188)
> 	at
> org 
> .apache 
> .geronimo 
> .kernel 
> .config 
> .SimpleConfigurationManager 
> .startConfiguration(SimpleConfigurationManager.java:563)
> 	at sun.reflect.GeneratedMethodAccessor21.invoke(Unknown Source)
> 	at
> sun 
> .reflect 
> .DelegatingMethodAccessorImpl 
> .invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:597)
> 	at
> org 
> .apache 
> .geronimo 
> .gbean 
> .runtime.ReflectionMethodInvoker.invoke(ReflectionMethodInvoker.java: 
> 34)
> 	at
> org 
> .apache 
> .geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:124)
> 	at
> org 
> .apache 
> .geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:832)
> 	at  
> org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java: 
> 57)
> 	at
> org 
> .apache 
> .geronimo 
> .kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:35)
> 	at
> org 
> .apache 
> .geronimo 
> .kernel 
> .basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java: 
> 96)
> 	at
> org.apache.geronimo.gbean.GBeanLifecycle$$EnhancerByCGLIB$ 
> $36339902.startConfiguration(<generated>)
> 	at
> org 
> .apache 
> .geronimo.system.main.EmbeddedDaemon.doStartup(EmbeddedDaemon.java: 
> 162)
> 	at
> org 
> .apache 
> .geronimo.system.main.EmbeddedDaemon.execute(EmbeddedDaemon.java:79)
> 	at
> org 
> .apache 
> .geronimo 
> .kernel 
> .util 
> .MainConfigurationBootstrapper 
> .main(MainConfigurationBootstrapper.java:45)
> 	at org.apache.geronimo.cli.AbstractCLI.executeMain(AbstractCLI.java: 
> 67)
> 	at org.apache.geronimo.cli.daemon.DaemonCLI.main(DaemonCLI.java:30)
>
>
>
> Thanks,
> Chander
> -- 
> View this message in context: http://www.nabble.com/Difference-between-server-restart-and-application-restart-tp24200158s134p24200158.html
> Sent from the Apache Geronimo - Users mailing list archive at  
> Nabble.com.
>

Mime
View raw message