Caching registry interceptor impacts must be documented and configuration values updated
----------------------------------------------------------------------------------------
Key: JBESB-1960
URL:
https://jira.jboss.org/jira/browse/JBESB-1960
Project: JBoss ESB
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Configuration, Documentation
Affects Versions: 4.4
Reporter: Jiri Pechanec
Priority: Critical
Fix For: 4.4 CP1
If the CachingRegistryInterceptor is used in out-of-process binary - client or another ESB
it can cause serious headache.
The problem is that if the service is undeployed or EPRs changed then there are still old
values in the cache. So for example it reports it cannot connect to the queue that is not
already there etc.
Another problem is that default value for load balancer cache timeout is 60 seconds and
CachingRegistryIntreceptor is 600 secods. So if there is a service undeployed in the
cluster the load balancer will repeatedly receive stale EPRs.
See example of records in log
2008-08-27 09:39:42,785 DEBUG [main][org.jboss.internal.soa.esb.couriers.JmsCourier] Error
from JMS system.
javax.jms.JMSException: There is no administratively defined queue with
name:queue/banker_deploy_process_esb
at
org.jboss.jms.server.endpoint.ServerSessionEndpoint.createQueue(ServerSessionEndpoint.java:291)
at
org.jboss.jms.server.endpoint.advised.SessionAdvised.org$jboss$jms$server$endpoint$advised$SessionAdvised$createQueue$aop(SessionAdvised.java:105)
at
org.jboss.jms.server.endpoint.advised.SessionAdvised$createQueue_6431069199924553036.invokeNext(SessionAdvised$createQueue_6431069199924553036.java)
at
org.jboss.jms.server.container.ServerLogInterceptor.invoke(ServerLogInterceptor.java:105)
at
org.jboss.jms.server.endpoint.advised.SessionAdvised$createQueue_6431069199924553036.invokeNext(SessionAdvised$createQueue_6431069199924553036.java)
at org.jboss.jms.server.endpoint.advised.SessionAdvised.createQueue(SessionAdvised.java)
at
org.jboss.jms.wireformat.SessionCreateQueueRequest.serverInvoke(SessionCreateQueueRequest.java:74)
at
org.jboss.jms.server.remoting.JMSServerInvocationHandler.invoke(JMSServerInvocationHandler.java:143)
at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:866)
at
org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:608)
at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:420)
at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:173)
at org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:163)
at org.jboss.remoting.Client.invoke(Client.java:1634)
at org.jboss.remoting.Client.invoke(Client.java:548)
at org.jboss.remoting.Client.invoke(Client.java:536)
at org.jboss.jms.client.delegate.DelegateSupport.doInvoke(DelegateSupport.java:189)
at org.jboss.jms.client.delegate.DelegateSupport.doInvoke(DelegateSupport.java:160)
at
org.jboss.jms.client.delegate.ClientSessionDelegate.org$jboss$jms$client$delegate$ClientSessionDelegate$createQueue$aop(ClientSessionDelegate.java:297)
at
org.jboss.jms.client.delegate.ClientSessionDelegate$createQueue_6431069199924553036.invokeNext(ClientSessionDelegate$createQueue_6431069199924553036.java)
at
org.jboss.jms.client.container.FailoverValveInterceptor.invoke(FailoverValveInterceptor.java:92)
at org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:105)
at
org.jboss.jms.client.delegate.ClientSessionDelegate$createQueue_6431069199924553036.invokeNext(ClientSessionDelegate$createQueue_6431069199924553036.java)
at org.jboss.jms.client.container.ClosedInterceptor.invoke(ClosedInterceptor.java:170)
at org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:105)
at
org.jboss.jms.client.delegate.ClientSessionDelegate$createQueue_6431069199924553036.invokeNext(ClientSessionDelegate$createQueue_6431069199924553036.java)
at
org.jboss.jms.client.delegate.ClientSessionDelegate.createQueue(ClientSessionDelegate.java)
at org.jboss.jms.client.JBossSession.createQueue(JBossSession.java:250)
at
org.jboss.internal.soa.esb.rosetta.pooling.JmsSession.createQueue(JmsSession.java:186)
at
org.jboss.internal.soa.esb.couriers.JmsCourier.createMessageProducer(JmsCourier.java:334)
at org.jboss.internal.soa.esb.couriers.JmsCourier.deliver(JmsCourier.java:188)
at
org.jboss.internal.soa.esb.couriers.TwoWayCourierImpl.deliver(TwoWayCourierImpl.java:189)
at
org.jboss.soa.esb.client.ServiceInvoker$EPRInvoker.attemptDelivery(ServiceInvoker.java:530)
at
org.jboss.soa.esb.client.ServiceInvoker$EPRInvoker.access$200(ServiceInvoker.java:452)
at org.jboss.soa.esb.client.ServiceInvoker.post(ServiceInvoker.java:318)
at org.jboss.soa.esb.client.ServiceInvoker.deliverSync(ServiceInvoker.java:198)
at org.jboss.soa.esb.qa.framework.SendESBMessage.sendSync(SendESBMessage.java:103)
at
org.jboss.soa.esb.qa.framework.ESBTestServices.deployJBPMProcess(ESBTestServices.java:675)
at
org.jboss.soa.esb.samples.quickstart.jbpmrulesaction.BPMRulesActionHandlerTest.setupClass(BPMRulesActionHandlerTest.java:31)
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:585)
at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:604)
at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:394)
at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:142)
at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:79)
at
org.testng.internal.TestMethodWorker.invokeBeforeClassMethods(TestMethodWorker.java:165)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:103)
at org.testng.TestRunner.runWorkers(TestRunner.java:678)
at org.testng.TestRunner.privateRun(TestRunner.java:624)
at org.testng.TestRunner.run(TestRunner.java:495)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:300)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:295)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:275)
at org.testng.SuiteRunner.run(SuiteRunner.java:190)
at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:792)
at org.testng.TestNG.runSuitesLocally(TestNG.java:765)
at org.testng.TestNG.run(TestNG.java:699)
at org.testng.TestNG.privateMain(TestNG.java:824)
at org.testng.TestNG.main(TestNG.java:802)
2008-08-27 09:39:42,787 WARN [main][org.jboss.soa.esb.client.ServiceInvoker] Possible
configuration error while using Courier for EPR [JMSEpr [ PortReference <
<wsa:Address jms://127.0.0.1:1099/queue/banker_deploy_process_esb/>,
<wsa:ReferenceProperties jbossesb:java.naming.factory.initial :
org.jnp.interfaces.NamingContextFactory/>, <wsa:ReferenceProperties
jbossesb:java.naming.provider.url : 127.0.0.1:1099/>, <wsa:ReferenceProperties
jbossesb:java.naming.factory.url.pkgs : org.jnp.interfaces/>,
<wsa:ReferenceProperties jbossesb:destination-type : queue/>,
<wsa:ReferenceProperties jbossesb:specification-version : 1.1/>,
<wsa:ReferenceProperties jbossesb:connection-factory : ConnectionFactory/>,
<wsa:ReferenceProperties jbossesb:persistent : true/>, <wsa:ReferenceProperties
jbossesb:acknowledge-mode : AUTO_ACKNOWLEDGE/>, <wsa:ReferenceProperties
jbossesb:transacted : false/>, <wsa:ReferenceProperties jbossesb:type :
urn:jboss/esb/epr/type/jms/> > ]] and Service [test:jbpm-deploy] and Message
[header: [ To: JMSEpr [ PortReference < <wsa:Address
jms://127.0.0.1:1099/queue/banker_deploy_process_esb/>, <wsa:ReferenceProperties
jbossesb:java.naming.factory.initial : org.jnp.interfaces.NamingContextFactory/>,
<wsa:ReferenceProperties jbossesb:java.naming.provider.url : 127.0.0.1:1099/>,
<wsa:ReferenceProperties jbossesb:java.naming.factory.url.pkgs :
org.jnp.interfaces/>, <wsa:ReferenceProperties jbossesb:destination-type :
queue/>, <wsa:ReferenceProperties jbossesb:specification-version : 1.1/>,
<wsa:ReferenceProperties jbossesb:connection-factory : ConnectionFactory/>,
<wsa:ReferenceProperties jbossesb:persistent : true/>, <wsa:ReferenceProperties
jbossesb:acknowledge-mode : AUTO_ACKNOWLEDGE/>, <wsa:ReferenceProperties
jbossesb:transacted : false/>, <wsa:ReferenceProperties jbossesb:type :
urn:jboss/esb/epr/type/jms/> > ] ReplyTo: JMSEpr [ PortReference <
<wsa:Address jms://localhost/queue/banker_deploy_process_esb_reply/>,
<wsa:ReferenceProperties jbossesb:java.naming.provider.url : 127.0.0.1:1099/>,
<wsa:ReferenceProperties jbossesb:java.naming.factory.initial :
org.jnp.interfaces.NamingContextFactory/>, <wsa:ReferenceProperties
jbossesb:java.naming.factory.url.pkgs : org.jnp.interfaces/>,
<wsa:ReferenceProperties jbossesb:destination-type : queue/>,
<wsa:ReferenceProperties jbossesb:specification-version : 1.1/>,
<wsa:ReferenceProperties jbossesb:connection-factory : ConnectionFactory/>,
<wsa:ReferenceProperties jbossesb:message-selector :
jbossESBresponseUUID='5b468d68-faa0-47dd-86a5-aef5deaec823'/>,
<wsa:ReferenceProperties jbossesb:persistent : true/>, <wsa:ReferenceProperties
jbossesb:acknowledge-mode : AUTO_ACKNOWLEDGE/>, <wsa:ReferenceProperties
jbossesb:transacted : false/> > ] MessageID: 88e0c518-fadc-4546-b16f-599872258cee
]]. javax.jms.JMSException: There is no administratively defined queue with
name:queue/banker_deploy_process_esb
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira