<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/">
  <title>mpowerglobal.com</title>
  <link rel="alternate" href="" />
  <subtitle>mpowerglobal.com</subtitle>
  <entry>
    <title>Finder Methods in Liferay</title>
    <link rel="alternate" href="http://www.mpowerglobal.com/c/blogs/find_entry?entryId=99021" />
    <author>
      <name>Tanweer Ahmed Ansari</name>
    </author>
    <id>http://www.mpowerglobal.com/c/blogs/find_entry?entryId=99021</id>
    <updated>2010-07-23T17:56:49Z</updated>
    <published>2010-07-23T17:52:39Z</published>
    <summary type="html">&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I have come across many newbies who find it difficuilt understanding &amp;amp; implementing the finder methods in Liferay.This blog will come as a rescue to those beginners.Here I will first explain the scenario where finder methods are used and then discuss its implementation.&lt;br /&gt;Let take a scenario where we are making a database of the employees in some organization.Assume some of the fields as&amp;nbsp; name ,gender,location,qualification etc .At some point of time ,we want to find all the employees belonging to a particular location.So here comes the concept of finder methods.&lt;br /&gt;The first step in implementing a finder method is declaring the finder field in the service.xml.&lt;br /&gt;In the service.xml file add the following line after declaring all the database columns ,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;finder name=&amp;quot;Location&amp;quot; return-type=&amp;quot;Collection&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;finder-column name=&amp;quot;location&amp;quot;&amp;gt;&amp;lt;/finder-column&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/finder&amp;gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;In the above declaration,for the finder attribute name ,a finder method named findByLocation() will be generated on ant build-service.The return type is Collection since there can be many employees from the same place.In some cases the return type may be Entity type also.The name attribute of finder-column is the corresponding column in the table which is associated with the finder method.&lt;br /&gt;The second step is to run the ant target &amp;quot;ant build-service&amp;quot;.This target will generate the Java Beans,Axis Web Services(if remote is set to true),Spring Configuration files,Hibernate Configuration files,SQL scripts,JSON interface.You can now go to the EntityNameUtil.java and find the finder method generated there.Also you can find overloaded methods in this class.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; public static java.util.List&amp;lt;com.mpower.intranet.mpdetails.model.MPDetail&amp;gt; findByLocation(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; java.lang.String location) throws com.liferay.portal.SystemException {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return getPersistence().findByLocation(location);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;Copy the finder method from this class and paste it inside the EntityNameLocalServiceImpl class and do the modification as mentioned and shown below.Remove the static modifier and replace getPersistence() with MPDetailUtil.Here MPDetail is the EntityName.Put your own EntityNameUtil instead of MPDetailUtil.The modified method looks like the one below.Put this method inside the EntityNameLocalServiceImpl class.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; public java.util.List&amp;lt;com.mpower.intranet.mpdetails.model.MPDetail&amp;gt; findByLocation(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; java.lang.String location) throws com.liferay.portal.SystemException {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return MPDetailUtil.findByLocation(location);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;Once again run the target &amp;quot;ant build-service&amp;quot; .You can now see the console which says writing classes EntityNameLocalServiceUtil.Finally you have cracked the Liferay finder methods and they are ready to use now.Here is how to use the finder method.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; List&amp;lt;MPDetail&amp;gt; details = MPDetailLocalServiceUtil.findByLocation(&amp;quot;Pass your location parameter here&amp;quot;);&lt;br /&gt;Don't forget to replace the MPDetail with your EntityName.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&lt;/p&gt;</summary>
    <dc:creator>Tanweer Ahmed Ansari</dc:creator>
    <dc:date>2010-07-23T17:52:39Z</dc:date>
  </entry>
  <entry>
    <title>Implementing XMLBeans</title>
    <link rel="alternate" href="http://www.mpowerglobal.com/c/blogs/find_entry?entryId=80474" />
    <author>
      <name>Tanweer Ahmed Ansari</name>
    </author>
    <id>http://www.mpowerglobal.com/c/blogs/find_entry?entryId=80474</id>
    <updated>2010-07-13T17:28:17Z</updated>
    <published>2010-07-13T16:19:52Z</published>
    <summary type="html">&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;XMLBeans is a fantastic technology provided by Apache which is used for marshalling and un-marshalling XML.This helps us to bind XML into Java Types.In this blog, I will first introduce the scenario where XMLBeans comes handy.While progressing I will mention about the configuration required , generating the Java classes and using them.&lt;br /&gt; &lt;br /&gt; Lets take the scenario where the user requests the server for some response and assume the response comes in the form of xml file.The xml file will be formatted and will have exactly one root element.The root element may have different child nodes.Suppose the xml file consists of list of flights ,along with their departure and arrival timings and the fares.We want the details related to the flight to be displayed in the list .The XMLBeans technology will generate the Java classes along with the corresponding getters and setters method.If necessary, it also creates the array for particular elements.&lt;br /&gt; &lt;br /&gt; For starting with XMLBeans , we should have the sdk installed.You can download the sdk at &lt;em&gt;&lt;u&gt;http://www.apache.org/dyn/closer.cgi/xmlbeans&lt;/u&gt;&lt;/em&gt;.Once downloaded extract the folder at some location and set the environment variables for XMLBeans as mentioned below.&lt;br /&gt; &lt;strong&gt;export XMLBEANS_HOME=&amp;lt;location of XMLBeans root&amp;gt; (e.g /home/tanweer/xmlbeans-2.5.0)&lt;br /&gt; export PATH=$PATH:$XMLBEANS_HOME/bin&lt;br /&gt; export CLASSPATH=$XMLBEANS_HOME/lib/xbean.jar:$XMLBEANS_HOME/lib/jsr173_1.0_api.jar:$CLASSPATH&lt;/strong&gt;&lt;br /&gt; &lt;br /&gt; Enter the command scomp in the terminal to check whether the path is set correctly or not.&lt;br /&gt; &lt;br /&gt; The input to the xml beans scomp (schema compiler) is the .xsd file .&lt;br /&gt; The .xsd file is considered as the grammar of xml.In terms of Java we can say .xsd file is the Java class which defines the object model and .xml file is the Java Object with real content.&lt;br /&gt; To generate the equivalent Java classes for .xsd file ,in the terminal go to the location of the xsd file.Enter the scomp command like :&lt;br /&gt; &lt;strong&gt;$location_of_xsd : scomp -out test.jar test.xsd &lt;/strong&gt;&lt;br /&gt; where test.xsd is the schema file and test.jar is the jar file with all the classes generated.These generated classes have the getters and the setters for accessing the elements of the xml.We can also generate the .java files with proper scomp command.&lt;br /&gt; &lt;br /&gt; Copy this jar file ,put it inside the lib folder.Add the jar file to the build path.Import the package and the classes.&lt;br /&gt; Once imported you can go through the classes and the methods.&lt;br /&gt; &lt;br /&gt; There are also other technologies like JAXB but XMLBeans are light-weight and even the performance is better.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;</summary>
    <dc:creator>Tanweer Ahmed Ansari</dc:creator>
    <dc:date>2010-07-13T16:19:52Z</dc:date>
  </entry>
  <entry>
    <title>How to reload module in a flex application on button click....</title>
    <link rel="alternate" href="http://www.mpowerglobal.com/c/blogs/find_entry?entryId=78777" />
    <author>
      <name>Savio Edward Coelho</name>
    </author>
    <id>http://www.mpowerglobal.com/c/blogs/find_entry?entryId=78777</id>
    <updated>2010-07-09T09:43:40Z</updated>
    <published>2010-07-09T09:41:37Z</published>
    <summary type="html">&lt;p&gt;&amp;nbsp;Hi,&lt;/p&gt;&lt;p&gt;We r trying to reload a module if our flex application on button clicked....&lt;/p&gt;&lt;p&gt;Is there a way to do so....&lt;/p&gt;</summary>
    <dc:creator>Savio Edward Coelho</dc:creator>
    <dc:date>2010-07-09T09:41:37Z</dc:date>
  </entry>
  <entry>
    <title>Drag &amp; Drop Operation in Flex</title>
    <link rel="alternate" href="http://www.mpowerglobal.com/c/blogs/find_entry?entryId=75404" />
    <author>
      <name>Muhammed Shakir Misarwala</name>
    </author>
    <id>http://www.mpowerglobal.com/c/blogs/find_entry?entryId=75404</id>
    <updated>2010-06-30T16:39:38Z</updated>
    <published>2010-06-30T16:38:33Z</published>
    <summary type="html">&lt;p&gt;&amp;nbsp;Following is the excerpts from Adobe Flex Docs&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Arial, Helvetica, sans-serif; line-height: normal; "&gt;&lt;h2 class="h2nobreak" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 15px; font-weight: bold; padding-top: 1em; padding-right: 0px; padding-bottom: 0.5em; padding-left: 0px; margin-top: 20px; margin-right: 0px; margin-bottom: 0px; margin-left: 0em; font-style: normal; "&gt;The drag-and-drop operation&lt;/h2&gt;&lt;p style="font-family: Verdana, Arial, Helvetica, sans-serif; line-height: 16px; "&gt;The following steps define the drag-and-drop operation.&lt;/p&gt;&lt;ol style="font-family: Verdana, Arial, Helvetica, sans-serif; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 23px; margin-bottom: 0px; margin-left: 23px; "&gt;&lt;li style="font-family: Verdana, Arial, Helvetica, sans-serif; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 2px; margin-right: 0px; margin-bottom: 2px; margin-left: 0px; line-height: 16px; "&gt;A component becomes a drag-and-drop initiator in either of the following ways:&lt;ul style="font-family: Verdana, Arial, Helvetica, sans-serif; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 8px; margin-bottom: 0px; margin-left: 8px; "&gt;&lt;li style="font-family: Verdana, Arial, Helvetica, sans-serif; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0.25em; margin-right: 6px; margin-bottom: 0.25em; margin-left: 6px; line-height: 16px; list-style-type: square; font-size: 11px; "&gt;List-based components with&amp;nbsp;&lt;samp class="codeph" style="font-family: 'Courier New', Courier, monospace; font-size: 11px; "&gt;dragEnabled=true&lt;/samp&gt;&lt;p style="font-family: Verdana, Arial, Helvetica, sans-serif; line-height: 16px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-size: 11px; "&gt;Flex automatically makes the component an initiator when the user clicks and moves the mouse on the component.&lt;/p&gt;&lt;/li&gt;&lt;li style="font-family: Verdana, Arial, Helvetica, sans-serif; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0.25em; margin-right: 6px; margin-bottom: 0.25em; margin-left: 6px; line-height: 16px; list-style-type: square; font-size: 11px; "&gt;Nonlist-based components, or list-based components with&amp;nbsp;&lt;samp class="codeph" style="font-family: 'Courier New', Courier, monospace; font-size: 11px; "&gt;dragEnabled=false&lt;/samp&gt;&lt;p style="font-family: Verdana, Arial, Helvetica, sans-serif; line-height: 16px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-size: 11px; "&gt;The component must detect the user's attempt to start a drag operation and explicitly become an initiator. Typically, you use the&amp;nbsp;&lt;samp class="codeph" style="font-family: 'Courier New', Courier, monospace; font-size: 11px; "&gt;mouseMove&lt;/samp&gt;&amp;nbsp;or&amp;nbsp;&lt;samp class="codeph" style="font-family: 'Courier New', Courier, monospace; font-size: 11px; "&gt;mouseDown&lt;/samp&gt;&amp;nbsp;event to start the drag-and-drop operation.&lt;/p&gt;&lt;p style="font-family: Verdana, Arial, Helvetica, sans-serif; line-height: 16px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-size: 11px; "&gt;The component then creates an instance of the&amp;nbsp;&lt;a href="http://livedocs.adobe.com/flex/3/langref/mx/core/DragSource.html" target="_blank" style="font-family: Verdana, Arial, Helvetica, sans-serif; text-decoration: none; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(0, 68, 119); "&gt;mx.core.DragSource&lt;/a&gt;&amp;nbsp;class that contains the data to be dragged, and specifies the format for the data.&lt;/p&gt;&lt;p style="font-family: Verdana, Arial, Helvetica, sans-serif; line-height: 16px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-size: 11px; "&gt;The component then calls the&amp;nbsp;&lt;samp class="codeph" style="font-family: 'Courier New', Courier, monospace; font-size: 11px; "&gt;mx.managers.DragManager.doDrag()&lt;/samp&gt;&amp;nbsp;method, to initiate the drag-and-drop operation.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li style="font-family: Verdana, Arial, Helvetica, sans-serif; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 2px; margin-right: 0px; margin-bottom: 2px; margin-left: 0px; line-height: 16px; "&gt;While the mouse button is still pressed, the user moves the mouse around the application. Flex displays the drag proxy image in your application. The&lt;samp class="codeph" style="font-family: 'Courier New', Courier, monospace; font-size: 11px; "&gt;DragManager.defaultDragImageSkin&lt;/samp&gt;&amp;nbsp;property defines the default drag proxy image.&lt;p style="font-family: Verdana, Arial, Helvetica, sans-serif; line-height: 16px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-size: 11px; "&gt;You can define your own drag proxy image. For more information, see&amp;nbsp;&lt;a href="http://livedocs.adobe.com/flex/3/html/dragdrop_7.html#226768" style="font-family: Verdana, Arial, Helvetica, sans-serif; text-decoration: none; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(0, 68, 119); "&gt;Example: Specifying the drag proxy&lt;/a&gt;.&lt;/p&gt;&lt;p style="font-family: Verdana, Arial, Helvetica, sans-serif; line-height: 16px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-size: 11px; "&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="note" style="font-family: Verdana, Arial, Helvetica, sans-serif; padding-top: 3px; padding-right: 0px; padding-bottom: 5px; padding-left: 0px; margin-top: 3px; margin-right: 0px; margin-bottom: 5px; margin-left: 0px; font-style: italic; font-size: 11px; line-height: 16px; display: block; "&gt;&lt;span class="notetitle" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-style: normal; font-weight: bold; font-size: 11px; "&gt;Note:&amp;nbsp;&lt;/span&gt;Releasing the mouse button when the drag proxy is not over a target ends the drag-and-drop operation. Flex generates a&amp;nbsp;&lt;samp class="codeph" style="font-family: 'Courier New', Courier, monospace; font-size: 11px; "&gt;DragComplete&lt;/samp&gt;&amp;nbsp;event on the drag initiator, and the&amp;nbsp;&lt;samp class="codeph" style="font-family: 'Courier New', Courier, monospace; font-size: 11px; "&gt;DragManager.getFeedback()&lt;/samp&gt;&amp;nbsp;method returns&amp;nbsp;&lt;samp class="codeph" style="font-family: 'Courier New', Courier, monospace; font-size: 11px; "&gt;DragManager.NONE&lt;/samp&gt;&lt;i style="font-family: Verdana, Arial, Helvetica, sans-serif; "&gt;.&lt;/i&gt;&lt;/div&gt;&lt;p style="font-family: Verdana, Arial, Helvetica, sans-serif; line-height: 16px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-size: 11px; "&gt;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li style="font-family: Verdana, Arial, Helvetica, sans-serif; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 2px; margin-right: 0px; margin-bottom: 2px; margin-left: 0px; line-height: 16px; "&gt;If the user moves the drag proxy over a Flex component, Flex dispatches a&amp;nbsp;&lt;samp class="codeph" style="font-family: 'Courier New', Courier, monospace; font-size: 11px; "&gt;dragEnter&lt;/samp&gt;&amp;nbsp;event for the component.&lt;ul style="font-family: Verdana, Arial, Helvetica, sans-serif; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 8px; margin-bottom: 0px; margin-left: 8px; "&gt;&lt;li style="font-family: Verdana, Arial, Helvetica, sans-serif; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0.25em; margin-right: 6px; margin-bottom: 0.25em; margin-left: 6px; line-height: 16px; list-style-type: square; font-size: 11px; "&gt;List-based components with&amp;nbsp;&lt;samp class="codeph" style="font-family: 'Courier New', Courier, monospace; font-size: 11px; "&gt;dropEnabled=true&lt;/samp&gt;&lt;p style="font-family: Verdana, Arial, Helvetica, sans-serif; line-height: 16px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-size: 11px; "&gt;Flex checks to see if the component can be a drop target.&lt;/p&gt;&lt;/li&gt;&lt;li style="font-family: Verdana, Arial, Helvetica, sans-serif; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0.25em; margin-right: 6px; margin-bottom: 0.25em; margin-left: 6px; line-height: 16px; list-style-type: square; font-size: 11px; "&gt;Nonlist-based components, or list-based components with&amp;nbsp;&lt;samp class="codeph" style="font-family: 'Courier New', Courier, monospace; font-size: 11px; "&gt;dropEnabled=false&lt;/samp&gt;&lt;p style="font-family: Verdana, Arial, Helvetica, sans-serif; line-height: 16px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-size: 11px; "&gt;The component must define an event handler for the&amp;nbsp;&lt;samp class="codeph" style="font-family: 'Courier New', Courier, monospace; font-size: 11px; "&gt;dragEnter&lt;/samp&gt;&amp;nbsp;event to be a drop target.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="font-family: Verdana, Arial, Helvetica, sans-serif; line-height: 16px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-size: 11px; "&gt;The&amp;nbsp;&lt;samp class="codeph" style="font-family: 'Courier New', Courier, monospace; font-size: 11px; "&gt;dragEnter&lt;/samp&gt;&amp;nbsp;event handler can examine the&amp;nbsp;&lt;samp class="codeph" style="font-family: 'Courier New', Courier, monospace; font-size: 11px; "&gt;DragSource&lt;/samp&gt;&amp;nbsp;object to determine whether the data being dragged is in an accepted format. To accept the drop, the event handler calls the&amp;nbsp;&lt;samp class="codeph" style="font-family: 'Courier New', Courier, monospace; font-size: 11px; "&gt;DragManager.acceptDragDrop()&lt;/samp&gt;&amp;nbsp;method. You must call the&amp;nbsp;&lt;samp class="codeph" style="font-family: 'Courier New', Courier, monospace; font-size: 11px; "&gt;DragManager.acceptDragDrop()&lt;/samp&gt;&amp;nbsp;method for the drop target to receive the&amp;nbsp;&lt;samp class="codeph" style="font-family: 'Courier New', Courier, monospace; font-size: 11px; "&gt;dragOver&lt;/samp&gt;,&lt;samp class="codeph" style="font-family: 'Courier New', Courier, monospace; font-size: 11px; "&gt;dragExit&lt;/samp&gt;, and&amp;nbsp;&lt;samp class="codeph" style="font-family: 'Courier New', Courier, monospace; font-size: 11px; "&gt;dragDrop&lt;/samp&gt;&amp;nbsp;events.&lt;/p&gt;&lt;ul style="font-family: Verdana, Arial, Helvetica, sans-serif; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 8px; margin-bottom: 0px; margin-left: 8px; "&gt;&lt;li style="font-family: Verdana, Arial, Helvetica, sans-serif; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0.25em; margin-right: 6px; margin-bottom: 0.25em; margin-left: 6px; line-height: 16px; list-style-type: square; font-size: 11px; "&gt;If the drop target does not accept the drop, the drop target component's parent chain is examined to determine if any component in the chain accepts the drop data.&lt;/li&gt;&lt;li style="font-family: Verdana, Arial, Helvetica, sans-serif; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0.25em; margin-right: 6px; margin-bottom: 0.25em; margin-left: 6px; line-height: 16px; list-style-type: square; font-size: 11px; "&gt;If the drop target or a parent component accepts the drop, Flex dispatches the&amp;nbsp;&lt;samp class="codeph" style="font-family: 'Courier New', Courier, monospace; font-size: 11px; "&gt;dragOver&lt;/samp&gt;&amp;nbsp;event as the user moves the proxy over the target.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li style="font-family: Verdana, Arial, Helvetica, sans-serif; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 2px; margin-right: 0px; margin-bottom: 2px; margin-left: 0px; line-height: 16px; "&gt;(Optional) The drop target can handle the&amp;nbsp;&lt;samp class="codeph" style="font-family: 'Courier New', Courier, monospace; font-size: 11px; "&gt;dragOver&lt;/samp&gt;&amp;nbsp;event. For example, the drop target can use this event handler to set the focus on itself.&lt;/li&gt;&lt;li style="font-family: Verdana, Arial, Helvetica, sans-serif; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 2px; margin-right: 0px; margin-bottom: 2px; margin-left: 0px; line-height: 16px; "&gt;(Optional) If the user decides not to drop the data onto the drop target and moves the drag proxy outside of the drop target without releasing the mouse button, Flex dispatches a&amp;nbsp;&lt;samp class="codeph" style="font-family: 'Courier New', Courier, monospace; font-size: 11px; "&gt;dragExit&lt;/samp&gt;&amp;nbsp;event for the drop target. The drop target can optionally handle this event; for example, to undo any actions made in the&amp;nbsp;&lt;samp class="codeph" style="font-family: 'Courier New', Courier, monospace; font-size: 11px; "&gt;dragOver&lt;/samp&gt;&amp;nbsp;event handler.&lt;/li&gt;&lt;li style="font-family: Verdana, Arial, Helvetica, sans-serif; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 2px; margin-right: 0px; margin-bottom: 2px; margin-left: 0px; line-height: 16px; "&gt;If the user releases the mouse while over the drop target, Flex dispatches a&amp;nbsp;&lt;samp class="codeph" style="font-family: 'Courier New', Courier, monospace; font-size: 11px; "&gt;dragDrop&lt;/samp&gt;&amp;nbsp;event on the drop target.&lt;ul style="font-family: Verdana, Arial, Helvetica, sans-serif; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 8px; margin-bottom: 0px; margin-left: 8px; "&gt;&lt;li style="font-family: Verdana, Arial, Helvetica, sans-serif; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0.25em; margin-right: 6px; margin-bottom: 0.25em; margin-left: 6px; line-height: 16px; list-style-type: square; font-size: 11px; "&gt;List-based components with&amp;nbsp;&lt;samp class="codeph" style="font-family: 'Courier New', Courier, monospace; font-size: 11px; "&gt;dropEnabled=true&lt;/samp&gt;&lt;p style="font-family: Verdana, Arial, Helvetica, sans-serif; line-height: 16px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-size: 11px; "&gt;Flex automatically adds the drag data to the drop target. If this is a copy operation, you have to implement the event handler for the&amp;nbsp;&lt;samp class="codeph" style="font-family: 'Courier New', Courier, monospace; font-size: 11px; "&gt;dragDrop&lt;/samp&gt;&amp;nbsp;event for a list-based control. For more information, see&amp;nbsp;&lt;a href="http://livedocs.adobe.com/flex/3/html/dragdrop_8.html#225181" style="font-family: Verdana, Arial, Helvetica, sans-serif; text-decoration: none; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(0, 68, 119); "&gt;Example: Copying data from one List control to another List control&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;&lt;li style="font-family: Verdana, Arial, Helvetica, sans-serif; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0.25em; margin-right: 6px; margin-bottom: 0.25em; margin-left: 6px; line-height: 16px; list-style-type: square; font-size: 11px; "&gt;Nonlist-based components, or list-based components with&amp;nbsp;&lt;samp class="codeph" style="font-family: 'Courier New', Courier, monospace; font-size: 11px; "&gt;dropEnabled=false&lt;/samp&gt;&lt;p style="font-family: Verdana, Arial, Helvetica, sans-serif; line-height: 16px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-size: 11px; "&gt;The drop target must define an event listener for the&amp;nbsp;&lt;samp class="codeph" style="font-family: 'Courier New', Courier, monospace; font-size: 11px; "&gt;dragDrop&lt;/samp&gt;&amp;nbsp;event handler to add the drag data to the drop target.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li style="font-family: Verdana, Arial, Helvetica, sans-serif; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 2px; margin-right: 0px; margin-bottom: 2px; margin-left: 0px; line-height: 16px; "&gt;(Optional) When the drop operation completes, Flex dispatches a&amp;nbsp;&lt;samp class="codeph" style="font-family: 'Courier New', Courier, monospace; font-size: 11px; "&gt;dragComplete&lt;/samp&gt;&amp;nbsp;event. The drag initiator can handle this event; for example, to delete the drag data from the drag initiator in the case of a move.&lt;ul style="font-family: Verdana, Arial, Helvetica, sans-serif; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 8px; margin-bottom: 0px; margin-left: 8px; "&gt;&lt;li style="font-family: Verdana, Arial, Helvetica, sans-serif; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0.25em; margin-right: 6px; margin-bottom: 0.25em; margin-left: 6px; line-height: 16px; list-style-type: square; font-size: 11px; "&gt;List-based components with&amp;nbsp;&lt;samp class="codeph" style="font-family: 'Courier New', Courier, monospace; font-size: 11px; "&gt;dragEnabled=true&lt;/samp&gt;&lt;p style="font-family: Verdana, Arial, Helvetica, sans-serif; line-height: 16px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-size: 11px; "&gt;If this is a move operation, Flex automatically removes the drag data from the drag initiator.&lt;/p&gt;&lt;/li&gt;&lt;li style="font-family: Verdana, Arial, Helvetica, sans-serif; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0.25em; margin-right: 6px; margin-bottom: 0.25em; margin-left: 6px; line-height: 16px; list-style-type: square; font-size: 11px; "&gt;Nonlist-based components, or list-based components with&amp;nbsp;&lt;samp class="codeph" style="font-family: 'Courier New', Courier, monospace; font-size: 11px; "&gt;dragEnabled=false&lt;/samp&gt;&lt;p style="font-family: Verdana, Arial, Helvetica, sans-serif; line-height: 16px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-size: 11px; "&gt;The drag initiator completes any final processing required. If this was a move operation, the event handler must remove the drag data from the drag initiator. For an example of writing the event handler for the&amp;nbsp;&lt;samp class="codeph" style="font-family: 'Courier New', Courier, monospace; font-size: 11px; "&gt;dragComplete&lt;/samp&gt;&amp;nbsp;event, see&amp;nbsp;&lt;a href="http://livedocs.adobe.com/flex/3/html/dragdrop_8.html#223556" style="font-family: Verdana, Arial, Helvetica, sans-serif; text-decoration: none; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(0, 68, 119); "&gt;Example: Moving and copying data for a nonlist-based control&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/span&gt;&lt;/p&gt;</summary>
    <dc:creator>Muhammed Shakir Misarwala</dc:creator>
    <dc:date>2010-06-30T16:38:33Z</dc:date>
  </entry>
  <entry>
    <title>How to change the portlet title at runtime</title>
    <link rel="alternate" href="http://www.mpowerglobal.com/c/blogs/find_entry?entryId=65517" />
    <author>
      <name>vc vijayan</name>
    </author>
    <id>http://www.mpowerglobal.com/c/blogs/find_entry?entryId=65517</id>
    <updated>2010-06-03T10:39:26Z</updated>
    <published>2010-06-03T10:38:47Z</published>
    <summary type="html">&lt;p&gt;Simply use the following line in your jsp page to set portlet name.&lt;br /&gt;&lt;strong&gt;renderResponse.setTitle(&amp;quot;vijayan&amp;quot;);&lt;/strong&gt;&lt;/p&gt;</summary>
    <dc:creator>vc vijayan</dc:creator>
    <dc:date>2010-06-03T10:38:47Z</dc:date>
  </entry>
  <entry>
    <title>Katie Margolis's Story</title>
    <link rel="alternate" href="http://www.mpowerglobal.com/c/blogs/find_entry?entryId=53408" />
    <author>
      <name>Test Test</name>
    </author>
    <id>http://www.mpowerglobal.com/c/blogs/find_entry?entryId=53408</id>
    <updated>2010-04-20T20:26:05Z</updated>
    <published>2010-04-20T20:26:05Z</published>
    <summary type="html">&lt;p&gt;&lt;table style="margin-left: 12px; width: 470px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td colspan="2"&gt;&lt;h4 style="color: rgb(154, 154, 154); font-weight: inherit;"&gt;PEOPLE STORIES&lt;/h4&gt;&lt;/td&gt; 		&lt;/tr&gt; 		&lt;tr&gt; 			&lt;td colspan="2"&gt;&lt;h3 style="font-weight: bold; color: rgb(51, 51, 51); font-size: 16px; line-height: 24px;"&gt;Katie Margolis's Story&lt;/h3&gt;&lt;/td&gt; 		&lt;/tr&gt; 		&lt;tr&gt; 			&lt;td colspan="2"&gt;&lt;p align="justify"&gt;Michael Gunville learned from an  annual physical with his primary care physician that his PSA level was  slightly elevated. It's worth investigating, he was told, and so Michael  went to see his urologist who took a second PSA and performed a biopsy.  Tests revealed that the 64-year old, web manager, had prostate cancer.  On the positive side, the tumor had been caught early, before Michael's  health was negatively impacted.We tell ourselves we'll quit in time.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt; 			&lt;p align="justify"&gt;These patients have shared their personal stories  about what it was like for them after they were diagnosed and then  treated using the latest technology from Varian Medical Systems.  Everything we do at Varian is motivated by a desire to make a difference  in the lives of patients. Because of this we have created radiotherapy  technology for treating cancer and other disorders with the highest  precision and accuracy.&lt;/p&gt;&lt;br /&gt;&amp;nbsp;&lt;/td&gt; 		&lt;/tr&gt; 		&lt;tr&gt;		            &lt;td&gt;&lt;p align="justify"&gt;The severity of fractures increase  with age. Children's bones are more flexible and less likely to break.  Falls or other accidents that do not harm children can cause complete  fractures in older adults.The severity of fractures increase with age.  Children's bones are more flexible and less likely to break.This has  enabled patients to have better outcomes and fewer side effects from  treatment.Here are some of our patients' stories.The probability of this  phenomenon increases.This has enabled patients to have better outcomes  and fewer side effects from treatment.Here are some of our patients'  stories.The probability of this phenomenon increases.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;</summary>
    <dc:creator>Test Test</dc:creator>
    <dc:date>2010-04-20T20:26:05Z</dc:date>
  </entry>
  <entry>
    <title>Factory Design Pattern</title>
    <link rel="alternate" href="http://www.mpowerglobal.com/c/blogs/find_entry?entryId=48813" />
    <author>
      <name>Muhammed Shakir Misarwala</name>
    </author>
    <id>http://www.mpowerglobal.com/c/blogs/find_entry?entryId=48813</id>
    <updated>2010-04-09T18:10:07Z</updated>
    <published>2010-04-09T18:09:54Z</published>
    <summary type="html">&lt;h2&gt;new() in Factory Design Pattern&lt;/h2&gt; &lt;p&gt;Consider you have a class called OrderManager that needs to invoke some method on an object of class Order. But there are two types of Order - 1) The ExportOrder and 2) LocalOrder. Both of these inherit from Order class and Order class is abstract. Now in OrderManager class you will write something like this&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="code" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: rgb(255, 255, 255); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(119, 119, 119); border-right-color: rgb(119, 119, 119); border-bottom-color: rgb(119, 119, 119); border-left-color: rgb(119, 119, 119); font-family: monospace; overflow-x: auto; white-space: pre; background-position: initial initial; "&gt;&lt;span class="code-lines" style="border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); color: rgb(0, 0, 0); margin-right: 5px; padding-top: 0px; padding-right: 5px; padding-bottom: 0px; padding-left: 5px; "&gt;&amp;nbsp;1&lt;/span&gt;&lt;br /&gt; &lt;span class="code-lines" style="border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); color: rgb(0, 0, 0); margin-right: 5px; padding-top: 0px; padding-right: 5px; padding-bottom: 0px; padding-left: 5px; "&gt;&amp;nbsp;2&lt;/span&gt;public class OrderManager {&lt;br /&gt; &lt;span class="code-lines" style="border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); color: rgb(0, 0, 0); margin-right: 5px; padding-top: 0px; padding-right: 5px; padding-bottom: 0px; padding-left: 5px; "&gt;&amp;nbsp;3&lt;/span&gt;&amp;nbsp; public void someFunction() {&lt;br /&gt; &lt;span class="code-lines" style="border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); color: rgb(0, 0, 0); margin-right: 5px; padding-top: 0px; padding-right: 5px; padding-bottom: 0px; padding-left: 5px; "&gt;&amp;nbsp;4&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;br /&gt; &lt;span class="code-lines" style="border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); color: rgb(0, 0, 0); margin-right: 5px; padding-top: 0px; padding-right: 5px; padding-bottom: 0px; padding-left: 5px; "&gt;&amp;nbsp;5&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;Order order = null;&lt;br /&gt; &lt;span class="code-lines" style="border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); color: rgb(0, 0, 0); margin-right: 5px; padding-top: 0px; padding-right: 5px; padding-bottom: 0px; padding-left: 5px; "&gt;&amp;nbsp;6&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if (orderType.equalsIgnoreCase(&amp;quot;E&amp;quot;))&amp;nbsp; {&lt;br /&gt; &lt;span class="code-lines" style="border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); color: rgb(0, 0, 0); margin-right: 5px; padding-top: 0px; padding-right: 5px; padding-bottom: 0px; padding-left: 5px; "&gt;&amp;nbsp;7&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; order = new ExportOrder();&lt;br /&gt; &lt;span class="code-lines" style="border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); color: rgb(0, 0, 0); margin-right: 5px; padding-top: 0px; padding-right: 5px; padding-bottom: 0px; padding-left: 5px; "&gt;&amp;nbsp;8&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; } else {&lt;br /&gt; &lt;span class="code-lines" style="border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); color: rgb(0, 0, 0); margin-right: 5px; padding-top: 0px; padding-right: 5px; padding-bottom: 0px; padding-left: 5px; "&gt;&amp;nbsp;9&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; order = new LocalOrder();&lt;br /&gt; &lt;span class="code-lines" style="border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); color: rgb(0, 0, 0); margin-right: 5px; padding-top: 0px; padding-right: 5px; padding-bottom: 0px; padding-left: 5px; "&gt;10&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; }&lt;br /&gt; &lt;span class="code-lines" style="border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); color: rgb(0, 0, 0); margin-right: 5px; padding-top: 0px; padding-right: 5px; padding-bottom: 0px; padding-left: 5px; "&gt;11&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;order.someBusinessMethod();&lt;br /&gt; &lt;span class="code-lines" style="border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); color: rgb(0, 0, 0); margin-right: 5px; padding-top: 0px; padding-right: 5px; padding-bottom: 0px; padding-left: 5px; "&gt;12&lt;/span&gt;&lt;br /&gt; &lt;span class="code-lines" style="border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); color: rgb(0, 0, 0); margin-right: 5px; padding-top: 0px; padding-right: 5px; padding-bottom: 0px; padding-left: 5px; "&gt;13&lt;/span&gt;&amp;nbsp; }&lt;br /&gt; &lt;span class="code-lines" style="border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); color: rgb(0, 0, 0); margin-right: 5px; padding-top: 0px; padding-right: 5px; padding-bottom: 0px; padding-left: 5px; "&gt;14&lt;/span&gt;}&lt;/div&gt; &lt;p&gt;&lt;br /&gt; Now note the usage of new keyword in OrderManager class. OrderManager is the client of Order. Order is the abstraction. Client is dependent not only on abstraction but also implementation - the moment you write&amp;nbsp;&lt;b style="font-weight: bold; "&gt;new&lt;/b&gt;&amp;nbsp;- you are binding to implementation. Implementation may change in future. You may add more types of Orders in future. You will have to change the OrderManager class i.e. the client class. So you see there is a problem here. Your design violates OCP - Open Closed Principle&lt;/p&gt; &lt;div class="quote" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 0px; padding-bottom: 0px; padding-left: 5px; background-image: url(http://www.muhammedshakir.com/igoogle-theme/images/message_boards/quoteleft.png); background-repeat: no-repeat; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: rgb(255, 255, 255); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(119, 119, 119); border-right-color: rgb(119, 119, 119); border-bottom-color: rgb(119, 119, 119); border-left-color: rgb(119, 119, 119); background-position: 0% 0%; "&gt;&lt;div class="quote-content" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 30px; padding-bottom: 10px; padding-left: 30px; background-image: url(http://www.muhammedshakir.com/igoogle-theme/images/message_boards/quoteright.png); background-repeat: no-repeat; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: transparent; background-position: 100% 100%; "&gt;Open Closed Principle: Your application design must be such that it is open for extension (enhancing the features) but closed for modification (changes in existing code)&lt;/div&gt;&lt;/div&gt; &lt;p&gt;&lt;br /&gt; &lt;br /&gt; So you will now have a factory. The new will be shifted to the factory class say OrderFactory which (ideally - not necessarily; there can be variations) will look like this:&lt;/p&gt; &lt;div class="code" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: rgb(255, 255, 255); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(119, 119, 119); border-right-color: rgb(119, 119, 119); border-bottom-color: rgb(119, 119, 119); border-left-color: rgb(119, 119, 119); font-family: monospace; overflow-x: auto; white-space: pre; background-position: initial initial; "&gt;&lt;span class="code-lines" style="border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); color: rgb(0, 0, 0); margin-right: 5px; padding-top: 0px; padding-right: 5px; padding-bottom: 0px; padding-left: 5px; "&gt;&amp;nbsp;1&lt;/span&gt;&lt;br /&gt; &lt;span class="code-lines" style="border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); color: rgb(0, 0, 0); margin-right: 5px; padding-top: 0px; padding-right: 5px; padding-bottom: 0px; padding-left: 5px; "&gt;&amp;nbsp;2&lt;/span&gt;public class OrderFactory {&lt;br /&gt; &lt;span class="code-lines" style="border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); color: rgb(0, 0, 0); margin-right: 5px; padding-top: 0px; padding-right: 5px; padding-bottom: 0px; padding-left: 5px; "&gt;&amp;nbsp;3&lt;/span&gt; &lt;br /&gt; &lt;span class="code-lines" style="border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); color: rgb(0, 0, 0); margin-right: 5px; padding-top: 0px; padding-right: 5px; padding-bottom: 0px; padding-left: 5px; "&gt;&amp;nbsp;4&lt;/span&gt;&amp;nbsp; &amp;nbsp;public static Order createOrder(String orderType) {&lt;br /&gt; &lt;span class="code-lines" style="border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); color: rgb(0, 0, 0); margin-right: 5px; padding-top: 0px; padding-right: 5px; padding-bottom: 0px; padding-left: 5px; "&gt;&amp;nbsp;5&lt;/span&gt;&lt;br /&gt; &lt;span class="code-lines" style="border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); color: rgb(0, 0, 0); margin-right: 5px; padding-top: 0px; padding-right: 5px; padding-bottom: 0px; padding-left: 5px; "&gt;&amp;nbsp;6&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; if (&amp;quot;E&amp;quot;.equalsIgnoreCase(orderType) ) {&lt;br /&gt; &lt;span class="code-lines" style="border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); color: rgb(0, 0, 0); margin-right: 5px; padding-top: 0px; padding-right: 5px; padding-bottom: 0px; padding-left: 5px; "&gt;&amp;nbsp;7&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; return new ExportOrder();&lt;br /&gt; &lt;span class="code-lines" style="border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); color: rgb(0, 0, 0); margin-right: 5px; padding-top: 0px; padding-right: 5px; padding-bottom: 0px; padding-left: 5px; "&gt;&amp;nbsp;8&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; } else {&lt;br /&gt; &lt;span class="code-lines" style="border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); color: rgb(0, 0, 0); margin-right: 5px; padding-top: 0px; padding-right: 5px; padding-bottom: 0px; padding-left: 5px; "&gt;&amp;nbsp;9&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; return new ImportOrder();&lt;br /&gt; &lt;span class="code-lines" style="border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); color: rgb(0, 0, 0); margin-right: 5px; padding-top: 0px; padding-right: 5px; padding-bottom: 0px; padding-left: 5px; "&gt;10&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; }&lt;br /&gt; &lt;span class="code-lines" style="border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); color: rgb(0, 0, 0); margin-right: 5px; padding-top: 0px; padding-right: 5px; padding-bottom: 0px; padding-left: 5px; "&gt;11&lt;/span&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt; &lt;span class="code-lines" style="border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); color: rgb(0, 0, 0); margin-right: 5px; padding-top: 0px; padding-right: 5px; padding-bottom: 0px; padding-left: 5px; "&gt;12&lt;/span&gt;}&lt;br /&gt; &lt;span class="code-lines" style="border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); color: rgb(0, 0, 0); margin-right: 5px; padding-top: 0px; padding-right: 5px; padding-bottom: 0px; padding-left: 5px; "&gt;13&lt;/span&gt;// In OrderManager class, code will change to&lt;br /&gt; &lt;span class="code-lines" style="border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); color: rgb(0, 0, 0); margin-right: 5px; padding-top: 0px; padding-right: 5px; padding-bottom: 0px; padding-left: 5px; "&gt;14&lt;/span&gt;Order order = OrderFactory.createOrder(orderType);&lt;/div&gt; &lt;p&gt;&lt;br /&gt; You may now think that new is there in a factory also - so what is the difference. The difference is big. Earlier each client (you will agree that OrderManager will not be the only client of Order) will have to know the creation mechanism of Order and now it is encapsulated in one single factory class i.e. OrderFactory. If more types of orders are added in future, you will have add new Order Types and change only the Factory. The client will remain unchanged. Now this complies with OCP. OrderManager is not even aware of the name of implementation classes of Order abstraction. So you see new is bad in client, new is good in Factory. It is just that we are centralizing the creation mechanism of Order - Hence the pattern type - Creation&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;</summary>
    <dc:creator>Muhammed Shakir Misarwala</dc:creator>
    <dc:date>2010-04-09T18:09:54Z</dc:date>
  </entry>
  <entry>
    <title>Anemic Domain Model</title>
    <link rel="alternate" href="http://www.mpowerglobal.com/c/blogs/find_entry?entryId=48793" />
    <author>
      <name>Muhammed Shakir Misarwala</name>
    </author>
    <id>http://www.mpowerglobal.com/c/blogs/find_entry?entryId=48793</id>
    <updated>2010-04-09T17:39:26Z</updated>
    <published>2010-04-09T17:39:01Z</published>
    <summary type="html">&lt;p&gt;This is a model where you have business services written in Classes with each function in it &amp;nbsp;providing some signficant service behavior and domain objects having only setter getters with no behavior at all. There are millions who are under the impression that Domain Objects / Entities are only supposed to hold data. This may be true in case of Value Object but not Domain Objects or Business Entities. There is a world of a difference between Value Objects and Domain Objects (discussing difference is out of the scope of this discussion).&lt;/p&gt; &lt;p&gt;These functions in service classes make use of Domain Objects. For e.g. you may have a service class called BillngRateManager which in turm will use objects like Invoice, Customer and Product (consider that the rate is deduced based on the category of the customer and the product). Here BillingRateManager is the service class and Invoice, Customer and Product are domain objects. If you have created such domain objects in your application with mere setter getter and no business behavior at all, putting all the behavior in service classes then your application is a candidate Anemic Domain Model - and mind you - this is an ANTI&amp;nbsp;PATTERN.&lt;/p&gt; &lt;div class="portlet-msg-info"&gt;The fundamental horror of this anti-pattern is that it's so contrary to the basic idea of object-oriented design; which is to combine data and process together. The anemic domain model is really just a procedural style design (Martin Fowler)&lt;/div&gt; &lt;p&gt;Anemic model is more of a procedural approach though at first sight your application may really look like object oriented. My argument is that, how &amp;nbsp;are functions written in these service classes different then procedures ? Well, I&amp;nbsp;also understand that layering the application is very important and you must have separate layers for Business Services.&lt;/p&gt; &lt;div class="portlet-msg-info"&gt;Actually Service Layer advocates that - use a service in conjunction with a behavioral rich domain model &amp;nbsp;(Martin Fowler)&lt;/div&gt; &lt;p&gt;You can very well put domain specific logic like: Validations, calculations and other business rules in your domain objects. For e.g. I&amp;nbsp;have a class in my application called ServiceOrder. The calculation of the order amount is based on the number of days of the training program and the billing rate of that order. I&amp;nbsp;will not calculate this in a service class. Instead I&amp;nbsp;will implement this in ServiceOrder class it self&lt;/p&gt; &lt;div class="portlet-msg-info"&gt;In general, the more behavior you find in the services, the more likely you are to be robbing yourself of the benefits of a domain model. If all your logic is in services, you've robbed yourself blind. (Martin Fowler)&lt;/div&gt; &lt;p&gt;&amp;nbsp;&lt;em&gt;&lt;span style="font-size: small; "&gt;Eric Evans's excellent book Domain Driven Design has the following to say about these layers. &lt;/span&gt;&lt;/em&gt;&lt;span style="font-size: small; "&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt; &lt;div class="portlet-msg-info"&gt;&lt;u&gt;&lt;strong&gt;Application Layer [his name for Service Layer&lt;/strong&gt;&lt;/u&gt;&lt;strong&gt;]:&lt;/strong&gt; Defines the jobs the software is supposed to do and directs the expressive domain objects to work out problems. The tasks this layer is responsible for are meaningful to the business or necessary for interaction with the application layers of other systems. This layer is kept thin. It does not contain business rules or knowledge, but only coordinates tasks and delegates work to collaborations of domain objects in the next layer down. It does not have state reflecting the business situation, but it can have state that reflects the progress of a task for the user or the program.&lt;/div&gt; &lt;div class="portlet-msg-info"&gt;&lt;u&gt;&lt;strong&gt;Domain Layer (or Model Layer)&lt;/strong&gt;&lt;/u&gt;: Responsible for representing concepts of the business, information about the business situation, and business rules. State that reflects the business situation is controlled and used here, even though the technical details of storing it are delegated to the infrastructure. This layer is the heart of business software.&lt;/div&gt; &lt;p&gt;I&amp;nbsp;would like to support my argument with one more example where withdraw, deposit and payInterest methods are very elegantly designed in a class called Account (Needless to say that Account is an Entity Class and not a plain Service Class) - infact using a State Pattern (My discussion here has nothing to do with patterns - it is just a mention). Get this full fledged example from &lt;a href="http://www.dofactory.com/Patterns/PatternState.aspx"&gt;State Design Pattern on dofactory.com&lt;/a&gt;. The example there on dofactory.com in real-world example section is in C# but any java or C++ professional will be able to make sense out of the code.&lt;/p&gt; &lt;p&gt;&lt;em&gt;&lt;strong&gt;Feel free to sign-up and add your comments/questions/arguments&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt; &lt;p&gt;Finally - here is the link which will explain the rest -&amp;nbsp;&lt;a href="http://www.martinfowler.com/bliki/AnemicDomainModel.html"&gt;Martin Fowler on Anemic Domain Model&lt;/a&gt;.&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;</summary>
    <dc:creator>Muhammed Shakir Misarwala</dc:creator>
    <dc:date>2010-04-09T17:39:01Z</dc:date>
  </entry>
  <entry>
    <title>Actors &amp; Use Cases</title>
    <link rel="alternate" href="http://www.mpowerglobal.com/c/blogs/find_entry?entryId=48785" />
    <author>
      <name>Muhammed Shakir Misarwala</name>
    </author>
    <id>http://www.mpowerglobal.com/c/blogs/find_entry?entryId=48785</id>
    <updated>2010-04-09T17:37:17Z</updated>
    <published>2010-04-09T17:37:05Z</published>
    <summary type="html">&lt;p&gt;Actors &amp;amp;&amp;nbsp;Use Cases are UML&amp;nbsp;model elements that helps modeling system requirements.&lt;/p&gt; &lt;p&gt;Actors are those that interact with the system and those external systems with which the system interacts. A bank customer to an ATM&amp;nbsp;System is an actor to the system and also the external system with which the ATM&amp;nbsp;System interacts (passing on the transaction details) is also an actor. If you step into travel agents office and if he booking a ticket for you using reservation system, then you are not the actor to the system but the agent who is directly communicating with the system is the actor.&lt;/p&gt; &lt;p&gt;Use Cases are functional requirements in the system. Each fine grained system requirement is not a use case for e.g. Enter amount in ATM&amp;nbsp;System is not a use but &amp;quot;Withdraw Money&amp;quot; is. The sequence of actions system performs that yields an observable result of value to an actor is a Use Case. Non-functional requirements are never use cases for e.g. &amp;quot;System must&amp;nbsp;respond in less than 2 seconds for any given request&amp;quot; is not a use case.&amp;nbsp;&lt;/p&gt; &lt;p&gt;Use cases describe as to - what the actor does and in response what the system does. It is the interaction between the actor and the system. Use Case are not classes or functions in classes instead we can say that classes participate in the realization of use cases. Use Cases are used define the scope of the system. Actors &amp;amp; Use Cases are shown on use case diagrams. Stakeholders of the target organization can refer to this diagram to get a global view of Actors &amp;amp; Use Cases.&amp;nbsp;&lt;/p&gt; &lt;p&gt;There are relations like extends, includes and generalize between use cases but these relationships are based on common sequence of actions (common requirements)&amp;nbsp;and not based on common data. Also you do have show use cases on use case diagrams in some specific sequence. Use Case diagrams are not meant to describe the sequence in which the use cases are executed in the system.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 1em; padding-top: 0px"&gt;The entire software development process is driven by use cases. You identify requirements as use cases, you analyze use cases, you design use cases, you implement use cases, you test use cases, you get inputs from use cases to prepare test cases and test procedures, you prepare end-user document from use cases and finally the Project Manager plans the contents of the iteration based on &amp;nbsp;use cases.&amp;nbsp;&lt;/p&gt; &lt;div&gt;Conclusion: Actors, Use Cases and Use Case diagrams helps modeling system requirements. The approach here is not just to identify what the system is supposed to do but to identify what the system is supposed to do &lt;strong&gt;for each user.&amp;nbsp;&lt;/strong&gt;&lt;/div&gt;</summary>
    <dc:creator>Muhammed Shakir Misarwala</dc:creator>
    <dc:date>2010-04-09T17:37:05Z</dc:date>
  </entry>
  <entry>
    <title>Abstract Factory Design Pattern</title>
    <link rel="alternate" href="http://www.mpowerglobal.com/c/blogs/find_entry?entryId=48777" />
    <author>
      <name>Muhammed Shakir Misarwala</name>
    </author>
    <id>http://www.mpowerglobal.com/c/blogs/find_entry?entryId=48777</id>
    <updated>2010-04-09T17:36:04Z</updated>
    <published>2010-04-09T17:35:22Z</published>
    <summary type="html">&lt;p&gt;&amp;nbsp;&lt;font size="2"&gt;&lt;font color="#000000"&gt;&lt;font face="Arial, Helvetica, sans-serif"&gt;&lt;span style="font-style: normal"&gt;&lt;span style="font-weight: normal"&gt;If you have understood factory pattern, understanding abstract factory is a cake walk. How many create methods you have in a factory ? Answer is 1. How many product(s) does a factory return ? Answer is 1. Now if you are asked how many create methods or in other words, how many product(s) does an abstract factory create ? - Answer will be : More than 1.&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p align="left" style="margin-bottom: 0in; widows: 2; orphans: 2"&gt;&lt;font size="2"&gt;&lt;font color="#000000"&gt;&lt;font face="Arial, Helvetica, sans-serif"&gt;&lt;span style="font-style: normal"&gt;&lt;span style="font-weight: normal"&gt;&lt;br /&gt; Abstract factory will typically have more than 1 create methods. For e.g. you see Document interface (org.w3c.dom; the xml parser) - you will find methods like createElement, createAttribute, createComment and so on. All of these are factory methods in Document. So you see, each create returns to you a product and all of these create(s) are in Document; hence Document is an abstract factory. &lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;font face="Arial, Helvetica, sans-serif"&gt;&lt;span style="font-style: normal"&gt;&lt;b&gt;Very important: Each product returned by a factory method in abstract factory belongs to the same family&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;font face="Arial, Helvetica, sans-serif"&gt;&lt;span style="font-style: normal"&gt;&lt;span style="font-weight: normal"&gt;. Element, Attribute, Comment all belong to the same family that makes the XML structure.&lt;br /&gt; &lt;br /&gt; Yet another example is an Abstract Factory used to create product(s) that make up a GUI window. Say WidgetsFactory. This widget factory will have methods like createScrollBar, createTitleBar, createStatusBar etc. Note that they all belong to the same family - they are all components of window.&lt;br /&gt; &lt;br /&gt; The benefit of Abstract Factory is that you can have several concrete implementations of Abstract Factory. Each concrete implementation of Abstract Factory will return different product implementations. Like in the example of above, I can have ClassicStyleWidgetstFactory, StandardStyleWidgetsFactory as concrete implementation which will return different implementations (having different look &amp;amp; feel) of ScrollBar, TitleBar &amp;amp; StatusBar. Here these are the products the Abstract Factory creates.&lt;br /&gt; &lt;br /&gt; BTW, you can download the source code of all patterns from my downloads (menu option on main menu above) &amp;gt;&amp;gt; training material &amp;gt;&amp;gt; Design Patterns.&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;</summary>
    <dc:creator>Muhammed Shakir Misarwala</dc:creator>
    <dc:date>2010-04-09T17:35:22Z</dc:date>
  </entry>
  <entry>
    <title>Flex Startup Events</title>
    <link rel="alternate" href="http://www.mpowerglobal.com/c/blogs/find_entry?entryId=48768" />
    <author>
      <name>Muhammed Shakir Misarwala</name>
    </author>
    <id>http://www.mpowerglobal.com/c/blogs/find_entry?entryId=48768</id>
    <updated>2010-04-09T17:56:20Z</updated>
    <published>2010-04-09T17:30:04Z</published>
    <summary type="html">&lt;p&gt;&lt;span style="color: #545454; font-family: Arial; font-size: 12px;"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding: 0px;"&gt;&lt;span style="font-size: larger; "&gt;The order in which the events are dispatched by the application are preinitialize(), initialize(), creationComplete(), updateComplete() and applicationComplete().&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding: 0px;"&gt;&lt;span style="font-size: larger; "&gt;The events in more detail:&lt;br style="padding: 0px; margin: 0px;" /&gt; &lt;strong style="padding: 0px; margin: 0px;"&gt;preinitialize()&lt;/strong&gt;&amp;nbsp;is dispatched when the component has been attached to its parent container, but before the component has been initialized, or any of its children have been created. In most cases, this event is dispatched too early for an application to use to configure a component.&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding: 0px;"&gt;&lt;span style="font-size: larger; "&gt;&lt;strong style="padding: 0px; margin: 0px;"&gt;initialize()&lt;/strong&gt;&amp;nbsp;is dispatched when a component has finished its construction and its initialization properties have been set. At this point, all of the component&amp;rsquo;s immediate children have been created (they have at least dispatched their preinitialize() event), but they have not been laid out. Exactly when initialize events are dispatched depends on the container&amp;rsquo;s creation policy, as described later in this section.&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding: 0px;"&gt;Following on initialize event as given in &lt;strong&gt;flex4 &lt;/strong&gt;guide by adobe:&amp;nbsp;Dispatched when a component has finished its construction and its initialization properties have been set. At this point, all the component&amp;rsquo;s immediate children have been created (they have at least dispatched their preinitialize event), but &lt;strong&gt;they have not been laid out.&lt;/strong&gt; Exactly when initialize events are dispatched depends on the container&amp;rsquo;s creation policy.&lt;/p&gt; &lt;p class="MsoNormal" style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding: 0px;"&gt;Flex dispatches the initialize event for a container after it attaches all the container&amp;rsquo;s direct child controls and the container&amp;rsquo;s initially required children have dispatched a preinitialize event.&amp;nbsp;&lt;/p&gt; &lt;p class="MsoNormal" style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding: 0px;"&gt;When a container or control dispatches the initialize event, its initial properties have been set, but its width and height &lt;strong&gt;have not yet been calculated, and its position has not been calculated.&lt;/strong&gt; The initialize event is useful for configuring a container&amp;rsquo;s children. For example, you can use the container&amp;rsquo;s initialize event to &lt;strong&gt;programmatically add children or set a container scroll bar&amp;rsquo;s styles.&lt;/strong&gt; You can use a container or component&amp;rsquo;s initialize event to initialize the data provider for a control.&lt;/p&gt; &lt;p class="MsoNormal" style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding: 0px;"&gt;&lt;span style="font-size: larger; "&gt;&lt;strong&gt;render&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding: 0px;"&gt;&lt;span style="font-size: larger; "&gt;Later, to display the application, a&amp;nbsp;&lt;samp class="codeph" style="font-family: 'Courier New', Courier, monospace; font-size: 13px; "&gt;render&lt;/samp&gt;&amp;nbsp;event gets triggered, and Flex does the following:&lt;/span&gt;&lt;/p&gt; &lt;ol style="font-family: Verdana, Arial, Helvetica, sans-serif; list-style-type: lower-alpha; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 23px; margin-bottom: 0px; margin-left: 23px; "&gt;     &lt;li style="font-family: Verdana, Arial, Helvetica, sans-serif; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0.25em; margin-right: 6px; margin-bottom: 0.25em; margin-left: 6px; line-height: 16px; font-size: 11px; "&gt;&lt;span style="font-size: larger; "&gt;Flex completes all processing required to display the component, including laying out the component.&lt;/span&gt;&lt;/li&gt;     &lt;li style="font-family: Verdana, Arial, Helvetica, sans-serif; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0.25em; margin-right: 6px; margin-bottom: 0.25em; margin-left: 6px; line-height: 16px; font-size: 11px; "&gt;&lt;span style="font-size: larger; "&gt;Flex makes the component visible by setting the&amp;nbsp;&lt;samp class="codeph" style="font-family: 'Courier New', Courier, monospace; font-size: 13px; "&gt;visible&lt;/samp&gt;&amp;nbsp;property to&amp;nbsp;&lt;samp class="codeph" style="font-family: 'Courier New', Courier, monospace; font-size: 13px; "&gt;true&lt;/samp&gt;.&lt;/span&gt;&lt;/li&gt;     &lt;li style="font-family: Verdana, Arial, Helvetica, sans-serif; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0.25em; margin-right: 6px; margin-bottom: 0.25em; margin-left: 6px; line-height: 16px; font-size: 11px; "&gt;&lt;span style="font-size: larger; "&gt;Flex dispatches the&amp;nbsp;&lt;samp class="codeph" style="font-family: 'Courier New', Courier, monospace; font-size: 13px; "&gt;creationComplete&lt;/samp&gt;&amp;nbsp;event on the component. The component has been sized and processed for layout and all properties are set. This event is dispatched only once when the component is created.&lt;/span&gt;&lt;/li&gt;     &lt;li style="font-family: Verdana, Arial, Helvetica, sans-serif; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0.25em; margin-right: 6px; margin-bottom: 0.25em; margin-left: 6px; line-height: 16px; font-size: 11px; "&gt;&lt;span style="font-size: larger; "&gt;Flex dispatches the&amp;nbsp;&lt;samp class="codeph" style="font-family: 'Courier New', Courier, monospace; font-size: 13px; "&gt;updateComplete&lt;/samp&gt;&amp;nbsp;event on the component. Flex dispatches additional&amp;nbsp;&lt;samp class="codeph" style="font-family: 'Courier New', Courier, monospace; font-size: 13px; "&gt;updateComplete&lt;/samp&gt;&amp;nbsp;events whenever the position, size, or other visual characteristic of the component changes and the component has been updated for display.&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p class="MsoNormal" style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding: 0px;"&gt;&lt;span style="font-size: larger; "&gt;&lt;strong style="padding: 0px; margin: 0px;"&gt;creationComplete()&lt;/strong&gt;&amp;nbsp;is dispatched when the component, and all of its child components, and all of their children, and so on have been created, laid out, and are visible.&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding: 0px;"&gt;&lt;span style="font-size: larger; "&gt;&lt;strong style="padding: 0px; margin: 0px;"&gt;updateComplete()&lt;/strong&gt;&amp;nbsp;is dispatched every time the container or component characteristics are changed.&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding: 0px;"&gt;&lt;span style="font-size: larger; "&gt;&lt;strong style="padding: 0px; margin: 0px;"&gt;applicationComplete()&lt;/strong&gt;&amp;nbsp;dispatches events after the Application has been initialized, processed by the LayoutManager and added to the display list. This is the last event dispatched during an application startup. It is later than the application&amp;rsquo;s creationComplete() event, which gets dispatched before the preloader has been removed and the application has been attached to the display list.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Following as explained in Flex 4 Documentation&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;preInitialize&lt;/strong&gt;:&amp;nbsp;Dispatched when a component has been created in a rough state, and no children have been created.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;initialize&lt;/strong&gt;: &amp;nbsp;Dispatched when a component and all its children have been created, but before the component size has been determined.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;creationComplete&lt;/strong&gt;:&amp;nbsp;Dispatched when the component has been laid out and the component is visible (if appropriate).&lt;/p&gt; &lt;p&gt;You can use the &lt;strong&gt;initialize&amp;nbsp;&lt;/strong&gt;event to configure most component characteristics; in particular, use it to configure any value that affects the component&amp;rsquo;s size. Use the&amp;nbsp;&lt;strong&gt;creationComplete&amp;nbsp;&lt;/strong&gt;event if your initialization code must get information about the component layout.&lt;/p&gt; &lt;p&gt;Note that there is one &lt;strong&gt;contentCreationComplete &lt;/strong&gt;event as well which is dispatched after all container children are created, and before the children dispatch the&amp;nbsp;creationComplete&amp;nbsp;event. This event is not available for Group and DataGroup (Flex 4)&lt;/p&gt;</summary>
    <dc:creator>Muhammed Shakir Misarwala</dc:creator>
    <dc:date>2010-04-09T17:30:04Z</dc:date>
  </entry>
  <entry>
    <title>Interportlet Communication in Liferay</title>
    <link rel="alternate" href="http://www.mpowerglobal.com/c/blogs/find_entry?entryId=48752" />
    <author>
      <name>Muhammed Shakir Misarwala</name>
    </author>
    <id>http://www.mpowerglobal.com/c/blogs/find_entry?entryId=48752</id>
    <updated>2010-04-09T17:16:34Z</updated>
    <published>2010-04-09T17:15:41Z</published>
    <summary type="html">&lt;p&gt;Liferay is state-of-art, open source portal platform that runs on any J2EE Web Container. Here in this blog I&amp;nbsp;will explain how to make two portlets communication with each other.&lt;/p&gt; &lt;p&gt;Portlets are applications that can be pluged &amp;amp; played on a portal page. Portal is a platform which helps integrate multiple applications under one single URL with single sign-on and excellent content management mechanism.&lt;/p&gt; &lt;p&gt;Each portlet on a portal can be a use case which in turn may be the part of a large application or a complete (small) application in itself with several menu options to invoke different use cases. Specially in case of one portlet designed to stand as one use case and the other portlet as another, there are high chances that would need these portlets to communicate with each other. Let us take an example&amp;nbsp;- say I&amp;nbsp;have a portlet which displays the blog entry (BlogDisplay Portlet)&amp;nbsp;and I&amp;nbsp;have another portlet that displays the list of topics (TopicsList Portlet)&amp;nbsp;and both these portlets are put side by side to each other. When the user selects a topic in TopicsList Portlet, the BlogDisplay Portlet must display the blog associated to selected topic. Needless-to-say that BlogPortlet would need to know the topic selected in TopicsList Portlet. There are two ways of making these portlets communicate with each other.&lt;/p&gt; &lt;ol&gt;     &lt;li&gt;&amp;nbsp;You can construct the hyperlinks on topic names (using &lt;b&gt;&amp;lt;liferay-portlet:actionURL/&amp;gt;)&amp;nbsp;&lt;/b&gt;in TopicList Portlet in such a way that it invokes Action Request on BlogDisplay Portlet passing topicId as parameter. BlogDisplay Portlet will get the value of topicId using &lt;code&gt;actionRequest.getParameter(&amp;quot;topicId&amp;quot;);&lt;/code&gt;&lt;/li&gt;     &lt;li&gt;You can construct hyperlink on topic names in TopicList Portlet such that it invokes Action Request on TopicList Portlet itself which in turn can invoke an event adding topicId as pay load to the event. BlogDisplay Portlet can be configured to listen to this event and process the same making use of the pay load which is nothing but topicId.&lt;/li&gt; &lt;/ol&gt; &lt;h3&gt;Method 1 (Using &amp;lt;liferay-portlet:actionURL/&amp;gt;)&lt;/h3&gt; &lt;p&gt;Open view.jsp of TopicList Portlet. Create a hyperlink in this jsp as follows:&lt;/p&gt; &lt;p&gt;&lt;b&gt;&amp;lt;a href=&amp;quot;&amp;lt;liferay-portlet:actionURL portletName='BlogDisplayPorltet_WAR_BlogDisplayPortletportlet_INSTANCE_'&amp;gt; &lt;/b&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;portlet:param name=&amp;quot;topicId&amp;quot; value=&amp;quot;101&amp;quot;/&amp;gt;              &amp;lt;/liferay-portlet:actionURL&amp;gt;&amp;quot;&amp;gt;&lt;/b&gt;&lt;b&gt;Invoice Portlet&amp;lt;/a&amp;gt;  &lt;br type="_moz" /&gt; &lt;/b&gt;&lt;/p&gt; &lt;p&gt;Here&amp;nbsp;portlet name&amp;nbsp;that&amp;nbsp;I&amp;nbsp;have used is the one that&amp;nbsp;is constructed by liferay&amp;nbsp;while creating the portlet instance.&amp;nbsp;Also note that the value of topicId is&amp;nbsp;hardcoded here for&amp;nbsp;simplicity. In real life you&amp;nbsp;will get this value&amp;nbsp;set dynamically.&lt;/p&gt; &lt;p&gt;Now in processAction method of&amp;nbsp;BlogDisplay Portlet&amp;nbsp;simple write the following statement:&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;code&gt;String topicId = actionRequest.getParameter(&amp;quot;topicId&amp;quot;);&lt;/code&gt;&lt;/p&gt; &lt;p&gt;System.out.println('The topic&amp;nbsp;Id is :&amp;nbsp;&amp;quot;&amp;nbsp;+&amp;nbsp;topicId);&amp;nbsp;&lt;/p&gt; &lt;h3&gt;Method 2 (Using Events)&lt;/h3&gt; &lt;p&gt;First and foremost you must make note of the fact that Event based communication is possible with only those portal frameworks that are JSR&amp;nbsp;268 compliant. Liferay from 5.x onwards is full fledged compliant with JSR&amp;nbsp;268&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Open&amp;nbsp;portlet.xml file in TopicsList Portlet and do the following:&lt;/strong&gt;&lt;/p&gt; &lt;pre&gt;&lt;u&gt;&lt;strong&gt;&lt;i&gt;Following lines as last lines between &amp;lt;portlet&amp;gt; &amp;lt;/portlet&amp;gt;&lt;/i&gt; &lt;/strong&gt;&lt;/u&gt;&amp;lt;supported-publishing-event&amp;gt;
	&amp;lt;qname xmlns:x=&amp;quot;http://localhost:8080/events&amp;quot;&amp;gt;x:topic&amp;lt;/qname&amp;gt;             
&amp;lt;/supported-publishing-event&amp;gt;

&lt;strong&gt;&lt;u&gt;&lt;i&gt;Following lines just before &amp;lt;/portlet-app&amp;gt;&lt;/i&gt; &lt;/u&gt;&lt;/strong&gt;&amp;lt;event-definition&amp;gt;
	&amp;lt;qname xmlns:x=&amp;quot;http://localhost:8080/events&amp;quot;&amp;gt;x:topic&amp;lt;/qname&amp;gt;
	&amp;lt;value-type&amp;gt;java.lang.String&amp;lt;/value-type&amp;gt;
&amp;lt;/event-definition&amp;gt;&lt;/pre&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Now open JSPPortlet.java in TopicsList Porlet and do the following:&lt;/strong&gt;&lt;/p&gt; &lt;pre&gt;&lt;u&gt;&lt;b&gt;&lt;i&gt;Write the following lines in processAction method&lt;/i&gt;&lt;/b&gt; &lt;/u&gt; String topicId = &amp;quot;10555&amp;quot;;
 QName name = new QName(&amp;quot;http://localhost:8080/events&amp;quot;, &amp;quot;topic&amp;quot;);
 System.out.println(&amp;quot;Invoking Event from OrderPortlet&amp;quot;);
 actionResponse.setEvent(name, topicId);		
 System.out.println(&amp;quot;Event invoked from OrderPortlet - successfully&amp;quot;);&lt;/pre&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Now open portlet.xml file of BlogDisplay Portlet and do the following:&lt;/strong&gt;&lt;/p&gt; &lt;pre&gt;&lt;u&gt;&lt;b&gt;&lt;i&gt;Following lines as last lines between &amp;lt;portlet&amp;gt; &amp;lt;/portlet&amp;gt;&lt;/i&gt;&lt;/b&gt; &lt;/u&gt;&amp;lt;supported-processing-event&amp;gt;
  &amp;lt;name&amp;gt;topic&amp;lt;/name&amp;gt;
&amp;lt;/supported-processing-event&amp;gt;

&lt;u&gt;&lt;b&gt;&lt;i&gt;Following lines just before &amp;lt;/portlet-app&amp;gt; &lt;/i&gt;&lt;/b&gt;&lt;/u&gt;&amp;lt;default-namespace&amp;gt;http://localhost:8080/events&amp;lt;/default-namespace&amp;gt;     
&amp;lt;event-definition&amp;gt;
   &amp;lt;name&amp;gt;topic&amp;lt;/name&amp;gt;
  &amp;lt;value-type&amp;gt;java.lang.String&amp;lt;/value-type&amp;gt;
&amp;lt;/event-definition&amp;gt;
&lt;/pre&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Finally do the following in JSPPortlet.java&amp;nbsp;of BlogDisplay Portlet&amp;nbsp;&lt;/strong&gt;&lt;/p&gt; &lt;pre&gt;&lt;u&gt;&lt;strong&gt;&lt;i&gt;Write the following method&lt;/i&gt; &lt;/strong&gt;&lt;/u&gt;public void processEvent(EventRequest req, EventResponse resp) {
		Event event = req.getEvent();
  if (event.getName().equals(&amp;quot;topic&amp;quot;)) {
	String payload = (String) event.getValue();
	System.out.println(&amp;quot; ----------- In processEvent of Invoice Portlet : &amp;quot; + payload);                       
	resp.setRenderParameter(&amp;quot;topicId&amp;quot;, payload);
  }
}

&lt;u&gt;&lt;b&gt;&lt;i&gt;Write the following SOP in doView method&lt;/i&gt;&lt;/b&gt; &lt;/u&gt;System.out.println(&amp;quot;In doView of Invoice Portlet : &amp;quot; + 
  renderRequest.getParameter(&amp;quot;topicId&amp;quot;) + &amp;quot; Subject Id : &amp;quot;+ 
    renderRequest.getParameter(&amp;quot;subjectId&amp;quot;));
&lt;/pre&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;</summary>
    <dc:creator>Muhammed Shakir Misarwala</dc:creator>
    <dc:date>2010-04-09T17:15:41Z</dc:date>
  </entry>
  <entry>
    <title>Developing themes</title>
    <link rel="alternate" href="http://www.mpowerglobal.com/c/blogs/find_entry?entryId=46622" />
    <author>
      <name>Neha Pankaj Patel</name>
    </author>
    <id>http://www.mpowerglobal.com/c/blogs/find_entry?entryId=46622</id>
    <updated>2010-04-05T12:02:19Z</updated>
    <published>2010-04-05T12:01:15Z</published>
    <summary type="html">&lt;p&gt;1. Developing Themes For Liferay&lt;br /&gt;2. Download liferay-plugins-sdk-5.2.3 and unzip it.&lt;br /&gt;3. Create Java Project in your eclipse&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;1.New-&amp;gt;Java Project&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;2.Project Name :-any name that you want&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;3.Select Create Project from existing source and select your liferay-plugins-sdk-5.2.3 folder&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;4.finish.&lt;br /&gt;&lt;br /&gt;3. Inside liferay-plugins-sdk-5.2.3 folder there is build.properties file copy that file and rename&lt;br /&gt;&amp;nbsp;that copied file with build.${username}.properties&lt;br /&gt;4. open&amp;nbsp; build.${username}.properties file now go to specify the paths to an unzipped tomcat 5.5.x bundle line&lt;br /&gt;&amp;nbsp;&amp;nbsp; and give path for your tomcat and comment the properties for tomcat 6.0 version(which is by default). If you are using tomcat 6.0 give path for tomcate 6.0.&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;5. Now open command prompt go to your liferay-plugins-sdk-5.2.3 folder,in that go to themes&lt;br /&gt;6. Give command as follows.&lt;br /&gt;&amp;nbsp;E:\liferaytraining\liferay-plugins-sdk-5.2.3\themes&amp;gt;create first &amp;quot;first&amp;quot; &lt;br /&gt;&amp;nbsp;&lt;br /&gt;7. Now go to your eclipse and refresh the themes folder. There you can see the folder name with &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; first-theme.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; In this first-theme two more folders will be there 1._diffs and 2.WEB-INF&lt;br /&gt;8.Now inside _diffs folder create 4 folders as follows.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 1.css&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 2.images&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 3.javascript&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 4.templates&lt;br /&gt;&lt;br /&gt;9.&amp;nbsp;&amp;nbsp;&amp;nbsp; You can download sample themes from Lifery web site&amp;nbsp;&amp;nbsp;&amp;nbsp; these themes will be available as .war file&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; download few of them. And unzip them.&lt;br /&gt;10. Form thad unzip theme folder copy four folders css,templates,images and javascript copy them to your&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; first-theme\_diffs folder.&lt;br /&gt;11. Open command prompt go to your first-theme folder and give ant deploy command as follows.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; E:\liferaytraining\liferay-plugins-sdk-5.2.3\themes\first-theme&amp;gt;ant deploy&lt;br /&gt;12. Restart your tomcat and login.&lt;br /&gt;13.Go to Manage Pages and click on look And Feel, there you can see your newly deployed theme. apply it.&lt;/p&gt;</summary>
    <dc:creator>Neha Pankaj Patel</dc:creator>
    <dc:date>2010-04-05T12:01:15Z</dc:date>
  </entry>
  <entry>
    <title>Introduction to Liferay</title>
    <link rel="alternate" href="http://www.mpowerglobal.com/c/blogs/find_entry?entryId=45278" />
    <author>
      <name>Muthukumar Thangavinayagam</name>
    </author>
    <id>http://www.mpowerglobal.com/c/blogs/find_entry?entryId=45278</id>
    <updated>2010-03-29T05:37:45Z</updated>
    <published>2010-03-27T11:09:15Z</published>
    <summary type="html">&lt;p&gt;&lt;strong&gt;LifeRay&lt;/strong&gt; is one of the leading open source CMS software platforms available for social networking, portal development, business intranets, corporate extranets, forums, archives, and general web publishing. LifeRay has already been downloaded over 1 million times, with an average of over 60,000 downloads per month. The software comes with numerous bundled versions and has already won accolades such as the InfoWorld 2007 Technology of the Year Award for Best Open Source Portal.&lt;/p&gt; &lt;p&gt;The LifeRay Portal is composed of two main sections: the LifeRay Journal and the LifeRay Collaboration Suite. The LifeRay Journal is the content management system of the portal, allowing web publishers to easily post content, manage pages, create hierarchical menus, and site structure. The LifeRay Collaboration Suite is the social networking aspect of the portal, which includes forums, wiki collaboration, blogs, email, calendars, and tagging. Both of these can be extended by open source &amp;ldquo;portlets&amp;rdquo; that add increased functionality to the system.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;The LifeRay Journal:&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;LifeRay Journal is LifeRay Portal&amp;rsquo;s built-in content management system (CMS) ready to deliver portal-based web publishing and document management.&lt;/p&gt; &lt;ul&gt;&lt;li&gt;Web Publishing&lt;/li&gt;&lt;li&gt;Document Library &amp;amp; Image Gallery&lt;/li&gt;&lt;li&gt;Java Content Repository&lt;/li&gt;&lt;li&gt;Image Gallery&lt;/li&gt;&lt;li&gt;Portal Publishing&lt;/li&gt;&lt;li&gt;Searchable Pages&lt;/li&gt;&lt;li&gt;Tagging&lt;/li&gt;&lt;li&gt;Easy Article Creation&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;The LifeRay Collaboration Suite:&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Forums:&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;Message Boards&lt;/li&gt;&lt;li&gt;Sticky Posts&lt;/li&gt;&lt;li&gt;Statistics&lt;/li&gt;&lt;li&gt;Recent Posts&lt;/li&gt;&lt;li&gt;RSS&lt;/li&gt;&lt;li&gt;Email-based Subscriptions&lt;/li&gt;&lt;li&gt;Avatars&lt;/li&gt;&lt;li&gt;Threads Management&lt;/li&gt;&lt;li&gt;Permissions&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Blogs:&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;User Blogs&lt;/li&gt;&lt;li&gt;RSS Support&lt;/li&gt;&lt;li&gt;Threaded User List&lt;/li&gt;&lt;li&gt;Guest Comments&lt;/li&gt;&lt;li&gt;Email Notifications of Blog Replies&lt;/li&gt;&lt;li&gt;Tags and Labels&lt;/li&gt;&lt;li&gt;Entry Rating System&lt;/li&gt;&lt;li&gt;Social Bookmarking Links&lt;/li&gt;&lt;li&gt;Blog Aggregator&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;&lt;br /&gt; Wikis:&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;Built-in User Management&lt;/li&gt;&lt;li&gt;LDAP Integration &amp;amp; Permissions&lt;/li&gt;&lt;li&gt;Multiple Wikis per Installation&lt;/li&gt;&lt;li&gt;Versioning and Reversion Capabilities&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;&lt;br /&gt; Other Features:&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;Mail&lt;/li&gt;&lt;li&gt;Microformats Support&lt;/li&gt;&lt;li&gt;Shared Calendaring&lt;/li&gt;&lt;li&gt;Enterprise Instant&lt;/li&gt;&lt;li&gt;RSS&lt;/li&gt;&lt;li&gt;Tagging&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Portlets:&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;Administration&lt;/li&gt;&lt;li&gt;Content Management&lt;/li&gt;&lt;li&gt;Collaboration&lt;/li&gt;&lt;li&gt;Community&lt;/li&gt;&lt;li&gt;Entertainment&lt;/li&gt;&lt;li&gt;Personal Tools&lt;/li&gt;&lt;li&gt;Shopping Tools&lt;/li&gt;&lt;li&gt;Developer Tools&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;There are many benefits to the LifeRay Portal software, first and foremost of which are its open source code base and large community of international users. LifeRay provides an intuitive and collaborative user experience and allows publishers to consolidate, organize and access all their data and applications via a single point of access. It is also a cost effective way to optimize your development costs and adapt to the demands of a changing market.&lt;/p&gt; &lt;p&gt;The LifeRay CMS has one of the most impressive client lists of any open source portal software. From IT, Financial Services, and Retail Companies, to Non-Profits, Educational Groups, and Governmental Agencies, LifeRay CMS has hundreds of thousands of web sites deployed with its architecture. The professionalism, scalability, and affordability of LifeRay make it a wise choice for any web development department.&lt;/p&gt;</summary>
    <dc:creator>Muthukumar Thangavinayagam</dc:creator>
    <dc:date>2010-03-27T11:09:15Z</dc:date>
  </entry>
  <entry>
    <title>Search Container</title>
    <link rel="alternate" href="http://www.mpowerglobal.com/c/blogs/find_entry?entryId=44064" />
    <author>
      <name>vc vijayan</name>
    </author>
    <id>http://www.mpowerglobal.com/c/blogs/find_entry?entryId=44064</id>
    <updated>2010-03-22T07:16:30Z</updated>
    <published>2010-03-22T07:16:22Z</published>
    <summary type="html">&lt;pre&gt;
STEP1:(GET THE LIST YOU WANT TO ITERATE)

	For Example: I am getting imageList
	List&amp;lt;MPImage&amp;gt; imageList = (List) ps.getAttribute(&amp;quot;IMAGE_LIST&amp;quot;);

STEP2:(SEARCH-CONTAINER)

	&amp;lt;liferay-ui:search-container iteratorURL=&amp;quot;&amp;lt;%= url %&amp;gt;&amp;quot;  delta=&amp;quot;5&amp;quot; emptyResultsMessage=&amp;quot;Sorry. There are no images to display.&amp;quot;&amp;gt;
	&amp;lt;/liferay-ui:search-container&amp;gt;

    By default it contains three attribute iteratorURL, delta and emptyResultsMessage.

    iteratorURL(Optional) - If you try to show the list in the first page of the portlet. Then there is no need to mention the url.
					Otherwise you need to mention the url.

    
	delta(Optional) - It is used for mention the size of the iterator. By default it will show 20 list. If you want to mention you can mention delta.

    emptyResultsMessage(Optional) - If the list is empty it will show the message.

STEP3:(SEARCH-CONTAINER-RESULTS)

&amp;lt;liferay-ui:search-container-results  
	total=&amp;quot;&amp;lt;%= imageList.size() %&amp;gt;&amp;quot; 
	results=&amp;quot;&amp;lt;%= ListUtil.subList(imageList, searchContainer.getStart(), searchContainer.getEnd()) %&amp;gt;&amp;quot;
/&amp;gt;

total - We need to mention the total size of the list.
results - It will sublist accoriding to your delta value.

STEP4:(SEARCH-CONTAINER-ROW)

	This is the row.

    &amp;lt;liferay-ui:search-container-row modelVar=&amp;quot;images&amp;quot; className=&amp;quot;com.inikah.common.model.MPImage&amp;quot; &amp;gt;
	&amp;lt;/liferay-ui:search-container-row&amp;gt;

    modelVar - This is the object of the first list.
	className - Here we need to mention the className of our entity.

STEP5:(SEARCH-CONTAINER-COLUMN)

	This is the COLUMN.

	Example 1:

	&amp;lt;liferay-ui:search-container-column-text name=&amp;quot;Image&amp;quot; property=&amp;quot;imageId&amp;quot; /&amp;gt;

	name - It is the name which will be displayed in the row.(Header)
	property - It is the value. Here we need to mention field name.

	Example 2:

	&amp;lt;liferay-ui:search-container-column-text name=&amp;quot;Image&amp;quot; value=&amp;quot;&amp;lt;%= images.getImageId() + 'H' %&amp;gt;&amp;quot; /&amp;gt;

	value - If you want to modify the field value, That time use value attribute to display.

	Example 3:
	
	&amp;lt;liferay-ui:search-container-column-text name=&amp;quot;Image&amp;quot;&amp;gt;
		Hai how are you.&amp;lt;br/&amp;gt;
		&amp;lt;%= images.getImageId() %&amp;gt;
	&amp;lt;/liferay-ui:search-container-column-text&amp;gt;

	If you want to display huge data under that column that time use the above format.

STEP6:(SEARCH-ITERATOR)
	
	&amp;lt;liferay-ui:search-iterator searchContainer=&amp;quot;&amp;lt;%= searchContainer %&amp;gt;&amp;quot; /&amp;gt;

	This is the main tag. If you dint place this tag nothing will appear.


SAMPLE EXAMPLE:

&amp;lt;% List&amp;lt;MPImage&amp;gt; imageList = (List) ps.getAttribute(&amp;quot;IMAGE_LIST&amp;quot;); %&amp;gt;
&amp;lt;liferay-ui:search-container delta=&amp;quot;5&amp;quot; emptyResultsMessage=&amp;quot;Sorry. There are no images to display.&amp;quot;&amp;gt;
	&amp;lt;liferay-ui:search-container-results  
 		total=&amp;quot;&amp;lt;%= imageList.size() %&amp;gt;&amp;quot; 
 		results=&amp;quot;&amp;lt;%= ListUtil.subList(imageList, searchContainer.getStart(), searchContainer.getEnd()) %&amp;gt;&amp;quot;
	/&amp;gt;
	&amp;lt;liferay-ui:search-container-row modelVar=&amp;quot;images&amp;quot; className=&amp;quot;com.inikah.common.model.MPImage&amp;quot; &amp;gt;
		&amp;lt;%
			Profile profile = ProfileLocalServiceUtil.getProfile(images.getProfileId());
			long imageId = images.getImageId();
			
			String content = &amp;quot;&amp;lt;b&amp;gt;&amp;quot; + profile.getProfileCode() + &amp;quot;&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;&amp;quot; + profile.getProfileName()+ &amp;quot;&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;&amp;quot; + (profile.getGender() ? &amp;quot;Female&amp;quot; : &amp;quot;Male&amp;quot; + &amp;quot;&amp;lt;/b&amp;gt;&amp;quot;);
			String approve = &amp;quot;&amp;lt;select name='image_&amp;quot; + imageId + &amp;quot;'&amp;gt;&amp;lt;option value='0'&amp;gt;Pending&amp;lt;/option&amp;gt;&amp;lt;option value='1'&amp;gt;Accept&amp;lt;/option&amp;gt;&amp;lt;option value='2'&amp;gt;Reject&amp;lt;/option&amp;gt;&amp;lt;/select&amp;gt;&amp;quot;;
			String imageURL = &amp;quot;[$link_url$]&amp;lt;img border='2' src='[$image_url$]' width='60px' height='70px'&amp;gt;&amp;lt;/a&amp;gt;&amp;quot;;
			imageURL = StringUtil.replace(imageURL, &amp;quot;[$image_url$]&amp;quot;, themeDisplay.getPathMain() + &amp;quot;/ext/reports/image?imageId=&amp;quot; + imageId + &amp;quot;&amp;amp;tn=small&amp;quot;);
			imageURL = StringUtil.replace(imageURL, &amp;quot;[$link_url$]&amp;quot;, &amp;quot;&amp;lt;a href='&amp;quot; + themeDisplay.getPathMain() + &amp;quot;/ext/reports/image?imageId=&amp;quot; + imageId + &amp;quot;&amp;amp;download=2' rel='lightbox'&amp;gt;&amp;quot;);
			String DownloadUrl = themeDisplay.getPathMain() + &amp;quot;/ext/reports/image?imageId=&amp;quot; + imageId + &amp;quot;&amp;amp;download=1&amp;quot;;
		%&amp;gt;
		&amp;lt;liferay-ui:search-container-column-text name=&amp;quot;Image&amp;quot; value=&amp;quot;&amp;lt;%= imageURL %&amp;gt;&amp;quot; /&amp;gt;
		&amp;lt;liferay-ui:search-container-column-text name=&amp;quot;Download&amp;quot; value=&amp;quot;Download&amp;quot; href=&amp;quot;&amp;lt;%= DownloadUrl %&amp;gt;&amp;quot;/&amp;gt;
		&amp;lt;liferay-ui:search-container-column-text name=&amp;quot;Details&amp;quot; value=&amp;quot;&amp;lt;%= content %&amp;gt;&amp;quot; /&amp;gt;
		&amp;lt;liferay-ui:search-container-column-text name=&amp;quot;Status&amp;quot; value=&amp;quot;&amp;lt;%= approve %&amp;gt;&amp;quot; /&amp;gt;
	&amp;lt;/liferay-ui:search-container-row&amp;gt;
	&amp;lt;liferay-ui:search-iterator searchContainer=&amp;quot;&amp;lt;%= searchContainer %&amp;gt;&amp;quot; /&amp;gt;
&amp;lt;/liferay-ui:search-container&amp;gt;
	
&lt;/pre&gt;</summary>
    <dc:creator>vc vijayan</dc:creator>
    <dc:date>2010-03-22T07:16:22Z</dc:date>
  </entry>
  <entry>
    <title>Installing Liferay 5.2.3 on Existing Apache Tomcat 6.0.24</title>
    <link rel="alternate" href="http://www.mpowerglobal.com/c/blogs/find_entry?entryId=41762" />
    <author>
      <name>Arun Kumar S</name>
    </author>
    <id>http://www.mpowerglobal.com/c/blogs/find_entry?entryId=41762</id>
    <updated>2010-03-11T06:41:16Z</updated>
    <published>2010-03-11T06:15:40Z</published>
    <summary type="html">&lt;p&gt;&lt;em&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;em&gt;&lt;span style="font-size: small;"&gt;1. Download and install Apache Tomcat&amp;nbsp; 6.0.24 into your preferred directory.&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;span style="font-size: small;"&gt;2. Download and install JDK 5 . Set an environment variable called %JAVA_HOME% (in Windows) or $JAVA_HOME (in&amp;nbsp;&amp;nbsp; Linux/UNIX) to point to your JDK directory.&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;3. Create and edit $TOMCAT_HOME/conf/Catalina/localhost/ROOT.xml to set up the portal web application.&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Context path=&amp;quot;&amp;quot; debug=&amp;quot;0&amp;quot; reloadable=&amp;quot;true&amp;quot; cookies=&amp;quot;true&amp;quot; crossContext=&amp;quot;false&amp;quot; privileged=&amp;quot;false&amp;quot; /&amp;gt;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;4. Download liferay-portal-5.2.3.war. &lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;5. Download Liferay's Portal 5.2.3 Dependencies. &lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.1. Create a $TOMCAT_HOME/lib/ext directory and unzip the dependencies ZIP in there. &lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;span style="font-size: small;"&gt;6. Edit $TOMCAT_HOME/conf/catalina.properties. common.loader= ${catalina.home}/common/classes,\ ...\ ${catalina.home}/common/lib/ext/*.jar &lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;7. Make sure your database server is installed and is working. &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If it's installed in a different machine make sure that it's accessible from the one where Liferay is being installed.&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;8. Configure data sources for your database. Make sure the JDBC driver for your database is accessible by Tomcat.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8.1. Obtain the JDBC driver for your version of the database server. In the case of MySQL use mysql-connector-java-{$version}-bin.jar. &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8.2. Copy the JAR file to $TOMCAT_HOME/lib/ext&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;span style="font-size: small;"&gt;9. Create a database for Liferay.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; For example: create database lportal character set utf8; Liferay will automatically create the tables and populate it the first time it starts. &lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;span style="font-size: small;"&gt;10. To add support for accessing Liferay's services remotely and to access the document library using WebDAV follow these steps: &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10.1. Download tunnel-web.war &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10.2. Create a directory called $TOMCAT_HOME/webapps/tunnel and unzip the WAR contents inside&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;span style="font-size: small;"&gt;11. Create $TOMCAT_HOME/conf/jaas.config. &lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PortalRealm { com.liferay.portal.kernel.security.jaas.PortalLoginModule required; };&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;12. Edit $TOMCAT_HOME/bin/catalina.bat so that Tomcat can reference the login module.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set JAVA_OPTS=-Xms128m -Xmx512m -Dfile.encoding=UTF8 -Duser.timezone=GMT&amp;nbsp; -Djava.security.auth.login.config=%CATALINA_HOME%/conf/jaas.config&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;span style="font-size: small;"&gt;13. Delete contents $TOMCAT_HOME/webapps/ROOT directory. &lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;14. Unpack liferay-portal-5.2.3.war to $TOMCAT_HOME/webapps/ROOT. &lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;15. For supporting UTF-8 UIRIEncoding, edit $TOMCAT_HOME/conf/server.xml.&amp;nbsp; &lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;16. Run Tomcat, point browser to http://localhost:8080. Sign in as test@liferay.com and password test &lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;NOTE: ---- ************copy the following jar files in lib/ext folder to avoid startup problem:******** &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;activation.jar annotations.jar ccpp.jar container.jar hsql.jar jms.jar jta.jar jutf7.jar mail.jar mysql.jar portal-kernel.jar &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;portal-service.jar portlet-container.jar portlet.jar postgresql.jar serializer.jar support-tomcat.jar xalan.jar xercesImpl.jar&amp;nbsp; &lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xml-apis.jar&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;</summary>
    <dc:creator>Arun Kumar S</dc:creator>
    <dc:date>2010-03-11T06:15:40Z</dc:date>
  </entry>
  <entry>
    <title>Load Balancing and Clustering  - Liferay Tomcat along with apache on same windows machine</title>
    <link rel="alternate" href="http://www.mpowerglobal.com/c/blogs/find_entry?entryId=41186" />
    <author>
      <name>Arun Kumar S</name>
    </author>
    <id>http://www.mpowerglobal.com/c/blogs/find_entry?entryId=41186</id>
    <updated>2010-03-09T06:32:57Z</updated>
    <published>2010-03-09T06:31:53Z</published>
    <summary type="html">&lt;p&gt;&lt;span style="font-size: medium;"&gt;&lt;b&gt;Use-Case&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;Setting up two tomcat along with apache  on same windows machine.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;&lt;b&gt;Pre-requirements&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;  1. install Apche 2.x&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt; 2. download tomcat 5.x /6.x and make an  extra copy&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;&lt;b&gt;Steps 1.&lt;/b&gt; open httpd.conf  from apache_home/conf/ and add these lines at the end&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;proxy&gt;&lt;/proxy&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;     BalancerMember ajp://localhost:8009/ route=tomcatA &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;     BalancerMember ajp://localhost:8010/ route=tomcatB &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;location&gt;&lt;/location&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;     ProxyPass balancer://mycluster/ stickysession=JSESSIONID&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;location&gt;&lt;/location&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;     SetHandler balancer-manager&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;    Order Deny,Allow&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;     Deny from all&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;    Allow from localhost&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;&lt;b&gt;Step  2.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;uncomment the following four  lines&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;LoadModule proxy_module  modules/mod_proxy.so&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;LoadModule proxy_ajp_module  modules/mod_proxy_ajp.so&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;LoadModule proxy_balancer_module  modules/mod_proxy_balancer.so&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;LoadModule status_module  modules/mod_status.so&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;&lt;b&gt;Step 3.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;open  tomcat_home_1/conf/server.xml and add jvmRoute=&amp;quot;tomcatA&amp;quot; to the  following line&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;engine defaulthost="localhost" name="Catalina"&gt;&lt;/engine&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;Engine  name=&amp;quot;Catalina&amp;quot; defaultHost=&amp;quot;localhost&amp;quot; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;so it  should look like this&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;Engine name=&amp;quot;Catalina&amp;quot;  defaultHost=&amp;quot;localhost&amp;quot; jvmRoute=&amp;quot;tomcatA&amp;quot;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;&lt;b&gt;Step  4.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;div&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;open  tomcat_home_2/conf/server.xml and add jvmRoute=&amp;quot;tomcatB&amp;quot; to the  following line&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;engine defaulthost="localhost" name="Catalina"&gt;&lt;/engine&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;Engine  name=&amp;quot;Catalina&amp;quot; defaultHost=&amp;quot;localhost&amp;quot; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;so it  should look like this&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;Engine name=&amp;quot;Catalina&amp;quot;  defaultHost=&amp;quot;localhost&amp;quot; jvmRoute=&amp;quot;tomcatB&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;also  change the following port nos&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;Server  port=&amp;quot;&lt;b&gt;8006&lt;/b&gt;&amp;quot; shutdown=&amp;quot;SHUTDOWN&amp;quot;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;Connector  port=&amp;quot;&lt;b&gt;8081&lt;/b&gt;&amp;quot; protocol=&amp;quot;HTTP/1.1&amp;quot; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;                connectionTimeout=&amp;quot;20000&amp;quot; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;               redirectPort=&amp;quot;&lt;b&gt;8444&lt;/b&gt;&amp;quot;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;Connector  port=&amp;quot;&lt;b&gt;8010&lt;/b&gt;&amp;quot; protocol=&amp;quot;AJP/1.3&amp;quot; redirectPort=&amp;quot;&lt;b&gt;8444&lt;/b&gt;&amp;quot; &lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;&lt;b&gt;Thats  It!&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;start apache, tomcatA, tomcatB  and&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;navigate to http://localhost/&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;</summary>
    <dc:creator>Arun Kumar S</dc:creator>
    <dc:date>2010-03-09T06:31:53Z</dc:date>
  </entry>
  <entry>
    <title>Liferay Tomcat Clustering</title>
    <link rel="alternate" href="http://www.mpowerglobal.com/c/blogs/find_entry?entryId=41166" />
    <author>
      <name>Arun Kumar S</name>
    </author>
    <id>http://www.mpowerglobal.com/c/blogs/find_entry?entryId=41166</id>
    <updated>2010-03-09T06:05:05Z</updated>
    <published>2010-03-09T06:03:17Z</published>
    <summary type="html">&lt;p&gt;&lt;meta content="text/html; charset=utf-8" http-equiv="Content-Type" /&gt;&lt;meta content="Word.Document" name="ProgId" /&gt;&lt;meta content="Microsoft Word 12" name="Generator" /&gt;&lt;meta content="Microsoft Word 12" name="Originator" /&gt;&lt;link href="file:///C:\Users\Avinash\AppData\Local\Temp\msohtmlclip1\01\clip_filelist.xml" rel="File-List" /&gt;&lt;link href="file:///C:\Users\Avinash\AppData\Local\Temp\msohtmlclip1\01\clip_themedata.thmx" rel="themeData" /&gt;&lt;link href="file:///C:\Users\Avinash\AppData\Local\Temp\msohtmlclip1\01\clip_colorschememapping.xml" rel="colorSchemeMapping" /&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:WordDocument&gt;
  &lt;w:View&gt;Normal&lt;/w:View&gt;
  &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;
  &lt;w:TrackMoves /&gt;
  &lt;w:TrackFormatting /&gt;
  &lt;w:PunctuationKerning /&gt;
  &lt;w:ValidateAgainstSchemas /&gt;
  &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;
  &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;
  &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;
  &lt;w:DoNotPromoteQF /&gt;
  &lt;w:LidThemeOther&gt;EN-IN&lt;/w:LidThemeOther&gt;
  &lt;w:LidThemeAsian&gt;X-NONE&lt;/w:LidThemeAsian&gt;
  &lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;
  &lt;w:Compatibility&gt;
   &lt;w:BreakWrappedTables /&gt;
   &lt;w:SnapToGridInCell /&gt;
   &lt;w:WrapTextWithPunct /&gt;
   &lt;w:UseAsianBreakRules /&gt;
   &lt;w:DontGrowAutofit /&gt;
   &lt;w:SplitPgBreakAndParaMark /&gt;
   &lt;w:DontVertAlignCellWithSp /&gt;
   &lt;w:DontBreakConstrainedForcedTables /&gt;
   &lt;w:DontVertAlignInTxbx /&gt;
   &lt;w:Word11KerningPairs /&gt;
   &lt;w:CachedColBalance /&gt;
  &lt;/w:Compatibility&gt;
  &lt;m:mathPr&gt;
   &lt;m:mathFont m:val="Cambria Math" /&gt;
   &lt;m:brkBin m:val="before" /&gt;
   &lt;m:brkBinSub m:val="&amp;#45;-" /&gt;
   &lt;m:smallFrac m:val="off" /&gt;
   &lt;m:dispDef /&gt;
   &lt;m:lMargin m:val="0" /&gt;
   &lt;m:rMargin m:val="0" /&gt;
   &lt;m:defJc m:val="centerGroup" /&gt;
   &lt;m:wrapIndent m:val="1440" /&gt;
   &lt;m:intLim m:val="subSup" /&gt;
   &lt;m:naryLim m:val="undOvr" /&gt;
  &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
  DefSemiHidden="true" DefQFormat="false" DefPriority="99"
  LatentStyleCount="267"&gt;
  &lt;w:LsdException Locked="false" Priority="0" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Normal" /&gt;
  &lt;w:LsdException Locked="false" Priority="9" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="heading 1" /&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2" /&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3" /&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4" /&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5" /&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6" /&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7" /&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8" /&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9" /&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 1" /&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 2" /&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 3" /&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 4" /&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 5" /&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 6" /&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 7" /&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 8" /&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 9" /&gt;
  &lt;w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption" /&gt;
  &lt;w:LsdException Locked="false" Priority="10" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Title" /&gt;
  &lt;w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font" /&gt;
  &lt;w:LsdException Locked="false" Priority="11" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtitle" /&gt;
  &lt;w:LsdException Locked="false" Priority="22" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Strong" /&gt;
  &lt;w:LsdException Locked="false" Priority="20" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Emphasis" /&gt;
  &lt;w:LsdException Locked="false" Priority="59" SemiHidden="false"
   UnhideWhenUsed="false" Name="Table Grid" /&gt;
  &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text" /&gt;
  &lt;w:LsdException Locked="false" Priority="1" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="No Spacing" /&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading" /&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List" /&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid" /&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1" /&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2" /&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1" /&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2" /&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1" /&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2" /&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3" /&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List" /&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading" /&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List" /&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid" /&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 1" /&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 1" /&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 1" /&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1" /&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1" /&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 1" /&gt;
  &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision" /&gt;
  &lt;w:LsdException Locked="false" Priority="34" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="List Paragraph" /&gt;
  &lt;w:LsdException Locked="false" Priority="29" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Quote" /&gt;
  &lt;w:LsdException Locked="false" Priority="30" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Quote" /&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 1" /&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1" /&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1" /&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1" /&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 1" /&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 1" /&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 1" /&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 1" /&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 2" /&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 2" /&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 2" /&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2" /&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2" /&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 2" /&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 2" /&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2" /&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2" /&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2" /&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 2" /&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 2" /&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 2" /&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 2" /&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 3" /&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 3" /&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 3" /&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3" /&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3" /&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 3" /&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 3" /&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3" /&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3" /&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3" /&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 3" /&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 3" /&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 3" /&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 3" /&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 4" /&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 4" /&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 4" /&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4" /&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4" /&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 4" /&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 4" /&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4" /&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4" /&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4" /&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 4" /&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 4" /&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 4" /&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 4" /&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 5" /&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 5" /&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 5" /&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5" /&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5" /&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 5" /&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 5" /&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5" /&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5" /&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5" /&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 5" /&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 5" /&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 5" /&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 5" /&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 6" /&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 6" /&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 6" /&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6" /&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6" /&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 6" /&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 6" /&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6" /&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6" /&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6" /&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 6" /&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 6" /&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 6" /&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 6" /&gt;
  &lt;w:LsdException Locked="false" Priority="19" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis" /&gt;
  &lt;w:LsdException Locked="false" Priority="21" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis" /&gt;
  &lt;w:LsdException Locked="false" Priority="31" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference" /&gt;
  &lt;w:LsdException Locked="false" Priority="32" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Reference" /&gt;
  &lt;w:LsdException Locked="false" Priority="33" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Book Title" /&gt;
  &lt;w:LsdException Locked="false" Priority="37" Name="Bibliography" /&gt;
  &lt;w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading" /&gt;
 &lt;/w:LatentStyles&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;style type="text/css"&gt;
&lt;!--
 /* Font Definitions */
 @font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;
	mso-font-charset:1;
	mso-generic-font-family:roman;
	mso-font-format:other;
	mso-font-pitch:variable;
	mso-font-signature:0 0 0 0 0 0;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:-520092929 1073786111 9 0 415 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-parent:"";
	margin-top:0cm;
	margin-right:0cm;
	margin-bottom:10.0pt;
	margin-left:0cm;
	line-height:115%;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:Calibri;
	mso-fareast-theme-font:minor-latin;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;
	mso-ansi-language:EN-US;
	mso-fareast-language:EN-US;}
pre
	{mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-link:"HTML Preformatted Char";
	margin:0cm;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Courier New";
	mso-fareast-font-family:"Times New Roman";
	mso-bidi-font-family:"Courier New";
	mso-ansi-language:EN-US;
	mso-fareast-language:EN-US;}
span.HTMLPreformattedChar
	{mso-style-name:"HTML Preformatted Char";
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-unhide:no;
	mso-style-locked:yes;
	mso-style-link:"HTML Preformatted";
	mso-ansi-font-size:10.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Courier New";
	mso-ascii-font-family:"Courier New";
	mso-fareast-font-family:"Times New Roman";
	mso-hansi-font-family:"Courier New";
	mso-bidi-font-family:"Courier New";}
.MsoChpDefault
	{mso-style-type:export-only;
	mso-default-props:yes;
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:Calibri;
	mso-fareast-theme-font:minor-latin;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;
	mso-ansi-language:EN-US;
	mso-fareast-language:EN-US;}
.MsoPapDefault
	{mso-style-type:export-only;
	margin-bottom:10.0pt;
	line-height:115%;}
@page Section1
	{size:612.0pt 792.0pt;
	margin:72.0pt 72.0pt 72.0pt 72.0pt;
	mso-header-margin:36.0pt;
	mso-footer-margin:36.0pt;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
--&gt;
&lt;/style&gt;&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-qformat:yes;
	mso-style-parent:"";
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin-top:0cm;
	mso-para-margin-right:0cm;
	mso-para-margin-bottom:10.0pt;
	mso-para-margin-left:0cm;
	line-height:115%;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:"Times New Roman";
	mso-fareast-theme-font:minor-fareast;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
&lt;/style&gt;
&lt;![endif]--&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Running Liferay in a clustered environment consists of 6 steps.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;1. Preparations and getting things ready. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;2. Connecting to a remote MySQL or Sybase database. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;3. Running 2 or More &amp;quot;IDENTICAL&amp;quot; Liferay tomcat instances on 2 Or more &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=""&gt;&amp;nbsp;&lt;/span&gt;physical machines. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;4. Making one machine as &amp;quot;Apache Web Server&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;5. Connecting apache with tomcat using apache module &amp;quot;mod_jk&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;6. Configuring mod_jk for clustering for both load-balancing and fail-over. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;7. Verifying whether clustering is working fine. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;=============================================================================&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;1. Preparations and getting things ready.&lt;/span&gt;&lt;/b&gt;&lt;b style=""&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Select 4 physical machines (servers) in your LAN network. Each should have an internal IP address. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Just ping between the 4 machines and confirm that the pinging is successful. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Make sure none of the machines have fire wall running. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Machine1 - we'll use as Database server (Either windows or Linux) on which MySQL is installed and running&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Machines2 will be made as clustered servers on which identical verions of liferay is up running.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Machine1 will be the apache http server which will be exposed to the outside world. Let this be a windows machine. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;In the later part of this exercise we'll see how to run apache on a Linux server. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Note down the IP address of IP addresses of all four machines. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Machine 1 (MySQL) - [IP Address 1]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Machine 2-a (Liferay 1) - [IP Address 2]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Machine 2-b (Liferay 2) - [IP Address 3]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Machine 3 (Apache server with mod_jk) [IP Address 4]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;-----------------------------------------------------------------------------&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;2. Connecting to a remote MySQL database. &lt;/span&gt;&lt;/b&gt;&lt;b style=""&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;-----------------------------------------------------------------------------&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;On the machine where mysql is running, open mysql prompt by typing &amp;quot;mysql -u root -proot mysql&amp;quot; from the command window.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Run these following scripts. Before running dont forget to modify the [IP Address X].&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;create database lportal2 character set utf8;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt; &lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;          &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Giving access to the first Liferay machine (2-a)&lt;/span&gt;&lt;/b&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;---------------------------------------------------------------------------&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;insert into db (&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Host&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,Db&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,User&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,Select_priv&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,Insert_priv&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,Update_priv&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,Delete_priv&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,Create_priv&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,Drop_priv&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,Grant_priv&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,References_priv&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,Index_priv&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,Alter_priv&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,Create_tmp_table_priv&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,Lock_tables_priv&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,Create_view_priv&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,Show_view_priv&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,Create_routine_priv&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,Alter_routine_priv&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,Execute_priv&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;values (&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&amp;quot;[IP Address 2]&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,&amp;quot;lportal2&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,&amp;quot;root&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,&amp;quot;Y&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,&amp;quot;Y&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,&amp;quot;Y&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,&amp;quot;Y&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,&amp;quot;Y&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,&amp;quot;Y&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,&amp;quot;N&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,&amp;quot;Y&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,&amp;quot;Y&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,&amp;quot;Y&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,&amp;quot;Y&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,&amp;quot;Y&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,&amp;quot;Y&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,&amp;quot;Y&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,&amp;quot;Y&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,&amp;quot;N&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,&amp;quot;N&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;GRANT ALL ON lportal2.* TO root@'[IP Address 2]' IDENTIFIED BY 'root';&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;              &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Giving access to the second Liferay machine (2-b)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;-- -----------------------------------------------------------------------------&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;insert into db (&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Host&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,Db&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,User&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,Select_priv&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,Insert_priv&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,Update_priv&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,Delete_priv&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,Create_priv&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,Drop_priv&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,Grant_priv&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,References_priv&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,Index_priv&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,Alter_priv&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,Create_tmp_table_priv&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,Lock_tables_priv&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,Create_view_priv&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,Show_view_priv&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,Create_routine_priv&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,Alter_routine_priv&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,Execute_priv&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;values (&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&amp;quot;[IP Address 3]&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,&amp;quot;lportal2&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,&amp;quot;root&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,&amp;quot;Y&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,&amp;quot;Y&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,&amp;quot;Y&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,&amp;quot;Y&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,&amp;quot;Y&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,&amp;quot;Y&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,&amp;quot;N&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,&amp;quot;Y&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,&amp;quot;Y&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,&amp;quot;Y&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,&amp;quot;Y&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,&amp;quot;Y&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,&amp;quot;Y&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,&amp;quot;Y&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,&amp;quot;Y&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,&amp;quot;N&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;,&amp;quot;N&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;GRANT ALL ON lportal2.* TO root@'[IP Address 3]' IDENTIFIED BY 'root';&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;b style=""&gt;&lt;u&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Important:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Once you have run the above scripts, pls dont forget to restart your MySQL. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;b style=""&gt;&lt;u&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Verification:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Now open the command window in the 2 machines where liferay is running and enter the command, &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;mysql -h [IP Address 1] -u root -proot lportal2;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;This should successully get entry to the mysql prompt. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Do the similar thing on the other machine where Liferay is running and confirm that is it also connecting to &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; line-height: normal;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;the remote Mysql database server.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;----------------------------------------------------------------------------------------------------------------------------------&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;b style=""&gt;&lt;span lang="EN-US" style="font-size: 11pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;3. Running 2 or More &amp;quot;IDENTICAL&amp;quot; Liferay tomcat instances on 2 Or more physical &lt;span style=""&gt;&amp;nbsp;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/pre&gt;&lt;pre&gt;&lt;b style=""&gt;&lt;span lang="EN-US" style="font-size: 11pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;machines.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;----------------------------------------------------------------------------------------------------------------------------------&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Install fresh Liferay tomcat bundle on machines 2-a and 2-b.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Configure the server to point to the common MySQL database [IP Address 1]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;By making appropriate changes in the ROOT.xml file (5.1.x) or portal-ext.properties (5.2.x)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 36pt;"&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;url=&amp;quot;jdbc:mysql://[IP Address 1]/lportal2?useUnicode=true&amp;amp;amp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 36pt;"&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;characterEncoding=UTF-8&amp;amp;amp;useFastDateParsing=false&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 36pt;"&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;username=&amp;quot;root&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 36pt;"&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;password=&amp;quot;root&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Start the tomcat servers one after the other and confirm that they are both working fine, pointing to the remote database.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;-----------------------------------------------------------------------------&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;b style=""&gt;&lt;span lang="EN-US" style="font-size: 11pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;4. Making one machine as &amp;quot;Apache Web Server&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;-----------------------------------------------------------------------------&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Install apache webserver on machine 3 [IP Address 4] &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Download apache_2.2.10-win32-x86-no_ssl.msi and install&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Once it is successfully installed, open the web browser and type http://localhost&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;You should see the message &amp;quot;It works !!&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;---------------------------------------------------------------------------------------------------------&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;b style=""&gt;&lt;span lang="EN-US" style="font-size: 11pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;5. Connecting apache with tomcat using apache module &amp;quot;mod_jk&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;---------------------------------------------------------------------------------------------------------&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Next, inorder to connect apache and tomcat, we need to install the apache module, &amp;quot;mod_jk&amp;quot;. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Download mod_jk for windows and rename as mod_jk.so&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;copy this file and paste under %APACHE_HOME%/modules&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Create workers1.properties file under, %APACHE_HOME%/conf&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Open this file and paste the following code &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;worker.list = worker1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;worker.worker1.type = ajp13&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;worker.worker1.host = [IP Address 2]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;give the IP Address of one of the machines where Liferay is running. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Open &lt;b style=""&gt;httpd.conf&lt;/b&gt; file under %APACHE_HOME%/conf and do the following minor changes, &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Insert this line at the appropriate location, &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;LoadModule jk_module modules/mod_jk.so&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Add this to the end of the file....&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;JkWorkersFile conf/workers1.properties&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;JkMount /* worker1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Restart the apache http server. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Now in the browser, go to http://localhost. It should land in the liferay's home page. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Congratulations, you've successfully configured connected apache with tomcat using mod_jk&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;---------------------------------------------------------------------------------------------------------------------&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;b style=""&gt;&lt;span lang="EN-US" style="font-size: 11pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;6. Configuring mod_jk for clustering for both load-balancing and fail-over.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;---------------------------------------------------------------------------------------------------------------------&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;In this step we are going to run liferay on a clustered environment. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;changes to apache server, &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Create workers2.properties file under %APACHE_HOME%/conf&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Open this file and paste the following code &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;worker.list = bal1, stat1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;worker.machine1.type = ajp13&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;worker.machine1.host = [IP Address 2]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;worker.machine1.lbfactor = 10&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;worker.machine2.type = ajp13&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;worker.machine2.host = [IP Address 3]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;worker.machine2.lbfactor = 10&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;worker.bal1.type = lb&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;worker.bal1.sticky_session = 1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;worker.bal1.balance_workers = machine1, machine2&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;worker.stat1.type = status&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;give the correct IP addresses of two machines on which Liferay is running. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;b style=""&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Edit httpd.conf file:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Replace the earlier lines &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;JkWorkersFile conf/workers1.properties&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;JkMount /* worker1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;with these lines, &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;JkWorkersFile conf/workers2.properties&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;JkMount /* bal1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;JkMount /jkstatus/ stat1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Restart apache server inorder for the new changes to take effect&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Changes to the Liferay server. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Open the server.xml files of the first liferay server and do the following changes, &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;search for the line, &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&amp;lt;Engine name=&amp;quot;Catalina&amp;quot; defaultHost=&amp;quot;localhost&amp;quot;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Add one more attribute jvmRoute=&amp;quot;machine1&amp;quot;, to make it look like, &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&amp;lt;Engine name=&amp;quot;Catalina&amp;quot; defaultHost=&amp;quot;localhost&amp;quot; jvmRoute=&amp;quot;machine1&amp;quot;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Open web.xml under webapps/ROOT/WEB-INF,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;insert the tag &amp;lt;distributable /&amp;gt; just before the first &amp;lt;filter&amp;gt; tag. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;For security reasons, close the port 8080 by commenting out the following block, as it will be no longer needed. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;Connector port=&amp;quot;8080&amp;quot; protocol=&amp;quot;HTTP/1.1&amp;quot; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;connectionTimeout=&amp;quot;20000&amp;quot; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;redirectPort=&amp;quot;8443&amp;quot; URIEncoding=&amp;quot;UTF-8&amp;quot; /&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Restart the Liferay server. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Do the similar setting on the other Liferay server, except in the place of machine1, give machine2.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;-----------------------------------------------------------------------------&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;b style=""&gt;&lt;span lang="EN-US" style="font-size: 11pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;7. Verifying whether clustering is working fine. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;-----------------------------------------------------------------------------&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Open the file webapps/ROOT/html/portlet/login/init.jsp on both the Liferay servers&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Insert the following lines in the first and second servers respectively, &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&amp;lt;h4&amp;gt;You ve landed in the &amp;lt;b&amp;gt;first&amp;lt;/b&amp;gt; liferay server.&amp;lt;/h4&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&amp;lt;h4&amp;gt;You ve landed in the &amp;lt;b&amp;gt;second&amp;lt;/b&amp;gt; liferay server.&amp;lt;/h4&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Trying connecting to the apache web server (http://[IP Address 4]) from different machines in the network &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;(other than these 4 machines) and see what happens . &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Now, let us simulate a failure by shutting down the server and see what happens. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Congratulations, you've successfully seen Clustering in action. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: center;"&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;**************************************&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: center;"&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: center;"&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: center;"&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: center;"&gt;&lt;b style=""&gt;&lt;u&gt;&lt;span lang="EN-US" style="font-size: 13pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;how to run apache on a Linux server&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;1. Install apache HTTP Server &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Open a browser and type http://localhost&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;You'll get the message &amp;quot;Failed to connect&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;b style=""&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;From console:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;sudo apt-get install apache2&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;This will install apache and all required libraries&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Now check the url, http://localhost&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;You'll see the message, &amp;quot;It Works!!&amp;quot;, indicating apache server is running on port 80. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Congratulations !!&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;2. Installing apache module mod-jk to connect to a liferay tomcat instance. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;sudo apt-get install libapache2-modjk&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;=============================================================================&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;b style=""&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;PhpMyAdmin&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;b style=""&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;From console:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;sudo apt-get install phpmyadmin&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;To set up under Apache all you need to do is include the following line in /etc/apache2/apache2.conf.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Include /etc/phpmyadmin/apache.conf&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Once phpMyAdmin is installed point your browser to http://localhost/phpmyadmin to start using it. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;You should be able to login using any users you've setup in MySQL. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;============================================================================= &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: center;"&gt;&lt;b style=""&gt;&lt;u&gt;&lt;span lang="EN-US" style="font-size: 13pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;how to install mod_jk&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;1. install mod_jk&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;sudo apt-get install libapache2-mod-jk&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;2. confirm that it is installed. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;run &amp;quot;a2enmod jk&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;ls -l /usr/lib/apache2/modules&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;3. touch /etc/apache2/workers.properties&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;4. vi /etc/apache2/workers.properties&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;workers.java_home=/usr/lib/jvm/java-6-sun-1.6.0.10&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;ps=/&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;worker.list = worker1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;worker.worker1.type = ajp13&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;worker.worker1.host = localhost&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;worker.worker1.lbfactor = 1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;5. vi /etc/apache2/apache2.conf&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;# mod_jk config&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;# Where to find workers.properties&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;JkWorkersFile workers.properties&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;# Where to put jk logs&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;JkLogFile /var/log/apache2/jk.log&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;# Set the jk log level [debug/error/info]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;JkLogLevel info&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;6. vi /etc/apache2/httpd.conf&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;ServerAdmin admin@mpowerglobal.com&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;ServerName&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;localhost&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;JkMount /* worker1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;# Deny direct access to WEB-INF&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;LocationMatch &amp;quot;.*WEB-INF.*&amp;quot;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;deny from all&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;/LocationMatch&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&amp;lt;/VirtualHost&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p align="center" style="text-align: center;" class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;*************************************&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;</summary>
    <dc:creator>Arun Kumar S</dc:creator>
    <dc:date>2010-03-09T06:03:17Z</dc:date>
  </entry>
  <entry>
    <title>CENTRAL AUTHENTICATION SERVICE (CAS) with Liferay 5.2.x</title>
    <link rel="alternate" href="http://www.mpowerglobal.com/c/blogs/find_entry?entryId=40960" />
    <author>
      <name>Gnaniyar Zubair</name>
    </author>
    <id>http://www.mpowerglobal.com/c/blogs/find_entry?entryId=40960</id>
    <updated>2010-03-08T19:18:17Z</updated>
    <published>2010-03-08T19:00:44Z</published>
    <summary type="html">&lt;p&gt;&lt;meta content="text/html; charset=utf-8" http-equiv="CONTENT-TYPE" /&gt; 	&lt;title&gt;&lt;/title&gt; 	&lt;meta content="OpenOffice.org 3.1  (Linux)" name="GENERATOR" /&gt; 	&lt;style type="text/css"&gt;
	&lt;!--
		@page { margin: 2cm }
		P { margin-bottom: 0.21cm }
		H2 { margin-bottom: 0.21cm }
		H2.cjk { font-family: "Times New Roman" }
		PRE.western { font-family: "Courier New", monospace }
		PRE.cjk { font-family: "Bitstream Vera Sans Mono", monospace }
		PRE.ctl { font-family: "Courier New", monospace }
		H3 { margin-bottom: 0.21cm }
		H3.cjk { font-family: "Times New Roman" }
		H4 { margin-bottom: 0.21cm }
		H4.cjk { font-family: "Times New Roman" }
		A:link { so-language: zxx }
	--&gt;
	&lt;/style&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm;"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;&lt;u&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/u&gt;CAS is an authentication system that was originally created at Yale University. It is a widely-used open source single sign-on solution, and was the first SSO product to&amp;nbsp; be supported by Liferay.&lt;/p&gt;      &lt;p style="margin-bottom: 0cm;"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;The CAS Server application requires a properly configured Secure Socket Layer certificate on your server in order to work.&lt;/p&gt;   &lt;p style="margin-bottom: 0cm;"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;If you wish to generate one yourself, you will need to use the keytool utility that comes with the JDK. Your first step is to generate the key. Next, you export the key into a file. Finally, you import the key into your local   Java key store.&lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size: larger;"&gt;&lt;strong&gt;&lt;u&gt;Setting up CAS server  &lt;/u&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;Step 1: &lt;/b&gt;&lt;/u&gt;&lt;/p&gt;  &lt;ol&gt;&lt;li&gt;&lt;p&gt;Download &lt;b&gt;cas-web.war &lt;/b&gt;&lt;/p&gt; 	&lt;p&gt;&lt;b&gt;( copy from &lt;a href="http://www.liferay.com/web/guest/downloads"&gt;http://www.liferay.com/web/guest/downloads&lt;/a&gt; 	  or&lt;/b&gt;&lt;/p&gt; 	&lt;p&gt;&lt;b&gt;&lt;a href="http://www.ja-sig.org/products/cas/downloads/index.html"&gt;http://www.ja-sig.org/products/cas/downloads/index.html&lt;/a&gt; 	  )&lt;/b&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Download &lt;b&gt;cas-client.jar  ( &lt;/b&gt;&lt;span style="font-weight: normal;"&gt;cas-client-2.0.11&lt;/span&gt;&lt;b&gt;)&lt;/b&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;( copy from &lt;a href="http://www.ja-sig.org/products/cas/downloads/index.html"&gt;&lt;b&gt;http://www.ja-sig.org/products/cas/downloads/index.html&lt;/b&gt;&lt;/a&gt; )&lt;/p&gt; &lt;p&gt;&lt;u&gt;&lt;b&gt;Step 2:&lt;/b&gt;&lt;/u&gt;&lt;/p&gt; &lt;p style="text-decoration: none;"&gt;&lt;span style="font-weight: normal;"&gt;1.   Copy &lt;/span&gt;&lt;b&gt;cas-web.war&lt;/b&gt;&lt;span style="font-weight: normal;"&gt; file into &lt;/span&gt;&lt;b&gt;tomcat\webapps&lt;/b&gt;&lt;/p&gt; &lt;p style="text-decoration: none;"&gt;&lt;span style="font-weight: normal;"&gt;2.  Copy &lt;/span&gt;&lt;b&gt;cas-client.jar&lt;/b&gt;&lt;span style="font-weight: normal;"&gt; file into &lt;/span&gt;&lt;b&gt;tomcat\webapps\ROOT\WEB-INF\lib&lt;/b&gt;&lt;/p&gt; &lt;p&gt;&lt;u&gt;&lt;b&gt;Step 3:&lt;/b&gt;&lt;/u&gt;&lt;span style="text-decoration: none;"&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;1. Edit &lt;b&gt;server.xml &lt;/b&gt;( &lt;b&gt;tomcat/conf/server.xml&lt;/b&gt;)&lt;/p&gt; &lt;p&gt;2. uncomment this part :&lt;/p&gt; &lt;pre class="western"&gt;
 &lt;b&gt;&amp;lt;&lt;/b&gt;&lt;font face="Courier New, monospace"&gt;&lt;font size="2"&gt;&lt;b&gt;Connector port=&amp;quot;8443&amp;quot; protocol=&amp;quot;HTTP/1.1&amp;quot; SSLEnabled=&amp;quot;true&amp;quot;&lt;/b&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;p align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font size="2"&gt;&lt;b&gt;maxThreads=&amp;quot;150&amp;quot; scheme=&amp;quot;&lt;font color="#000000"&gt;&lt;u&gt;https&lt;/u&gt;&lt;/font&gt;&amp;quot; secure=&amp;quot;true&amp;quot;&lt;/b&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;font face="Courier New, monospace"&gt;&lt;font size="2"&gt;&lt;b&gt;clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot; /&amp;gt;&lt;/b&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;pre style="margin-bottom: 0.5cm;" class="western"&gt;&amp;nbsp;&lt;/pre&gt;&lt;h2 class="western"&gt;&lt;u&gt;Generate the SSL cert with Java keytool &lt;/u&gt;&lt;/h2&gt; &lt;pre style="margin-bottom: 0.5cm;" class="western"&gt;
     &lt;/pre&gt;&lt;p&gt;&lt;u&gt;&lt;b&gt;Step 1 :&lt;/b&gt;&lt;/u&gt;&lt;/p&gt; &lt;p&gt;Go to &lt;b&gt;tomcat/webapps/Root&lt;/b&gt; in command prompt,   enter the command:&lt;/p&gt; &lt;pre style="margin-bottom: 0.5cm;" class="western"&gt;
 &lt;b&gt;keytool -genkey -alias tomcat -keypass changeit -keyalg RSA&lt;/b&gt;&lt;/pre&gt;&lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: Be sure to use the keytool that comes with the Java VM (%JAVA_HOME%/jre/bin/keytool), as on some systems the default points to the GNU version of keytool, where the two seem incompatible.&lt;/p&gt; &lt;p&gt;&lt;u&gt;&lt;b&gt;Step 2:&lt;/b&gt;&lt;/u&gt;&lt;/p&gt; &lt;p&gt;Answer the questions in command prompt : (note that your firstname and lastname &lt;b&gt;MUST&lt;/b&gt; be hostname of your server and cannot be a IP address; this is very important as an IP address will fail client hostname verification even if it is correct)&lt;/p&gt; &lt;pre class="western"&gt;
 Enter keystore password:  &lt;b&gt;changeit&lt;/b&gt;
 What is your first and last name?
 [Unknown]:  &lt;b&gt;localhost&lt;/b&gt;
 What is the name of your organizational unit?
 [Unknown]:
 What is the name of your organization?
 [Unknown]:
 What is the name of your City or Locality?
 [Unknown]:
 What is the name of your State or Province?
 [Unknown]:
 What is the two-letter country code for this unit?
 [Unknown]:
 Is CN=localhost, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown correct?
 [no]: &lt;b&gt;yes &lt;br /&gt;&lt;/b&gt;&lt;/pre&gt;&lt;p&gt;&lt;u&gt;&lt;b&gt;Step 3: &lt;/b&gt;&lt;/u&gt;&lt;span style="text-decoration: none;"&gt;&lt;b&gt;  &lt;/b&gt;&lt;/span&gt;Then enter the command:&lt;/p&gt; &lt;pre style="margin-bottom: 0.5cm;" class="western"&gt;
 &lt;b&gt;keytool -export -alias tomcat -keypass changeit -file %FILE_NAME%&lt;/b&gt; &lt;/pre&gt;&lt;p&gt;I use &lt;b&gt;server.cert&lt;/b&gt; for &lt;b&gt;%FILE_NAME%&lt;/b&gt;. This command exports the cert you generated from your personal keystore (In windows your personal keystore is in C:\Documents and Settings\&amp;lt;username&amp;gt;\.keystore)&lt;/p&gt; &lt;p&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;Step 4:&lt;/b&gt;&lt;/u&gt;&lt;span style="text-decoration: none;"&gt;&lt;b&gt;  &lt;/b&gt;&lt;/span&gt;&lt;span style="text-decoration: none;"&gt;&lt;span style="font-weight: normal;"&gt;Then enter the command: &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;Finally import the cert into Java's keystore with this command. Tomcat uses the keystore in your JRE (&lt;b&gt;%JAVA_HOME%/jre/lib/security/cacerts&lt;/b&gt;)&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;pre style="margin-bottom: 0.5cm;" class="western"&gt;
 &lt;b&gt;keytool -import -alias tomcat -file %FILE_NAME% -keypass changeit -keystore &amp;quot;&lt;a href="file:///media/New%20Volume/Gnani%20Sahara%20-%2020-02-02/Ref%20-%20Snippets/Sigma%20Snippets/Program"&gt;&lt;u&gt;C:/Program&lt;/u&gt;&lt;/a&gt;&lt;span style="text-decoration: none;"&gt; Files/ Java/jdk1.6/jre/lib/security/cacerts&amp;quot;&lt;/span&gt;&lt;/b&gt;&lt;/pre&gt;&lt;h2 class="western"&gt;&lt;font size="3" style="font-size: 13pt;"&gt;&lt;u&gt;SETUP in properties File&lt;/u&gt;&lt;/font&gt;&lt;/h2&gt; &lt;h3 class="western"&gt;&amp;nbsp;&lt;u&gt;system-ext.properties &lt;/u&gt;&lt;/h3&gt; &lt;pre class="western"&gt;
    #
    # The CAS filter will redirect the user to the CAS login page for SSO. See
    # [http://www.ja-sig.org/products/cas] for more information.
    #
    &lt;b&gt;com.liferay.filters.sso.cas.CASFilter=true&lt;/b&gt;&lt;/pre&gt;&lt;h3 class="western"&gt;&amp;nbsp; &lt;u&gt;portal-ext.properties &lt;/u&gt;&lt;/h3&gt; &lt;h4 class="western"&gt;&amp;nbsp;&lt;/h4&gt; &lt;p&gt;Put this in portal-ext.properties.&lt;/p&gt; &lt;pre class="western"&gt;
 ##
 ## Auto Login
 ##
  #auto.login.hooks=com.liferay.portal.security.auth.BasicAutoLogin
 &lt;b&gt;auto.login.hooks=com.liferay.portal.security.auth.BasicAutoLogin,com.liferay.portal.security.auth.CASAutoLogin&lt;/b&gt;&lt;/pre&gt;&lt;p style="font-weight: normal; text-decoration: none;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="font-weight: normal; text-decoration: none;"&gt;&lt;span style="font-size: small;"&gt;Comment the first&lt;strong&gt; auto.login.hooks&lt;/strong&gt; property and uncomment the second to add CASAutoLogin to the list of AutoLogin implementations. &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;font size="3" style="font-size: 13pt;"&gt;&lt;u&gt;&lt;b&gt;Startup the CAS server &lt;/b&gt;&lt;/u&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: small;"&gt;Start &lt;strong&gt;tomcat&lt;/strong&gt; and click &lt;strong&gt;Sign-In&lt;/strong&gt; from &lt;strong&gt;Dock&lt;/strong&gt; Menu . It will redirect to &lt;strong&gt;CAS&lt;/strong&gt; server page as follows:&lt;strong&gt;&lt;br /&gt; &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-decoration: none;"&gt;(Access CAS with &lt;b&gt;https://localhost:8443/cas-web/login &lt;/b&gt;You should see the &lt;b&gt;CAS login screen&lt;/b&gt; and no errors in your catalina logs.  )&lt;/p&gt;&lt;p style="text-decoration: none;"&gt;&lt;img align="middle" width="1500" height="700" src="http://www.mpowerglobal.com/image/image_gallery?uuid=1af3df0f-4fea-4393-a656-1d8441710bec&amp;amp;groupId=36708&amp;amp;t=1268075700882" alt="" /&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;</summary>
    <dc:creator>Gnaniyar Zubair</dc:creator>
    <dc:date>2010-03-08T19:00:44Z</dc:date>
  </entry>
  <entry>
    <title>jQuery Autocomplete</title>
    <link rel="alternate" href="http://www.mpowerglobal.com/c/blogs/find_entry?entryId=40946" />
    <author>
      <name>Gnaniyar Zubair</name>
    </author>
    <id>http://www.mpowerglobal.com/c/blogs/find_entry?entryId=40946</id>
    <updated>2010-03-08T18:43:27Z</updated>
    <published>2010-03-08T18:39:41Z</published>
    <summary type="html">&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Autocomplete is a common feature available in lot of web tools and services. You will find lots of implementation of autocomplete features.&lt;/p&gt; 			 &lt;p&gt;Autocomplete is an input field to enable users quickly finding and selecting some value.&lt;/p&gt; &lt;p&gt;When we type character/ word in textbox, it will search matching values and will display in small division as dropdown.&lt;/p&gt; &lt;p&gt;Let us see how can we implement a simple Autocomplete feature in JSP page.&lt;/p&gt; &lt;p&gt;&lt;span style="text-decoration: underline;"&gt;&lt;strong&gt;Required Files :&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;Download file :&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://plugins.jquery.com/project/jq-autocomplete"&gt;ui.autocomplete.js &lt;/a&gt;&lt;/p&gt; &lt;p style="margin-left: 40px;"&gt;(or)&amp;nbsp; &lt;/p&gt; &lt;p&gt;&lt;a href="http://www.pengoworks.com/workshop/jquery/lib/jquery.autocomplete.js" rel="nofollow"&gt;jQuery&amp;rsquo;s autocomplete plugin&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="text-decoration: underline;"&gt;&lt;strong&gt;JSP Page:&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&amp;lt;html&amp;gt;&lt;/p&gt; &lt;h5&gt;&amp;lt;head&amp;gt;&lt;/h5&gt; &lt;blockquote&gt; &lt;h5&gt;&amp;lt;script src=&amp;rdquo;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 102);"&gt;jquery.js&lt;/span&gt;&lt;/strong&gt;&amp;ldquo;&amp;nbsp; type=&amp;rdquo;text/javascript&amp;rdquo;&amp;gt;&amp;lt;/script&amp;gt;&lt;/h5&gt; &lt;h5&gt;&amp;lt;script src=&amp;rdquo;&lt;strong&gt;&lt;span style="color: rgb(51, 153, 102);"&gt;ui.autocomplete.js&lt;/span&gt;&lt;/strong&gt;&amp;ldquo;&amp;nbsp; type=&amp;rdquo;text/javascript&amp;rdquo;&amp;gt;&amp;lt;/script&amp;gt;&lt;/h5&gt; &lt;p&gt;(or)&lt;/p&gt; &lt;h5&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;&amp;lt;script src=&amp;rdquo;jquery.autocomplete.js&amp;rdquo;&amp;nbsp; type=&amp;rdquo;text/javascript&amp;rdquo;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;/h5&gt; &lt;/blockquote&gt; &lt;h5&gt;&amp;lt;/head&amp;gt;&lt;/h5&gt; &lt;p&gt;&amp;lt;form&amp;gt;&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt;&amp;lt;%&amp;nbsp; String &lt;strong&gt;names&lt;/strong&gt;=&amp;rdquo;Testing,Catch,Test,Welcome&amp;rdquo;;&amp;nbsp; %&amp;gt;&lt;br /&gt; &amp;lt;input type=&amp;rdquo;hidden&amp;rdquo; id=&amp;rsquo;&lt;strong&gt;ac&lt;/strong&gt;&amp;lsquo; value=&amp;rdquo;&amp;lt;%=&lt;strong&gt;names&lt;/strong&gt;%&amp;gt;&amp;rdquo;/&amp;gt;&lt;br /&gt; &amp;lt;input type=&amp;rdquo;text&amp;rdquo; id=&amp;rsquo;&lt;strong&gt;acbox&lt;/strong&gt;&amp;lsquo; /&amp;gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&amp;lt;/form&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;lt;/html&amp;gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;script type=&amp;rdquo;text/javascript&amp;rdquo;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;jQuery(document).ready(function(){&lt;br /&gt; var itemNames= jQuery(&amp;lsquo;#ac&amp;rsquo;).val();&lt;br /&gt; var mydata = itemNames.split(&amp;ldquo;,&amp;rdquo;);&lt;br /&gt; jQuery(&amp;lsquo;#acbox&amp;rsquo;).autocomplete({&lt;br /&gt; data:mydata,&lt;br /&gt; autoFill: true&lt;br /&gt; });&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;});&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;if you use plugin &lt;strong&gt;jquery.autocomplete.js,&lt;/strong&gt; just give script&amp;nbsp; like this:&lt;/p&gt; &lt;blockquote&gt;&lt;p style="margin-left: 40px;"&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;strong&gt;&amp;lt;script type=&amp;rdquo;text/javascript&amp;rdquo;&amp;gt;&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 80px;"&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;strong&gt;jQuery(document).ready(function() {&lt;br /&gt; var itemNames= jQuery(&amp;lsquo;#ac&amp;rsquo;).val();&lt;br /&gt; var mydata = itemNames.split(&amp;ldquo;,&amp;rdquo;);&lt;br /&gt; jQuery(&amp;ldquo;#acbox&amp;ldquo;).autocomplete(mydata);&lt;br /&gt; });&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 40px;"&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;strong&gt;&amp;lt;/script&amp;gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;span style="text-decoration: underline;"&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="text-decoration: underline;"&gt;&lt;strong&gt;&lt;a href="http://zubairwiki.files.wordpress.com/2009/06/autocomplete.jpg"&gt;&lt;img width="234" height="127" alt="autocomplete" src="http://zubairwiki.files.wordpress.com/2009/06/autocomplete.jpg?w=234&amp;amp;h=127" title="autocomplete" class="aligncenter size-full wp-image-60" /&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</summary>
    <dc:creator>Gnaniyar Zubair</dc:creator>
    <dc:date>2010-03-08T18:39:41Z</dc:date>
  </entry>
</feed>

