[jboss-jira] [JBoss JIRA] Updated: (JBAS-5949) Queue-ConsumerBean always starts TopicSession (Oracle Patch 10g)
Adrian Brock (JIRA)
jira-events at lists.jboss.org
Thu Sep 11 07:56:38 EDT 2008
[ https://jira.jboss.org/jira/browse/JBAS-5949?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Adrian Brock updated JBAS-5949:
-------------------------------
Workaround Description:
Use the jms inbound resource adapter
http://wiki.jboss.org/auth/wiki/ConfigJMSMessageListener
or (absent Oracle providing an official inbound rar)
one of the other alternatives, e.g. this java.net project (I've not tried it myself)
https://oracleaq.dev.java.net/userguide.html
Workaround: [Workaround Exists]
> Queue-ConsumerBean always starts TopicSession (Oracle Patch 10g)
> ----------------------------------------------------------------
>
> Key: JBAS-5949
> URL: https://jira.jboss.org/jira/browse/JBAS-5949
> Project: JBoss Application Server
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: JMS (JBossMQ)
> Affects Versions: JBossAS-4.0.3 SP1
> Reporter: Andy Cortvriend
>
> Hi,
> I made this bug as duplicate as the JBAS-1119, because it still exists in JBossAS-4.0.3 SP1.
> I debugged my application and even with the fix of JBAS-1119, the StdServerSessionPool still creates a TopicSession.
> The reason for the creation of the TopicSession is that not only the AQJmsConnection implements both the QueueConnection and the TopicConnection interface, but also the AQJmsDestination implements both the Queue and Topic interface. So when the oracle connection is used, always a topic session will be created
> <code>
> if (destination instanceof Topic && con instanceof XATopicConnection)
> {
> xaSes = ((XATopicConnection)con).createXATopicSession();
> ses = ((XATopicSession)xaSes).getTopicSession();
> }
> else if (destination instanceof Queue && con instanceof XAQueueConnection)
> {
> xaSes = ((XAQueueConnection)con).createXAQueueSession();
> ses = ((XAQueueSession)xaSes).getQueueSession();
> }
> else if (destination instanceof Topic && con instanceof TopicConnection) // ALWAYS THIS WILL BE TRUE, EVEN WHEN MDB IS DEFINED AS QUEUE
> {
> ses = ((TopicConnection)con).createTopicSession(transacted, ack);
> log.warn("Using a non-XA TopicConnection. " +
> "It will not be able to participate in a Global UOW");
> }
> else if (destination instanceof Queue && con instanceof QueueConnection)
> {
> ses = ((QueueConnection)con).createQueueSession(transacted, ack);
> log.warn("Using a non-XA QueueConnection. " +
> "It will not be able to participate in a Global UOW");
> }
> else
> {
> throw new JMSException("Connection was not reconizable: " + con + " for destination " + destination);
> }
> </code>
> stacktrace:
> org.jboss.deployment.DeploymentException: Error during queue setup; - nested throwable: (oracle.jms.AQjmsException: JMS-107: Operation not allowed on QueueConnection)
> at org.jboss.deployment.DeploymentException.rethrowAsDeploymentException(DeploymentException.java:39)
> at org.jboss.ejb.plugins.jms.JMSContainerInvoker.innerStartDelivery(JMSContainerInvoker.java:906)
> at org.jboss.ejb.plugins.jms.JMSContainerInvoker.startService(JMSContainerInvoker.java:932)
> at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:274)
> at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:230)
> 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.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:141)
> at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
> at org.jboss.mx.server.Invocation.invoke(Invocation.java:72)
> at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:245)
> at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:644)
> at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:943)
> at $Proxy0.start(Unknown Source)
> at org.jboss.system.ServiceController.start(ServiceController.java:428)
> at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:141)
> at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
> at org.jboss.mx.server.Invocation.invoke(Invocation.java:72)
> at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:245)
> at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:644)
> at org.jboss.system.ServiceMBeanSupport.start(ServiceMBeanSupport.java:179)
> at org.jboss.ejb.MessageDrivenContainer.startService(MessageDrivenContainer.java:262)
> at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:274)
> at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:230)
> 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.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:141)
> at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
> at org.jboss.mx.server.Invocation.invoke(Invocation.java:72)
> at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:245)
> at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:644)
> at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:943)
> at $Proxy0.start(Unknown Source)
> at org.jboss.system.ServiceController.start(ServiceController.java:428)
> at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:141)
> at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
> at org.jboss.mx.server.Invocation.invoke(Invocation.java:72)
> at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:245)
> at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:644)
> at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:176)
> at $Proxy60.start(Unknown Source)
> at org.jboss.ejb.EjbModule.startService(EjbModule.java:395)
> at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:274)
> at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:230)
> 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.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:141)
> at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
> at org.jboss.mx.server.Invocation.invoke(Invocation.java:72)
> at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:245)
> at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:644)
> at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:943)
> at $Proxy0.start(Unknown Source)
> at org.jboss.system.ServiceController.start(ServiceController.java:428)
> at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:141)
> at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
> at org.jboss.mx.server.Invocation.invoke(Invocation.java:72)
> at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:245)
> at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:644)
> at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:176)
> at $Proxy21.start(Unknown Source)
> at org.jboss.ejb.EJBDeployer.start(EJBDeployer.java:627)
> 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.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:141)
> at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
> at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:118)
> at org.jboss.mx.server.Invocation.invoke(Invocation.java:74)
> at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:127)
> at org.jboss.mx.interceptor.DynamicInterceptor.invoke(DynamicInterceptor.java:80)
> at org.jboss.mx.server.Invocation.invoke(Invocation.java:74)
> at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:245)
> at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:644)
> at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:176)
> at $Proxy22.start(Unknown Source)
> at org.jboss.deployment.MainDeployer.start(MainDeployer.java:989)
> at org.jboss.deployment.MainDeployer.start(MainDeployer.java:979)
> at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:790)
> at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:753)
> at sun.reflect.GeneratedMethodAccessor20.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:141)
> at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
> at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:118)
> at org.jboss.mx.server.Invocation.invoke(Invocation.java:74)
> at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:127)
> at org.jboss.mx.server.Invocation.invoke(Invocation.java:74)
> at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:245)
> at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:644)
> at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:176)
> at $Proxy9.deploy(Unknown Source)
> at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:319)
> at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:489)
> at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:192)
> at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.loop(AbstractDeploymentScanner.java:203)
> at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.run(AbstractDeploymentScanner.java:182)
> Caused by: oracle.jms.AQjmsException: JMS-107: Operation not allowed on QueueConnection
> at oracle.jms.AQjmsError.throwEx(AQjmsError.java:319)
> at oracle.jms.AQjmsConnection.createTopicSession(AQjmsConnection.java:698)
> at oracle.jms.AQjmsConnectionWrapper.createTopicSession(AQjmsConnectionWrapper.java:106)
> at org.jboss.jms.asf.StdServerSessionPool.create(StdServerSessionPool.java:356)
> at org.jboss.jms.asf.StdServerSessionPool.<init>(StdServerSessionPool.java:169)
> at org.jboss.jms.asf.StdServerSessionPoolFactory.getServerSessionPool(StdServerSessionPoolFactory.java:64)
> at org.jboss.ejb.plugins.jms.JMSContainerInvoker.createSessionPool(JMSContainerInvoker.java:1259)
> at org.jboss.ejb.plugins.jms.JMSContainerInvoker.innerStartDelivery(JMSContainerInvoker.java:878)
> ... 112 more
--
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
More information about the jboss-jira
mailing list