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
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 |