[jboss-user] [Persistence, JBoss/CMP, Hibernate, Database] - problem streaming data to a blob on an sqlserver
hugin78
do-not-reply at jboss.com
Mon Feb 12 02:12:51 EST 2007
I have an entity with a lob value:
| @Lob
| public byte[] getData() {
| return data;
| }
|
I have a large amount of data that Iretrieve in small parts from the database, convert it to xml and stream it to the blobfield.
| public void insertData() throws Exception {
| Context ctx = new InitialContext();
| DataSource ds = (DataSource) ctx.lookup("java:/UdtraekDS");
| Connection connection = ds.getConnection();
|
| try {
| if (connection != null) {
| String readStatementBlobStreamOracle = "select data from as_udtraek where name = ? for update";
| String readStatementBlobStreamSQLServer = "select data from as_udtraek (UPDLOCK) where name = ?";
| // Select sql depends on the database
| String sql = Util.isOracle() ? readStatementBlobStreamOracle : readStatementBlobStreamSQLServer;
|
| PreparedStatement ps = connection.prepareStatement(sql);
| ps.setString(1, "allekatalogydelser.xml");
|
| ResultSet res = ps.executeQuery();
| if (res.next()) {
| Blob val = res.getBlob(1);
| OutputStream outputStream = val.setBinaryStream(1);
| logger.info("Writing data to blob");
| // Lots of data will be generated here and written to the outputstream
|
| // For test
| outputStream.write("testing".getBytes());
|
| outputStream.flush();
| outputStream.close();
| }
|
| res.close();
| ps.close();
| }
| } catch (Exception e) {
| logger.error(1, e);
| } finally {
| try {
| connection.close();
| } catch (SQLException e) {
| logger.warn("could not close the connection", e);
| }
| }
| }
|
In the example above I retrieve the existing AS_UDTRAEK entity with the name "allekatalogydelser.xml? and write the text ?testing? to the blobfield. This works perfectly well with an oracle db but with a Microsoft SQL server 9 no data is written to the blob and no exception is thrown.
Can anyone tell me what I'm doing wrong.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4014846#4014846
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4014846
More information about the jboss-user
mailing list