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]