перевод SQL-предложений в спящий режим из-за записи catalina.out. Файл выходит из-под контроля!

#hibernate

#переход в спящий режим

Вопрос:

ОБНОВЛЕНИЕ: ответ на этот вопрос содержится в комментариях к ответу Мартинса

У меня есть это приложение в hibernate spring, установленное на разных клиентах для одного сервера. Только что узнал, что они были скомпилированы с помощью Hibernate — show_sql = true, и каждый раз, когда мое приложение получает попадание, оно заполняет catalina.out hql. мой файл catalina.out сильно увеличивается. Мне нужно включить этот show_sql, не останавливая сервер в рабочей среде. Можно ли это сделать?

Мой файл становится действительно большим, я не хочу компилировать каждое приложение (у клиентов разные версии), останавливать сервер, загружать и перезапускать.

Спасибо!

Ответ №1:

Из этого вопроса не совсем ясно несколько вещей, поэтому я рискну предположить. Похоже, вы используете Tomcat, поскольку говорите о catalina.out. Это означает, что ваши веб-приложения должны быть извлечены где-нибудь в каталоге webapps. Это означает, что вы должны быть в состоянии найти persistence.xml или hibernate-something.xml это сохраняет вашу конфигурацию hibernate. В этом файле у вас должно быть <propery name="hibernate.show_sql" value="true"/> или просто <propery name="show_sql" value="true"/> .

Вы можете отредактировать этот файл и изменить значение на false, но поскольку он, скорее всего, будет кэширован, он вступит в силу только после перезапуска ваших веб-приложений. Вы могли бы выполнять это по одному для затронутых приложений или перезапустить свою службу tomcat, что, вероятно, было бы немного более разрушительным.

Комментарии:

1. Привет, Мартин, спасибо за ваш ответ, это правда, я написал вопрос в спешке, вы правы, я использую tomcat, spring hibernate, дело в том, что я не могу найти ни persistence.xml, ни hibernate-something.xml (пробовал поиск по поиску: переход в спящий режим ). Я знаю, что могу изменить их до того, как скомпилирую conde в applicationContext.xml

2. @Ernest: Ваш applicationContext.xml вероятно, внутри одного из jar-файлов приложения. Даже если вы найдете это и измените вручную, вам придется перезапустить Tomcat. Я бы выбрал новую сборку с соответствующим значением show_sql.

3. Если вы скажете, что изменили бы настройку в applicationContext.xml если вам нужно было перекомпилировать веб-приложение, то, очевидно, именно там находится настройка, извините, что ввел вас в заблуждение. /var/lib/tomcat6/_name_of_webapp_/WEB-INF/classes/applicationContext.xml здесь мне пришлось бы отредактировать настройку, и необходимость перезапуска веб-приложения или tomcat все равно осталась бы. Очевидно, что путь для вас может отличаться.

4. Большое вам спасибо. я получил ответ о том, что делать сейчас, однако я хотел бы знать, как я могу предотвратить это в будущем, как я могу иметь возможность включать и выключать show_sql во время выполнения. Я не уверен, что до этого момента я должен проверять этот ответ, как отвеченный.

5. Разве на самом деле вопрос не в том, когда бы я вообще захотел иметь show_sql = true в производстве? Я рассматриваю это как настройку отладки, и я думаю, что это нормально — включить ее при тестировании, но я бы никогда не передал код с включенным параметром в ветку развертывания. Это неизбежно замедлит работу приложения, и, как вы заметили, оно заполняет журналы SQL. Отключите его и включайте при тестировании или в тех редких случаях, когда вы действительно можете захотеть увидеть результат.