You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by enqac 20171204 <en...@gmail.com> on 2017/12/04 06:28:08 UTC

Apache Camel Intermittently cannot lookup bean in Wildfiy

I would like to seek help on our problem encountered=>
registry.lookupByName(getName()) intermittently/randomly return null.   The
application/wildfly/camel are running normal before and after the error, a
consecutive call to lookupByName(getName()) within a minute will return the
object without problem


Our call to lookup bean using org.apache.camel.spi.Registry =>
protected Object lookupBean() {
     val o = registry.lookupByName(getName());
    if (o == null) {
      throw new RuntimeException("Failed to lookup " + getName() + " in the
registry!  Please check whether the EJB server is active.");
    }
    try {
      return o;
    }
    catch (Exception e) {
      throw new RuntimeException(e);
    }

  }

Stack trace when the error is spotted =>
[2017-11-28 17:15:09.808 +0800] INFO  [HRA_UploadCV_PM:176] Start time:
28-11-2017 17:15:09
[2017-11-28 17:15:58.824 +0800] INFO  [HRA_UploadCV_PM:176] Uploading CV
[2017-11-28 17:16:09.168 +0800] ERROR [o.a.c.p.DefaultErrorHandler:215]
Failed delivery for (MessageId: ID-edept-50169-1511808434900-0-730 on
ExchangeId: ID-edept-50169-1511808434900-0-732). Exhausted after delivery
attempt: 1 caught: java.lang.RuntimeException: Failed to lookup
hra2/hra2-ejb//HRACVTmpSrvBean!gov.edept.hra2.ejb.service.IHRACVTmpSrvBean
in the registry!  Please check whether the EJB server is active.

Message History
---------------------------------------------------------------------------------------------------------------------------------------
RouteId              ProcessorId          Processor
                                               Elapsed (ms)
[HRA_UploadCV_PM   ] [HRA_UploadCV_PM   ]
[quartz2://ifd/Cronjob-UploadCV2?cron=0+15+17+*+*+%3F
   ] [     67609]
[HRA_UploadCV_PM   ] [to44              ]
[bean:mdcBean?method=putMdcFileName('batch-log/hra/UploadCV/UploadCV')
    ] [      1000]
[HRA_UploadCV_PM   ] [log46             ] [log
                                              ] [      7390]
[HRA_UploadCV_PM   ] [log47             ] [log
                                              ] [     48985]
[HRA_UploadCV_PM   ] [log48             ] [log
                                              ] [        15]
[HRA_UploadCV_PM   ] [log49             ] [log
                                              ] [        16]
[HRA_UploadCV_PM   ] [to45              ]
[ejb:hra2/hra2-ejb//HRACVTmpSrvBean!gov.edept.hra2.ejb.service.IHRACVTmpSrvBean]
[     10093]

Exchange
---------------------------------------------------------------------------------------------------------------------------------------
Exchange[
    Id                  ID-edept-50169-1511808434900-0-732
    ExchangePattern     InOnly
    Headers             {breadcrumbId=ID-edept-50169-1511808434900-0-730,
calendar=null, CamelRedelivered=false, CamelRedeliveryCounter=0,
fireTime=Tue Nov 28 17:15:00 CST 2017, jobDetail=JobDetail
'ifd.Cronjob-UploadCV2':  jobClass:
'org.apache.camel.component.quartz2.CamelJob concurrentExectionDisallowed:
false persistJobDataAfterExecution: false isDurable: false
requestsRecovers: false,
jobInstance=org.apache.camel.component.quartz2.CamelJob@1ecd9d38,
jobRunTime=-1, mergedJobDataMap=org.quartz.JobDataMap@566f09e1,
nextFireTime=Wed Nov 29 17:15:00 CST 2017, previousFireTime=null,
refireCount=0, result=null, scheduledFireTime=Tue Nov 28 17:15:00 CST 2017,
scheduler=org.quartz.impl.StdScheduler@6eccd2bb, trigger=Trigger
'ifd.Cronjob-UploadCV2':  triggerClass:
'org.quartz.impl.triggers.CronTriggerImpl calendar: 'null'
misfireInstruction: 1 nextFireTime: Wed Nov 29 17:15:00 CST 2017,
triggerGroup=ifd, triggerName=Cronjob-UploadCV2}
    BodyType            null
    Body                [Body is null]
]

Stacktrace
---------------------------------------------------------------------------------------------------------------------------------------
java.lang.RuntimeException: Failed to lookup
hra2/hra2-ejb//HRACVTmpSrvBean!gov.edept.hra2.ejb.service.IHRACVTmpSrvBean
in the registry!  Please check whether the EJB server is active.
    at gov.edept.ifd.Ejb2RegistryBean.lookupBean(Unknown Source)
~[ifd.jar:na]
    at gov.edept.ifd.Ejb2RegistryBean.getBean(Unknown Source) ~[ifd.jar:na]
    at
org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:77)
~[camel-core-2.12.x.jar:2.12.2]
    at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:105)
