Назад | Перейти на главную страницу

Solr: Использование нескольких источников данных SQL-сервера приводит к ошибке: «… \ sqljdbc_auth.dll уже загружен в другой загрузчик классов»

У меня есть один экземпляр Solr, работающий в Jetty с JRE 8 с 3 коллекциями (такие же, как ядра, да?) И еще больше. Я индексирую данные из SQL Server, подключаюсь с использованием NTLM в качестве идентификатора процесса Java. Первое ядро ​​показывает нормально, второе - с ошибкой. Вот сокращенная трассировка стека.

ERROR - 2014-06-16 11:32:29.897; org.apache.solr.common.SolrException; Full Import failed:java.lang.RuntimeException: java.lang.RuntimeException: org.apache.solr.handler.dataimport.DataImportHandlerException: Unable to execute query:
...
Caused by: java.lang.RuntimeException: org.apache.solr.handler.dataimport.DataImportHandlerException: Unable to execute query: 
...
Caused by: org.apache.solr.handler.dataimport.DataImportHandlerException: Unable to execute query:
...
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: This driver is not configured for integrated authentication
...
Caused by: java.lang.UnsatisfiedLinkError: Native Library C:\Program Files\Java\jre8\bin\sqljdbc_auth.dll already loaded in another classloader
...

На основе этот Ответ stackoverflow, насколько я понимаю, мне нужно либо предоставить отдельный экземпляр dll и jar для каждого индекса / ядра, либо разместить jar dll в таком месте, чтобы они загружались один раз загрузчиком родительского класса более высокого уровня. Прямо сейчас банка находится в каталоге lib в коллекции / core / index

Насколько я понимаю, sqljdbc4.jar это тот, кто ищет dll, поэтому я хочу, чтобы обе они были загружены в самое раннее время выполнения, да?

Я пробовал поставить sqljdbc_auth.dll в различных папках bin, в том числе для jre8, для пристани, для solr, для коллекции, безрезультатно.

Я также пробовал использовать драйвер jTDS, результаты те же, но с другой ошибкой.

Моя интуиция подсказывает мне, что это проблема конфигурации в Solr, а не проблема JRE или Jetty. Я искал соответствующие конфигурации, которые нужно изменить в solr.xml и solrconfig.xml но ничего очевидного не нашел.

Я могу опубликовать свой путь к java. Library. Path и java. Class. Path, если это будет полезно.

Я должен добавить, что я новичок в Solr, так как только что узнал о нем на прошлой неделе. Мой конфиг очень стандартный. У меня есть обычная установка Jetty и установка BitNami.

Я застрял. Все предложения приветствуются. Спасибо.

Поместите JAR-файл SQL-сервера (или jTDS) в путь к загрузочному классу Jetty или в папку JRE lib / ext, чтобы убедиться, что он загружен раньше.