Wolfgang,
The patch should have been attached to my previous mail. The contents
can also be found in the bottom of this reply. For your convenience,
I have also added an already patched version of the file to this mail...
Gert
bebop01 wrote:
Yes I can do that. How can I get the patch?
Wolfgang
Gert Vanthienen wrote:
L.S.,
Sorry for the late reply. I have attached a patch for
bin/servicemix which works on Linux and OS/400 and which should fix
the problem on AIX. I'm unable to test the script file on AIX
myself though. Would the original poster be able to try the
modified script on his/her server?
Thanks,
Gert
bebop01 wrote:
Hello,
Since the snapshot version from 11. January 2007 I can't start
servicemix
on
aix anymore.
I always get an ClassCircularityError loading activemq.xml.
Any ideas would be highly appreciated.
Index: distributions/apache-servicemix/src/main/release/bin/servicemix
===================================================================
--- distributions/apache-servicemix/src/main/release/bin/servicemix
(revision 501398)
+++ distributions/apache-servicemix/src/main/release/bin/servicemix
(working copy)
@@ -86,7 +86,7 @@
fi
# Increase the maximum file descriptors if we can
- if !($cygwin | $os400); then
+ if [ "$os400" = "false" ] && [ "$cygwin" = "false" ]; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ $? -eq 0 ]; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ]; then
------------------------------------------------------------------------
#!/bin/sh
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# $Id: servicemix 979 2005-11-30 22:50:55Z bsnyder $
#
DIRNAME=`dirname $0`
PROGNAME=`basename $0`
#
# Check/Set up some easily accessible MIN/MAX params for JVM mem usage
#
if [ "x$JAVA_MIN_MEM" = "x" ]; then
JAVA_MIN_MEM=128M
export JAVA_MIN_MEM
fi
if [ "x$JAVA_MAX_MEM" = "x" ]; then
JAVA_MAX_MEM=512M
export JAVA_MAX_MEM
fi
warn() {
echo "${PROGNAME}: $*"
}
die() {
warn "$*"
exit 1
}
maybeSource() {
file="$1"
if [ -f "$file" ] ; then
. $file
fi
}
detectOS() {
# OS specific support (must be 'true' or 'false').
cygwin=false;
darwin=false;
aix=false;
os400=false;
case "`uname`" in
CYGWIN*)
cygwin=true
;;
Darwin*)
darwin=true
;;
AIX*)
aix=true
;;
OS400*)
os400=true
;;
esac
# For AIX, set an environment variable
if $aix; then
export [EMAIL PROTECTED]
export IBM_JAVA_HEAPDUMP_TEXT=true
echo $LDR_CNTRL
fi
}
unlimitFD() {
# Use the maximum available, or set MAX_FD != -1 to use that
if [ "x$MAX_FD" = "x" ]; then
MAX_FD="maximum"
fi
# Increase the maximum file descriptors if we can
if [ "$os400" = "false" ] && [ "$cygwin" = "false" ]; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ $? -eq 0 ]; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ]; then
# use the system max
MAX_FD="$MAX_FD_LIMIT"
fi
ulimit -n $MAX_FD
# echo "ulimit -n" `ulimit -n`
if [ $? -ne 0 ]; then
warn "Could not set maximum file descriptor limit: $MAX_FD"
fi
else
warn "Could not query system maximum file descriptor limit:
$MAX_FD_LIMIT"
fi
fi
}
locateHome() {
if [ "x$SERVICEMIX_HOME" != "x" ]; then
warn "Ignoring predefined value for SERVICEMIX_HOME"
fi
SERVICEMIX_HOME=`cd $DIRNAME/..; pwd`
if [ ! -d "$SERVICEMIX_HOME" ]; then
die "SERVICEMIX_HOME is not valid: $SERVICEMIX_HOME"
fi
}
setupNativePath() {
# Support for loading native libraries
LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:$SERVICEMIX_HOME/lib"
# For Cygwin, set PATH from LD_LIBRARY_PATH
if $cygwin; then
LD_LIBRARY_PATH=`cygpath --path --windows "$LD_LIBRARY_PATH"`
PATH="$PATH;$LD_LIBRARY_PATH"
export PATH
fi
export LD_LIBRARY_PATH
}
locateJava() {
# Setup the Java Virtual Machine
if $cygwin ; then
[ -n "$JAVA" ] && JAVA=`cygpath --unix "$JAVA"`
[ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
fi
if [ "x$JAVA" = "x" ]; then
if [ "x$JAVA_HOME" != "x" ]; then
if [ ! -d "$JAVA_HOME" ]; then
die "JAVA_HOME is not valid: $JAVA_HOME"
fi
JAVA="$JAVA_HOME/bin/java"
else
warn "JAVA_HOME not set; results may vary"
JAVA="java"
fi
fi
}
detectJVM() {
echo "`$JAVA -version`"
# This service should call `java -version`,
# read stdout, and look for hints
if $JAVA -version 2>&1 | grep "^IBM" | $os400; then
JVM_VENDOR="IBM"
else
JVM_VENDOR="SUN"
fi
# echo "JVM vendor is $JVM_VENDOR"
}
setupDebugOptions() {
if [ "x$JAVA_OPTS" = "x" ]; then
JAVA_OPTS="$DEFAULT_JAVA_OPTS"
fi
export JAVA_OPTS
# Set Debug options if enabled
if [ "x$SERVICEMIX_DEBUG" != "x" ]; then
# Use the defaults if JAVA_DEBUG_OPTS was not set
if [ "x$JAVA_DEBUG_OPTS" = "x" ]; then
JAVA_DEBUG_OPTS="$DEFAULT_JAVA_DEBUG_OPTS"
fi
JAVA_OPTS="$JAVA_DEBUG_OPTS $JAVA_OPTS"
warn "Enabling Java debug options: $JAVA_DEBUG_OPTS"
fi
}
setupDefaults() {
DEFAULT_JAVA_OPTS="-Xms$JAVA_MIN_MEM -Xmx$JAVA_MAX_MEM
-Dderby.system.home=$SERVICEMIX_HOME/var -Dderby.storage.fileSyncTransactionLog=true
-Dcom.sun.management.jmxremote"
#Set the JVM_VENDOR specific JVM flags
if [ "$JVM_VENDOR" = "SUN" ]; then
DEFAULT_JAVA_OPTS="-server $DEFAULT_JAVA_OPTS"
elif [ "$JVM_VENDOR" = "IBM" ]; then
if $os400; then
DEFAULT_JAVA_OPTS="$DEFAULT_JAVA_OPTS"
elif $aix; then
DEFAULT_JAVA_OPTS="-Xlp $DEFAULT_JAVA_OPTS"
else
DEFAULT_JAVA_OPTS="-Xverify:none $DEFAULT_JAVA_OPTS"
fi
fi
# Add the conf directory so it picks up the Log4J config
CLASSPATH="$CLASSPATH:$SERVICEMIX_HOME/conf"
DEFAULT_JAVA_DEBUG_OPTS="-Xdebug -Xnoagent -Djava.compiler=NONE
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005"
##
## TODO: Move to conf/profiler/yourkit.{sh|cmd}
##
# Uncomment to enable YourKit profiling
#DEFAULT_JAVA_DEBUG_OPTS="-Xrunyjpagent"
}
setupClassworlds() {
# Setup the classpath
CLASSPATH="$CLASSPATH:$SERVICEMIX_HOME/lib/classworlds-1.0.1.jar"
# Setup Classworlds options
CLASSWORLDS_CONF="$SERVICEMIX_HOME/conf/servicemix.conf"
}
setupProfiler() {
# Load profiler settings
if [ "x$SERVICEMIX_PROFILER" != "x" ]; then
SERVICEMIX_PROFILER_SCRIPT="$SERVICEMIX_HOME/conf/profiler/$SERVICEMIX_PROFILER.sh"
if [ ! -e "$SERVICEMIX_PROFILER_SCRIPT" ]; then
die "Missing configuration for profiler '$SERVICEMIX_PROFILER':
$SERVICEMIX_PROFILER_SCRIPT"
fi
fi
# Execute the JVM or the load the profiler
if [ "x$SERVICEMIX_PROFILER" != "x" ]; then
warn "Loading profiler script: $SERVICEMIX_PROFILER_SCRIPT"
. "$SERVICEMIX_PROFILER_SCRIPT"
fi
}
init() {
# Determine if there is special OS handling we must perform
detectOS
# Unlimit the number of file descriptors if possible
unlimitFD
# Locate the ServiceMix home directory
locateHome
# Load system-wide servicemix configuration
maybeSource "/etc/servicemix.conf"
# Load installation configuration
maybeSource "$SERVICEMIX_HOME/conf/servicemix.rc"
# Load user servicemix configuration
maybeSource "$HOME/.servicemixrc"
# Setup the native library path
setupNativePath
# Locate the Java VM to execute
locateJava
# Determine the JVM vendor
detectJVM
# Setup default options
setupDefaults
# Install debug options
setupDebugOptions
# Setup the ClassWorlds environment
setupClassworlds
# Setup profiler specific configuration
setupProfiler
}
run() {
# For Cygwin, switch paths to Windows format before running java
if $cygwin; then
SERVICEMIX_HOME=`cygpath --path --windows "$SERVICEMIX_HOME"`
CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
CLASSWORLDS_CONF=`cygpath --path --windows "$CLASSWORLDS_CONF"`
CYGHOME=`cygpath --windows "$HOME"`
fi
# Execute the Java Virtual Machine
# echo $JAVA \
# $JAVA_OPTS \
# $SERVICEMIX_OPTS \
# -classpath "$CLASSPATH" \
# -Dclassworlds.conf="$CLASSWORLDS_CONF" \
# -Dservicemix.home="$SERVICEMIX_HOME" \
# -Dcygwin.user.home="$CYGHOME" \
# -Djava.endorsed.dirs="$SERVICEMIX_HOME/lib/endorsed" \
# org.codehaus.classworlds.Launcher \
# "$@"
exec $JAVA \
$JAVA_OPTS \
$SERVICEMIX_OPTS \
-classpath "$CLASSPATH" \
-Dclassworlds.conf="$CLASSWORLDS_CONF" \
-Dservicemix.home="$SERVICEMIX_HOME" \
-Dcygwin.user.home="$CYGHOME" \
-Djava.endorsed.dirs="$SERVICEMIX_HOME/lib/endorsed" \
org.codehaus.classworlds.Launcher \
"$@"
}
main() {
init
run $@
}
main $@