2011-11-25 22 views
5

Xin chào Tôi đã sao chép cấu hình Solr của mình từ máy chủ cửa sổ đang hoạt động sang máy chủ mới, và có vẻ như không chạy được.Solr DataImportHandler đăng nhập vào SQL nhưng không bao giờ tìm nạp bất kỳ dữ liệu nào

Cả hai đều sử dụng máy chủ giành chiến thắng 2008 và SQL 2008R2. Đây là cấu hình nhập dữ liệu:

<dataConfig> 
    <dataSource type="JdbcDataSource" name="ds1" 
     driver="com.microsoft.sqlserver.jdbc.SQLServerDriver" 
     url="jdbc:sqlserver://localhost;databaseName=DB" 
     user="Solr" 
     password="pwd"/> 
    <document name="datas"> 
    <entity name="data" dataSource="ds1" pk="key" 
    query="EXEC SOLR_COMPANY_SEARCH_DATA" 
    deltaImportQuery="SELECT * FROM Company_Search_Data WHERE [key]='${dataimporter.delta.key}'" 
    deltaQuery="SELECT [key] FROM Company_Search_Data WHERE modify_dt > '${dataimporter.last_index_time}'"> 
      <field column="WorkDesc_Comments" name="WorkDesc_Comments_Split" /> 
      <field column="WorkDesc_Comments" name="WorkDesc_Comments_Edge" /> 
    </entity> 
    </document> 
</dataConfig> 

Tôi có thể sử dụng MS SQL Profiler để xem người dùng Solr đăng nhập thành công, nhưng sau đó không có gì. Nó dường như không cố gắng và thực hiện các thủ tục được lưu trữ. Bất kỳ ý tưởng tại sao điều này sẽ làm việc một máy chủ và không làm việc trên một máy chủ khác?

FTR điều duy nhất trong bản ghi catalina tomcat là:

org.apache.solr.handler.dataimport.JdbcDataSource$1 call 
INFO: Creating a connection for entity data with URL: jdbc:sqlserver://localhost;databaseName=CATLive 

UPDATE: nhớ và Yavar Husain khỏi danh sách gửi thư Solr cả đã đưa ra các giải pháp thay thế các điều khiển MS JDBC với một mã nguồn mở một - điều này dường như hoạt động, và có nghĩa đây phải là vấn đề tương thích giữa các phiên bản Java mới nhất, DIH và trình điều khiển MS JDBC.

CẬP NHẬT 2: Sự cố đã được báo cáo với Java 1.6.0_29 - mà tôi đang chạy! http://blogs.msdn.com/b/jdbcteam/archive/2011/11/07/supported-java-versions-november-2011.aspx

+0

Vì vậy, tôi đã thiết lập không có vấn đề gì trong DB - tôi có thể nhập từ DB này đến máy chủ Solr cũ của tôi. Tôi đang sử dụng Jetty thay vì Tomcat và tôi cũng đã đơn giản hóa lược đồ config/solr nhập dữ liệu càng nhiều càng tốt (nhập 4 hàng chuỗi từ một bảng vào một trường). Nhưng vẫn không có gì - người nhập khẩu không làm gì cả. –

+0

Điều này thật điên rồ. Tôi đã tạo một cài đặt Solr mới trên một máy mới, và một lần nữa, nó không hoạt động. Một khi tôi đã thông qua các vấn đề cấu hình, nó chỉ không làm gì nữa. –

+0

Tôi đã mở một sự cố về trình theo dõi lỗi của Solr: https://issues.apache.org/jira/browse/SOLR-2980 – STW

Trả lời

4

này trông đã được gây ra bởi một thông cáo của Java 1.6.0_29 - mà tôi đã chạy: http://blogs.msdn.com/b/jdbcteam/archive/2011/11/07/supported-java-versions-november-2011.aspx

+0

Xin lỗi - tại sao downvote? Đây là * câu trả lời cho tôi. Tôi không thể thấy điều đó sẽ bao giờ cần downvoting? –

+1

Tôi không biết ai downvoted, nhưng tôi chỉ upvoted. Xác nhận _30 đã làm việc cho tôi. Có thể được chọn cho mac tại http://connect.apple.com và đó là bản phát hành từ ngày 22 tháng 12 năm 2011. –

+0

+1 Ian. Rất vui được gặp bạn trên stack overflow :) – Yavar

0

Tôi đoán bạn đang thiếu

url này = "jdbc: mysql: // localhost/dbname"

dbname -> \ SQL2008

+0

