RE: hangs while getting large objects...
От | chris markiewicz |
---|---|
Тема | RE: hangs while getting large objects... |
Дата | |
Msg-id | 003401c125c7$1b37dcd0$77b846c6@cmarkiewicz обсуждение исходный текст |
Ответ на | Re: hangs while getting large objects... (Rene Pijlman <rpijlman@wanadoo.nl>) |
Список | pgsql-jdbc |
While I can readily reproduce it on my application, I have so far been unsuccessful at writing a test case that reproduces the problem. Oh, I just tried the latest drivers - no luck - same problem. Equally unfortunate is the fact that all database processing is heavily abstracted in the application - so there is no method that grabs a connection, performs the query, iterates through the ResultSet, and closes the rs/stmt/conn. I know that I am unlikely to find help unless I can manage to reproduce the problem on an independent program, but I was hoping that there might be some general LO or byte stream rule that I am not following. The area where is breaks is shown below. The method grabs the column name from RS metadata and calls either getObject or getBytes. When it hangs, it occurs on the getBytes(...) line. Once it hangs, the system is essentially useless. My test program will freeze when it reaches the particular row that the application is trying to access. The application hangs on to the commection until I stop Tomcat. I'll continue trying to reproduce in a separate program. thanks chris if (sqlf.getGetType().equals("byte[]")) { try { System.out.println("JDBCE.getbytes (before)"); byte[] bytes = rs.getBytes(columnName); System.out.println("JDBCE.getbytes (after)"); marshaller.setObjectField(o, sqlf.getMapField(), bytes); } catch (Exception e) { String exStr = e.toString(); //## create SBHException here so that it is logged SBHException sbhex = new SBHException(e); if (exStr.indexOf("FastPath") == -1) { System.out.println("JDBCE.lrs NONFastPath error..."+exStr); throw e; } else { System.out.println("JDBCE.lrs FastPath error..."+exStr); throw new FastPathException(e); } } } else { result = rs.getObject(columnName); marshaller.setObjectField(o, sqlf.getMapField(), result); }
В списке pgsql-jdbc по дате отправления: