2017-01-19 21 views
12

पर ऑरैक से टेक्स्ट फ़ील्ड को क्लोब फ़ील्ड निर्यात करते समय त्रुटि मेरे पास ओरेकल टेबल पर एक सीएलओबी फ़ील्ड है जो पीडीएफ फ़ाइल संग्रहीत करता है। जब मैं Azure पर एसक्यूएल सर्वर Db को इस क्षेत्र में निर्यात की कोशिश मैं यह त्रुटि आई:Azure डीबी

2017/01/19 11:14:32 - ImpostoRenda 2.0 - ERROR (version 6.1.0.1-196, build 1 from 2016-04-07 12.08.49 by buildguy) : Unexpected batch update error committing the database connection. 
2017/01/19 11:14:32 - ImpostoRenda 2.0 - ERROR (version 6.1.0.1-196, build 1 from 2016-04-07 12.08.49 by buildguy) : org.pentaho.di.core.exception.KettleDatabaseBatchException: 
2017/01/19 11:14:32 - ImpostoRenda 2.0 - Error updating batch 
2017/01/19 11:14:32 - ImpostoRenda 2.0 - I/O Error: Connection reset by peer: socket write error 
2017/01/19 11:14:32 - ImpostoRenda 2.0 - 
2017/01/19 11:14:32 - ImpostoRenda 2.0 - at org.pentaho.di.core.database.Database.createKettleDatabaseBatchException(Database.java:1379) 
2017/01/19 11:14:32 - ImpostoRenda 2.0 - at org.pentaho.di.core.database.Database.emptyAndCommit(Database.java:1368) 
2017/01/19 11:14:32 - ImpostoRenda 2.0 - at org.pentaho.di.trans.steps.tableoutput.TableOutput.dispose(TableOutput.java:575) 
2017/01/19 11:14:32 - ImpostoRenda 2.0 - at org.pentaho.di.trans.step.RunThread.run(RunThread.java:96) 
2017/01/19 11:14:32 - ImpostoRenda 2.0 - at java.lang.Thread.run(Unknown Source) 
2017/01/19 11:14:32 - ImpostoRenda 2.0 - Caused by: java.sql.BatchUpdateException: I/O Error: Connection reset by peer: socket write error 
2017/01/19 11:14:32 - ImpostoRenda 2.0 - at net.sourceforge.jtds.jdbc.JtdsStatement.executeBatch(JtdsStatement.java:969) 
2017/01/19 11:14:32 - ImpostoRenda 2.0 - at org.pentaho.di.core.database.Database.emptyAndCommit(Database.java:1355) 
2017/01/19 11:14:32 - ImpostoRenda 2.0 - ... 3 more 
2017/01/19 11:14:32 - ImpostoRenda 2.0 - ERROR (version 6.1.0.1-196, build 1 from 2016-04-07 12.08.49 by buildguy) : Unexpected error rolling back the database connection. 
2017/01/19 11:14:32 - ImpostoRenda 2.0 - ERROR (version 6.1.0.1-196, build 1 from 2016-04-07 12.08.49 by buildguy) : org.pentaho.di.core.exception.KettleDatabaseException: 
2017/01/19 11:14:32 - ImpostoRenda 2.0 - Error performing rollback on connection 
2017/01/19 11:14:32 - ImpostoRenda 2.0 - Invalid state, the Connection object is closed. 
2017/01/19 11:14:32 - ImpostoRenda 2.0 - 
2017/01/19 11:14:32 - ImpostoRenda 2.0 - at org.pentaho.di.core.database.Database.rollback(Database.java:854) 
2017/01/19 11:14:32 - ImpostoRenda 2.0 - at org.pentaho.di.core.database.Database.rollback(Database.java:832) 
2017/01/19 11:14:32 - ImpostoRenda 2.0 - at org.pentaho.di.trans.steps.tableoutput.TableOutput.dispose(TableOutput.java:610) 
2017/01/19 11:14:32 - ImpostoRenda 2.0 - at org.pentaho.di.trans.step.RunThread.run(RunThread.java:96) 
2017/01/19 11:14:32 - ImpostoRenda 2.0 - at java.lang.Thread.run(Unknown Source) 
2017/01/19 11:14:32 - ImpostoRenda 2.0 - Caused by: java.sql.SQLException: Invalid state, the Connection object is closed. 
2017/01/19 11:14:32 - ImpostoRenda 2.0 - at net.sourceforge.jtds.jdbc.ConnectionJDBC2.checkOpen(ConnectionJDBC2.java:1699) 
2017/01/19 11:14:32 - ImpostoRenda 2.0 - at net.sourceforge.jtds.jdbc.ConnectionJDBC2.rollback(ConnectionJDBC2.java:2100) 
2017/01/19 11:14:32 - ImpostoRenda 2.0 - at org.pentaho.di.core.database.Database.rollback(Database.java:845) 
2017/01/19 11:14:32 - ImpostoRenda 2.0 - ... 4 more 

