2017-01-19 2 views
12

Ich habe ein CLOB-Feld auf einer Oracle-Tabelle, die eine PDF-Datei speichert. Wenn ich dieses Feldes auf Azure SQL Server Db versuche Export habe ich diesen Fehler:Fehler beim Exportieren von Clob-Feld von Oracle zu Textfeld auf Azure DB

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 

Aber, wenn ich die gleichen lokalen SQL Server DB-Transformation ausführen, es funktioniert gut.

Wie kann ich das beheben?

UPDATE 1

Ich erkennen, dass nur, wenn ich „Größe Commit“ gesetzt größer als 15 und in meinem TableOutput Schritt wahr auf „für Einsätze Verwendung Batch-Update“ eingestellt ist, tritt das Problem auf.

+1

OK, ich beiße ... Warum Sie eine PDF-Datei in einer CLOB Spalte zu speichern ("Feld")? CLOB ist für lange Textzeichenfolgen. Sie unterliegen Texttransformationen (explizit aber auch implizit). Text kann in Oracle und in SQL Server anders gespeichert werden, und eine Exportroutine würde die erforderlichen Änderungen vornehmen. Ist es das was du willst? Zweifelhaft! (Das wäre konsistent mit SQL Server -> SQL Server verursacht keine Probleme, da es das gleiche "System" ist). Eine PDF-Datei ist keine lange Textzeichenfolge. Meinst du BLOB? – mathguy

+0

Schau, mein Problem ist nicht der Datentyp. Mein Problem ist unterbrochen Verbindung mit Azure SQL Server DB. Dies geschieht unabhängig vom Datentyp. –

+1

Deshalb habe ich in einem Kommentar gefragt und ich habe es nicht als Antwort angeboten. Seien Sie nicht so sicher, dass es nicht der Versuch ist, eine PDF-Datei so zu manipulieren, als ob Text Ihre Verbindung stürzen würde! Was passiert, wenn Sie denselben Prozess in einer CLOB-Spalte versuchen - tritt das Problem einer unterbrochenen Verbindung auf? – mathguy

Antwort

0

können Sie versuchen, TCP-Parameter auf dem Client zu ändern:

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

Ich habe das gemacht, aber es löst nicht mein Problem. –

Verwandte Themen