Close this search box.

DZUG-Tagung #5: Christian Theune and Christian Zagrodnik – CMFLinkChecker and Link Monitoring Server

Christian Theune, Christian Zagrodnik

CMFLinkChecker, Link Monitoring Server

Christian Theuni was talking about CMFLinkChecker and and Christian Zagrodnik was talking about the Link Monitoring Server (LMS).
The LMS is meant to be a central link checking web service which is asked by the CMFLinkChecker (and possibly other tools). Thus
the link checking is not done by the Plone site but asynchronously by the web service (eventually shared with many CMS‘)


  • Plone product
  • decentral usage (every author can check his own links)
  • links in unpublished pages can also be tested
  • reports in nearly realtime
  • easily extensible
  • easy to install
  • no crawler necessary


  • usage of external web service
  • lower network traffic for web servers
  • status information is shared by more than one Plone site
  • extensions are directly available (hosted by gocept)
  • sustainable/friendly testing
  • bugs can be fixed faster (when it’s one that creates load on servers)


  • automatic registration of LMS accounts
  • Plone 2.1 + 2.5 supported
  • better config screen
  • UID will be generated by Archetypes
  • API extensions of LMS
  • better support for rich textfields
  • support for CMFMember and PloneHelpCenter
  • support for generic AT types
  • Links can be repaired (de)centrally (in development). So you can change links from overview lists instead of doing that
    in the edit screens.


Christian Theune was then showing a demo where he was installing a Plone 2.5 and CMFLinkChecker. He then configures it. It will
automatically create an LMS account and you get an email with a password which you have to paste into your instance.

Next he was crawling the site which found the 15 links of the base Plone site. It found 4 broken links which he changed then to work.


  • Support for finding the destination of a broken link.
  • commercial LMS to register more portals under one domain
  • eventually it will get a standard Plone product

Christian Zagrodnik was then taking about the Link Monitoring Server which is used by CMFLinkChecker.


  • central service for all sorts of portals like Plone or Silva (prototype)
  • only one check for each link for all the CMSs
  • LMS notifies the CMS, no polling. Done via XML-RPC request to the CMS
  • supported protocols: http, https and ftp
  • results:
    • not available (will become red in CMFLinkChecker)
    • temporarily not available (orange)
    • available (green)
    • no idea (grey). used e.g. for mail links or new links
  • frequently tested (1-2 times per day)

public server

  • registration via CMFLinkChecker
  • ca. 12000 links
  • load is ok



  • registerURLs(client_id,password, [url1, url2, ...])
  • unregisterURLs(client_id,password, [url1, url2, ...])


  • updateManyStates(client_id, pw, [(url,state,reason), ...] )
  • getAllLinks(client_id, pw) (to keep the database up2date)


  • Twisted 2 with MySQL
  • TODO: PostgresQL and SQLite


  • Caching (Saving of pages, has some issues like memory)
  • Auto heal (check broken link with other CMS. If a link fails in one CMS and get’s repaired it could possibly repair it in other CMS. Probably only useful in closed groups because of trust)
  • LMS-Cluster (LMS servers speak to each other)

Teile diesen Beitrag