Expand my Community achievements bar.

SOLVED

Dispatcher configure on 2012 server will not initialize

Avatar

Level 1

I have setup AEM 6, Author and Publish in a very simply single server environment. I was adding the dispatcher to IIS and while it seems to have gone fine, I am getting an error and it will not initialize.

[Thu Mar 05 18:05:59 2015] [E] [7776(2464)] No correct backend found in farm website
[Thu Mar 05 18:05:59 2015] [E] [7776(2464)] Dispatcher initialization failed.

I have looked online for this error and it says it is probably a rights issue, but I can't see where the problem is.

Please assist

Thank you

1 Accepted Solution

Avatar

Correct answer by
Level 10

Randy Thomas wrote...

Sham HC wrote...

Make sure in dispatcher.any form section
1)    Renderers are defined
2)    The value in rendere section are valid.  Especially if server has multiple ip & host.
3)    Firewalls rules for connection between dispatcher & publishers.

 

This is all on a one test server, so we are using local host. I also don't think the FW rules will matter in the case right?

 

 


Why not? It will matter.  Example http://www.aemstuff.com/#article971

View solution in original post

9 Replies

Avatar

Level 10

Make sure in dispatcher.any form section
1)    Renderers are defined
2)    The value in rendere section are valid.  Especially if server has multiple ip & host.
3)    Firewalls rules for connection between dispatcher & publishers.

Avatar

Level 1

Sham HC wrote...

Make sure in dispatcher.any form section
1)    Renderers are defined
2)    The value in rendere section are valid.  Especially if server has multiple ip & host.
3)    Firewalls rules for connection between dispatcher & publishers.

 

This is all on a one test server, so we are using local host. I also don't think the FW rules will matter in the case right?

Avatar

Level 8

can you post your dispatcher.any file?

Avatar

Level 1

