[JBoss JIRA] Created: (JBESB-1960) Caching registry interceptor impacts must be documented and configuration values updated
by Jiri Pechanec (JIRA)
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
16 years, 4 months
[JBoss JIRA] Created: (JBESB-1951) Unable to use JCA Gateway with custom jcaBridge
by Peter Mischke (JIRA)
Unable to use JCA Gateway with custom jcaBridge
------------------------------------------------
Key: JBESB-1951
URL: https://jira.jboss.org/jira/browse/JBESB-1951
Project: JBoss ESB
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Adapters
Affects Versions: 4.3
Environment: Windows XP, jdk 1.5.0_15, JBoss AS 4.2.2
Reporter: Peter Mischke
I'm using the following JCA gateway configuration:
<jca-gateway name="SOAP-Gateway"
endpointClass="com.example.SOAPGateway"
transacted="false"
jcaBridge="com.example.SomeBridge"
adapter="soapadapter-1.0-SNAPSHOT.rar">
<activation-config>
<property name="someName" value="someValue" />
</activation-config>
</jca-gateway>
The important parameter in this example is: jcaBridge="com.example.SomeBridge"
During start-up of the ESB module, I get the following exception:
Caused by: org.jboss.soa.esb.listeners.lifecycle.ManagedLifecycleException: Unexpected exception while instantiating managed instance
at org.jboss.soa.esb.listeners.LifecycleUtil.getManagedInstances(LifecycleUtil.java:158)
at org.jboss.soa.esb.listeners.LifecycleUtil.getGateways(LifecycleUtil.java:103)
at org.jboss.soa.esb.listeners.config.Configuration.create(Configuration.java:113)
... 46 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
at org.jboss.soa.esb.listeners.LifecycleUtil.getManagedInstances(LifecycleUtil.java:154)
... 48 more
Caused by: org.jboss.soa.esb.ConfigurationException: Unable to load jcaBridge: com.example.SomeBridge
at org.jboss.soa.esb.listeners.jca.BaseJcaInflow.<init>(BaseJcaInflow.java:110)
at org.jboss.soa.esb.listeners.jca.JcaInflowGateway.<init>(JcaInflowGateway.java:44)
... 53 more
Caused by: java.lang.NullPointerException
at EDU.oswego.cs.dl.util.concurrent.ConcurrentReaderHashMap.hash(ConcurrentReaderHashMap.java:298)
at EDU.oswego.cs.dl.util.concurrent.ConcurrentReaderHashMap.get(ConcurrentReaderHashMap.java:410)
at org.jboss.mx.loading.UnifiedLoaderRepository3.getCachedClass(UnifiedLoaderRepository3.java:222)
at org.jboss.mx.loading.RepositoryClassLoader.loadClass(RepositoryClassLoader.java:403)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at org.jboss.soa.esb.listeners.jca.BaseJcaInflow.<init>(BaseJcaInflow.java:106)
... 54 more
Looking in the source code (latest version) of org.jboss.soa.esb.listeners.jca.BaseJcaInflow, I spot the following lines:
String brdg = config.getAttribute(JcaConstants.ATTRIBUTE_JCA_BRIDGE);
if (brdg != null)
{
try
{
bridge = (ActivationBridge) classLoader.loadClass(mt).newInstance();
}
catch (Exception e)
{
throw new ConfigurationException("Unable to load jcaBridge: " + brdg, e);
}
}
else
{
bridge = new JBoss42ActivationBridge();
}
I suppose, the JCA gateway tries to instantiate the wrong class.
--
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
16 years, 4 months