It's not just no rows, it seems to be a vacuous query element...

We are using the command line: java ... org.apache.xalan.xslt.Process.... Not using 
connection pools. Is this even possible from the command line? Connecting to Sybase 
SQL Anywhere 8.0.2.4398.

There is only one call to sql:connect( $DbCon, $DbDrvr, $DbUrl, $DbUsr, $DbPwd). 
However, on the server side, even before any queries are sent, many many connections 
are made. Maybe this is the same problem, maybe a different problem. Is this a bug, or 
is there a setting to turn this off?

Then, we loop through various similar sequences of scores of SQL batches (same SQL, 
different data). We handle each batch of SQL the same way like this:
 ...
 <xsl:variable name="Qy" select="sql:query($DbCon, $SQL)"/>
 <xsl:if test="$msg-sql or not( $Qy)">
   <xsl:message terminate="no"><xsl:value-of select="$SQL"/> = <xsl:value-of 
select="$Qy/sql/row-set/row[1]/col[1]"/></xsl:message>
 </xsl:if>
 <xsl:if test="not( $Qy)" >
   <xsl:apply-templates select="sql:getError($DbCon)/ext-error"/>
 </xsl:if>
 ...
<xsl:template match="//ext-error">
 <xsl:param name="terminate" select="yes"/>
   <xsl:copy-of select="."/>
   <xsl:message terminate="yes"><xsl:value-of select="Date:new()" 
xmlns:Date="xalan://java.util.Date"/>
                                <xsl:value-of select="concat( ' '
                                                            , ' msg: '
                                                            , sql-error/message
                                                            , ' cd: '
                                                            , 
sql-error/code)"/></xsl:message>
                                                            <!-- , message -->
</xsl:template>

At a certain point (it does not seem to always be the same place), not( $Qy) is true, but <xsl:apply-templates 
select="sql:getError($DbCon)/ext-error"/> does not  trigger <xsl:template 
match="//ext-error">. That is the query is not returning anthing, but there is no error reported.

The same style sheets work otherwise, both for the same data in smaller batches and 
for reporting other errors, like missing values or errors in the stored procedures.

I remember hitting similar symptoms with 2.0.1, but only after thousands of SQL 
batches, so most processes could be batched below this limit. However with 2.6.0 the 
limit is much lower.

Any suggestions?

Regards, Phil Friedman - Terralink Software - 1-207-772-6500 x101

John Gentilin wrote:

Phil,

We have systems that have an up time of more that a year without
any problems and without knowing your system its hard to diagnose
what is going on.
Are you running queries through Process or the Command line; or are
you kicking off the Transformation through some Server software.

Are you implementing external connection pools ?? It not you probably should at least so you can monitor open/close connections.

In out External Pool connection, we cycle cached connections back to
the Server every 30 min or so just to make sure they are fresh and
on any error, the connection gets closed. I know that Sybase Server,
if you previously had an error on a connection, i.e. Syntax error
on an SQL Statement, that connection won't return any queries until
the error stack is read from the db. The release connection on any error
was the fix for that.

-JG

Phil Friedman wrote:

It seems that after a large number --hundreds, but I have not counted-- of queries on the same db connection, the SQL extension starts returning empty result sets with no errors thrown.

I'm at 2.6.0 connecting to Sybase SQL Anywhere 8. There are no problems with the SQL as I've run similar statements earlier and can restart and run the same statements w/o errors later.

Any ideas on what to look for?
Regards, Phil Friedman - Terralink Software - 1-207-772-6500 x101


--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]





--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to