Hello! I have a problem for several days now. I am trying to insert a record with a file of 1.4MB in a postgre database with a JDBC connector. When i insert files around 100KB it works great. However it does not work with greater ones. I use both method bytea and oid but both of them give me the same error in the database log:
2010-05-22 15:30:44 ART LOG: 08006: could not send data to client: Connection reset by peer
.....
2010-05-22 15:30:45 ART LOCATION: exec_execute_message, postgres.c:1988
2010-05-22 15:30:46 ART LOG: 08006: could not send data to client: Broken pipe
2010-05-22 15:30:46 ART LOCATION: internal_flush, pqcomm.c:1108
....
2010-05-22 15:35:10 ART LOG: 00000: aborting any active transactions
mDbConnector.setAutoCommit(false);
// Get the Large Object Manager to perform operations with
LargeObjectManager lobj = ((org.postgresql.PGConnection)mDbConnector).getLargeObjectAPI();
// Create a new large object
int oid = lobj.create(LargeObjectManager.READ | LargeObjectManager.WRITE);
// Open the large object for writing
LargeObject obj = lobj.open(oid, LargeObjectManager.WRITE);
byte []data = cont.getData();
obj.write(data,0,data.length);
obj.close();
PreparedStatement statement = mDbConnector.prepareStatement("INSERT INTO publicitiescontent (IdPublicities,MimeType,FileName,Title,Data) VALUES (?,?,?,?,?)");
statement.setBigDecimal(1, new BigDecimal(publicityId));
statement.setString(2, cont.getMimeType());
statement.setString(3, cont.getFileName());
statement.setString(4, cont.getNombre());
statement.setInt(5, oid);
statement.execute();
statement.close();
mDbConnector.commit();