Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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

pgsql-jdbc by date

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

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group