Uploaded image for project: 'Fedora Repository Project'
  1. Fedora Repository Project
  2. FCREPO-2405

Inconsistent message routing from activemq broker:queue versus broker:topic



    • Type: Improvement
    • Status: Open
    • Priority: Minor
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: f4-messaging
    • Labels:


      I am testing an ActiveMQ queue in a "standalone" configuration and I have noticed that there is a difference in the way that fcrepo-triplestore-indexer consumes these messages from a queue instead of a topic. Basically, any triple with a subject skolem/bnode is not consumed/updated with a queue, but is with a topic. Object skolems are indexed in both cases.

      Steps to reproduce:
      1. Change jms.xml to use JmsQueuePublisher.
      2. Insert into container a skolem type graph. (e.g. <> <http://iiif.io/api/presentation/2#hasImageAnnotations> _:c14n18 .
      _:c14n18 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> _:c14n12 .
      _:c14n12 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/ns/oa#Annotation> .)
      3. Check indexing.

      I have paused the indexing consumer so that I could see the messages in the ActiveMQ queue. As expected, there is only one message queued for the modification of the parent container. I noticed that the number of Camel exchanges with a topic versus a queue was more (6 vs. 3). With a topic, 2 messages are produced in activemq for the above example, but a queue only produces one.

      Since it is not possible to get the second two triples from the parent container using a URI like http://localhost:8080/fcrepo/rest/test2?preferInclude=PreferMinimalContainer&accept=application/rdf+xml, I am guessing that a topic must include more messages, particularly relating to the creation of the bnode/skolems.

      According to the http://fedora.info/spec/#message-data, a Skolem, being an LDPR should produce events. But it seems that https://github.com/fcrepo4/fcrepo4/blob/master/fcrepo-kernel-modeshape/src/main/java/org/fcrepo/kernel/modeshape/observer/DefaultFilter.java does not include it as a type.




            • Assignee:
              christopher-johnson Christopher Johnson
            • Votes:
              0 Vote for this issue
              2 Start watching this issue


              • Created: