You are viewing a plain text version of this content. The canonical link for it is here.
Posted to olio-dev@incubator.apache.org by Shanti Subramanyam <Sh...@Sun.COM> on 2009/01/13 02:41:57 UTC
Re: svn commit: r733989 - in /incubator/olio/webapp/php/trunk:
classes/ etc/ nbproject/ public_html/
Akara - do we want the nbproject files ?
Shanti
akara@apache.org wrote:
> Author: akara
> Date: Mon Jan 12 17:53:50 2009
> New Revision: 733989
>
> URL: http://svn.apache.org/viewvc?rev=733989&view=rev
> Log:
> Fix for issue OLIO-3 and OLIO-30:
> - Fix for OLIO-3 submitted by Damien Cooke
> - Fix for OLIO-30 - added database selection mechanism and changed all write transaction to write to the write instance of the DB connection obtained via DBConnection::getWriteInstance();
>
> Added:
> incubator/olio/webapp/php/trunk/nbproject/ (with props)
> incubator/olio/webapp/php/trunk/nbproject/project.properties
> incubator/olio/webapp/php/trunk/nbproject/project.xml
> Modified:
> incubator/olio/webapp/php/trunk/classes/DBConnection.php
> incubator/olio/webapp/php/trunk/classes/MemCached.php
> incubator/olio/webapp/php/trunk/classes/ODBCConnection.php
> incubator/olio/webapp/php/trunk/classes/PDOConnection.php
> incubator/olio/webapp/php/trunk/etc/config.php
> incubator/olio/webapp/php/trunk/public_html/addAttendee.php
> incubator/olio/webapp/php/trunk/public_html/addDeleteFriend.php
> incubator/olio/webapp/php/trunk/public_html/addEventResult.php
> incubator/olio/webapp/php/trunk/public_html/addPersonResult.php
> incubator/olio/webapp/php/trunk/public_html/approveFriendship.php
> incubator/olio/webapp/php/trunk/public_html/deleteAttendee.php
> incubator/olio/webapp/php/trunk/public_html/deleteCommentsRating.php
> incubator/olio/webapp/php/trunk/public_html/deleteEvent.php
> incubator/olio/webapp/php/trunk/public_html/events.php
> incubator/olio/webapp/php/trunk/public_html/index.php
> incubator/olio/webapp/php/trunk/public_html/rejectInvite.php
> incubator/olio/webapp/php/trunk/public_html/revokeInvite.php
>
> Modified: incubator/olio/webapp/php/trunk/classes/DBConnection.php
> URL: http://svn.apache.org/viewvc/incubator/olio/webapp/php/trunk/classes/DBConnection.php?rev=733989&r1=733988&r2=733989&view=diff
> ==============================================================================
> --- incubator/olio/webapp/php/trunk/classes/DBConnection.php (original)
> +++ incubator/olio/webapp/php/trunk/classes/DBConnection.php Mon Jan 12 17:53:50 2009
> @@ -17,11 +17,37 @@
> * limitations under the License.
> */
>
> -abstract class DBConnection
> -{
> +abstract class DBConnection {
> +
> + var $writeInstance;
> + var $dbTarget;
> +
> +
> static function getInstance() {
> $classname = Web20::$config['dbDriver'] . 'Connection';
> - return new $classname;
> + $instance = new $classname;
> + $instance->writeInstance = false;
> + return $instance;
> + }
> +
> + static function getWriteInstance() {
> + $classname = Web20::$config['dbDriver'] . 'Connection';
> + $instance = new $classname;
> + $instance->writeInstance = true;
> + return $instance;
> + }
> +
> + function selectInstance() {
> + $this->dbTarget = Web20::$config['dbTarget'];
> + if (is_array($this->dbTarget)) {
> + if ($this->writeInstance || count($this->dbTarget) == 1) {
> + $this->dbTarget = $this->dbTarget[0];
> + } else {
> + $idx = (getmypid() % (count($this->dbTarget) - 1)) + 1;
> + // $idx = rand(1, count($this->dbTarget) - 1);
> + $this->dbTarget = $this->dbTarget[$idx];
> + }
> + }
> }
>
> abstract function query();
>
> Modified: incubator/olio/webapp/php/trunk/classes/MemCached.php
> URL: http://svn.apache.org/viewvc/incubator/olio/webapp/php/trunk/classes/MemCached.php?rev=733989&r1=733988&r2=733989&view=diff
> ==============================================================================
> --- incubator/olio/webapp/php/trunk/classes/MemCached.php (original)
> +++ incubator/olio/webapp/php/trunk/classes/MemCached.php Mon Jan 12 17:53:50 2009
> @@ -68,18 +68,15 @@
> $updateSema = $key . 'UpdateSema';
> if (!$this->memcache->get($updateSema)) {
> $updateLock = $key . 'UpdateLock';
> - if (!$this->memcache->get($updateLock)) {
> - $hostPid = php_uname('n') . ':' . getmypid();
> - // The updateLock times out in 5 secs.
> - $this->memcache->set($updateLock, $hostPid, 0, 5);
> - if ($this->memcache->get($updateLock) == $hostPid) {
> - error_log('Verified updateLock');
> - return true;
> - }
> - }
> + $hostPid = php_uname('n') . ':' . getmypid();
> + if ($this->memcache->add($updateLock, $hostPid, 0, 5)) {
> + error_log($hostPid." obtained ".$updateLock);
> + return true;
> + }
> }
> return false;
> - }
> + }
> +
>
> function doneRefresh($key, $timeToNextRefresh) {
> $updateSema = $key . 'UpdateSema';
> @@ -90,6 +87,7 @@
> ' not locked by this process!');
> $this->memcache->set($updateSema, 1, 0, $timeToNextRefresh);
> $this->memcache->delete($updateLock);
> + error_log($hostPid." released ".$updateLock);
> }
> }
> ?>
>
> Modified: incubator/olio/webapp/php/trunk/classes/ODBCConnection.php
> URL: http://svn.apache.org/viewvc/incubator/olio/webapp/php/trunk/classes/ODBCConnection.php?rev=733989&r1=733988&r2=733989&view=diff
> ==============================================================================
> --- incubator/olio/webapp/php/trunk/classes/ODBCConnection.php (original)
> +++ incubator/olio/webapp/php/trunk/classes/ODBCConnection.php Mon Jan 12 17:53:50 2009
> @@ -21,6 +21,18 @@
>
> var $connection;
>
> + private function ensureConnection() {
> + if (!isset($this->dbTarget)) {
> + $this->selectInstance();
> + }
> + if (!isset($this->connection)) {
> + $this->connection = odbc_connect($this->dbTarget,
> + Web20::$config['dbUser'], Web20::$config['dbPass']);
> + if (is_resource($this->connection))
> + throw new Exception("Unable to connect ".$this->dbTarget."!");
> + }
> + }
> +
> function query() {
> if (func_num_args() > 1) {
> $args = func_get_args();
> @@ -30,13 +42,7 @@
> } else {
> $sql = func_get_arg(0);
> }
> - if (!isset($this->connection)) {
> - $this->connection = odbc_connect(Web20::$config['dbTarget'],
> - Web20::$config['dbUser'], Web20::$config['dbPass']);
> - if (is_resource($this->connection))
> - throw new Exception("Unable to connect " .
> - Web20::$config['dbTarget']."!");
> - }
> + $this->ensureConnection();
> if (isset($args)) {
> error_log("You are using prepared statements. This is extremely slow!");
> $result = odbc_prepare($this->connection, $sql);
> @@ -65,13 +71,7 @@
> } else {
> $sql = func_get_arg(0);
> }
> - if (!isset($this->connection)) {
> - $this->connection = odbc_connect(Web20::$config['dbTarget'],
> - Web20::$config['dbUser'], Web20::$config['dbPass']);
> - if (!$this->connection)
> - throw new Exception("Unable to connect " .
> - Web20::$config['dbTarget'] . "!");
> - }
> + $this->ensureConnection();
> if (isset($args)) {
> $result = odbc_prepare($this->connection, $sql);
> if (!odbc_execute($result, $args))
>
> Modified: incubator/olio/webapp/php/trunk/classes/PDOConnection.php
> URL: http://svn.apache.org/viewvc/incubator/olio/webapp/php/trunk/classes/PDOConnection.php?rev=733989&r1=733988&r2=733989&view=diff
> ==============================================================================
> --- incubator/olio/webapp/php/trunk/classes/PDOConnection.php (original)
> +++ incubator/olio/webapp/php/trunk/classes/PDOConnection.php Mon Jan 12 17:53:50 2009
> @@ -22,16 +22,18 @@
> var $connection;
>
> private function ensureConnection() {
> + if (!isset($this->dbTarget)) {
> + $this->selectInstance();
> + }
> if (!isset($this->connection)) {
> - $this->connection = new PDO(Web20::$config['dbTarget'],
> + $this->connection = new PDO($this->dbTarget,
> Web20::$config['dbUser'], Web20::$config['dbPass'],
> array(PDO::ATTR_PERSISTENT => true));
> $this->connection->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true);
> $this->connection->setAttribute( // throw exception on error.
> PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
> if (!$this->connection)
> - throw new Exception("Unable to connect " .
> - Web20::$config['dbTarget']."!");
> + throw new Exception("Unable to connect " . $this->dbTarget."!");
> }
> }
>
>
> Modified: incubator/olio/webapp/php/trunk/etc/config.php
> URL: http://svn.apache.org/viewvc/incubator/olio/webapp/php/trunk/etc/config.php?rev=733989&r1=733988&r2=733989&view=diff
> ==============================================================================
> --- incubator/olio/webapp/php/trunk/etc/config.php (original)
> +++ incubator/olio/webapp/php/trunk/etc/config.php Mon Jan 12 17:53:50 2009
> @@ -23,6 +23,10 @@
>
> // $web20config['dbTarget'] = 'myodbc3'; // ODBC target in odbc.ini.
> $web20config['dbTarget'] = 'mysql:host=localhost;dbname=web20load'; // PDO target.
> +// For master/slave clusters, specify dbTarget as an array, listing the master first.
> +// $web20config['dbTarget'] = array('mysql:host=master;dbname=web20load',
> +// 'mysql:host=slave1;dbname=web20load',
> +// 'mysql:host=slave2;dbname=web20load');
>
> $web20config['dbUser'] = 'web20'; // DB user name.
>
>
> Propchange: incubator/olio/webapp/php/trunk/nbproject/
> ------------------------------------------------------------------------------
> --- svn:ignore (added)
> +++ svn:ignore Mon Jan 12 17:53:50 2009
> @@ -0,0 +1 @@
> +private
>
> Added: incubator/olio/webapp/php/trunk/nbproject/project.properties
> URL: http://svn.apache.org/viewvc/incubator/olio/webapp/php/trunk/nbproject/project.properties?rev=733989&view=auto
> ==============================================================================
> --- incubator/olio/webapp/php/trunk/nbproject/project.properties (added)
> +++ incubator/olio/webapp/php/trunk/nbproject/project.properties Mon Jan 12 17:53:50 2009
> @@ -0,0 +1,6 @@
> +include.path=${php.global.include.path}
> +source.encoding=UTF-8
> +src.dir=.
> +tags.asp=false
> +tags.short=true
> +web.root=.
>
> Added: incubator/olio/webapp/php/trunk/nbproject/project.xml
> URL: http://svn.apache.org/viewvc/incubator/olio/webapp/php/trunk/nbproject/project.xml?rev=733989&view=auto
> ==============================================================================
> --- incubator/olio/webapp/php/trunk/nbproject/project.xml (added)
> +++ incubator/olio/webapp/php/trunk/nbproject/project.xml Mon Jan 12 17:53:50 2009
> @@ -0,0 +1,9 @@
> +<?xml version="1.0" encoding="UTF-8"?>
> +<project xmlns="http://www.netbeans.org/ns/project/1">
> + <type>org.netbeans.modules.php.project</type>
> + <configuration>
> + <data xmlns="http://www.netbeans.org/ns/php-project/1">
> + <name>Olio PHP Application</name>
> + </data>
> + </configuration>
> +</project>
>
> Modified: incubator/olio/webapp/php/trunk/public_html/addAttendee.php
> URL: http://svn.apache.org/viewvc/incubator/olio/webapp/php/trunk/public_html/addAttendee.php?rev=733989&r1=733988&r2=733989&view=diff
> ==============================================================================
> --- incubator/olio/webapp/php/trunk/public_html/addAttendee.php (original)
> +++ incubator/olio/webapp/php/trunk/public_html/addAttendee.php Mon Jan 12 17:53:50 2009
> @@ -23,19 +23,23 @@
> */
> session_start();
> require_once("../etc/config.php");
> -$connection = DBConnection::getInstance();
> $se = $_REQUEST['id'];
> $username = $HTTP_SESSION_VARS["uname"];
> -if(!is_null($username)){
> +if (!is_null($username)) {
> + $connection = DBConnection::getWriteInstance();
> $checkuserIfAttending = "select count(username) as count from PERSON_SOCIALEVENT where socialeventid = '$se' and username = '$username'";
> $result = $connection->query($checkuserIfAttending);
> $row = $result->getArray();
> $userExists = $row['count'];
> - if($userExists <= 0){
> + if ($userExists <= 0) {
> $insertuser = "insert into PERSON_SOCIALEVENT values('$username','$se')";
> $connection->exec($insertuser);
> }
> }
> +
> +if (!isset($connection)) { // If connection not there, we're read-only.
> + $connection = DBConnection::getInstance();
> +}
> $listquery = "select username from PERSON_SOCIALEVENT where socialeventid = '$se'";
> $listqueryresult = $connection->query($listquery);
> $username = $HTTP_SESSION_VARS["uname"];
>
> Modified: incubator/olio/webapp/php/trunk/public_html/addDeleteFriend.php
> URL: http://svn.apache.org/viewvc/incubator/olio/webapp/php/trunk/public_html/addDeleteFriend.php?rev=733989&r1=733988&r2=733989&view=diff
> ==============================================================================
> --- incubator/olio/webapp/php/trunk/public_html/addDeleteFriend.php (original)
> +++ incubator/olio/webapp/php/trunk/public_html/addDeleteFriend.php Mon Jan 12 17:53:50 2009
> @@ -24,7 +24,7 @@
>
> session_start();
> require_once("../etc/config.php");
> -$connection = DBConnection::getInstance();
> +$connection = DBConnection::getWriteInstance();
> $friends = Users_Controller::getInstance();
> $person = $_REQUEST['person'];
> $friend = $_REQUEST['friend'];
>
> Modified: incubator/olio/webapp/php/trunk/public_html/addEventResult.php
> URL: http://svn.apache.org/viewvc/incubator/olio/webapp/php/trunk/public_html/addEventResult.php?rev=733989&r1=733988&r2=733989&view=diff
> ==============================================================================
> --- incubator/olio/webapp/php/trunk/public_html/addEventResult.php (original)
> +++ incubator/olio/webapp/php/trunk/public_html/addEventResult.php Mon Jan 12 17:53:50 2009
> @@ -19,7 +19,7 @@
>
> session_start();
> require_once("../etc/config.php");
> -$connection = DBConnection::getInstance();
> +$connection = DBConnection::getWriteInstance();
>
> // 1. Get data from submission page.
> $description=$_POST['description'];
>
> Modified: incubator/olio/webapp/php/trunk/public_html/addPersonResult.php
> URL: http://svn.apache.org/viewvc/incubator/olio/webapp/php/trunk/public_html/addPersonResult.php?rev=733989&r1=733988&r2=733989&view=diff
> ==============================================================================
> --- incubator/olio/webapp/php/trunk/public_html/addPersonResult.php (original)
> +++ incubator/olio/webapp/php/trunk/public_html/addPersonResult.php Mon Jan 12 17:53:50 2009
> @@ -18,7 +18,7 @@
> */
>
> require_once("../etc/config.php");
> -$connection = DBConnection::getInstance();
> +$connection = DBConnection::getWriteInstance();
>
> if(isset($_POST['addpersonsubmit'])) {
> //insert into person table using the data from addPerson page
>
> Modified: incubator/olio/webapp/php/trunk/public_html/approveFriendship.php
> URL: http://svn.apache.org/viewvc/incubator/olio/webapp/php/trunk/public_html/approveFriendship.php?rev=733989&r1=733988&r2=733989&view=diff
> ==============================================================================
> --- incubator/olio/webapp/php/trunk/public_html/approveFriendship.php (original)
> +++ incubator/olio/webapp/php/trunk/public_html/approveFriendship.php Mon Jan 12 17:53:50 2009
> @@ -23,7 +23,7 @@
> */
> session_start();
> require_once("../etc/config.php");
> -$connection = DBConnection::getInstance();
> +$connection = DBConnection::getWriteInstance();
> $friends = Users_Controller::getInstance();
> $person = $_REQUEST['person'];
> $friend = $_REQUEST['friend'];
>
> Modified: incubator/olio/webapp/php/trunk/public_html/deleteAttendee.php
> URL: http://svn.apache.org/viewvc/incubator/olio/webapp/php/trunk/public_html/deleteAttendee.php?rev=733989&r1=733988&r2=733989&view=diff
> ==============================================================================
> --- incubator/olio/webapp/php/trunk/public_html/deleteAttendee.php (original)
> +++ incubator/olio/webapp/php/trunk/public_html/deleteAttendee.php Mon Jan 12 17:53:50 2009
> @@ -25,13 +25,17 @@
>
> session_start();
> require_once("../etc/config.php");
> -$connection = DBConnection::getInstance();
> $se = $_REQUEST['id'];
> $username = $HTTP_SESSION_VARS["uname"];
> if(!is_null($username)){
> + $connection = DBConnection::getWriteInstance();
> $deleteuser = "delete from PERSON_SOCIALEVENT where username='$username' and socialeventid='$se'";
> $connection->exec($deleteuser);
> }
> +
> +if (!isset($connection)) {
> + $connection = DBConnection::getInstance();
> +}
> $listquery = "select username from PERSON_SOCIALEVENT where socialeventid = '$se'";
> $listqueryresult = $connection->query($listquery);
> $username = $HTTP_SESSION_VARS["uname"];
>
> Modified: incubator/olio/webapp/php/trunk/public_html/deleteCommentsRating.php
> URL: http://svn.apache.org/viewvc/incubator/olio/webapp/php/trunk/public_html/deleteCommentsRating.php?rev=733989&r1=733988&r2=733989&view=diff
> ==============================================================================
> --- incubator/olio/webapp/php/trunk/public_html/deleteCommentsRating.php (original)
> +++ incubator/olio/webapp/php/trunk/public_html/deleteCommentsRating.php Mon Jan 12 17:53:50 2009
> @@ -25,7 +25,7 @@
>
> session_start();
> require_once("../etc/config.php");
> -$connection = DBConnection::getInstance();
> +$connection = DBConnection::getWriteInstance();
> $events = Events_Controller::getInstance();
> $dateFormat = "l, F j, Y, h:i A";
> $commentid = $_REQUEST['commentid'];
>
> Modified: incubator/olio/webapp/php/trunk/public_html/deleteEvent.php
> URL: http://svn.apache.org/viewvc/incubator/olio/webapp/php/trunk/public_html/deleteEvent.php?rev=733989&r1=733988&r2=733989&view=diff
> ==============================================================================
> --- incubator/olio/webapp/php/trunk/public_html/deleteEvent.php (original)
> +++ incubator/olio/webapp/php/trunk/public_html/deleteEvent.php Mon Jan 12 17:53:50 2009
> @@ -24,7 +24,7 @@
> */
> session_start();
> require_once("../etc/config.php");
> -$connection = DBConnection::getInstance();
> +$connection = DBConnection::getWriteInstance();
> $se = $_REQUEST['socialEventID'];
> $deleteEvent = "delete from SOCIALEVENT where socialeventid='$se'";
> $connection->exec($deleteEvent);
>
> Modified: incubator/olio/webapp/php/trunk/public_html/events.php
> URL: http://svn.apache.org/viewvc/incubator/olio/webapp/php/trunk/public_html/events.php?rev=733989&r1=733988&r2=733989&view=diff
> ==============================================================================
> --- incubator/olio/webapp/php/trunk/public_html/events.php (original)
> +++ incubator/olio/webapp/php/trunk/public_html/events.php Mon Jan 12 17:53:50 2009
> @@ -28,7 +28,12 @@
> $comments = $_POST['comments'];
> $cid = $_POST['editingcid'];
> $editcomments = $_POST['editcomments'];
> -$connection = DBConnection::getInstance();
> +if (isset($_POST['commentsratingsubmit']) ||
> + (isset($_POST['editcommentsratingsubmit']) && isset($_POST['editingcid']))) {
> + $connection = DBConnection::getWriteInstance();
> +} else {
> + $connection = DBConnection::getInstance();
> +}
> $tagslist = Tags_Controller::getInstance();
> $events = Events_Controller::getInstance();
> $username = $HTTP_SESSION_VARS["uname"];
> @@ -80,11 +85,10 @@
> }
> unset($listqueryresult);
>
> -$editCRforCid = $_POST['editcommentsratingsubmit'].$cid;
> if (isset($_POST['commentsratingsubmit'])) {
> $insertSql = "insert into COMMENTS_RATING (username,socialeventid,comments,ratings) values ('$username','$se','$comments','$rating')";
> $connection->exec($insertSql);
> -}else if (isset($editCRforCid)) {
> +} else if (isset($_POST['editcommentsratingsubmit']) && isset($_POST['editingcid'])) {
> $updateSql = "update COMMENTS_RATING set comments='$editcomments', ratings='$rating' where username='$username' and socialeventid='$se' and commentid='$cid'";
> $connection->exec($updateSql);
> }
>
> Modified: incubator/olio/webapp/php/trunk/public_html/index.php
> URL: http://svn.apache.org/viewvc/incubator/olio/webapp/php/trunk/public_html/index.php?rev=733989&r1=733988&r2=733989&view=diff
> ==============================================================================
> --- incubator/olio/webapp/php/trunk/public_html/index.php (original)
> +++ incubator/olio/webapp/php/trunk/public_html/index.php Mon Jan 12 17:53:50 2009
> @@ -24,22 +24,23 @@
> */
>
> session_start();
> -require_once("../etc/config.php");
> -$connection = DBConnection::getInstance();
> -$eventlist = Events_Controller::getInstance();
> -$tagcloud = Tags_Controller::getInstance();
> -$url = RequestUrl::getInstance();
> +require("../etc/config.php");
> +
> $signedinuser = $HTTP_SESSION_VARS["uname"];
> $page= $_REQUEST['page'];
> $flag = $_REQUEST['flag'];
>
> +$url = RequestUrl::getInstance();
> +
> $href = $url->getGetRequest();
> -if(!is_null($page)){
> -$href = substr($href, 0, strrpos($href,"&"));
> -}
> +if(!is_null($page)) {
> + $href = substr($href, 0, strrpos($href,"&"));
> +} // else {
> + // error_log('$page is null.',0);
> + //}
>
> -if($href==""){
> -$href = "?";
> +if($href=="") {
> + $href = "?";
> }
>
> if(!is_null($page)){
> @@ -53,47 +54,185 @@
> $next_page = $HTTP_SESSION_VARS["currentpage"] + 1;
> $offset = ($page * 10) - 10;
> if($offset < 0) {
> - $offset = 0;
> + $offset = 0;
> }
> if($prev_page < 0) {
> - $prev_page = 1;
> + $prev_page = 1;
> }
> if($next_page > $numPages) {
> - $next_page = $numPages;
> + $next_page = $numPages;
> }
> -}else{
> + $cacheType = 0;
> +} else {
> + // error_log('$page is still null.',0);
> $zipcode = $_REQUEST['zipcode'];
> $order = $_REQUEST['order'];
> $m= $_REQUEST['month'];
> $d= $_REQUEST['day'];
> $y= $_REQUEST['year'];
>
> - if(!is_null($_REQUEST['month']) && !is_null($_REQUEST['day']) && !is_null($_REQUEST['year']) ){
> - $eventdate= $y."-".$m."-".$d;
> + if(!is_null($_REQUEST['month']) && !is_null($_REQUEST['day']) &&
> + !is_null($_REQUEST['year'])) {
> + $eventdate= $y."-".$m."-".$d;
> + }
> + if (is_null($zipcode) && is_null($order) &&
> + !isset($eventdate)) {
> + //if (is_null($signedinuser)) { // Get whole page if not logged in...
> + if($HTTP_SESSION_VARS["uname"] == ''){
> + $cacheType = 2;
> + } else { // And just the page content if logged in.
> + $cacheType = 1;
> + }
> + } else {
> + $HTTP_SESSION_VARS["eventdate"]= $eventdate;
> + $HTTP_SESSION_VARS["zipcode"] = $zipcode;
> + $HTTP_SESSION_VARS["order"] = $order;
> +
> + $connection = DBConnection::getInstance();
> + $eventlist = Events_Controller::getInstance();
> + $numPages = $eventlist->getNumPages($zipcode,$eventdate,$connection);
> + $tagcloud = Tags_Controller::getInstance();
> + $HTTP_SESSION_VARS["numPages"] = $numPages;
> + // error_log("numPages = $numPages",0);
> + $cacheType = 0;
> }
> - $HTTP_SESSION_VARS["eventdate"]= $eventdate;
> - $HTTP_SESSION_VARS["zipcode"] = $zipcode;
> - $HTTP_SESSION_VARS["order"] = $order;
> - $numPages = $eventlist->getNumPages($zipcode,$eventdate,$connection);
> - $HTTP_SESSION_VARS["numPages"] = $numPages;
> -
> $prev_page = 1;
> $next_page = 2;
> $curr_page = 1;
> $offset = 0;
> session_unregister ("currentpage");
> }
> -$indexEvents = $eventlist->getIndexEvents($zipcode,$order,$eventdate,$offset,null,$signedinuser,$connection);
>
> -ob_start();
> -require("../views/paginate.php");
> -$paginateView = ob_get_clean();
> -
> -ob_start();
> -require("../views/index.php");
> -$fillContent = ob_get_clean();
> -if($flag == "authenticated"){
> -$fillMessage ="<font color=green>Successfully logged in!</font>";
> +switch ($cacheType) {
> + case 0: noCachePage(); break;
> + case 1: contentCachePage(); break;
> + case 2: fullCachePage();
> +}
> +
> +
> +function fullCachePage() {
> + // error_log('fullCachePage Called',0);
> + global $signedinuser, $page, $flag, $url, $href, $eventdate, $zipcode;
> + global $order, $numPages, $curr_page, $prev_page, $next_page, $offset;
> + global $HTTP_SESSION_VARS;
> +
> + // error_log('Accesssing Cache subsystem to collect the page if possible.',0);
> + $cache = CacheSystem::getInstance();
> + $pageContent = $cache->get('Home');
> + // error_log("Checking the Cache status for logged in and normal Home pages",0);
> + if ($pageContent != '') {
> + echo $pageContent;
> + // error_log("Cache hit for Home page...",0);
> + }
> +
> + $needsRefresh = false;
> + for (;;) {
> + // error_log('refresh logic accessed.');
> + if ($cache->needsRefresh('Home')) {
> + $needsRefresh = true;
> + // error_log('Home needs refresh.');
> + break;
> + } else if ($pageContent == '') {
> + error_log('index.php waiting for cache.');
> + usleep(200000);
> + $pageContent = $cache->get('Home');
> + if ($pageContent != '') {
> + echo $pageContent;
> + break;
> + }
> + } else {
> + // error_log('.');
> + break;
> + }
> + }
> +
> + if ($needsRefresh) {
> + // error_log("Regenerating page................");
> + $connection = DBConnection::getInstance();
> + $eventlist = Events_Controller::getInstance();
> + $numPages = $eventlist->getNumPages($zipcode,$eventdate,$connection);
> + $indexEvents = $eventlist->getIndexEvents($zipcode,$order,$eventdate,
> + $offset,null,$signedinuser,$connection);
> + $tagcloud = Tags_Controller::getInstance();
> +
> + ob_start();
> + require("../views/paginate.php");
> + $paginateView = ob_get_clean();
> +
> + ob_start();
> + require("../views/index.php");
> + $fillContent = ob_get_clean();
> +
> + ob_start();
> +
> + require("../views/site.php");
> +
> + // error_log('refreshing cache contents',0);
> + $newPageContent = ob_get_contents();
> + $cache->set('Home', $newPageContent, 0, 0);
> + $cache->set('HomeContent', $fillContent, 0, 0);
> + $cache->doneRefresh('Home', 300);
> +
> + if ($pageContent == '') { // Not displayed yet, just display now.
> + // error_log("Display newly generated page");
> + ob_end_flush();
> + } else {
> + // error_log("Display of cache generated page has occured");
> + ob_end_clean(); // Otherwise just don't display the new one.
> + }
> + }
> +}
> +
> +function contentCachePage() {
> + // error_log('ContentCachePage Called',0);
> + global $signedinuser, $page, $flag, $url, $href, $eventdate, $zipcode;
> + global $order, $numPages, $curr_page, $prev_page, $next_page, $offset;
> + global $HTTP_SESSION_VARS;
> +
> + $cache = CacheSystem::getInstance();
> + for (;;) {
> + $fillContent = $cache->get('HomeContent');
> + if ($fillContent != '') {
> + break;
> + }
> + usleep(20000);
> + error_log('Retry loading fillContent from cache.');
> + }
> +
> + if ($flag == "authenticated") {
> + $fillMessage ="<font color=green>Successfully logged in!</font>";
> + }
> + require("../views/site.php");
> +}
> +
> +function noCachePage() {
> + // error_log('noCachePage Called',0);
> + global $signedinuser, $page, $flag, $url, $href, $eventdate, $zipcode;
> + global $order, $numPages, $curr_page, $prev_page, $next_page, $offset;
> + global $HTTP_SESSION_VARS;
> +
> + $connection = DBConnection::getInstance();
> + $eventlist = Events_Controller::getInstance();
> + $tagcloud = Tags_Controller::getInstance();
> +
> + if (!is_null($page)) {
> + $numPages = $eventlist->getNumPages($zipcode,$eventdate,$connection);
> + }
> + $indexEvents = $eventlist->getIndexEvents($zipcode,$order,$eventdate,
> + $offset,null,$signedinuser,$connection);
> +
> + ob_start();
> + require("../views/paginate.php");
> + $paginateView = ob_get_clean();
> +
> + ob_start();
> + require("../views/index.php");
> + $fillContent = ob_get_clean();
> +
> + if($flag == "authenticated") {
> + $fillMessage ="<font color=green>Successfully logged in!</font>";
> + }
> +
> + require("../views/site.php");
> }
> -require_once("../views/site.php");
> ?>
>
> Modified: incubator/olio/webapp/php/trunk/public_html/rejectInvite.php
> URL: http://svn.apache.org/viewvc/incubator/olio/webapp/php/trunk/public_html/rejectInvite.php?rev=733989&r1=733988&r2=733989&view=diff
> ==============================================================================
> --- incubator/olio/webapp/php/trunk/public_html/rejectInvite.php (original)
> +++ incubator/olio/webapp/php/trunk/public_html/rejectInvite.php Mon Jan 12 17:53:50 2009
> @@ -24,7 +24,7 @@
> */
> session_start();
> require_once("../etc/config.php");
> -$connection = DBConnection::getInstance();
> +$connection = DBConnection::getWriteInstance();
> $friends = Users_Controller::getInstance();
> $person = $_REQUEST['person'];
> $friend = $_REQUEST['friend'];
>
> Modified: incubator/olio/webapp/php/trunk/public_html/revokeInvite.php
> URL: http://svn.apache.org/viewvc/incubator/olio/webapp/php/trunk/public_html/revokeInvite.php?rev=733989&r1=733988&r2=733989&view=diff
> ==============================================================================
> --- incubator/olio/webapp/php/trunk/public_html/revokeInvite.php (original)
> +++ incubator/olio/webapp/php/trunk/public_html/revokeInvite.php Mon Jan 12 17:53:50 2009
> @@ -24,7 +24,7 @@
> */
> session_start();
> require_once("../etc/config.php");
> -$connection = DBConnection::getInstance();
> +$connection = DBConnection::getWriteInstance();
> $friends = Users_Controller::getInstance();
> $person = $_REQUEST['person'];
> $friend = $_REQUEST['friend'];
>
>
>
Re: svn commit: r733989 - in /incubator/olio/webapp/php/trunk:
classes/ etc/ nbproject/ public_html/
Posted by Akara Sucharitakul <Ak...@Sun.COM>.
That was inadvertently added to the bulk commit. I already removed them.
-Akara
Shanti Subramanyam wrote:
> Akara - do we want the nbproject files ?
>
> Shanti
>
> akara@apache.org wrote:
>> Author: akara
>> Date: Mon Jan 12 17:53:50 2009
>> New Revision: 733989
>>
>> URL: http://svn.apache.org/viewvc?rev=733989&view=rev
>> Log:
>> Fix for issue OLIO-3 and OLIO-30:
>> - Fix for OLIO-3 submitted by Damien Cooke
>> - Fix for OLIO-30 - added database selection mechanism and changed all
>> write transaction to write to the write instance of the DB connection
>> obtained via DBConnection::getWriteInstance();
>>
>> Added:
>> incubator/olio/webapp/php/trunk/nbproject/ (with props)
>> incubator/olio/webapp/php/trunk/nbproject/project.properties
>> incubator/olio/webapp/php/trunk/nbproject/project.xml
>> Modified:
>> incubator/olio/webapp/php/trunk/classes/DBConnection.php
>> incubator/olio/webapp/php/trunk/classes/MemCached.php
>> incubator/olio/webapp/php/trunk/classes/ODBCConnection.php
>> incubator/olio/webapp/php/trunk/classes/PDOConnection.php
>> incubator/olio/webapp/php/trunk/etc/config.php
>> incubator/olio/webapp/php/trunk/public_html/addAttendee.php
>> incubator/olio/webapp/php/trunk/public_html/addDeleteFriend.php
>> incubator/olio/webapp/php/trunk/public_html/addEventResult.php
>> incubator/olio/webapp/php/trunk/public_html/addPersonResult.php
>> incubator/olio/webapp/php/trunk/public_html/approveFriendship.php
>> incubator/olio/webapp/php/trunk/public_html/deleteAttendee.php
>> incubator/olio/webapp/php/trunk/public_html/deleteCommentsRating.php
>> incubator/olio/webapp/php/trunk/public_html/deleteEvent.php
>> incubator/olio/webapp/php/trunk/public_html/events.php
>> incubator/olio/webapp/php/trunk/public_html/index.php
>> incubator/olio/webapp/php/trunk/public_html/rejectInvite.php
>> incubator/olio/webapp/php/trunk/public_html/revokeInvite.php
>>
>> Modified: incubator/olio/webapp/php/trunk/classes/DBConnection.php
>> URL:
>> http://svn.apache.org/viewvc/incubator/olio/webapp/php/trunk/classes/DBConnection.php?rev=733989&r1=733988&r2=733989&view=diff
>>
>> ==============================================================================
>>
>> --- incubator/olio/webapp/php/trunk/classes/DBConnection.php (original)
>> +++ incubator/olio/webapp/php/trunk/classes/DBConnection.php Mon Jan
>> 12 17:53:50 2009
>> @@ -17,11 +17,37 @@
>> * limitations under the License.
>> */ -abstract class DBConnection
>> -{
>> +abstract class DBConnection {
>> +
>> + var $writeInstance;
>> + var $dbTarget;
>> +
>> +
>> static function getInstance() {
>> $classname = Web20::$config['dbDriver'] . 'Connection';
>> - return new $classname;
>> + $instance = new $classname;
>> + $instance->writeInstance = false;
>> + return $instance;
>> + }
>> +
>> + static function getWriteInstance() {
>> + $classname = Web20::$config['dbDriver'] . 'Connection';
>> + $instance = new $classname;
>> + $instance->writeInstance = true;
>> + return $instance;
>> + }
>> +
>> + function selectInstance() {
>> + $this->dbTarget = Web20::$config['dbTarget'];
>> + if (is_array($this->dbTarget)) {
>> + if ($this->writeInstance || count($this->dbTarget) == 1) {
>> + $this->dbTarget = $this->dbTarget[0];
>> + } else {
>> + $idx = (getmypid() % (count($this->dbTarget) - 1)) + 1;
>> + // $idx = rand(1, count($this->dbTarget) - 1);
>> + $this->dbTarget = $this->dbTarget[$idx];
>> + }
>> + }
>> }
>> abstract function query();
>>
>> Modified: incubator/olio/webapp/php/trunk/classes/MemCached.php
>> URL:
>> http://svn.apache.org/viewvc/incubator/olio/webapp/php/trunk/classes/MemCached.php?rev=733989&r1=733988&r2=733989&view=diff
>>
>> ==============================================================================
>>
>> --- incubator/olio/webapp/php/trunk/classes/MemCached.php (original)
>> +++ incubator/olio/webapp/php/trunk/classes/MemCached.php Mon Jan 12
>> 17:53:50 2009
>> @@ -68,18 +68,15 @@
>> $updateSema = $key . 'UpdateSema';
>> if (!$this->memcache->get($updateSema)) {
>> $updateLock = $key . 'UpdateLock';
>> - if (!$this->memcache->get($updateLock)) {
>> - $hostPid = php_uname('n') . ':' . getmypid();
>> - // The updateLock times out in 5 secs.
>> - $this->memcache->set($updateLock, $hostPid, 0, 5);
>> - if ($this->memcache->get($updateLock) == $hostPid) {
>> - error_log('Verified updateLock');
>> - return true;
>> - }
>> - }
>> + $hostPid = php_uname('n') . ':' . getmypid();
>> + if ($this->memcache->add($updateLock, $hostPid, 0, 5)) {
>> + error_log($hostPid." obtained ".$updateLock);
>> + return true;
>> + }
>> }
>> return false;
>> - }
>> + }
>> +
>>
>> function doneRefresh($key, $timeToNextRefresh) {
>> $updateSema = $key . 'UpdateSema';
>> @@ -90,6 +87,7 @@
>> ' not locked by this process!');
>> $this->memcache->set($updateSema, 1, 0, $timeToNextRefresh);
>> $this->memcache->delete($updateLock);
>> + error_log($hostPid." released ".$updateLock);
>> }
>> }
>> ?>
>>
>> Modified: incubator/olio/webapp/php/trunk/classes/ODBCConnection.php
>> URL:
>> http://svn.apache.org/viewvc/incubator/olio/webapp/php/trunk/classes/ODBCConnection.php?rev=733989&r1=733988&r2=733989&view=diff
>>
>> ==============================================================================
>>
>> --- incubator/olio/webapp/php/trunk/classes/ODBCConnection.php (original)
>> +++ incubator/olio/webapp/php/trunk/classes/ODBCConnection.php Mon Jan
>> 12 17:53:50 2009
>> @@ -21,6 +21,18 @@
>>
>> var $connection;
>>
>> + private function ensureConnection() {
>> + if (!isset($this->dbTarget)) {
>> + $this->selectInstance();
>> + }
>> + if (!isset($this->connection)) {
>> + $this->connection = odbc_connect($this->dbTarget,
>> + Web20::$config['dbUser'], Web20::$config['dbPass']);
>> + if (is_resource($this->connection))
>> + throw new Exception("Unable to connect
>> ".$this->dbTarget."!");
>> + }
>> + }
>> +
>> function query() {
>> if (func_num_args() > 1) {
>> $args = func_get_args();
>> @@ -30,13 +42,7 @@
>> } else {
>> $sql = func_get_arg(0);
>> }
>> - if (!isset($this->connection)) {
>> - $this->connection = odbc_connect(Web20::$config['dbTarget'],
>> - Web20::$config['dbUser'], Web20::$config['dbPass']);
>> - if (is_resource($this->connection))
>> - throw new Exception("Unable to connect " .
>> - Web20::$config['dbTarget']."!");
>> - }
>> + $this->ensureConnection();
>> if (isset($args)) {
>> error_log("You are using prepared statements. This is
>> extremely slow!");
>> $result = odbc_prepare($this->connection, $sql);
>> @@ -65,13 +71,7 @@
>> } else {
>> $sql = func_get_arg(0);
>> }
>> - if (!isset($this->connection)) {
>> - $this->connection = odbc_connect(Web20::$config['dbTarget'],
>> - Web20::$config['dbUser'], Web20::$config['dbPass']);
>> - if (!$this->connection)
>> - throw new Exception("Unable to connect " .
>> - Web20::$config['dbTarget'] . "!");
>> - }
>> + $this->ensureConnection();
>> if (isset($args)) {
>> $result = odbc_prepare($this->connection, $sql);
>> if (!odbc_execute($result, $args))
>>
>> Modified: incubator/olio/webapp/php/trunk/classes/PDOConnection.php
>> URL:
>> http://svn.apache.org/viewvc/incubator/olio/webapp/php/trunk/classes/PDOConnection.php?rev=733989&r1=733988&r2=733989&view=diff
>>
>> ==============================================================================
>>
>> --- incubator/olio/webapp/php/trunk/classes/PDOConnection.php (original)
>> +++ incubator/olio/webapp/php/trunk/classes/PDOConnection.php Mon Jan
>> 12 17:53:50 2009
>> @@ -22,16 +22,18 @@
>> var $connection;
>> private function ensureConnection() {
>> + if (!isset($this->dbTarget)) {
>> + $this->selectInstance();
>> + }
>> if (!isset($this->connection)) {
>> - $this->connection = new PDO(Web20::$config['dbTarget'],
>> + $this->connection = new PDO($this->dbTarget,
>> Web20::$config['dbUser'], Web20::$config['dbPass'],
>> array(PDO::ATTR_PERSISTENT => true));
>>
>> $this->connection->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY,
>> true);
>> $this->connection->setAttribute( // throw exception on
>> error.
>> PDO::ATTR_ERRMODE,
>> PDO::ERRMODE_EXCEPTION); if
>> (!$this->connection)
>> - throw new Exception("Unable to connect " .
>> - Web20::$config['dbTarget']."!");
>> + throw new Exception("Unable to connect " .
>> $this->dbTarget."!");
>> }
>> }
>>
>> Modified: incubator/olio/webapp/php/trunk/etc/config.php
>> URL:
>> http://svn.apache.org/viewvc/incubator/olio/webapp/php/trunk/etc/config.php?rev=733989&r1=733988&r2=733989&view=diff
>>
>> ==============================================================================
>>
>> --- incubator/olio/webapp/php/trunk/etc/config.php (original)
>> +++ incubator/olio/webapp/php/trunk/etc/config.php Mon Jan 12 17:53:50
>> 2009
>> @@ -23,6 +23,10 @@
>>
>> // $web20config['dbTarget'] = 'myodbc3'; // ODBC target in odbc.ini.
>> $web20config['dbTarget'] = 'mysql:host=localhost;dbname=web20load';
>> // PDO target.
>> +// For master/slave clusters, specify dbTarget as an array, listing
>> the master first.
>> +// $web20config['dbTarget'] =
>> array('mysql:host=master;dbname=web20load',
>> +//
>> 'mysql:host=slave1;dbname=web20load',
>> +//
>> 'mysql:host=slave2;dbname=web20load');
>>
>> $web20config['dbUser'] = 'web20'; // DB user name.
>>
>>
>> Propchange: incubator/olio/webapp/php/trunk/nbproject/
>> ------------------------------------------------------------------------------
>>
>> --- svn:ignore (added)
>> +++ svn:ignore Mon Jan 12 17:53:50 2009
>> @@ -0,0 +1 @@
>> +private
>>
>> Added: incubator/olio/webapp/php/trunk/nbproject/project.properties
>> URL:
>> http://svn.apache.org/viewvc/incubator/olio/webapp/php/trunk/nbproject/project.properties?rev=733989&view=auto
>>
>> ==============================================================================
>>
>> --- incubator/olio/webapp/php/trunk/nbproject/project.properties (added)
>> +++ incubator/olio/webapp/php/trunk/nbproject/project.properties Mon
>> Jan 12 17:53:50 2009
>> @@ -0,0 +1,6 @@
>> +include.path=${php.global.include.path}
>> +source.encoding=UTF-8
>> +src.dir=.
>> +tags.asp=false
>> +tags.short=true
>> +web.root=.
>>
>> Added: incubator/olio/webapp/php/trunk/nbproject/project.xml
>> URL:
>> http://svn.apache.org/viewvc/incubator/olio/webapp/php/trunk/nbproject/project.xml?rev=733989&view=auto
>>
>> ==============================================================================
>>
>> --- incubator/olio/webapp/php/trunk/nbproject/project.xml (added)
>> +++ incubator/olio/webapp/php/trunk/nbproject/project.xml Mon Jan 12
>> 17:53:50 2009
>> @@ -0,0 +1,9 @@
>> +<?xml version="1.0" encoding="UTF-8"?>
>> +<project xmlns="http://www.netbeans.org/ns/project/1">
>> + <type>org.netbeans.modules.php.project</type>
>> + <configuration>
>> + <data xmlns="http://www.netbeans.org/ns/php-project/1">
>> + <name>Olio PHP Application</name>
>> + </data>
>> + </configuration>
>> +</project>
>>
>> Modified: incubator/olio/webapp/php/trunk/public_html/addAttendee.php
>> URL:
>> http://svn.apache.org/viewvc/incubator/olio/webapp/php/trunk/public_html/addAttendee.php?rev=733989&r1=733988&r2=733989&view=diff
>>
>> ==============================================================================
>>
>> --- incubator/olio/webapp/php/trunk/public_html/addAttendee.php
>> (original)
>> +++ incubator/olio/webapp/php/trunk/public_html/addAttendee.php Mon
>> Jan 12 17:53:50 2009
>> @@ -23,19 +23,23 @@
>> */
>> session_start();
>> require_once("../etc/config.php");
>> -$connection = DBConnection::getInstance();
>> $se = $_REQUEST['id'];
>> $username = $HTTP_SESSION_VARS["uname"];
>> -if(!is_null($username)){
>> +if (!is_null($username)) {
>> + $connection = DBConnection::getWriteInstance();
>> $checkuserIfAttending = "select count(username) as count from
>> PERSON_SOCIALEVENT where socialeventid = '$se' and username =
>> '$username'";
>> $result = $connection->query($checkuserIfAttending);
>> $row = $result->getArray();
>> $userExists = $row['count'];
>> - if($userExists <= 0){
>> + if ($userExists <= 0) {
>> $insertuser = "insert into PERSON_SOCIALEVENT
>> values('$username','$se')";
>> $connection->exec($insertuser);
>> }
>> }
>> +
>> +if (!isset($connection)) { // If connection not there, we're read-only.
>> + $connection = DBConnection::getInstance();
>> +}
>> $listquery = "select username from PERSON_SOCIALEVENT where
>> socialeventid = '$se'";
>> $listqueryresult = $connection->query($listquery);
>> $username = $HTTP_SESSION_VARS["uname"];
>>
>> Modified: incubator/olio/webapp/php/trunk/public_html/addDeleteFriend.php
>> URL:
>> http://svn.apache.org/viewvc/incubator/olio/webapp/php/trunk/public_html/addDeleteFriend.php?rev=733989&r1=733988&r2=733989&view=diff
>>
>> ==============================================================================
>>
>> --- incubator/olio/webapp/php/trunk/public_html/addDeleteFriend.php
>> (original)
>> +++ incubator/olio/webapp/php/trunk/public_html/addDeleteFriend.php
>> Mon Jan 12 17:53:50 2009
>> @@ -24,7 +24,7 @@
>> session_start();
>> require_once("../etc/config.php");
>> -$connection = DBConnection::getInstance();
>> +$connection = DBConnection::getWriteInstance();
>> $friends = Users_Controller::getInstance();
>> $person = $_REQUEST['person'];
>> $friend = $_REQUEST['friend'];
>>
>> Modified: incubator/olio/webapp/php/trunk/public_html/addEventResult.php
>> URL:
>> http://svn.apache.org/viewvc/incubator/olio/webapp/php/trunk/public_html/addEventResult.php?rev=733989&r1=733988&r2=733989&view=diff
>>
>> ==============================================================================
>>
>> --- incubator/olio/webapp/php/trunk/public_html/addEventResult.php
>> (original)
>> +++ incubator/olio/webapp/php/trunk/public_html/addEventResult.php Mon
>> Jan 12 17:53:50 2009
>> @@ -19,7 +19,7 @@
>> session_start(); require_once("../etc/config.php");
>> -$connection = DBConnection::getInstance();
>> +$connection = DBConnection::getWriteInstance();
>>
>> // 1. Get data from submission page.
>> $description=$_POST['description'];
>>
>> Modified: incubator/olio/webapp/php/trunk/public_html/addPersonResult.php
>> URL:
>> http://svn.apache.org/viewvc/incubator/olio/webapp/php/trunk/public_html/addPersonResult.php?rev=733989&r1=733988&r2=733989&view=diff
>>
>> ==============================================================================
>>
>> --- incubator/olio/webapp/php/trunk/public_html/addPersonResult.php
>> (original)
>> +++ incubator/olio/webapp/php/trunk/public_html/addPersonResult.php
>> Mon Jan 12 17:53:50 2009
>> @@ -18,7 +18,7 @@
>> */ require_once("../etc/config.php");
>> -$connection = DBConnection::getInstance();
>> +$connection = DBConnection::getWriteInstance();
>>
>> if(isset($_POST['addpersonsubmit'])) {
>> //insert into person table using the data from addPerson page
>>
>> Modified:
>> incubator/olio/webapp/php/trunk/public_html/approveFriendship.php
>> URL:
>> http://svn.apache.org/viewvc/incubator/olio/webapp/php/trunk/public_html/approveFriendship.php?rev=733989&r1=733988&r2=733989&view=diff
>>
>> ==============================================================================
>>
>> --- incubator/olio/webapp/php/trunk/public_html/approveFriendship.php
>> (original)
>> +++ incubator/olio/webapp/php/trunk/public_html/approveFriendship.php
>> Mon Jan 12 17:53:50 2009
>> @@ -23,7 +23,7 @@
>> */ session_start();
>> require_once("../etc/config.php");
>> -$connection = DBConnection::getInstance();
>> +$connection = DBConnection::getWriteInstance();
>> $friends = Users_Controller::getInstance();
>> $person = $_REQUEST['person'];
>> $friend = $_REQUEST['friend'];
>>
>> Modified: incubator/olio/webapp/php/trunk/public_html/deleteAttendee.php
>> URL:
>> http://svn.apache.org/viewvc/incubator/olio/webapp/php/trunk/public_html/deleteAttendee.php?rev=733989&r1=733988&r2=733989&view=diff
>>
>> ==============================================================================
>>
>> --- incubator/olio/webapp/php/trunk/public_html/deleteAttendee.php
>> (original)
>> +++ incubator/olio/webapp/php/trunk/public_html/deleteAttendee.php Mon
>> Jan 12 17:53:50 2009
>> @@ -25,13 +25,17 @@
>> session_start();
>> require_once("../etc/config.php");
>> -$connection = DBConnection::getInstance();
>> $se = $_REQUEST['id'];
>> $username = $HTTP_SESSION_VARS["uname"];
>> if(!is_null($username)){
>> + $connection = DBConnection::getWriteInstance();
>> $deleteuser = "delete from PERSON_SOCIALEVENT where
>> username='$username' and socialeventid='$se'";
>> $connection->exec($deleteuser);
>> }
>> +
>> +if (!isset($connection)) {
>> + $connection = DBConnection::getInstance();
>> +}
>> $listquery = "select username from PERSON_SOCIALEVENT where
>> socialeventid = '$se'";
>> $listqueryresult = $connection->query($listquery);
>> $username = $HTTP_SESSION_VARS["uname"];
>>
>> Modified:
>> incubator/olio/webapp/php/trunk/public_html/deleteCommentsRating.php
>> URL:
>> http://svn.apache.org/viewvc/incubator/olio/webapp/php/trunk/public_html/deleteCommentsRating.php?rev=733989&r1=733988&r2=733989&view=diff
>>
>> ==============================================================================
>>
>> ---
>> incubator/olio/webapp/php/trunk/public_html/deleteCommentsRating.php
>> (original)
>> +++
>> incubator/olio/webapp/php/trunk/public_html/deleteCommentsRating.php
>> Mon Jan 12 17:53:50 2009
>> @@ -25,7 +25,7 @@
>>
>> session_start();
>> require_once("../etc/config.php");
>> -$connection = DBConnection::getInstance();
>> +$connection = DBConnection::getWriteInstance();
>> $events = Events_Controller::getInstance();
>> $dateFormat = "l, F j, Y, h:i A";
>> $commentid = $_REQUEST['commentid'];
>>
>> Modified: incubator/olio/webapp/php/trunk/public_html/deleteEvent.php
>> URL:
>> http://svn.apache.org/viewvc/incubator/olio/webapp/php/trunk/public_html/deleteEvent.php?rev=733989&r1=733988&r2=733989&view=diff
>>
>> ==============================================================================
>>
>> --- incubator/olio/webapp/php/trunk/public_html/deleteEvent.php
>> (original)
>> +++ incubator/olio/webapp/php/trunk/public_html/deleteEvent.php Mon
>> Jan 12 17:53:50 2009
>> @@ -24,7 +24,7 @@
>> */ session_start();
>> require_once("../etc/config.php");
>> -$connection = DBConnection::getInstance();
>> +$connection = DBConnection::getWriteInstance();
>> $se = $_REQUEST['socialEventID'];
>> $deleteEvent = "delete from SOCIALEVENT where socialeventid='$se'";
>> $connection->exec($deleteEvent);
>>
>> Modified: incubator/olio/webapp/php/trunk/public_html/events.php
>> URL:
>> http://svn.apache.org/viewvc/incubator/olio/webapp/php/trunk/public_html/events.php?rev=733989&r1=733988&r2=733989&view=diff
>>
>> ==============================================================================
>>
>> --- incubator/olio/webapp/php/trunk/public_html/events.php (original)
>> +++ incubator/olio/webapp/php/trunk/public_html/events.php Mon Jan 12
>> 17:53:50 2009
>> @@ -28,7 +28,12 @@
>> $comments = $_POST['comments'];
>> $cid = $_POST['editingcid'];
>> $editcomments = $_POST['editcomments'];
>> -$connection = DBConnection::getInstance();
>> +if (isset($_POST['commentsratingsubmit']) || +
>> (isset($_POST['editcommentsratingsubmit']) &&
>> isset($_POST['editingcid']))) {
>> + $connection = DBConnection::getWriteInstance();
>> +} else {
>> + $connection = DBConnection::getInstance();
>> +}
>> $tagslist = Tags_Controller::getInstance();
>> $events = Events_Controller::getInstance();
>> $username = $HTTP_SESSION_VARS["uname"];
>> @@ -80,11 +85,10 @@
>> }
>> unset($listqueryresult);
>>
>> -$editCRforCid = $_POST['editcommentsratingsubmit'].$cid;
>> if (isset($_POST['commentsratingsubmit'])) {
>> $insertSql = "insert into COMMENTS_RATING
>> (username,socialeventid,comments,ratings) values
>> ('$username','$se','$comments','$rating')";
>> $connection->exec($insertSql);
>> -}else if (isset($editCRforCid)) {
>> +} else if (isset($_POST['editcommentsratingsubmit']) &&
>> isset($_POST['editingcid'])) {
>> $updateSql = "update COMMENTS_RATING set
>> comments='$editcomments', ratings='$rating' where username='$username'
>> and socialeventid='$se' and commentid='$cid'";
>> $connection->exec($updateSql);
>> }
>>
>> Modified: incubator/olio/webapp/php/trunk/public_html/index.php
>> URL:
>> http://svn.apache.org/viewvc/incubator/olio/webapp/php/trunk/public_html/index.php?rev=733989&r1=733988&r2=733989&view=diff
>>
>> ==============================================================================
>>
>> --- incubator/olio/webapp/php/trunk/public_html/index.php (original)
>> +++ incubator/olio/webapp/php/trunk/public_html/index.php Mon Jan 12
>> 17:53:50 2009
>> @@ -24,22 +24,23 @@
>> */
>>
>> session_start();
>> -require_once("../etc/config.php");
>> -$connection = DBConnection::getInstance();
>> -$eventlist = Events_Controller::getInstance();
>> -$tagcloud = Tags_Controller::getInstance();
>> -$url = RequestUrl::getInstance();
>> +require("../etc/config.php");
>> +
>> $signedinuser = $HTTP_SESSION_VARS["uname"];
>> $page= $_REQUEST['page'];
>> $flag = $_REQUEST['flag'];
>>
>> +$url = RequestUrl::getInstance();
>> +
>> $href = $url->getGetRequest();
>> -if(!is_null($page)){
>> -$href = substr($href, 0, strrpos($href,"&"));
>> -}
>> +if(!is_null($page)) {
>> + $href = substr($href, 0, strrpos($href,"&"));
>> +} // else {
>> + // error_log('$page is null.',0);
>> + //}
>>
>> -if($href==""){
>> -$href = "?";
>> +if($href=="") {
>> + $href = "?";
>> }
>>
>> if(!is_null($page)){
>> @@ -53,47 +54,185 @@
>> $next_page = $HTTP_SESSION_VARS["currentpage"] + 1;
>> $offset = ($page * 10) - 10;
>> if($offset < 0) {
>> - $offset = 0;
>> + $offset = 0;
>> }
>> if($prev_page < 0) {
>> - $prev_page = 1;
>> + $prev_page = 1;
>> }
>> if($next_page > $numPages) {
>> - $next_page = $numPages;
>> + $next_page = $numPages;
>> }
>> -}else{
>> + $cacheType = 0;
>> +} else {
>> + // error_log('$page is still null.',0);
>> $zipcode = $_REQUEST['zipcode'];
>> $order = $_REQUEST['order'];
>> $m= $_REQUEST['month'];
>> $d= $_REQUEST['day'];
>> $y= $_REQUEST['year'];
>>
>> - if(!is_null($_REQUEST['month']) && !is_null($_REQUEST['day']) &&
>> !is_null($_REQUEST['year']) ){
>> - $eventdate= $y."-".$m."-".$d;
>> + if(!is_null($_REQUEST['month']) && !is_null($_REQUEST['day']) &&
>> + !is_null($_REQUEST['year'])) {
>> + $eventdate= $y."-".$m."-".$d;
>> + } + if (is_null($zipcode) && is_null($order) &&
>> + !isset($eventdate)) {
>> + //if (is_null($signedinuser)) { // Get whole page if not
>> logged in...
>> + if($HTTP_SESSION_VARS["uname"] == ''){
>> + $cacheType = 2;
>> + } else { // And just the page content if logged in.
>> + $cacheType = 1;
>> + }
>> + } else {
>> + $HTTP_SESSION_VARS["eventdate"]= $eventdate;
>> + $HTTP_SESSION_VARS["zipcode"] = $zipcode;
>> + $HTTP_SESSION_VARS["order"] = $order;
>> +
>> + $connection = DBConnection::getInstance();
>> + $eventlist = Events_Controller::getInstance();
>> + $numPages =
>> $eventlist->getNumPages($zipcode,$eventdate,$connection);
>> + $tagcloud = Tags_Controller::getInstance();
>> + $HTTP_SESSION_VARS["numPages"] = $numPages;
>> + // error_log("numPages = $numPages",0);
>> + $cacheType = 0;
>> }
>> - $HTTP_SESSION_VARS["eventdate"]= $eventdate;
>> - $HTTP_SESSION_VARS["zipcode"] = $zipcode;
>> - $HTTP_SESSION_VARS["order"] = $order;
>> - $numPages =
>> $eventlist->getNumPages($zipcode,$eventdate,$connection);
>> - $HTTP_SESSION_VARS["numPages"] = $numPages;
>> -
>> $prev_page = 1;
>> $next_page = 2;
>> $curr_page = 1;
>> $offset = 0;
>> session_unregister ("currentpage");
>> }
>> -$indexEvents =
>> $eventlist->getIndexEvents($zipcode,$order,$eventdate,$offset,null,$signedinuser,$connection);
>>
>>
>> -ob_start();
>> -require("../views/paginate.php");
>> -$paginateView = ob_get_clean();
>> -
>> -ob_start();
>> -require("../views/index.php");
>> -$fillContent = ob_get_clean();
>> -if($flag == "authenticated"){
>> -$fillMessage ="<font color=green>Successfully logged in!</font>";
>> +switch ($cacheType) {
>> + case 0: noCachePage(); break;
>> + case 1: contentCachePage(); break;
>> + case 2: fullCachePage();
>> +}
>> +
>> +
>> +function fullCachePage() {
>> + // error_log('fullCachePage Called',0);
>> + global $signedinuser, $page, $flag, $url, $href, $eventdate,
>> $zipcode;
>> + global $order, $numPages, $curr_page, $prev_page, $next_page,
>> $offset;
>> + global $HTTP_SESSION_VARS;
>> +
>> + // error_log('Accesssing Cache subsystem to collect the page if
>> possible.',0);
>> + $cache = CacheSystem::getInstance();
>> + $pageContent = $cache->get('Home');
>> + // error_log("Checking the Cache status for logged in and normal
>> Home pages",0);
>> + if ($pageContent != '') {
>> + echo $pageContent;
>> + // error_log("Cache hit for Home page...",0);
>> + }
>> +
>> + $needsRefresh = false;
>> + for (;;) {
>> + // error_log('refresh logic accessed.');
>> + if ($cache->needsRefresh('Home')) {
>> + $needsRefresh = true;
>> + // error_log('Home needs refresh.');
>> + break;
>> + } else if ($pageContent == '') {
>> + error_log('index.php waiting for cache.');
>> + usleep(200000);
>> + $pageContent = $cache->get('Home');
>> + if ($pageContent != '') {
>> + echo $pageContent;
>> + break;
>> + } + } else {
>> + // error_log('.');
>> + break;
>> + }
>> + }
>> +
>> + if ($needsRefresh) {
>> + // error_log("Regenerating page................");
>> + $connection = DBConnection::getInstance();
>> + $eventlist = Events_Controller::getInstance();
>> + $numPages =
>> $eventlist->getNumPages($zipcode,$eventdate,$connection);
>> + $indexEvents =
>> $eventlist->getIndexEvents($zipcode,$order,$eventdate,
>> + $offset,null,$signedinuser,$connection);
>> + $tagcloud = Tags_Controller::getInstance();
>> +
>> + ob_start();
>> + require("../views/paginate.php");
>> + $paginateView = ob_get_clean();
>> +
>> + ob_start();
>> + require("../views/index.php");
>> + $fillContent = ob_get_clean();
>> +
>> + ob_start();
>> +
>> + require("../views/site.php");
>> +
>> + // error_log('refreshing cache contents',0);
>> + $newPageContent = ob_get_contents();
>> + $cache->set('Home', $newPageContent, 0, 0);
>> + $cache->set('HomeContent', $fillContent, 0, 0);
>> + $cache->doneRefresh('Home', 300);
>> +
>> + if ($pageContent == '') { // Not displayed yet, just display
>> now.
>> + // error_log("Display newly generated page");
>> + ob_end_flush();
>> + } else {
>> + // error_log("Display of cache generated page has occured");
>> + ob_end_clean(); // Otherwise just don't display the new one.
>> + }
>> + }
>> +}
>> +
>> +function contentCachePage() {
>> + // error_log('ContentCachePage Called',0);
>> + global $signedinuser, $page, $flag, $url, $href, $eventdate,
>> $zipcode;
>> + global $order, $numPages, $curr_page, $prev_page, $next_page,
>> $offset;
>> + global $HTTP_SESSION_VARS;
>> +
>> + $cache = CacheSystem::getInstance();
>> + for (;;) {
>> + $fillContent = $cache->get('HomeContent');
>> + if ($fillContent != '') {
>> + break;
>> + }
>> + usleep(20000);
>> + error_log('Retry loading fillContent from cache.');
>> + }
>> +
>> + if ($flag == "authenticated") {
>> + $fillMessage ="<font color=green>Successfully logged
>> in!</font>";
>> + }
>> + require("../views/site.php");
>> +}
>> +
>> +function noCachePage() {
>> + // error_log('noCachePage Called',0);
>> + global $signedinuser, $page, $flag, $url, $href, $eventdate,
>> $zipcode;
>> + global $order, $numPages, $curr_page, $prev_page, $next_page,
>> $offset;
>> + global $HTTP_SESSION_VARS;
>> +
>> + $connection = DBConnection::getInstance();
>> + $eventlist = Events_Controller::getInstance();
>> + $tagcloud = Tags_Controller::getInstance();
>> +
>> + if (!is_null($page)) {
>> + $numPages =
>> $eventlist->getNumPages($zipcode,$eventdate,$connection);
>> + }
>> + $indexEvents =
>> $eventlist->getIndexEvents($zipcode,$order,$eventdate,
>> +
>> $offset,null,$signedinuser,$connection);
>> +
>> + ob_start();
>> + require("../views/paginate.php");
>> + $paginateView = ob_get_clean();
>> +
>> + ob_start();
>> + require("../views/index.php");
>> + $fillContent = ob_get_clean();
>> +
>> + if($flag == "authenticated") {
>> + $fillMessage ="<font color=green>Successfully logged
>> in!</font>";
>> + }
>> +
>> + require("../views/site.php");
>> }
>> -require_once("../views/site.php");
>> ?>
>>
>> Modified: incubator/olio/webapp/php/trunk/public_html/rejectInvite.php
>> URL:
>> http://svn.apache.org/viewvc/incubator/olio/webapp/php/trunk/public_html/rejectInvite.php?rev=733989&r1=733988&r2=733989&view=diff
>>
>> ==============================================================================
>>
>> --- incubator/olio/webapp/php/trunk/public_html/rejectInvite.php
>> (original)
>> +++ incubator/olio/webapp/php/trunk/public_html/rejectInvite.php Mon
>> Jan 12 17:53:50 2009
>> @@ -24,7 +24,7 @@
>> */ session_start();
>> require_once("../etc/config.php");
>> -$connection = DBConnection::getInstance();
>> +$connection = DBConnection::getWriteInstance();
>> $friends = Users_Controller::getInstance();
>> $person = $_REQUEST['person'];
>> $friend = $_REQUEST['friend'];
>>
>> Modified: incubator/olio/webapp/php/trunk/public_html/revokeInvite.php
>> URL:
>> http://svn.apache.org/viewvc/incubator/olio/webapp/php/trunk/public_html/revokeInvite.php?rev=733989&r1=733988&r2=733989&view=diff
>>
>> ==============================================================================
>>
>> --- incubator/olio/webapp/php/trunk/public_html/revokeInvite.php
>> (original)
>> +++ incubator/olio/webapp/php/trunk/public_html/revokeInvite.php Mon
>> Jan 12 17:53:50 2009
>> @@ -24,7 +24,7 @@
>> */ session_start();
>> require_once("../etc/config.php");
>> -$connection = DBConnection::getInstance();
>> +$connection = DBConnection::getWriteInstance();
>> $friends = Users_Controller::getInstance();
>> $person = $_REQUEST['person'];
>> $friend = $_REQUEST['friend'];
>>
>>
>>