Preparing Messaging Server for Indexing and Search Service Integration

Skip to end of metadata
Go to start of metadata

< Back to Installation Scenario - Indexing and Search Service

Preparing Messaging Server for Indexing and Search Service Integration

The following instructions describe how to prepare and configure Messaging Server for integration with Indexing and Search Service.

  1. Assign read-only store administrator privileges to the ISS proxy auth user (by default named indexeradmin).
    cd <msg-svr-base>/bin
    ./configutil -o store.indexeradmins -v indexeradmin 
    
  2. Configure the GlassFish Message Queue broker on Messaging Server.
    1. Ensure that the GlassFish Message Queue broker is running and enabled to start at reboot. Edit the imqbrokerd.conf file (/etc/imq/imqbrokerd.conf on Solaris Operating System (Solaris OS) and /etc/opt/sun/mq/imqbrokerd.conf on Red Hat Linux) to contain the following information. You might need to check the file permissions and change them to be writeable if set to read-only.
      AUTOSTART=YES
      ARGS=-vmargs -Xmx1024m
      RESTART=YES
      
    2. If the config.properties file (/var/imq/instances/imqbroker/props/config.properties on Solaris OS and /var/opt/sun/mq/instances/imqbroker/props/config.properties on Red Hat Linux) does not yet exist, start the IMQ broker for the first time to generate it.
      /etc/init.d/imq start
      
    3. Tune the GlassFish Message Queue broker properties by editing the bottom of the config.properties file (/var/imq/instances/imqbroker/props/config.properties on Solaris OS and /var/opt/sun/mq/instances/imqbroker/props/config.properties on Red Hat Linux) to contain the following information. You might need to check the file permissions and change them to be writeable if set to read-only. The defaults for these settings appear in the default.properties file (/usr/share/lib/imq/props/broker/default.properties on Solaris OS and /opt/sun/mq/private/share/lib/props/broker/default.properties on Red Hat Linux).
      imq.portmapper.backlog=-1
      imq.autocreate.destination.limitBehavior=REMOVE_OLDEST
      imq.autocreate.destination.maxNumProducers=-1
      imq.autocreate.reaptime=7200
      imq.destination.DMQ.truncateBody=true
      
    4. Ensure that the Message Queue broker is restarted to acquire the new settings:
      /etc/init.d/imq stop
      /etc/init.d/imq start
      
    5. Use the imqusermgr command to create a Message Queue user, referred to later in local.store.notifyplugin.index.jmquser on Messaging Server and mail.imq.user in ISS.
      Solaris OS:
      # /usr/bin/imqusermgr add -u <jmquser> -p <jmquserpassword> -g user
      

      Red Hat Linux:

      # /opt/sun/mq/bin/imqusermgr add -u <jmquser> -p <jmquserpassword> -g user
      
    6. Reset the default account passwords, if not already reset:
      Solaris OS:
      # /usr/bin/imqusermgr update -u admin -p <adminpassword>
      # /usr/bin/imqusermgr update -u guest -p <guestpassword>
      

      Red Hat Linux:

      # /opt/sun/mq/bin/imqusermgr update -u admin -p <adminpassword>
      # /opt/sun/mq/bin/imqusermgr update -u guest -p <guestpassword>
      
  3. Configure Java Messaging Queue (JMQ) notifications on Messaging Server to produce event notifications of real-time changes to the Messaging Server store for ISS to consume.
    Note
    ISS requires JMQ software. If you are currently running ENS for IMAP IDLE, you need to run both ENS and JMQ. In other words, ENS and JMQ are independent. You can use ENS for IMAP IDLE and JMQ for ISS. Prior to Messaging Server 7 Update 4, you can use JMQ for both IMAP IDLE and ISS. Starting with Messaging Server 7 Update 4, IMAP IDLE only supports ENS.
    1. Set the local.store.notifyplugin configutil parameter to include a JMQ notification plugin named index.
      If you have already enabled local.store.notifyplugin, add the following entry for ISS to what is already specified so that you do not overwrite the existing setting. For example, if local.store.notifyplugin is already set, run the following commands:
      # cd <msg-svr-base>/bin
      # ./configutil -o local.store.notifyplugin
      lib/libibiff$ms-internal$
      # ./configutil -o local.store.notifyplugin -v 'lib/libibiff$ms-internal$lib/libjmqnotify$index'
      

      If local.store.notifyplugin is not already set, set it as follows:

      # cd <msg-svr-base>/bin
      # ./configutil -o local.store.notifyplugin
      # ./configutil -o local.store.notifyplugin -v 'lib/libjmqnotify$index'
      
      For more information about the syntax of local.store.notifyplugin consult the Messaging Server configutil Parameters Reference or run
      cd <msg-svr-base>/bin
      ./configutil -o local.store.notifyplugin -H
    2. Configure the following settings for the index JMQ notification plugin, replacing <jmquser> with the JMQ user and <jmquserpassword> with the JMQ user password. Note that time values are in milliseconds.
      # cd <msg-svr-base>/bin
      ./configutil -o local.store.notifyplugin.index.annotatemsg.enable -v 0
      ./configutil -o local.store.notifyplugin.index.changeflag.enable -v 1
      ./configutil -o local.store.notifyplugin.index.copymsg.enable -v 1
      ./configutil -o local.store.notifyplugin.index.debuglevel -v 0
      ./configutil -o local.store.notifyplugin.index.deletemsg.enable -v 0
      ./configutil -o local.store.notifyplugin.index.destinationtype -v queue
      ./configutil -o local.store.notifyplugin.index.expungemsg.enable -v 1
      ./configutil -o local.store.notifyplugin.index.jmqhost -v 127.0.0.1
      ./configutil -o local.store.notifyplugin.index.jmqport -v 7676
      ./configutil -o local.store.notifyplugin.index.jmqpwd -v <jmquserpassword>
      ./configutil -o local.store.notifyplugin.index.jmqtopic -v INDEXMS
      ./configutil -o local.store.notifyplugin.index.jmquser -v <jmquser>
      ./configutil -o local.store.notifyplugin.index.loguser.enable -v 0
      ./configutil -o local.store.notifyplugin.index.maxbodysize -v 262144
      ./configutil -o local.store.notifyplugin.index.maxheadersize -v 16384
      ./configutil -o local.store.notifyplugin.index.msgflags.enable -v 0
      ./configutil -o local.store.notifyplugin.index.msgtypes.enable -v 0
      ./configutil -o local.store.notifyplugin.index.newmsg.enable -v 1
      ./configutil -o local.store.notifyplugin.index.noneinbox.enable -v 1
      ./configutil -o local.store.notifyplugin.index.persistent -v 0
      ./configutil -o local.store.notifyplugin.index.priority -v 4
      ./configutil -o local.store.notifyplugin.index.purgemsg.enable -v 0
      ./configutil -o local.store.notifyplugin.index.readmsg.enable -v 0
      ./configutil -o local.store.notifyplugin.index.updatemsg.enable -v 1
      ./configutil -o local.store.notifyplugin.index.ttl -v 3600000
      ./configutil -o local.store.notifyplugin.msgflags -v 1 
      
      Note
      If you are deploying ISS on multiple back ends, set the local.store.notifyplugin.index.destinationtype parameter to topic rather than queue.
      Caution
      If you are using ISS and IMAP IDLE together and if you are using ENS rather than JMQ for IMAP IDLE, verify that the following ENS parameters are still set correctly. The local.store.notifyplugin parameter should include libibiff and service.imap.ensidle should be set to 1.
    3. Important: For Messaging Server 7 Update 3 or earlier versions, if you have changed the guest password for the IMQ broker from its default value and you do not have ENS enabled for IDLE, you might also need to either disable IDLE and imkill over JMQ, or provide a valid JMQ user name and password for their configuration.
      • To disable IDLE and KILL over JMQ, run the following:
        # cd <msg-svr-base>/bin
        # ./configutil -o service.imap.ensidle -v 1
        

        This setting does not enable ENS. Instead, it merely disables IDLE and imkill over JMQ.

      • To provide a valid JMQ user name and password for IDLE and JMQ, run the following:
        # cd <msg-svr-base>/bin
        # ./configutil -o service.imap.idle.jmquserid -v <jmquser>
        # ./configutil -o service.imap.idle.jmqpassword -v <jmquserpassword>
        # ./configutil -o local.store.notifyplugin.idle.jmquser -v <jmquser>
        # ./configutil -o local.store.notifyplugin.idle.jmqpwd -v <jmquserpassword>
        
        Note
        In Messaging Server 7 Update 4, the parameters service.imap.idle.jmquserid and service.imap.idle.jmqpassword might be obsolete and might send a warning message if you attempt to set them. For Messaging Server 7 Update 4, run these commands instead:
        # cd <msg-svr-base>/bin
        # ./configutil -o local.store.notifyplugin.idle.jmquser -v <jmquser>
        # ./configutil -o local.store.notifyplugin.idle.jmqpwd -v <jmquserpassword>
      • If you skip this step, but the following messages appear in the IMAP log after you restart Messaging Server, you must perform one of the previous two options.
    4. To make the changes effective, restart Messaging Server. For example:
      # cd <msg-svr-base>/bin
      # ./stop-msg
      # ./start-msg
      
    5. Verify that the JMQ index plugin is working by checking for an entry such as the following in the msg-srv-base/log/imap log:
    6. Verify that no login errors have occurred on the IMQ broker by checking the /var/imq/instances/imqbroker/log/log.txt file. For example:
    7. Verify that Messaging Server has producers connected to the INDEXMS destination:
      # imqcmd list dst
      Username: admin
      Password:
      Listing all the destinations on the broker specified by:
      
      -------------------------
      Host         Primary Port
      -------------------------
      localhost    7676
      
      ---------------------------------------------------------------------------------------------
         Name      Type    State      Producers        Consumers                  Msgs
                                   Total  Wildcard  Total  Wildcard  Count  Remote  UnAck  Avg Size
      ---------------------------------------------------------------------------------------------
      INDEXMS      Queue  RUNNING  24     -         0      -         0      0       0      0.0
      mq.sys.dmq   Queue  RUNNING  0      -         0      -         0      0       0      0.0
      
      Successfully listed destinations.
      
    8. For more information, see JMQ Notification.
  4. Prepare, but do not enable, Messaging Server to forward IMAP SEARCH queries to ISS.
    ISS IMAP SEARCH configutil Parameters
    Parameter Description Default Value
    service.imap.indexer.hostname Name of host providing ISS RESTful search service NULL (must be configured if service.imap.indexer.enable is set)
    service.imap.indexer.port Port number of ISS RESTful search service 8080
    service.imap.indexer.enable Whether Messaging Server should be activated, diverting IMAP SEARCH requests to ISS 0
    Note
    After ISS has been enabled, and users have been indexed and searching has been verified, this step is revisited to set service.imap.indexer.enable to 1 so that the setting then redirects IMAP SEARCH queries to ISS for fulfillment.
    1. Before ISS is enabled, apply the following settings:
      # cd <msg-svr-base>/bin
      # ./configutil -o service.imap.indexer.hostname -v <iss-web-frontend-host-name>
      # ./configutil -o service.imap.indexer.port -v <iss-web-frontend-port-number>
      # ./configutil -o service.imap.indexer.enable -v 0
      
    2. To make the changes effective, restart Messaging Server. For example:
      # cd <msg-svr-base>/bin
      # ./stop-msg
      # ./start-msg
      
  5. Return to Installation Scenario - Indexing and Search Service#4. Prepare Messaging Server for Indexing and Search Service Integration.
Labels:
indexsearchservice indexsearchservice Delete
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.
  1. Dec 21, 2010

    The note above that says "Or you can use JMQ for both IMAP IDLE and ISS." should be corrected. IMAP IDLE only supports ENS as of Messaging Server 7u4.

    1. Dec 21, 2010

      Fixed.

Sign up or Log in to add a comment or watch this page.


The individuals who post here are part of the extended Oracle community and they might not be employed or in any way formally affiliated with Oracle. The opinions expressed here are their own, are not necessarily reviewed in advance by anyone but the individual authors, and neither Oracle nor any other party necessarily agrees with them.