1 2 Previous Next 23 Replies Latest reply on Oct 29, 2008 12:05 AM by denix Go to original post
      • 15. Re: Why JBoss ESB doesn't delete services from registry when
        tfennelly

        Hi Denys.

        Sorry for not getting back faster. What you sent me was incomplete. I was missing some source and dependencies, so I wasn't able to run it up.

        Anyway, sounds like you have some things to try out there from Daniel and Kevin's posts.

        • 16. Re: Why JBoss ESB doesn't delete services from registry when
          denix

           

          "beve" wrote:
          You might have seen this already but this link might be useful: http://forum.springframework.org/showthread.php?t=30801
          The suggestion here is to use use classloading isolation. You can do this by isolating the .esb archive as described here : http://www.jboss.org/community/docs/DOC-10339

          Regards,

          /Daniel


          Daniel,
          I'm traing this but I have exception.

          Here is my deployment.xml

          <?xml version="1.0" encoding="UTF-8"?>
          <jbossesb-deployment>
           <depends>jboss.esb:deployment=spring.esb</depends>
           <loader-repository>
           org.jboss.soa.esb:loader=SwiftingService
           <loader-repository-config>
           java2ParentDelegaton=false
           </loader-repository-config>
           </loader-repository>
          </jbossesb-deployment>



          And here exception


          java.lang.RuntimeException: org.jboss.soa.esb.listeners.lifecycle.ManagedLifecyc
          leException: Unexpected exception while instantiating managed instance
          at org.jboss.soa.esb.listeners.config.Configuration.create(Configuration
          .java:132)
          at org.jboss.soa.esb.listeners.config.JBoss4ESBDeployment.startService(J
          Boss4ESBDeployment.java:82)
          at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanS
          upport.java:289)
          at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMB
          eanSupport.java:245)
          at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
          sorImpl.java:25)
          at java.lang.reflect.Method.invoke(Method.java:597)
          at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatch
          er.java:155)
          at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
          at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
          at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.
          java:264)
          at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
          at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceControl
          ler.java:978)
          at $Proxy0.start(Unknown Source)
          at org.jboss.system.ServiceController.start(ServiceController.java:417)
          at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
          sorImpl.java:25)
          at java.lang.reflect.Method.invoke(Method.java:597)
          at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatch
          er.java:155)
          at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
          at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
          at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.
          java:264)
          at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
          at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
          at $Proxy44.start(Unknown Source)
          at org.jboss.soa.esb.listeners.config.JBoss4ESBDeployer.start(JBoss4ESBD
          eployer.java:432)
          at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1025)
          at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819)
          at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782)
          at sun.reflect.GeneratedMethodAccessor58.invoke(Unknown Source)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
          sorImpl.java:25)
          at java.lang.reflect.Method.invoke(Method.java:597)
          at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatch
          er.java:155)
          at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
          at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractIntercept
          or.java:133)
          at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
          at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelM
          BeanOperationInterceptor.java:142)
          at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
          at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.
          java:264)
          at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
          at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
          at $Proxy9.deploy(Unknown Source)
          at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymen
          tScanner.java:421)
          at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentS
          canner.java:634)
          at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.
          doScan(AbstractDeploymentScanner.java:263)
          at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.
          loop(AbstractDeploymentScanner.java:274)
          at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.
          run(AbstractDeploymentScanner.java:225)
          Caused by: org.jboss.soa.esb.listeners.lifecycle.ManagedLifecycleException: Unex
          pected exception while instantiating managed instance
          at org.jboss.soa.esb.listeners.LifecycleUtil.getManagedInstances(Lifecyc
          leUtil.java:158)
          at org.jboss.soa.esb.listeners.LifecycleUtil.getListeners(LifecycleUtil.
          java:75)
          at org.jboss.soa.esb.listeners.config.Configuration.create(Configuration
          .java:107)
          ... 46 more
          Caused by: java.lang.reflect.InvocationTargetException
          at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

          at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstruct
          orAccessorImpl.java:39)
          at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingC
          onstructorAccessorImpl.java:27)
          at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
          at org.jboss.soa.esb.listeners.LifecycleUtil.getManagedInstances(Lifecyc
          leUtil.java:154)
          ... 48 more
          Caused by: org.jboss.soa.esb.ConfigurationException: Unexpected exception during
          lifecycle initialisation
          at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.initiali
          se(ActionProcessingPipeline.java:264)
          at org.jboss.soa.esb.listeners.ScheduleListener.(ScheduleListener.
          java:95)
          ... 53 more
          Caused by: org.jboss.soa.esb.actions.ActionLifecycleException: BeansException ca
          ught in loadSpringToc :
          at org.jboss.soa.esb.actions.AbstractSpringAction.loadSpringIoc(Abstract
          SpringAction.java:219)
          at org.jboss.soa.esb.actions.AbstractSpringAction.initializeSpring(Abstr
          actSpringAction.java:165)
          at org.jboss.soa.esb.actions.AbstractSpringAction.initialise(AbstractSpr
          ingAction.java:109)
          at org.jboss.soa.esb.listeners.message.OverriddenActionLifecycleProcesso
          r.initialise(OverriddenActionLifecycleProcessor.java:123)
          at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.initiali
          se(ActionProcessingPipeline.java:259)
          ... 54 more
          Caused by: org.springframework.beans.factory.BeanDefinitionStoreException: Unexp
          ected exception parsing XML document from class path resource [applicationContex
          t-dao.xml]; nested exception is java.lang.NullPointerException
          at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadB
          eanDefinitions(XmlBeanDefinitionReader.java:375)
          at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBea
          nDefinitions(XmlBeanDefinitionReader.java:303)
          at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBea
          nDefinitions(XmlBeanDefinitionReader.java:280)
          at org.springframework.beans.factory.support.AbstractBeanDefinitionReade
          r.loadBeanDefinitions(AbstractBeanDefinitionReader.java:131)
          at org.springframework.beans.factory.support.AbstractBeanDefinitionReade
          r.loadBeanDefinitions(AbstractBeanDefinitionReader.java:147)
          at org.springframework.beans.factory.support.AbstractBeanDefinitionReade
          r.loadBeanDefinitions(AbstractBeanDefinitionReader.java:173)
          at org.springframework.context.support.AbstractXmlApplicationContext.loa
          dBeanDefinitions(AbstractXmlApplicationContext.java:112)
          at org.springframework.context.support.AbstractXmlApplicationContext.loa
          dBeanDefinitions(AbstractXmlApplicationContext.java:79)
          at org.springframework.context.support.AbstractRefreshableApplicationCon
          text.refreshBeanFactory(AbstractRefreshableApplicationContext.java:101)
          at org.springframework.context.support.AbstractApplicationContext.obtain
          FreshBeanFactory(AbstractApplicationContext.java:389)
          at org.springframework.context.support.AbstractApplicationContext.refres
          h(AbstractApplicationContext.java:324)
          at org.springframework.context.support.ClassPathXmlApplicationContext.<i
          nit>(ClassPathXmlApplicationContext.java:91)
          at org.springframework.context.support.ClassPathXmlApplicationContext.<i
          nit>(ClassPathXmlApplicationContext.java:75)
          at org.springframework.context.support.ClassPathXmlApplicationContext.<i
          nit>(ClassPathXmlApplicationContext.java:65)
          at org.jboss.soa.esb.actions.AbstractSpringAction.loadSpringIoc(Abstract
          SpringAction.java:212)
          ... 58 more
          Caused by: java.lang.NullPointerException
          at org.jboss.mx.loading.RepositoryClassLoader.findClass(RepositoryClassL
          oader.java:630)
          at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
          at org.jboss.mx.loading.RepositoryClassLoader.loadClassImpl(RepositoryCl
          assLoader.java:474)
          at org.jboss.mx.loading.RepositoryClassLoader.loadClass(RepositoryClassL
          oader.java:415)
          at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
          at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
          at sun.reflect.GeneratedMethodAccessor108.invoke(Unknown Source)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
          sorImpl.java:25)
          at java.lang.reflect.Method.invoke(Method.java:597)
          at org.apache.commons.logging.impl.Log4jProxy.isEnabledFor(Log4jProxy.ja
          va:318)
          at org.apache.commons.logging.impl.Log4jProxy.isTraceEnabled(Log4jProxy.
          java:228)
          at org.apache.commons.logging.impl.Log4JLogger.isTraceEnabled(Log4JLogge
          r.java:273)
          at org.springframework.beans.factory.xml.PluggableSchemaResolver.resolve
          Entity(PluggableSchemaResolver.java:112)
          at org.springframework.beans.factory.xml.DelegatingEntityResolver.resolv
          eEntity(DelegatingEntityResolver.java:86)
          at org.springframework.beans.factory.xml.ResourceEntityResolver.resolveE
          ntity(ResourceEntityResolver.java:73)
          at org.apache.xerces.util.EntityResolverWrapper.resolveEntity(Unknown So
          urce)
          at org.apache.xerces.impl.XMLEntityManager.resolveEntity(Unknown Source)

          at org.apache.xerces.impl.xs.XMLSchemaLoader.resolveDocument(Unknown Sou
          rce)
          at org.apache.xerces.impl.xs.XMLSchemaValidator.findSchemaGrammar(Unknow
          n Source)
          at org.apache.xerces.impl.xs.XMLSchemaValidator.handleStartElement(Unkno
          wn Source)
          at org.apache.xerces.impl.xs.XMLSchemaValidator.startElement(Unknown Sou
          rce)
          at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unkn
          own Source)
          at org.apache.xerces.impl.XMLNSDocumentScannerImpl$NSContentDispatcher.s
          canRootElementHook(Unknown Source)
          at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContent
          Dispatcher.dispatch(Unknown Source)
          at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Un
          known Source)
          at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
          at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
          at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
          at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
          at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
          at org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocum
          ent(DefaultDocumentLoader.java:76)
          at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadB
          eanDefinitions(XmlBeanDefinitionReader.java:351)
          ... 72 more
          19:06:25,881 ERROR [URLDeploymentScanner] Incomplete Deployment listing:

          --- MBeans waiting for other MBeans ---
          ObjectName: jboss.esb:deployment=service-swifting-1.0.esb
          State: FAILED
          Reason: java.lang.RuntimeException: org.jboss.soa.esb.listeners.lifecycle.Mana
          gedLifecycleException: Unexpected exception while instantiating managed instance

          I Depend On:
          jboss.esb:deployment=jbossesb.esb
          jboss.esb:deployment=spring.esb

          --- MBEANS THAT ARE THE ROOT CAUSE OF THE PROBLEM ---
          ObjectName: jboss.esb:deployment=service-swifting-1.0.esb
          State: FAILED
          Reason: java.lang.RuntimeException: org.jboss.soa.esb.listeners.lifecycle.Mana
          gedLifecycleException: Unexpected exception while instantiating managed instance

          I Depend On:
          jboss.esb:deployment=jbossesb.esb
          jboss.esb:deployment=spring.esb





          • 17. Re: Why JBoss ESB doesn't delete services from registry when
            kconner

            The isolation is unlikely to help as the Spring classes are not covered by the isolated classloader. The leak will still occur.

            We need to take a look at the way in which we are integrating with spring and make sure that all resources are tidied up correctly on undeploy.

            • 18. Re: Why JBoss ESB doesn't delete services from registry when
              beve

              Ok, the scoping looks fine. I'd really need to try this as I cannot reproduce the error.
              Could you modify that you sent Tom so that I can run this and try to find out what is happening? Tom mentioned that he could not get it to run in a previous post that is way I'm asking for this.

              Thanks,

              /Daniel

              • 19. Re: Why JBoss ESB doesn't delete services from registry when
                denix

                okey, I will prepare small project which docs which will show all bugs and then send it all to you

                • 20. Re: Why JBoss ESB doesn't delete services from registry when
                  denix

                  Because of lack of time I decided to write all our project characteristics:
                  Spring version - 2.5.5
                  Hibernate version - 3.2.4.sp1

                  deployment.xml

                  <?xml version="1.0" encoding="UTF-8"?>
                  <jbossesb-deployment>
                   <depends>jboss.esb:deployment=spring.esb</depends>
                  </jbossesb-deployment>
                  


                  jboss-esb.xml

                  <?xml version = "1.0" encoding = "UTF-8"?>



                  <schedule-provider name="scheduler">
                  <simple-schedule scheduleid="xServiceScheduler"
                  frequency="180" />
                  </schedule-provider>





                  <scheduled-listener
                  name="xprocess_scheduled_listener"
                  scheduleidref="xServiceScheduler"
                  event-processor="dse.x.esb.MsgComposer" />














                  XActionProcessor.java
                  
                  
                  package ds.x.esb;
                  
                  import java.util.List;
                  import java.util.Map;
                  
                  import org.apache.log4j.Logger;
                  import org.jboss.soa.esb.actions.AbstractSpringAction;
                  import org.jboss.soa.esb.actions.ActionLifecycleException;
                  import org.jboss.soa.esb.helpers.ConfigTree;
                  import org.jboss.soa.esb.message.Message;
                  import org.springframework.beans.BeansException;
                  
                  import ds.x.Netting;
                  import ds.x.Util;
                  import ds.persistence.entity.CashFlow;
                  
                  /**
                   * ESB netting service.
                   */
                  public class XActionProcessor extends AbstractSpringAction {
                  
                   private static final Logger logger = Logger
                   .getLogger(NettingActionProcessor.class);
                   private OrdersDAO ordersDAO;
                  
                   public XActionProcessor(ConfigTree _config) {
                   super(_config);
                   }
                  
                   /**
                   * Invoked by ESB runtime
                   */
                   @Override
                   public void initialise() throws ActionLifecycleException {
                   super.initialise();
                  
                   try {
                   ordersDAO = (OrdersDAO getBeanFactory().getBean("ordersDAO");
                   } catch (BeansException bee) {
                   logger.error(bee);
                   throw new ActionLifecycleException(bee);
                   }
                   }
                  
                   public Message xProcess(Message msg) throws Exception {
                   ordersDAO.getAll(); //after hot re-deploying it will not return all orders
                   List<Order> orders = ordersDAO.getOrdersByStatus("Completed"); //if getOrdersByStatus method uses HQL after hot re-deploying it will throw an exception that couldn't find mapping for class Order (we map using annotations)
                  
                   return msg;
                   }
                  
                  }
                  
                  
                  



                  also see my comments in method xProcess for more error-prone behaviour.


                  All other bugs you may reproduce with this code. applicationContext-dao.xml and all Spring beans are packed in separate jar which included to ESB archive.

                  • 21. Re: Why JBoss ESB doesn't delete services from registry when
                    beve

                    Hi,

                    I've created a quickstart that is supposed to simulate your application. It uses spring and hibernate and the AbstractSpringAction mimics the code you posted.

                    But I'm not able to reproduce this issue. If you like I can send the quickstart to you and perhaps you can see if there is something that different that I've missed?

                    If you send me an email I'll reply and send you the quickstart.

                    Regards,

                    /Daniel

                    • 22. Re: Why JBoss ESB doesn't delete services from registry when
                      beve

                      Hi Denys,

                      Thanks for the update/new example that you sent!

                      I've looked into this and this is just an update on what I've got so far.
                      The exception that you posted (not the original one):

                      Caused by: java.lang.NullPointerException
                      at org.jboss.mx.loading.RepositoryClassLoader.findClass(RepositoryClassLoader.java:630)
                      at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
                      at org.jboss.mx.loading.RepositoryClassLoader.loadClassImpl(RepositoryClassLoader.java:474)
                      at org.jboss.mx.loading.RepositoryClassLoader.loadClass(RepositoryClassLoader.java:415)
                      at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
                      at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
                      at org.springframework.core.NestedRuntimeException.getMessage(NestedRuntimeException.java:67)
                      at java.lang.Throwable.getLocalizedMessage(Throwable.java:267)
                      at java.lang.Throwable.toString(Throwable.java:344)
                      at org.springframework.beans.factory.BeanCreationException.toString(BeanCreationException.java:150)
                      at org.apache.log4j.spi.VectorWriter.println(ThrowableInformation.java:97)
                      at java.lang.Throwable.printStackTrace(Throwable.java:510)
                      at org.springframework.beans.factory.BeanCreationException.printStackTrace(BeanCreationException.java:176)
                      at org.apache.log4j.spi.ThrowableInformation.getThrowableStrRep(ThrowableInformation.java:59)
                      at org.apache.log4j.spi.LoggingEvent.getThrowableStrRep(LoggingEvent.java:342)
                      at org.apache.log4j.WriterAppender.subAppend(WriterAppender.java:304)


                      This was caused by the the spring jar being included in your .esb archive. This jar should only reside in the spring.esb archive.

                      I'll look into the other issue(s).

                      Regards,

                      /Daniel


                      • 23. Re: Why JBoss ESB doesn't delete services from registry when
                        denix

                        Thanks to Daniel currently I cannot reproduce all hot deployment issues. Also services successfully unregister from registry when overwriting.

                        In my case I removed hibernate & spring jars from my .esb file, i.e. if you use maven just use provide

                        and copied removed jars to my servers /lib directory.

                        These are the jars have been added in my case:
                        persistence-api-1.0.jar
                        hibernate-annotations-3.2.1.ga.jar
                        hibernate-3.2.4.sp1.jar
                        ehcache-1.6.0-beta1.jar

                        And removed old one:
                        hibernate3.jar
                        hibernate-annotations.jar

                        Also I updated spring.esb with my own spring.jar version.


                        It's works!

                        1 2 Previous Next