2011-11-25 10 views
5

हाय मैंने एक काम करने वाले विंडोज सर्वर से एक नया काम करने के लिए मेरी सोलर कॉन्फ़िगरेशन की प्रतिलिपि बनाई है, और यह आयात चलाने के लिए प्रतीत नहीं होता है।सोलर डेटा इंपोर्ट हैंडलर एसक्यूएल में लॉग इन करता है लेकिन कभी भी कोई डेटा नहीं लेता है

वे दोनों Win Server 2008 और SQL 2008R2 का उपयोग कर रहे हैं।

<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> 

मैं एमएस एसक्यूएल प्रोफाइलर उपयोग कर सकते हैं सफलतापूर्वक में Solr उपयोगकर्ता लॉग को देखने के लिए, लेकिन फिर कुछ भी नहीं: इस डेटा आयात config है। यह संग्रहित प्रक्रिया को आजमाने और निष्पादित करने के लिए प्रतीत नहीं होता है। कोई विचार यह क्यों एक सर्वर पर काम करेगा और दूसरे पर नहीं?

FTR बिल्ला Catalina लॉग में केवल एक चीज है:

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

अद्यतन: मैं और Solr मेलिंग सूची दोनों एक साथ एमएस JDBC ड्राइवर की जगह के समाधान के साथ आया था से यावर हुसैन ओपन सोर्स एक - यह काम करता प्रतीत होता है, और इसका मतलब है कि जावा, डीआईएच और एमएस जेडीबीसी ड्राइवर के नवीनतम संस्करणों के बीच यह एक संगतता समस्या होनी चाहिए।

अद्यतन 2: - जो मैं चला रहा हूँ मुद्दे जावा 1.6.0_29 साथ सूचित किया गया है! http://blogs.msdn.com/b/jdbcteam/archive/2011/11/07/supported-java-versions-november-2011.aspx

+0

इसलिए मैंने स्थापित किया है कि डीबी में कोई समस्या नहीं है - मैं आयात कर सकता हूं इस डीबी से मेरे पुराने सौर सर्वर पर। मैं टोमकैट के बजाय जेटी का उपयोग कर रहा हूं और मैंने डेटा आयात कॉन्फ़िगरेशन/सोलर स्कीमा को यथासंभव सरल बना दिया है (एक टेबल से तारों की 4 पंक्तियों को एक फ़ील्ड में आयात करना)। लेकिन अभी भी कुछ नहीं - importhandler बस कुछ भी नहीं करता है। –

+0

यह पागल है। मैंने एक नई मशीन पर एक नया सोलर इंस्टॉल बनाया है, और फिर, यह काम नहीं करता है। एक बार जब मैं कॉन्फ़िगरेशन समस्याओं से गुजरता हूं, तो यह फिर से कुछ भी नहीं करता है। –

+0

मैंने सोलर के बग ट्रैकर पर एक समस्या खोली है: https://issues.apache.org/jira/browse/SOLR-2980 – STW

उत्तर

4

यह जावा 1.6.0_29 की रिहाई की वजह से किया गया है लगता है - जो मैं चल रहा था: http://blogs.msdn.com/b/jdbcteam/archive/2011/11/07/supported-java-versions-november-2011.aspx

+0

क्षमा करें - क्यों डाउनवोट? यह * मेरे लिए जवाब था। मैं नहीं देख सकता कि उसे कभी भी कम करने की आवश्यकता होगी? –

+1

मुझे नहीं पता कि किसने डाउनवॉटेड किया, लेकिन मैंने अभी ऊपर उठाया। पुष्टि _30 मेरे लिए काम किया। मैक के लिए http://connect.apple.com पर उठाया जा सकता है और यह 22 दिसंबर, 2011 से रिलीज है। –

+0

+1 इयान। ढेर अतिप्रवाह पर आपको देखने के लिए अच्छा :) – Yavar

0

मुझे लगता है कि आप इस

यूआरएल याद कर रहे हैं = "JDBC: mysql: // स्थानीय होस्ट/dbname"

dbname -> \ SQL2008

+0

नहीं? वह स्ट्रिंग दूसरे सर्वर पर काम करती है - यह mSSQL है, mysql नहीं - इसलिए jdbc: sqlserver। क्या आपका मतलब इंस्टेंस नाम है? मेरा मानना ​​है कि यह डिफ़ॉल्ट उदाहरण है, इसलिए मुझे नाम (और अन्य सर्वर पर नहीं) की आपूर्ति करने की आवश्यकता नहीं है। –

