Uploaded image for project: 'Grouper'
  1. Grouper
  2. GRP-1731

Error using native activemq integration

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • Minor
    • 2.4.0, 2.3.0.patch
    • None
    • None
    • None

    Description

      2018-04-06 12:34:52,802: [DefaultQuartzScheduler_Worker-2] ERROR EsbConsumer.processChangeLogEntries(551) - - problem
      java.lang.IllegalArgumentException: For ActiveMQ, autoCreateObjects has to be set to true.
      at edu.internet2.middleware.grouperMessagingActiveMQ.GrouperMessagingActiveMQSystem.validate(GrouperMessagingActiveMQSystem.java:219)
      at edu.internet2.middleware.grouperMessagingActiveMQ.GrouperMessagingActiveMQSystem.send(GrouperMessagingActiveMQSystem.java:61)
      at edu.internet2.middleware.grouperClient.messaging.GrouperMessagingEngine.send(GrouperMessagingEngine.java:60)
      at edu.internet2.middleware.grouper.changeLog.esb.consumer.EsbMessagingPublisher.dispatchEvent(EsbMessagingPublisher.java:58)
      at edu.internet2.middleware.grouper.changeLog.esb.consumer.EsbConsumer.processChangeLogEntries(EsbConsumer.java:525)
      at edu.internet2.middleware.grouper.changeLog.ChangeLogHelper.processRecords(ChangeLogHelper.java:245)
      at edu.internet2.middleware.grouper.app.loader.GrouperLoaderType$5.runJob(GrouperLoaderType.java:640)
      at edu.internet2.middleware.grouper.app.loader.GrouperLoaderJob.runJob(GrouperLoaderJob.java:465)
      at edu.internet2.middleware.grouper.app.loader.GrouperLoaderJob.execute(GrouperLoaderJob.java:345)
      at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
      at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)

      Here is what my grouper-loader.properties looks like:
      =======================
      loader.messaging.settings.autocreate.objects = true

      changeLog.consumer.esb.class = edu.internet2.middleware.grouper.changeLog.esb.consumer.EsbConsumer
      changeLog.consumer.esb.publisher.class = edu.internet2.middleware.grouper.changeLog.esb.consumer.EsbMessagingPublisher
      changeLog.consumer.esb.publisher.messagingSystemName = activemq
      changeLog.consumer.esb.publisher.messageQueueType = topic
      changeLog.consumer.esb.publisher.queueOrTopicName = IAM.account.membership
      #run every 30 secs
      changeLog.consumer.esb.quartzCron = 0,30 * * * * ?
      changeLog.consumer.esb.elfilter = event.eventType eq 'GROUP_DELETE' || event.eventType eq 'GROUP_ADD' || event.eventType eq 'MEMBERSHIP_DELETE' || event.eventType eq 'MEMBERSHIP_ADD'

      changeLog.consumer.boxEsb.class = edu.internet2.middleware.grouper.changeLog.esb.consumer.EsbConsumer
      changeLog.consumer.boxEsb.publisher.class = edu.internet2.middleware.grouper.changeLog.esb.consumer.EsbMessagingPublisher
      changeLog.consumer.boxEsb.quartzCron = 0,30 * * * * ?

      1. carefully adjust this filter e.g. for sourceId and groupName
        changeLog.consumer.boxEsb.elfilter = (event.sourceId == null || event.sourceId eq 'jdbc') && (event.groupName =~ '^svc:box:groups:.$' || event.groupName eq 'svc:box:boxUser' || event.name =~ '^svc:box:groups:.$' || event.name eq 'svc:box:boxUser') && (event.eventType eq 'GROUP_DELETE' || event.eventType eq 'GROUP_ADD' || event.eventType eq 'GROUP_UPDATE' || event.eventType eq 'MEMBERSHIP_DELETE' || event.eventType eq 'MEMBERSHIP_ADD' || event.eventType eq 'MEMBERSHIP_UPDATE')
        changeLog.consumer.boxEsb.publisher.messagingSystemName = activemq
        changeLog.consumer.boxEsb.publisher.messageQueueType = topic
        changeLog.consumer.boxEsb.publisher.queueOrTopicName = IAM.box.membership
      2. this is optional if not using "id" for subjectId, need to be a subject attribute in the sources.xml
        changeLog.consumer.boxEsb.publisher.addSubjectAttributes = email
        =======================

      And the grouper.client.properties:
      =======================
      loader.messaging.settings.autocreate.objects = true

      1. name of messaging system which is the default
        grouper.messaging.default.name.of.messaging.system = activemq
      1. name of a messaging system, required
        grouper.messaging.system.activemq.name = activemq
        grouper.messaging.system.activemq.defaultSystemName = activemqSystem
        grouper.messaging.system.activemq.username = USERNAME
        grouper.messaging.system.activemq.password = PASSWORD
      1. Default settings for activemq (can use as base to change userids)
        grouper.messaging.system.activemqSystem.name = activemqSystem
        grouper.messaging.system.activemqSystem.class = edu.internet2.middleware.grouperMessagingActiveMQ.GrouperMessagingActiveMQSystem
        grouper.messaging.system.activemqSystem.host = HOSTNAME
        grouper.messaging.system.activemqSystem.port = 5672
        grouper.messaging.system.activemqSystem.defaultPageSize = 10
        grouper.messaging.system.activemqSystem.maxPageSize = 50

      Attachments

        Activity

          People

            vivek.sachdeva@at.internet2.edu Vivek Sachdeva (google.com)
            vivek.sachdeva@at.internet2.edu Vivek Sachdeva (google.com)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: