Subject: Re: [xsl] SQL instert From: Michael Kay <mike@xxxxxxxxxxxx> Date: Thu, 21 Jul 2011 16:27:37 +0100 |
Michael Kay Saxonica
Hi,
Im using java:/net.sf.saxon.sql.SQLElementFactory to insert entries into a db. My template looks like this:
<xsl:template name="sql-insert"> <xsl:param name="doknr"/> <xsl:param name="gericht"/> <xsl:param name="datum"/> <xsl:param name="filename"/> <xsl:param name="gz"/> <xsl:param name="typ"/> <xsl:param name="sz"/> <xsl:variable name="connection" as="java:java.sql.Connection" xmlns:java="http://saxon.sf.net/java-type"> <sql:connect driver="{$driver}" database="{$database}" user="{$user}" password="{$password}"> <xsl:fallback> <xsl:message terminate="yes">SQL extensions are not installed</xsl:message> </xsl:fallback> </sql:connect> </xsl:variable> <xsl:choose> <xsl:when test="$typ = 'Volltext'"> <xsl:choose> <xsl:when test="$gericht = 'OGH'"> <sql:insert connection="$connection" table="Volltext_OGH"> <sql:column name="DOKNR" select="normalize-space($doknr)"/> <sql:column name="Datum" select="normalize-space($datum)"/> <sql:column name="Filename" select="normalize-space($filename)"/> <sql:column name="Gesnr" select="normalize-space($gz)"/> <sql:column name="SZ" select="normalize-space($sz)"/>
</sql:insert> </xsl:when> <xsl:when test="$gericht = 'VWGH'"> <sql:insert connection="$connection" table="Volltext_VWGH"> <sql:column name="DOKNR" select="normalize-space($doknr)"/> <sql:column name="Datum" select="normalize-space($datum)"/> <sql:column name="Filename" select="normalize-space($filename)"/> <sql:column name="Gesnr" select="normalize-space($gz)"/> </sql:insert> </xsl:when> <xsl:when test="$gericht = 'VFGH'"> <sql:insert connection="$connection" table="Volltext_VFGH"> <sql:column name="DOKNR" select="normalize-space($doknr)"/> <sql:column name="Datum" select="normalize-space($datum)"/> <sql:column name="Filename" select="normalize-space($filename)"/> <sql:column name="Gesnr" select="normalize-space($gz)"/> </sql:insert> </xsl:when> <xsl:when test="starts-with($gericht, 'AUSL')"> <sql:insert connection="$connection" table="Volltext_AUSL"> <sql:column name="DOKNR" select="normalize-space($doknr)"/> <sql:column name="Gericht" select="normalize-space($gericht)"/> <sql:column name="Datum" select="normalize-space($datum)"/> <sql:column name="Filename" select="normalize-space($filename)"/> <sql:column name="Gesnr" select="normalize-space($gz)"/> </sql:insert> </xsl:when> </xsl:choose> </xsl:when> <xsl:otherwise> <xsl:choose> <xsl:when test="$gericht = 'OGH'"> <sql:insert connection="$connection" table="Rechtssatz_OGH"> <sql:column name="DOKNR" select="normalize-space($doknr)"/> <sql:column name="Datum" select="normalize-space($datum)"/> <sql:column name="Filename" select="normalize-space($filename)"/> <sql:column name="Gesnr" select="normalize-space($gz)"/> </sql:insert> </xsl:when> <xsl:when test="$gericht = 'VWGH'"> <sql:insert connection="$connection" table="Rechtssatz_VWGH"> <sql:column name="DOKNR" select="normalize-space($doknr)"/> <sql:column name="Datum" select="normalize-space($datum)"/> <sql:column name="Filename" select="normalize-space($filename)"/> <sql:column name="Gesnr" select="normalize-space($gz)"/> </sql:insert> </xsl:when> <xsl:when test="$gericht = 'VFGH'"> <sql:insert connection="$connection" table="Rechtssatz_VFGH"> <sql:column name="DOKNR" select="normalize-space($doknr)"/> <sql:column name="Datum" select="normalize-space($datum)"/> <sql:column name="Filename" select="normalize-space($filename)"/> <sql:column name="Gesnr" select="normalize-space($gz)"/> </sql:insert> </xsl:when> <xsl:when test="starts-with($gericht, 'AUSL')"> <sql:insert connection="$connection" table="Rechtssatz_AUSL"> <sql:column name="DOKNR" select="normalize-space($doknr)"/> <sql:column name="Gericht" select="normalize-space($gericht)"/> <sql:column name="Datum" select="normalize-space($datum)"/> <sql:column name="Filename" select="normalize-space($filename)"/> <sql:column name="Gesnr" select="normalize-space($gz)"/> </sql:insert> </xsl:when> </xsl:choose> </xsl:otherwise> </xsl:choose> <sql:close connection="$connection"/> </xsl:template>
Now it seems to work for some time/files but then i get the following error:
Error on line 35 of sql_insert.xslt: SXSQ0003: JDBC Connection Failure: Network error IOException: Address already in use: connect at xsl:call-template name="sql-insert" (file:/R:/Produktion/Cases/xslt/transformiere_daten.xslt#103) at xsl:apply-templates (file:/R:/Produktion/Cases/xslt/transformiere_urteile.xslt#139) processing /result/data[1]/risdokument[1]/metadaten[1]/judikatur[1]/gz[1]/item[1] at xsl:apply-templates (file:/R:/Produktion/Cases/xslt/transformiere_urteile.xslt#31) processing /result/data[1]/risdokument[1]/dokumentliste[1]/hauptdokument[1]/inhalt[ 1]/daten[1]/xml[1]/nutzdaten[1] at xsl:apply-templates (file:/R:/Produktion/Cases/xslt/transformiere_daten.xslt#86) processing /result/data[1]/risdokument[1] While processing JFT_10048998_95W00I05_00.xml: Run-time errors were reported
Does anyone see what is causing this problem ?! I do close the connection in the end of the template so how can this be happening ?!
Kind regards
. . . . . . . . . . . . . . . . . . . . . . . . . . Patrick Szabo XSLT Developer LexisNexis Marxergasse 25, 1030 Wien
mailto:patrick.szabo@xxxxxxxxxxxxx Tel.: 00431 534521573 Fax: +43 (1) 534 52 - 146
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] SQL instert, Szabo, Patrick \(LNG | Thread | [xsl] Selecting an attribute vale f, Mark |
[xsl] SQL instert, Szabo, Patrick \(LNG | Date | Re: [xsl] Query info on XSD., Giuseppe Briotti |
Month |