Я работаю в большой веб-среде J2EE. У нас есть несколько баз данных, которые могут быть подключены с в единственном запросе. Мы начали получать логические мертвые блокировки в некоторых наших приложениях. Проблема была то, что следующим образом:
Это произошло по 2 причинам, мы испытывали намного более высокий объем трафика, чем нормальный, и Спецификация J2EE по умолчанию на самом деле не закрывает Ваше соединение до выполнения концов потока. Так, на вышеупомянутом шаге 4 в качестве примера никогда на самом деле закрыл соединение даже при том, что они были закрыты правильно в наконец.
Для фиксации этого Вы необходимо использовать ссылки ресурса в web.xml для Соединений с базой данных, и необходимо установить res-sharing-scope на нес обеспечением совместного доступа.
Пример:
<resource-ref>
<description>My Database</description>
<res-ref-name>jdbc/jndi/pathtodatasource</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Unshareable</res-sharing-scope>
</resource-ref>
Я использую ExamXML для сравнения файлов XML. Можешь попробовать. Авторы, A7Soft, также предоставляют API для сравнения файлов XML
Еще один способ сделать это:
Это не даст вам точного местоположения разницы, но если вы просто хотите узнать, есть ли разница, это легко сделать без каких-либо сторонних библиотек.