Как мы можем отлаживать наши производственные приложения Struts / Hibernate? - PullRequest
0 голосов
/ 19 октября 2011

Итак, мы используем Netbeans 6.9.1, отправляем наш код на сервер SVN (dev) и запускаем локальные веб-серверы (Tomcat), которые подключаются к MySQL на компьютере DEV. Мы можем работать в режиме отладки и шагать по нашему коду.

Однако затем мы берем наш файл WAR и отправляем его на рабочий компьютер (в производственную базу данных). Эта машина полностью отделена от dev.

Но мы сталкиваемся с постоянными проблемами. Такие вещи, как null id в Hibernate, когда мы провели тройную проверку всех столбцов и т. Д.

Нам нужен способ присоединить отладчик к пользователю PRODUCTION и выполнить код.

Какие у нас варианты?

Спасибо за любой совет.

EDIT

Я хотел опубликовать немного больше информации. Спасибо за те, кто предложил предложения.

Во-первых, на нашем производственном сервере размещено 3 приложения (вместе с prod db). В приложении, с которым у нас больше всего проблем, всего один пользователь, и данные практически идентичны тем, что есть в dev. У нас проблемы с транзакциями в JDBC, и мы не можем выяснить, откуда они.

Ответы [ 4 ]

1 голос
/ 19 октября 2011

Если вы действительно хотите подключить отладчик к работающему производственному серверу, Java полностью способна сделать это.Сначала запустите ваш сервер / JVM с помощью следующих команд:

-Xrunjdwp:transport=dt_socket,address=8778,server=y,suspend=n

Теперь вы можете присоединить свою IDE, используя prd_server:8788 адрес в Eclipse или IntelliJ IDEA .

Однако есть несколько ошибок:

  • Вам необходимо иметь доступ по протоколу TCP / IP к производственному серверу через указанный порт.Возможно, будет задействован некоторый туннель брандмауэра / SSH.

  • По умолчанию ваш отладчик может приостановить все потоки, когда он достигнет точки останова.Удостоверьтесь, что вы приостановили только текущий, иначе вы заморозите весь сервер.

  • ... да, удаленная отладка опасна , особенно на производстве.

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

0 голосов
/ 28 февраля 2014

Если вы хотите удаленно отлаживать производственную среду, но остерегайтесь, это замедлит работу вашего приложения.Но в случае, если вы не можете повторить проблему на сервере разработки, выполните следующие действия для удаленной отладки приложения: -

  1. Убедитесь, что на вашем рабочем сервере открыт порт отладки для удаленного подключения к отладке..
  2. Настройки отладки различны для разных серверов приложений
  3. Если вы используете Eclispe, щелкните правой кнопкой мыши по проекту и перейдите к конфигурации отладки, введите имя / IP-адрес рабочего сервера и номер порта ичем нажать кнопку отладки.Убедитесь, что на вашем сервере открыт порт отладки

Сообщите нам, какой рабочий сервер вы используете.

0 голосов
/ 19 октября 2011

Прежде чем пытаться отлаживать Prod, перенесите данные Prod в среду разработки и выполните там отладку.Если у вас есть политика безопасности в отношении данных Prod в среде, не относящейся к Prod, выполните санитарную очистку данных по мере необходимости.

Если проблема связана с данными, вы должны решить ее довольно быстро.

0 голосов
/ 19 октября 2011

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

Намного лучше воссоздать проблему, используя производственные данные на сервере разработки, добавить дополнительные журналы и т. д. и т. д.

...