[camel-core-2.12.x.jar:2.12.2]
    at
org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:67)
~[camel-core-2.12.x.jar:2.12.2]
    at
org.apache.camel.impl.ProcessorEndpoint.onExchange(ProcessorEndpoint.java:103)
~[camel-core-2.12.x.jar:2.12.2]
    at
org.apache.camel.impl.ProcessorEndpoint$1.process(ProcessorEndpoint.java:71)
~[camel-core-2.12.x.jar:2.12.2]
    at
org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)
~[camel-core-2.12.x.jar:2.12.2]
    at
org.apache.camel.processor.SendProcessor.process(SendProcessor.java:110)
~[camel-core-2.12.x.jar:2.12.2]
    at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:72)
~[camel-core-2.12.x.jar:2.12.2]
    at
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:398)
~[camel-core-2.12.x.jar:2.12.2]
    at
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
[camel-core-2.12.x.jar:2.12.2]
    at org.apache.camel.processor.Pipeline.process(Pipeline.java:118)
[camel-core-2.12.x.jar:2.12.2]
    at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
[camel-core-2.12.x.jar:2.12.2]
    at
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
[camel-core-2.12.x.jar:2.12.2]
    at
org.apache.camel.processor.loadbalancer.QueueLoadBalancer.process(QueueLoadBalancer.java:43)
[camel-core-2.12.x.jar:2.12.2]
    at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:105)
[camel-core-2.12.x.jar:2.12.2]
    at
org.apache.camel.processor.loadbalancer.LoadBalancerSupport.process(LoadBalancerSupport.java:87)
[camel-core-2.12.x.jar:2.12.2]
    at
org.apache.camel.component.quartz2.CamelJob.execute(CamelJob.java:52)
[camel-quartz2-2.12.x.jar:2.12.2]
    at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
[quartz-2.2.x.jar:na]
    at
org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)
[quartz-2.2.x.jar:na]
[2017-11-28 17:16:09.308 +0800] ERROR [o.a.c.c.q.CamelJob:59] Error
processing exchange. Exchange[Message: [Body is null]]. Caused by:
[org.quartz.JobExecutionException - java.lang.RuntimeException: Failed to
lookup
hra2/hra2-ejb//HRACVTmpSrvBean!gov.edept.hra2.ejb.service.IHRACVTmpSrvBean
in the registry!  Please check whether the EJB server is active.]

The software versions that we are using =>
Apache Camel 2.12.2
WildFly Full 9.0.2.Final
java version "1.8.0_141"
Java HotSpot(TM) 64-Bit Server VM (build 25.141-b15, mixed mode)


Configuration XML of the concerned Camel route =>
        <route id="HRA_UploadCV_PM" startupOrder="15310"
autoStartup="false">
            <from uri="quartz2://ifd/Cronjob-UploadCV2?cron=0+15+17+*+*+?"
/>
            <!--<from uri="timer://foo?repeatCount=1"/>-->
            <to
uri="bean:mdcBean?method=putMdcFileName('{{UploadCV.outbox.directoryAndFileName}}')"
/>
            <log message=":" />
            <log message="Start time: ${date:now:dd-MM-yyyy}
${date:now:HH:mm:ss}" />
            <log message=":" />
            <log message="Uploading CV" />
            <to
uri="ejb:hra2/hra2-ejb//HRACVTmpSrvBean!gov.edept.hra2.ejb.service.IHRACVTmpSrvBean?method=uploadCV()"
/>
            <log message="End time: ${date:now:dd-MM-yyyy}
${date:now:HH:mm:ss}\r\n" />
            <to uri="bean:mdcBean?method=removeMdcFileName" />
        </route>

        <route id="_HRA_UploadCV_PMRunOnce" startupOrder="15315"
autoStartup="false" routePolicyRef="runOnceRoutePolicy">
            <from
uri="bean:mdcBean?method=putMdcFileName('{{UploadCV.outbox.directoryAndFileName}}')"
/>
            <log message=":" />
            <log message="Start time: ${date:now:dd-MM-yyyy}
${date:now:HH:mm:ss}" />
            <log message=":" />
            <log message="Uploading CV" />
            <to
uri="ejb:hra2/hra2-ejb//HRACVTmpSrvBean!gov.edept.hra2.ejb.service.IHRACVTmpSrvBean?method=uploadCV()"
/>
            <log message="End time: ${date:now:dd-MM-yyyy}
${date:now:HH:mm:ss}\r\n" />
            <to uri="bean:mdcBean?method=removeMdcFileName" />
        </route>