Recently looking at the Resource-Providers docs, and EAGER to use an
external JMS for my MDBs I and a colleague decided to run the demos.
   As quite a surprise the demo run ok. The MDB did everything when a
message was sent to the Queue.

   The BIG disappointment was, when we tried to do the same with the topic.
   In short: It does not work.
   It seems, that Orion is looking for the resource type. Although it should
check if the resource is of the NEEDED type, it rather checks if the
resource is of ANY type.
   SwiftMQ implements a Topic as a subclass of it's Queue implementation:

   the plainsocket@router1 class is as follows:

class com.swiftmq.jms.ConnectionFactoryImpl
  |-> interface javax.jms.QueueConnectionFactory
  |-> interface javax.jms.TopicConnectionFactory
  '-> interface java.io.Serializable

   the testqueue@router1 class is as follows:

class com.swiftmq.jms.QueueImpl
  |-> interface javax.jms.Queue
  |-> interface java.io.Serializable
  '-> interface com.swiftmq.jms.DestinationImpl

   the testtopic class is as follows:

class com.swiftmq.jms.TopicImpl
| '-> interface javax.jms.Topic
|
'-> (super) class com.swiftmq.jms.QueueImpl
              |-> interface javax.jms.Queue
              |-> interface java.io.Serializable
              '-> interface com.swiftmq.jms.DestinationImpl


   As you can see a Topic is also a Queue.
   So when trying to deploy the MDB one gets:

Error deploying
file:/D:/Temp/Orion/applications/Orion2SwiftMQ/Orion2SwiftMQ.jar homes: JMS
Error: Queue 'testtopic' is not local! Can't create a Consumer on it!


   But... That doesn't help. I'm quite disappointed. I almost got it.

   Lachezar.


Reply via email to