Hello all,

After stopping editor, emptying logs, and starting editor again, issue reappeared. Now only wrapper.log contained exception stack trace:

2008/05/20 09:27:39 | STATUS | wrapper  | --> Wrapper Started as Daemon
2008/05/20 09:27:39 | STATUS | wrapper  | Launching a JVM...
2008/05/20 09:27:40 | INFO | jvm 1 | Wrapper (Version 3.1.2) http://wrapper.tanukisoftware.org
2008/05/20 09:27:40 | INFO   | jvm 1    |
2008/05/20 09:27:40 | INFO   | jvm 1    | Starting Fortress
2008/05/20 09:27:41 | INFO | jvm 1 | Exception in thread "localdevProjectScheduler_QuartzSchedulerThread" java.lang.LinkageError: loader (instance of org/mortbay/http/ContextLoader): attempted duplicate class definition for name: "org/quartz/impl/jdbcjobstore/PostgreSQLDelegate" 2008/05/20 09:27:41 | INFO | jvm 1 | at java.lang.ClassLoader.defineClass1(Native Method) 2008/05/20 09:27:41 | INFO | jvm 1 | at java.lang.ClassLoader.defineClass(ClassLoader.java:620) 2008/05/20 09:27:41 | INFO | jvm 1 | at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) 2008/05/20 09:27:41 | INFO | jvm 1 | at java.net.URLClassLoader.defineClass(URLClassLoader.java:260) 2008/05/20 09:27:41 | INFO | jvm 1 | at java.net.URLClassLoader.access$000(URLClassLoader.java:56) 2008/05/20 09:27:41 | INFO | jvm 1 | at java.net.URLClassLoader$1.run(URLClassLoader.java:195) 2008/05/20 09:27:41 | INFO | jvm 1 | at java.security.AccessController.doPrivileged(Native Method) 2008/05/20 09:27:41 | INFO | jvm 1 | at java.net.URLClassLoader.findClass(URLClassLoader.java:188) 2008/05/20 09:27:41 | INFO | jvm 1 | at org.mortbay.http.ContextLoader.loadClass(ContextLoader.java:219) 2008/05/20 09:27:41 | INFO | jvm 1 | at org.mortbay.http.ContextLoader.loadClass(ContextLoader.java:187) 2008/05/20 09:27:41 | INFO | jvm 1 | at org.quartz.simpl.LoadingLoaderClassLoadHelper.loadClass(LoadingLoaderClassLoadHelper.java:61) 2008/05/20 09:27:41 | INFO | jvm 1 | at org.quartz.simpl.CascadingClassLoadHelper.loadClass(CascadingClassLoadHelper.java:118) 2008/05/20 09:27:41 | INFO | jvm 1 | at org.quartz.impl.jdbcjobstore.JobStoreSupport.getDelegate(JobStoreSupport.java:1964) 2008/05/20 09:27:41 | INFO | jvm 1 | at org.quartz.impl.jdbcjobstore.JobStoreSupport.acquireNextTrigger(JobStoreSupport.java:1741) 2008/05/20 09:27:41 | INFO | jvm 1 | at org.quartz.impl.jdbcjobstore.JobStoreTX.acquireNextTrigger(JobStoreTX.java:1218) 2008/05/20 09:27:41 | INFO | jvm 1 | at org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:233)
2008/05/20 09:27:42 | INFO   | jvm 1    | Fortress started


Regardless of the exception being thrown, everything appeared to work fine. Nevertheless, it's not a nice feeling knowing that upon startup hippo cms editor throws such an exception. Problematic class was only present in sole quartz jar in cms editor installation - quartz-1.5.2.jar After searching for same class in Hippo repository installation, it was found in quartz-1.4.5.jar. Replacing quartz-1.5.2.jar with quartz-1.4.5.jar in cms editor installation solved the issue, exception is no longer being thrown.

