3 Replies Latest reply on Jun 27, 2007 9:00 AM by Adrian Brock

    Is JMSProviderLoader backward compatible with JMS 1.0?

    Andrew Metlock Newbie

      What can I see from the documentation, JMSProviderLoader has three parameters, among others:

      # FactoryRef - the jndi binding of the javax.jms.ConnectionFactory within the jndi context (jboss4/jms1.1 only)
      # QueueFactoryRef - the jndi binding of the javax.jms.QueueConnectionFactory within the jndi context
      # TopicFactoryRef - the jndi binding of the javax.jms.TopicConnectionFactory within the jndi context

      http://www.jboss.org/wiki/Wiki.jsp?page=ConfigJMSProvider

      But in reality, it tries to use domain specific factories to create common sessions, which gives java.lang.AbstractMethodError, because jms 1.0 classes are kinda different from jms 1.1 classes. Shouldn't it be backward compatible?

      I'm using JBoss 4.2.0 and my external JMS server is JMS 1.0 implementation. The vendor, SeeBeyond, doesn't have a library to connect to JBoss. Is there any way to integrate both without much of a hassle?

      I've found another topic on the subject, but they are ended up using vendor's library.

      http://www.jboss.com/index.html?module=bb&op=viewtopic&t=92925

      Here's the stacktrace from what I've got so far:

      15:01:25,622 INFO [JmsActivation] Attempting to reconnect org.jboss.resource.adapter.jms.inflow.JmsActivationSpec@ebc2a2(ra=org.jboss.resource.adapter.jms.JmsResourceAdapter@1ca3f82 destination=external/icandev/jndi-mytopic isTopic=true tx=true durable=false reconnect=10 provider=java:/RemoteJMSProvider user=null maxMessages=1 minSession=1 maxSession=15 keepAlive=60000 useDLQ=false)
      15:01:25,622 DEBUG [JmsActivation] Setting up org.jboss.resource.adapter.jms.inflow.JmsActivationSpec@ebc2a2(ra=org.jboss.resource.adapter.jms.JmsResourceAdapter@1ca3f82 destination=external/icandev/jndi-mytopic isTopic=true tx=true durable=false reconnect=10 provider=java:/RemoteJMSProvider user=null maxMessages=1 minSession=1 maxSession=15 keepAlive=60000 useDLQ=false)
      15:01:25,622 DEBUG [JmsActivation] Retrieving the jms provider adapter java:/RemoteJMSProvider for org.jboss.resource.adapter.jms.inflow.JmsActivation@10cface(spec=org.jboss.resource.adapter.jms.inflow.JmsActivationSpec@ebc2a2 mepf=org.jboss.ejb3.mdb.inflow.JBossMessageEndpointFactory@1262a85 active=false destination=Topic[etNotifier] pool=org.jboss.resource.adapter.jms.inflow.JmsServerSessionPool@1eb18de transacted=true)
      15:01:25,622 DEBUG [JmsActivation] Using jms provider adapter org.jboss.jms.jndi.JNDIProviderAdapter@2d2da4 for org.jboss.resource.adapter.jms.inflow.JmsActivation@10cface(spec=org.jboss.resource.adapter.jms.inflow.JmsActivationSpec@ebc2a2 mepf=org.jboss.ejb3.mdb.inflow.JBossMessageEndpointFactory@1262a85 active=false destination=Topic[etNotifier] pool=org.jboss.resource.adapter.jms.inflow.JmsServerSessionPool@1eb18de transacted=true)
      15:01:25,637 DEBUG [JmsActivation] Using context {java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory, java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces:org.jboss.naming:org.jnp.interfaces} for org.jboss.resource.adapter.jms.inflow.JmsActivationSpec@ebc2a2(ra=org.jboss.resource.adapter.jms.JmsResourceAdapter@1ca3f82 destination=external/icandev/jndi-mytopic isTopic=true tx=true durable=false reconnect=10 provider=java:/RemoteJMSProvider user=null maxMessages=1 minSession=1 maxSession=15 keepAlive=60000 useDLQ=false)
      15:01:25,637 DEBUG [JmsActivation] Setup DLQ org.jboss.resource.adapter.jms.inflow.JmsActivation@10cface(spec=org.jboss.resource.adapter.jms.inflow.JmsActivationSpec@ebc2a2 mepf=org.jboss.ejb3.mdb.inflow.JBossMessageEndpointFactory@1262a85 active=false destination=Topic[etNotifier] pool=org.jboss.resource.adapter.jms.inflow.JmsServerSessionPool@1eb18de transacted=true)
      15:01:25,637 DEBUG [JmsActivation] Retrieving destination external/icandev/jndi-mytopic of type javax.jms.Topic
      15:01:25,637 DEBUG [JmsActivation] Got destination Topic[etNotifier] from external/icandev/jndi-mytopic
      15:01:25,637 DEBUG [JmsActivation] setup connection org.jboss.resource.adapter.jms.inflow.JmsActivation@10cface(spec=org.jboss.resource.adapter.jms.inflow.JmsActivationSpec@ebc2a2 mepf=org.jboss.ejb3.mdb.inflow.JBossMessageEndpointFactory@1262a85 active=false destination=Topic[etNotifier] pool=org.jboss.resource.adapter.jms.inflow.JmsServerSessionPool@1eb18de transacted=true)
      15:01:25,637 DEBUG [JmsActivation] Attempting to lookup topic connection factory external/icandev/jms/connectionfactory/topic/lhDevEHIT_iqmDevEHIT
      15:01:25,637 DEBUG [JmsActivation] Got topic connection factory STCConnectionFactory: icanqa.acme.org:19549 from external/icandev/jms/connectionfactory/topic/lhDevEHIT_iqmDevEHIT
      15:01:25,637 DEBUG [JmsActivation] Attempting to create topic connection with user null
      15:01:25,637 DEBUG [JmsActivation] Using topic connection com.stc.jms.client.STCTopicConnection@278a47
      15:01:25,637 DEBUG [JmsActivation] established connection org.jboss.resource.adapter.jms.inflow.JmsActivation@10cface(spec=org.jboss.resource.adapter.jms.inflow.JmsActivationSpec@ebc2a2 mepf=org.jboss.ejb3.mdb.inflow.JBossMessageEndpointFactory@1262a85 active=false destination=Topic[etNotifier] connection=com.stc.jms.client.STCTopicConnection@278a47 pool=org.jboss.resource.adapter.jms.inflow.JmsServerSessionPool@1eb18de transacted=true)
      15:01:25,653 DEBUG [JmsActivation] Created session pool org.jboss.resource.adapter.jms.inflow.JmsServerSessionPool@1e74fe9
      15:01:25,653 DEBUG [JmsActivation] Starting session pool org.jboss.resource.adapter.jms.inflow.JmsServerSessionPool@1e74fe9
      15:01:25,653 ERROR [JmsActivation] Unable to reconnect org.jboss.resource.adapter.jms.inflow.JmsActivationSpec@ebc2a2(ra=org.jboss.resource.adapter.jms.JmsResourceAdapter@1ca3f82 destination=external/icandev/jndi-mytopic isTopic=true tx=true durable=false reconnect=10 provider=java:/RemoteJMSProvider user=null maxMessages=1 minSession=1 maxSession=15 keepAlive=60000 useDLQ=false)
      java.lang.AbstractMethodError: com.stc.jms.client.STCTopicConnection.createSession(ZI)Ljavax/jms/Session;
       at org.jboss.resource.adapter.jms.inflow.JmsServerSession.setup(JmsServerSession.java:115)
       at org.jboss.resource.adapter.jms.inflow.JmsServerSessionPool.setupSessions(JmsServerSessionPool.java:200)
       at org.jboss.resource.adapter.jms.inflow.JmsServerSessionPool.start(JmsServerSessionPool.java:90)
       at org.jboss.resource.adapter.jms.inflow.JmsActivation.setupSessionPool(JmsActivation.java:536)
       at org.jboss.resource.adapter.jms.inflow.JmsActivation.setup(JmsActivation.java:309)
       at org.jboss.resource.adapter.jms.inflow.JmsActivation.handleFailure(JmsActivation.java:249)
       at org.jboss.resource.adapter.jms.inflow.JmsActivation$SetupActivation.run(JmsActivation.java:589)
       at org.jboss.resource.work.WorkWrapper.execute(WorkWrapper.java:204)
       at org.jboss.util.threadpool.BasicTaskWrapper.run(BasicTaskWrapper.java:275)
       at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:743)
       at java.lang.Thread.run(Thread.java:595)