Error in connector or driver with big bytea

From: Hernan Danielan <hernandanielan(at)gmail(dot)com>
To: pgsql-jdbc(at)postgresql(dot)org
Subject: Error in connector or driver with big bytea
Date: 2010-05-22 19:03:17
Message-ID: AANLkTikZu7z5Ljb51rCaxZXWW_z_tI8q-8rsNiGK4NKs@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

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 LOCATION: exec_bind_message, postgres.c:1769
2010-05-22 15:30:44 ART LOG: 08006: could not send data to client:
Connection reset by peer
2010-05-22 15:30:44 ART LOCATION: internal_flush, pqcomm.c:1108
.....
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

With the following code

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();

Any ideas or bug detected in the connector with this problem?

Thanks in advance,
Hernan

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Daniele Depetrini 2010-05-22 22:48:20 Re: After server restart I get - An I/O error occured while sending to the backend.
Previous Message Lew 2010-05-22 15:34:24 Re: Using java.lang.Character for "char" data type