Problem now is, that there must have been reason why newer quartz jar was used in cms editor. Can someone from Hippo confirm that cms editor will (continue to) work with this older version of quartz jar? Also, as this is just a workaround which appears to work, maybe someone of Hippo guys can have a closer look what the actual issue is - is there just some incompatibility between cms editor and this newer quartz jar manifesting only in this specific configuration (Ubuntu, Postgres /w Slony master-slave configuration, Hippo repository in load balanced configuration), or do editor and repos need to use same version of quartz jar, or something else.

Btw, startup scripts on http://www.hippocms.org/display/CMS/Linux+init+scripts are slightly out of date (e.g. Suse example references start.sh and stop.sh but there are no such files in distribution and sources of the editor nor for repos). Anyway, they were useful as starters for creating version for Ubuntu, and attached you can find init scripts and their respective configuration files for Ubuntu. For them to function well, "links" needs to be installed ("sudo apt-get install links" should do). Being a newbie in shell scripting and linux in general, don't take these scripts too seriously. I'd appreciate if someone more experienced can take a look at them. Suse version of scripts used "daemon" to start and stop cms editor, but I couldn't make editor startup like that.

Regards,
Stevo.


Bartosz Oudekerk wrote:
Stevo Slavić wrote:
Hello Bartosz,

I agree, wiki is out of date, but it wasn't a problem. There were two issues actually, and log didn't help at all to find them. First one was that wrong jdbc driver was used (8.2-507.jdbc4 instead of 8.3-603.jdbc4, as database is postgres 8.3). Other issue was that wrong ip address in master/slave configuration were specified, in a Slony replicated database configuration, load balancer was pointing to slave as it was master, and slave refused insert/update statement(s) cms editor tried to issue.

Good to hear you got everything working, and thanks for reporting back.

I've modified the wiki page.

Regards,

--
Met vriendelijke groet / Kind regards,
Stevo Slavić
Senior Software Developer
Levi9 Global Sourcing
------------------------------------------------------------------------
.  Jan van Goyenkade 8, 1075 HP Amsterdam, The Netherlands
(    (+31) (0) 20 6701 947
È    (+381) (0) 63 7 258 458
*    [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
^    Skype: sslavic
ü    http://www.levi9.com/

Chamber of commerce Levi9 Global Sourcing BV: 34221951
Chamber of commerce Levi9 Global Sourcing Benelux BV: 34224746
------------------------------------------------------------------------
This e-mail may contain confidential or privileged information. If you are not (one of) the intended recipient(s), please notify the sender immediately by reply e-mail and delete this message and any attachments permanently without retaining a copy. Any review, disclosure, copying, distribution or taking any action in reliance on the contents of this e-mail by persons or entities other than the intended recipient(s) is strictly prohibited and may be unlawful.

The services of Levi9 are exclusively subject to its general terms and conditions. These general terms and conditions can be found on http://www.levi9.com/ and a copy will be promptly submitted to you on your request and free of charge.
# repository
USE_REPOSITORY=1
REPOSITORY_CONFIG=/etc/repository.conf

# location and users
SITE_NAME=site
SITE_BASE=/usr/local/hippo/cms/cms
SITE_OWNER=hippo
SITE_COMMAND=/usr/local/hippo/cms/cms/bin/fortress.sh
#!/bin/bash
#

# pidfile: /var/run/
# config:  /etc/site_init.conf

# EDIT THIS LINE TO SPECIFY THE CONFIGGILE
CONFFILE=/etc/cms.conf

# Avoid using root's TMPDIR
unset TMPDIR

# Check that config exists.
[ -f ${CONFFILE} ] || exit 0
.  ${CONFFILE}

# check site_base
[ -z ${SITE_BASE} ] && exit 1
[ -d ${SITE_BASE} ] || exit 1

check() {
    GETTEXT=`/usr/bin/links -dump ${CHECKURL} 2>/dev/null | grep HttpCon -m 1 | 
sed 's/.*Http//' | sed 's/\[.*//'`
    if [ -z "$GETTEXT" ]; then
        return 1
    fi
    if [ "$GETTEXT" != "Context" ]; then
        return 1
    fi
    return 0
}

# Repository check
check_repository() {
   [ -f ${REPOSITORY_CONFIG} ] || exit 0
   . ${REPOSITORY_CONFIG}

   maxwait=25
   local current=1
   working=0

   while [ $current -lt $maxwait ]; do
       check
       if [ $? -eq 1 ]; then
          current=$(($current + 1))
           sleep 1
       else
           current=10000
           working=1
       fi
   done
   if [ $working -eq 0 ]; then
       echo "Aborting, repository not running!";
       exit 1;
   fi
}



RETVAL=0

start() {
    RETVAL=0
    if [ ${USE_REPOSITORY} -eq 1 ]; then
        check_repository
    fi
    if [ -f ${SITE_COMMAND} ]; then
        echo -n "Starting ${SITE_NAME} services as user ${SITE_OWNER}: "
        su - ${SITE_OWNER} -c "${SITE_COMMAND} start"
        [ $? -ne 0 ] && RETVAL=1
        echo
    fi
    return $RETVAL
}

stop() {
    RETVAL=0
    if [ -f ${SITE_COMMAND} ]; then
        echo -n "Stopping ${SITE_NAME} services as user ${SITE_OWNER}: "
        su - ${SITE_OWNER} -c "${SITE_COMMAND} stop"
        [ $? -ne 0 ] && RETVAL=1
        echo
    fi
    return $RETVAL
}

restart() {
        stop
        start
}

case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart)
        restart
        ;;
  *)
        echo $"Usage: $0 {start|stop|restart}"
        exit 1
