Wow, that is a wacky one..it seems most likely that it is a driver
issue (i can promise that there is no "if(sql.length() == 1983)
blowChunks();" code in SQL Maps.

Can you try it with the latest Oracle drivers? From all reports, the
10g drivers resolved a ton of bugs that were popping up.

It might not hurt to update to a more recent iBATIS build, too.

Larry


On 9/7/05, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
> Hi there!
> 
> When digging for the error in my previous message:
> 
>     "Possible to set timeout on the connection ?"
> 
> I came over a very strange bug somewhere from SQLMap, the Oracle
> driver classes12.jar and to the database Oracle 9.2.
> 
> I do a plain SQL without binding variables (I do $complexWhere$ -> 
> myBean.geComplexWhere) in the
> xml file) the query looks like this from the debug info:
> 
> DEBUG 2005-09-07 11:55:50,003 
> com.ibatis.common.jdbc.logging.PreparedStatementLogProxy (Line: 48) - 
> {pstm-100007}
> PreparedStatement:          select C.COMPANYID, C.DMID, .......... where ...
>                                     and (( C.ORGANIZATIONNO like '%Galleri 
> Henrik%'
>                                     or  lower(C.BUSINESSNAME) like 
> lower('%Galleri Henrik%')
>                                     or  lower(C.MARKETNAME) like 
> lower('%Galleri Henrik%') ......) ) )
>                             order by  .....
> 
> DEBUG 2005-09-07 11:55:50,023 
> com.ibatis.common.jdbc.logging.PreparedStatementLogProxy (Line: 49) - 
> {pstm-100007}Parameters: []
> DEBUG 2005-09-07 11:55:50,033 
> com.ibatis.common.jdbc.logging.PreparedStatementLogProxy (Line: 50) - 
> {pstm-100007} Types: []
> 
> (mine lineshifts in the query, and mine replacments of sql with .....)
> 
> ---
> 
> The query string is of 1983 length (if you count the spaces before the 
> "select" statment),
> or 1973 without the spaces, no tail whitespaces counted. When I search e.g. 
> for 'Galleri Henrik',
> the query string get exactly total 1983 of length. But lets say it's 1983 
> then.
> 
> SO WHEN the query string is of exactly 1983 of length the SQLMap connection 
> hangs and I get some kind
> of lock in the database (CURSOR BIND). Believe it or not !!! I still can't 
> believe it :-)
> 
> One Oracle guru told me that the case could be that Oracle are not able to 
> return the result
> back again after doing this query and goes into somekind of wait modus. 
> Waiting for "something"
> for the connection ?? I don't have a clue.
> 
> It's nothing wrong with the data or the SQL. I can copy&paste this query 
> string into a SQL
> tool, using the same Oracle JDBC driver as SQLMap does (I use DbVisualizer), 
> and run the
> query with or without the whitespaces in front, and the query runs just fine 
> under 1 second.
> 
> This make me think, can this has something with SQLMap to do ? Do SQLMap 
> somekind of string
> manipulating that could result in some kind of "modus" when the query string 
> is of 1983 in length ?
> Oracle can handle more then that of course and should be discovered for a 
> long time agao if that
> was the case ? Same with the driver, but what about SQLMap ??? A bug ?
> 
> It's a actually unbelievably this case, when the query string is less or 
> larger than 1983, no problem
> at all, makes it even more strange. As my previous e-mail, when size is 1982 
> or 1984 no problem,
> And it's not related to Galleri Henrik .. I can typ in '1234567 123456' -> 
> same error, it's the length !!
> 
> --
> 
> Have you heard of this before ? :-) Any wild ideas ?? Something I should test 
> ?
> 
> --
> 
> The quick solution is to remove many whitespaces in the sql string = become 
> less that 1983
> of length with normal searches. Not that quick is to make binding variables.
> Tested both, works just fine.
> 
> We use the SQLMap version available in january 2005.
> 
> Clues ?
> 
> 
> Cheers,
> Erlend
>

Reply via email to