लेकिन, अगर मैं पर अमल ही स्थानीय एसक्यूएल सर्वर डीबी को बदलना है, यह ठीक काम करता है।

मैं इसे कैसे हल करूं?

अद्यतन 1

मैंने महसूस किया कि सिर्फ जब मैं डाल "आकार कमिट" बड़ा की तुलना में 15 और मेरे TableOutput चरण में "आवेषण के लिए उपयोग बैच अद्यतन" पर सच निर्धारित करते हैं, समस्या तब होती है।

+1

ठीक है, मैं काट देंगे ... क्यों आप एक CLOB स्तंभ ("क्षेत्र") में एक पीडीएफ फाइल भंडारण कर रहे हैं? सीएलओबी लंबे पाठ तारों के लिए है। वे टेक्स्ट ट्रांसफॉर्मेशन के अधीन हैं (जाहिर है लेकिन स्पष्ट रूप से भी)। टेक्स्ट ओरेकल और SQL सर्वर में अलग-अलग संग्रहीत किया जा सकता है, और एक निर्यात दिनचर्या आवश्यक परिवर्तन करेगी। क्या तुम यही चाहते हो? संदिग्ध! (यह SQL सर्वर के साथ संगत होगा -> SQL सर्वर कोई समस्या नहीं पैदा करता है, क्योंकि यह वही "सिस्टम" है)। एक पीडीएफ फाइल एक लंबी पाठ स्ट्रिंग नहीं है। क्या आपका मतलब बीएलओबी था? – mathguy

+0

देखो, मेरी समस्या डेटा प्रकार नहीं है। मेरी समस्या Azure SQL सर्वर डीबी के साथ कनेक्शन बाधित है। यह डेटा प्रकार से स्वतंत्र रूप से होता है। –

+1

यही कारण है कि मैंने एक टिप्पणी में पूछा और मैंने इसे उत्तर के रूप में पेश नहीं किया। इसके साथ, यह सुनिश्चित न करें कि पीडीएफ फ़ाइल में हेरफेर करने का प्रयास नहीं है जैसे कि यह टेक्स्ट था जो आपके कनेक्शन को दुर्घटनाग्रस्त करता है! क्या होता है जब आप एक सीएलओबी कॉलम पर एक ही प्रक्रिया का प्रयास करते हैं - क्या आप बाधित कनेक्शन की एक ही समस्या में भाग लेते हैं? – mathguy

उत्तर

0

आप क्लाइंट पर टीसीपी पैरामीटर को बदलने की कोशिश कर सकते हैं:

REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v KeepAliveTime /t REG_DWORD /d 30000 
REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v KeepAliveInterval /t REG_DWORD /d 1000 
REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v TcpMaxDataRetransmission /t REG_DWORD /d 10 
+0

मैंने ऐसा किया, लेकिन यह मेरी समस्या का समाधान नहीं करता है। –