esac

exit $?

# Config of the repository on the server

CHECKURL=http://127.0.0.1:56000
COMMAND=/usr/local/hippo/repos/repos/bin/fortress.sh
USERNAME=sdu
LOCKFILE=/usr/local/repos/repos/work/openjms/openjms.lock
#!/bin/bash
#

# pidfile: /var/run/
# config:  /etc/site_init.conf

# EDIT THIS LINE TO SPECIFY THE CONFIGGILE
CONFFILE=/etc/repository.conf

# Avoid using root's TMPDIR
unset TMPDIR

# Check that config exists.
[ -f ${CONFFILE} ] || exit 0
.  ${CONFFILE}

RETVAL=0

start() {
    echo -n $"Starting repository as ${USERNAME}: "
    check
    if [ $? -eq 0 ]; then
        echo "already running."
        return 0
    fi
    if [ -f $LOCKFILE ]; then
        /bin/rm -f $LOCKFILE
    fi
    su - ${USERNAME} -c "${COMMAND} start"
    [ $? -ne 0 ] && RETVAL=1
    echo
    return $RETVAL
}       

stop() {
    echo -n $"Stopping repository: "
    su - ${USERNAME} -c "${COMMAND} stop"
    [ $? -ne 0 ] && RETVAL=1
    echo
    return $RETVAL
}       

restart() {
    stop
    start
}       


status() {
    echo -n "Repository: "
    check
    if  [ $? -eq 1 ]; then 
        echo "down."
        return 1
    fi
    echo "up."
    return 0
}

check() {
    GETTEXT=`/usr/bin/links -dump ${CHECKURL} 2>/dev/null | grep HttpCon -m 1 | 
sed 's/.*Http//' | sed 's/\[.*//'`
    if [ -z "$GETTEXT" ]; then
        return 1
    fi
    if [ "$GETTEXT" != "Context" ]; then 
        return 1
    fi
    return 0
}

case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  status)
        status
        ;;
  restart)
        restart
        ;;
  *)
        echo $"Usage: $0 {start|stop|restart|status}"
        exit 1
esac


********************************************
Hippocms-dev: Hippo CMS development public mailinglist

Reply via email to