Как Вы сравнили бы два XML-документа?

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

  1. Пользователь запросил бы, чтобы подключения Сервера страницы
  2. к серверу DB 1
  3. Выбрали на соединении "завершений" сервера DB 1
  4. с подключениями сервера DB 1
  5. к Заведенному в тупик DB 2
  6. !

Это произошло по 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>
60
задан Neil C. Obremski 3 October 2008 в 17:19
поделиться

2 ответа

Я использую ExamXML для сравнения файлов XML. Можешь попробовать. Авторы, A7Soft, также предоставляют API для сравнения файлов XML

3
ответ дан 24 November 2019 в 17:51
поделиться

Еще один способ сделать это:

  1. Получить содержимое обоих файлов в две разные строки.
  2. Преобразуйте строки с помощью XSLT (который просто скопирует все в две новые строки). Это гарантирует, что все пробелы за пределами элементов будут удалены. Это приведет к двум новым строкам.
  3. Теперь просто сравните две строки друг с другом.

Это не даст вам точного местоположения разницы, но если вы просто хотите узнать, есть ли разница, это легко сделать без каких-либо сторонних библиотек.

2
ответ дан 24 November 2019 в 17:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: