#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. Отключите его и включайте при тестировании или в тех редких случаях, когда вы действительно можете захотеть увидеть результат.