~# Each farm configures a set of load balanced renders (i.e. remote servers)
/farms
  {
  # First farm entry
  /website
   {
 /homepage "/index.html"
    }

    { 
    # Request headers that should be forwarded to the remote server.
    /clientheaders
      {
      # Forward all request headers that are end-to-end. If you want
      # to forward a specific set of headers, you'll have to list
      # them here.
      "*"
      }
     
    # Hostname globbing for farm selection (virtual domain addressing)
    /virtualhosts
      {
      # Entries will be compared against the "Host" request header
      # and an optional request URL prefix.
      #
      # Examples:
      #
      #   www.company.com
      #   intranet.*
      #   myhost:8888/mysite
      "*"
      }
     
    # The load will be balanced among these render instances
    /renders
      {
      /rend01
        {
        # Hostname or IP of the render
        /hostname "127.0.0.1"
        # Port of the render
        /port "4503"
        # Connect timeout in milliseconds, 0 to wait indefinitely
        # /timeout "0"
        }
      }

    # The filter section defines the requests that should be handled by the dispatcher.
    #
    # Entries can be either specified using globs, or elements of the request line:
    #
    # (1) globs will be compared against the entire request line, e.g.:
    #
    #     /0001 { /type "deny" /glob "* /index.html *" }
    #
    #   matches request "GET /index.html HTTP/1.1" but not "GET /index.html?a=b HTTP/1.1".
    #
    # (2) method/url/query/protocol will be compared againts the respective elements of
    #   the request line, e.g.:
    #
    #     /0001 { /type "deny" /method "GET" /url "/index.html" }
    #
    #   matches both "GET /index.html" and "GET /index.html?a=b HTTP/1.1".
    #
    # Note: specifying elements of the request line is the preferred method.
    /filter
      {
      # Deny everything first and then allow specific entries
      /0001 { /type "deny" /glob "*" }
     
      # Open consoles
#     /0011 { /type "allow" /url "/admin/*"  }  # allow servlet engine admin
#     /0012 { /type "allow" /url "/crx/*"    }  # allow content repository
#     /0013 { /type "allow" /url "/system/*" }  # allow OSGi console
       
      # Allow non-public content directories
#     /0021 { /type "allow" /url "/apps/*"   }  # allow apps access
#     /0022 { /type "allow" /url "/bin/*"    }
      /0023 { /type "allow" /url "/content*" }  # disable this rule to allow mapped content only
     
#     /0024 { /type "allow" /url "/libs/*"   }
#     /0025 { /type "deny"  /url "/libs/shindig/proxy*" } # if you enable /libs close access to proxy

#     /0026 { /type "allow" /url "/home/*"   }
#     /0027 { /type "allow" /url "/tmp/*"    }
#     /0028 { /type "allow" /url "/var/*"    }

      # Enable specific mime types in non-public content directories
      /0041 { /type "allow" /url "*.css"   }  # enable css
      /0042 { /type "allow" /url "*.gif"   }  # enable gifs
      /0043 { /type "allow" /url "*.ico"   }  # enable icos
      /0044 { /type "allow" /url "*.js"    }  # enable javascript
      /0045 { /type "allow" /url "*.png"   }  # enable png
      /0046 { /type "allow" /url "*.swf"   }  # enable flash
      /0047 { /type "allow" /url "*.jpg"   }  # enable jpg
      /0048 { /type "allow" /url "*.jpeg"  }  # enable jpeg

      # Enable features
      /0062 { /type "allow" /url "/libs/cq/personalization/*"  }  # enable personalization

      # Deny content grabbing
      /0081 { /type "deny"  /url "*.infinity.json" }
      /0082 { /type "deny"  /url "*.tidy.json"     }
      /0083 { /type "deny"  /url "*.sysview.xml"   }
      /0084 { /type "deny"  /url "*.docview.json"  }
      /0085 { /type "deny"  /url "*.docview.xml"  }
     
      /0086 { /type "deny"  /url "*.*[0-9].json" }
#     /0087 { /type "allow" /method "GET" /url "*.1.json" }  # allow one-level json requests

      # Deny query
      /0090 { /type "deny"  /url "*.query.json" }
      }
     
    # The cache section regulates what responses will be cached and where.
    /cache
      {
      # The docroot must be equal to the document root of the webserver. The
      # dispatcher will store files relative to this directory and subsequent
      # requests may be "declined" by the dispatcher, allowing the webserver
      # to deliver them just like static files.
      /docroot "D:/inetpub/wwwroot"

      # Sets the level upto which files named ".stat" will be created in the
      # document root of the webserver. When an activation request for some
      # page is received, only files within the same subtree are affected
      # by the invalidation.
      #/statfileslevel "0"
     
      # Flag indicating whether to cache responses to requests that contain
      # authorization information.
      #/allowAuthorized "0"
     
      # Flag indicating whether the dispatcher should serve stale content if
      # no remote server is available.
      #/serveStaleOnError "0"
     
      # The rules section defines what responses should be cached based on
      # the requested URL. Please note that only the following requests can
      # lead to cacheable responses:
      #
      # - HTTP method is GET
      # - URL has an extension
      # - Request has no query string
      # - Request has no "Authorization" header (unless allowAuthorized is 1)
      /rules
        {
        /0000
          {
          # the globbing pattern to be compared against the url
          # example: *             -> everything
          #        : /foo/bar.*    -> only the /foo/bar documents
          #        : /foo/bar/*    -> all pages below /foo/bar
          #        : /foo/bar[./]* -> all pages below and /foo/bar itself
          #        : *.html        -> all .html files
          /glob "*"
          /type "allow"
          }
        }
       
      # The invalidate section defines the pages that are "invalidated" after
      # any activation. Please note that the activated page itself and all
      # related documents are flushed on an modification. For example: if the
      # page /foo/bar is activated, all /foo/bar.* files are removed from the
      # cache.
      /invalidate
        {
        /0000
          {
          /glob "*"
          /type "deny"
          }
        /0001
          {
          # Consider all HTML files stale after an activation.
          /glob "*.html"
          /type "allow"
          }
        /0002
          {  
          /glob "/etc/segmentation.segment.js"
          /type "allow"
          }  
        /0003
          {
          /glob "*/analytics.sitecatalyst.js"
          /type "allow"
          }
        }

      # The allowedClients section restricts the client IP addresses that are
      # allowed to issue activation requests.
      /allowedClients
        {
        # Uncomment the following to restrict activation requests to originate
        # from "localhost" only.
        #
        #/0000
        #  {
        #  /glob "*"
        #  /type "deny"
        #  }
        #/0001
        #  {
        #  /glob "127.0.0.1"
        #  /type "allow"
        #  }
        }
       
      # The ignoreUrlParams section contains query string parameter names that
      # should be ignored when determining whether some request's output can be
      # cached or delivered from cache.
      #
      # In this example configuration, the "q" parameter will be ignored.
      #/ignoreUrlParams
      #  {
      #  /0001 { /glob "*" /type "deny" }
      #  /0002 { /glob "q" /type "allow" }
      #  }
       
      }
     
    # The statistics sections dictates how the load should be balanced among the
    # renders according to the media-type.
    /statistics
      {
      /categories
        {
        /html
          {
          /glob "*.html"
          }
        /others
          {
          /glob "*"
          }
        }
      }
    }
  }

Avatar

Correct answer by
Level 10

Randy Thomas wrote...

Sham HC wrote...

Make sure in dispatcher.any form section
1)    Renderers are defined
2)    The value in rendere section are valid.  Especially if server has multiple ip & host.
3)    Firewalls rules for connection between dispatcher & publishers.

 

This is all on a one test server, so we are using local host. I also don't think the FW rules will matter in the case right?

 

 


Why not? It will matter.  Example http://www.aemstuff.com/#article971

Avatar

Level 8

i think there's something wrong with the nesting of your brackets:

/website
   {
 /homepage "/index.html"
    }

    { 

 

You've closed the brackets for /website after the homepage is defined, and then re-opened. I think you need to remove those so that you have

/website
   {
 /homepage "/index.html"    

  # Request headers that should be forwarded to the remote server.
  /clientheaders
      {
...

Avatar

Level 1

So if I take those out to where it looks like this:

# Each farm configures a set of load balanced renders (i.e. remote servers)
/farms
  {
  # First farm entry
  /website
   {
 
 /homepage "/index.html"
 


    # Request

 

I don't get anything back at all, just a white page