Integration between Infoglue parts
Cache updates and broadcasts
InfoGlue uses caching heavily. It not only can cache whole pages or parts of pages but also caches most of the model in memory. This gives a superior performance compared to querying the database all the time. The downside is that there needs to be some kind of notifications between the different applications or a common cache. While it is possible to achieve a common cache InfoGlue by default does not support it. Instead we use broadcasts from the CMS-application which is the only app that are to write data to the InfoGlue-tables and the delivery applications. So when a change has been written a simple HTTP-request goes out to all deliver instances and tells them to update what was changed.
Which instances to call are defined in the cms.properties file and if you add a new instance of infoglueDeliverXXX you must also add a reference to it in the appropriate section there. It is described in detail in the cms.properties section.
This is the first place to look if you feel your caches are not updating and reflecting the changes made. If a restart of the appserver results in the right info being shown 99% of the times the reference to the deliver instance in cms.properties are wrong or missing. Remember to test so the address you type actually reached the application. You should try it with a simple wget or similar.
A simple check is to look at the status page on /infoglueDeliverXXX/ViewApplicationState.action and see if there is a lot of things cached. If the information comes up on the site after you press clear all caches in that view you probably have a configuration problem.
InfoGlue Deliver applications calling CMS
In InfoGlue one can of course want to insert content or edit content from forms etc in the live site. For example one perhaps would want to build a simple blogger-tool as a site. That is fine and InfoGlue only requires that the one doing the saves are the cms-tools as they have to be the master at all times so no business rules are broken. This is achieved by using the InfoGlue Web services API:s provided over SOAP by Apache Axis. The deliver application and the site templates/logic calls the internal cms api:s over HTTP and inserts content or whatever that way. The only important thing when using such API:s is that you have an infrastructure that allows the deliver apps to reach the cms-application over HTTP.
comments powered by Disqus