2010-02-08 3 views
0

У меня возникла проблема с несколькими сценариями загрузки linux, в частности теми, которые запускают мою базу данных Oracle 10g и мой контейнер oc4j.Запуск oc4j и oracle с использованием сценария запуска rc

Я использовал chkconfig, чтобы сообщить Linux о начале базы данных перед контейнером, однако кажется, что контейнер запускается перед базой данных, которая oc4j вообще не нравится. Я могу обратиться к своим приложениям, но у меня нет связей с БД. Если я перезапущу oc4j, все будет работать нормально.

Есть ли способ, чтобы я мог «приостановить» запуск oc4j до тех пор, пока база данных (и слушатель) не будет запущена и не готова к подключению?

ответ

1

Поместите их в 1 стартовый скрипт?

start listener 
start database 
start appserver 

Это мой сценарий /etc/init.d/dbora. Добавить вызов для запуска OC4J

#!/bin/sh 
# chkconfig: 345 99 10 
# description: Oracle auto start-stop script. 
# 
# Set ORA_HOME to be equivalent to the $ORACLE_HOME 
# from which you wish to execute dbstart and dbshut; 
# 
# Set ORA_OWNER to the user id of the owner of the 
# Oracle database in ORA_HOME. 
ORA_HOME=/app/oracle/product/10.2.0/db_1 
ORA_OWNER=oracle 
echo $1 
if [ ! -f $ORA_HOME/bin/dbstart ] 
then 
    echo "Oracle startup: cannot start" 
    exit 
fi 
case "$1" in 
    'start') 
     # Start the Oracle databases: 
     # The following command assumes that the oracle login 
     # will not prompt the user for any values 
     su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start" 
     su - $ORA_OWNER -c $ORA_HOME/bin/dbstart 
     su - $ORA_OWNER -c $ORA_HOME/bin/emctl start dbconsole 
     ;; 
    'stop') 
     # Stop the Oracle databases: 
     # The following command assumes that the oracle login 
     # will not prompt the user for any values 
     su - $ORA_OWNER -c $ORA_HOME/bin/emctl stop dbconsole 
     su - $ORA_OWNER -c $ORA_HOME/bin/dbshut 
     su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop" 
     ;; 
esac 
+0

Я сделал это, к сожалению, база данных не завершила инициализацию до тех пор, пока сервер приложений не будет запущен. –

+0

Если вы запускаете их последовательно, управление сценарием «начальная база данных» возвращается, когда база данных запускается и полностью функционирует. Убедитесь, что вы сначала запустили прослушиватель, чтобы база данных регистрировалась со слушателем. –

+0

Спасибо !!!! Это сработало отлично ... это не слишком отличается от того, что у меня было, но я просто рад, что он работает. –

 Смежные вопросы

  • Нет связанных вопросов^_^