+0

यहां कुछ संयोजनों का प्रयास किया गया - सबसे विशेष रूप से: jdbc: sqlserver: // localhost/mSSQLSERVER (MSSQLSERVER सेवा.एमसीसी में सूचीबद्ध नाम है) साथ ही स्थानीयहोस्ट के बजाय सर्वर का नाम और MSSQLSERVER की बजाय - लेकिन कोई भाग्य नहीं है। –

0

मुझे लगता है कि जब आप की नकल की आपके सर्वर को आपके द्वारा जेनरेट की गई नई सर्वर पर भी सोलर कॉन्फ़िगरेशन। मुझे संदेह है कि समस्या इस तथ्य के कारण है कि सोलर ने पहले से ही इस डेटा को अनुक्रमित कर दिया है। आपकी क्वेरी में कहा गया है कि आप केवल उन इंडेक्स को इंडेक्स करना चाहते हैं जिनमें पिछले इंडेक्स के बाद से बदलाव हैं।

क्या यह समझ में आता है?

+0

मैंने दो अलग-अलग सर्वरों पर दो बार उदाहरण का उपयोग करके स्क्रैच से फिर से शुरू करने का प्रयास किया है। साथ ही जब आप 'पूर्ण-आयात' शुरू करते हैं तो यह डिफ़ॉल्ट रूप से डेटा को प्रारंभ करने के लिए साफ़ करता है (जिसे मैं ठीक काम कर सकता हूं)। –

+0

जेटी आउटपुट विंडो में कोई संकेत हैं? – GavinR

+0

कोई सुराग नहीं - आखिरी चीज़ जो मैं देख रहा हूं वह है: कनेक्शन बनाना ... –

2

समस्या के रूप में देखते हुए केवल जेडीबीसी ड्राइवर या उनकी कॉन्फ़िगरेशन के साथ ही हो सकता है, मैंने jTDS Open Source JDBC driver के साथ उन्हें इस समस्या के आसपास काम किया है। मेरे config इस तरह समाप्त हो गया है जब मैं यह है कि के साथ काम मिल गया:

<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 कोई - लेकिन मैं जवाब के रूप में यह अंकन नहीं कर रहा हूँ क्योंकि मैं कारण है कि मैं एमएस ड्राइवरों उपयोग नहीं कर सकते नहीं देख सकता। ..

+0

अब मुझे समस्या है कि डेल्टा अपडेट चलाने से 'dataimport.properties' फ़ाइल अपडेट हो जाती है - लेकिन फिर सभी डेटा पर फिर से प्राप्त करें! अजीब! –

0

यह समस्या केवल जावा रनटाइम की बहुत विशिष्ट रिलीज पर होती है, और केवल सौर से परे अनुप्रयोगों को प्रभावित करती है। इससे मुझे विश्वास होता है कि रूट कारण एक सौर समस्या होने के बजाय जावा रनटाइम और माइक्रोसॉफ्ट एसक्यूएल सर्वर जेडीबीसी ड्राइवरों के बीच एक असंगतता या बग है।

मेरे विशेष मामले में हमारे पास दो सर्वर थे जिनमें से प्रत्येक 3 सर्वर थे। एक समूह ने इस समस्या के कोई लक्षण नहीं दिखाए, और दूसरे समूह ने सभी मुद्दों को प्रदर्शित किया। सभी सर्वर सोलर 3.4.0 चला रहे थे, और SQL सर्वर जेडीबीसी ड्राइवर 3.0 की एक ही रिलीज। सभी सर्वर जेआरई 1.6.0_20, चला रहे थे लेकिन नज़दीकी निरीक्षण पर यह पहचान लिया गया था कि समस्या सर्वर 1.6.0_20 के लिए थोड़ा नया पैकेज उपयोग कर रहे थे (CentOS के लिए yum के माध्यम से वितरित एक अलग आरपीएम)।

समस्या सर्वर को ज्ञात-अच्छे सर्वर पर जावा के सटीक संस्करण में डाउनग्रेड करके समस्या तुरंत चली गई।

विशेष रूप से,

काम कर रहे:
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

गैर काम कर रहे:
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

संबंधित मुद्दे