Không? Chuỗi đó hoạt động trên máy chủ khác - đó là MSSQL, không phải mysql - do đó jdbc: sqlserver. Bạn có nghĩa là tên dụ? Tôi tin rằng đó là trường hợp mặc định, vì vậy tôi không cần phải cung cấp tên (và không phải trên máy chủ khác). –

+0

Đã thử một số kết hợp ở đây - đáng chú ý nhất: jdbc: sqlserver: // localhost/MSSQLSERVER (MSSQLSERVER là tên được liệt kê trong Services.msc) cũng như tên của máy chủ thay vì localhost và thay vì MSSQLSERVER - nhưng không may mắn. –

0

Tôi đoán khi bạn sao chép cấu hình Solr của bạn đến máy chủ mới mà bạn cũng đã lấy tệp chỉ mục. Tôi nghi ngờ vấn đề là do Solr đã lập chỉ mục dữ liệu này. Truy vấn của bạn nói rằng bạn chỉ muốn lập chỉ mục các tệp có thay đổi từ chỉ mục cuối cùng.

Điều này có hợp lý không?

+0

Tôi đã thử bắt đầu lại từ đầu bằng ví dụ, hai lần trên hai máy chủ khác nhau. Ngoài ra khi bạn bắt đầu một 'đầy đủ-nhập khẩu' nó xóa dữ liệu để bắt đầu với mặc định (mà tôi có thể thấy làm việc tốt). –

+0

Có bất kỳ manh mối nào trong cửa sổ đầu ra của Jetty không? – GavinR

+0

Không có manh mối - điều cuối cùng tôi thấy là: Tạo kết nối ... –

2

Thấy sự cố chỉ có thể xảy ra với trình điều khiển JDBC hoặc cấu hình của chúng, tôi đã khắc phục sự cố này bằng cách thay thế chúng bằng jTDS Open Source JDBC driver. cấu hình của tôi đã kết thúc như thế này khi tôi nhận nó làm việc với điều đó:

<dataConfig> 
    <dataSource type="JdbcDataSource" 
       driver="net.sourceforge.jtds.jdbc.Driver" 
       url="jdbc:jtds:sqlserver://localhost;databaseName=DBName" 
       user="Solr" 
       password="password" name="ds1"/> 
    <document> 
    <entity dataSource="ds1" name="sometext" 
      query="SELECT * FROM mytable"> 
    </entity> 
    </document> 
</dataConfig> 

HTH một người nào đó - nhưng tôi không đánh dấu đây là câu trả lời vì tôi không thể hiểu tại sao tôi không thể sử dụng các trình điều khiển MS. ..

+0

Bây giờ tôi gặp sự cố khi chạy cập nhật delta cập nhật tệp 'dataimport.properties' - nhưng sau đó chỉ tìm nạp lại tất cả dữ liệu bất kể! Kỳ dị! –

0

Sự cố này dường như chỉ xảy ra trên các bản phát hành rất cụ thể của thời gian chạy java và ảnh hưởng đến các ứng dụng không chỉ là solr. Điều này khiến tôi tin rằng nguyên nhân gốc rễ là sự không tương thích hoặc lỗi giữa thời gian chạy Java và trình điều khiển JDBC của Microsoft SQL Server chứ không phải là vấn đề Solr.

Trong trường hợp cụ thể của mình, chúng tôi có hai nhóm gồm 3 máy chủ. Một nhóm cho thấy không có triệu chứng của vấn đề này, và nhóm khác tất cả các vấn đề trưng bày. Tất cả các máy chủ đều chạy Solr 3.4.0 và cùng một phiên bản của các trình điều khiển SQL Server JDBC 3.0. Tất cả các máy chủ cũng chạy JRE 1.6.0_20, nhưng khi kiểm tra kỹ hơn, máy chủ vấn đề đang sử dụng gói mới hơn 1.6.0_20 (RPM khác được phân phối qua yum cho CentOS).

Bằng cách hạ cấp máy chủ sự cố xuống phiên bản java chính xác trên các máy chủ đã biết, sự cố ngay lập tức biến mất.

Cụ thể,

làm việc:
http://pkgs.org/centos-5-rhel-5/centos-rhel-x86_64/java-1.6.0-openjdk-1.6.0.0-1.22.1.9.8.el5_6.x86_64.rpm.html

không làm việc:
http://pkgs.org/centos-5-rhel-5/centos-rhel-updates-x86_64/java-1.6.0-openjdk-src-1.6.0.0-1.23.1.9.10.el5_7.x86_64.rpm.html

Các vấn đề liên quan