Hi Werner,

Thanks for the response! I did a) and b) below, but I'm not at all sure what
you meant by c). I'm running on Win2k. My experience is MS developement, so
I'm not sure about all this environment variable stuff.

I did not have an environment variable setup for LD_LIBRARY_PATH, so I set
one up, with this stab at what should be in it: C:\Program Files\SQLLIB\bin

I still couldn't get my example going.

Here are some of my environment variables:
PATH=%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Progra
m Files\Attachmate\E!E2K\;C:\PROGRA~1\IBM\IMNNQ;C:\Program
Files\SQLLIB\BIN;C:\Program Files\SQLLIB\FUNCTION;C:\Program
Files\SQLLIB\SAMPLES\REPL;C:\Program Files\SQLLIB\HELP;C:\jdk1.3.1_03\bin

CLASSPATH=.;C:\Program Files\SQLLIB\java\db2java.zip;C:\Program
Files\SQLLIB\java\runtime.zip;C:\Program
Files\SQLLIB\java\sqlj.zip;C:\Program Files\SQLLIB\bin

I surely appreciate your help with this!

Thanks,
Kelly

-----Original Message-----
From: Werner Guttmann [mailto:[EMAIL PROTECTED]]
Sent: Friday, May 17, 2002 3:07 AM
To: [EMAIL PROTECTED]
Cc: Max Foxell; Shafik Patel
Subject: Re: Connection problem to DB2


All,

please keep in mind that IBM's JDBC driver for DB2 is a type 2 driver. Iow,
it
relies on native code installed somewhere in your filesystem. Our experience
here indicates that because of this, you cannot simply put the relevant JAR
files (runtime.zip, db2java.zip and sqlj.zip) into the WEB-INF/lib
directory.

In our case, we had to

a) copy these files into Tomcat's common/lib directory to avoid issues with
JNI
when the web app is being reloaded (the issue here being that during the
lifetime of a JVM, any native libraries used by your code must be loaded
once
only).
b) rename the extension of these files from ZIP to JAR (I think this is a
Tomcat
4.0.1 issue that might have been resolved with newer releases).
c) set PATH, LD_LIBRARY_PATH and other environment variables before starting
Tomcat.

I hope this clarifies a couple of issues..

Thanks
Werner

Kelly Cole wrote:

> Christian,
>
> Thanks for the quick response... I am using Cocoon 2.0.2, Tomcat 4.0.1 and
> JDK 1.3.1_03.
>
> Now that I got the driver in the right place... and modified cocoon.xconf
to
> include a  logger attribute:
>                 <jdbc logger="core.datasources.TDB2" name="TDB2">
>                         <pool-controller min="1" max="10"/>
>                         <dburl>jdbc:db2:tdb2</dburl>
>                         <user>jftl206</user>
>                         <password>debbie12</password>
>                 </jdbc>
>
> I also simplified my request query to:
>         <page xmlns:sql="http://apache.org/cocoon/SQL/2.0";>
>                 <title>Hello</title>
>                 <content>
>                         <para>This is my first Cocoon2 page filled with
sql
> data!</para>
>                         <execute-query
> xmlns="http://apache.org/cocoon/SQL/2.0";>
>                                 <query>select sys_grp_no, sys_grp_name
from
> testdb2.sysgrps</query>
>                         </execute-query>
>                 </content>
>         </page>
>
> I get a bit further. I get this error message (sorry to have included so
> much, I wasn't sure what would be the interesting part):
> exception
>
> javax.servlet.ServletException: Servlet execution threw an exception
>         at
>
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
> FilterChain.java:269)
>         at
>
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
> ain.java:193)
>         at
>
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
> va:243)
>         at
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> 66)
>         at
>
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
>         at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>         at
>
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
> va:201)
>         at
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> 66)
>         at
>
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
>         at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>         at
> org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2344)
>         at
>
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164
> )
>         at
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> 66)
>         at
>
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.
> java:170)
>         at
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> 64)
>         at
>
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170
> )
>         at
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> 64)
>         at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:462)
>         at
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> 64)
>         at
>
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
>         at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>         at
>
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
> :163)
>         at
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> 66)
>         at
>
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
>         at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>         at
>
org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:
> 1011)
>         at
>
org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1106
> )
>         at java.lang.Thread.run(Thread.java:479)
>
> root cause
>
> java.lang.AbstractMethodError
>         at
>
org.apache.avalon.excalibur.datasource.JdbcConnection.prepareStatement(JdbcC
> onnection.java:172)
>         at
>
org.apache.cocoon.transformation.SQLTransformer$Query.execute(SQLTransformer
> .java:1014)
>         at
>
org.apache.cocoon.transformation.SQLTransformer.executeQuery(SQLTransformer.
> java:271)
>         at
>
org.apache.cocoon.transformation.SQLTransformer.endExecuteQueryElement(SQLTr
> ansformer.java:417)
>         at
>
org.apache.cocoon.transformation.SQLTransformer.endElement(SQLTransformer.ja
> va:702)
>         at
>
org.apache.cocoon.components.sax.XMLTeePipe.endElement(XMLTeePipe.java:124)
>         at
>
org.apache.xerces.parsers.AbstractSAXParser.endElement(AbstractSAXParser.jav
> a:568)
>         at
>
org.apache.xerces.impl.XMLNamespaceBinder.handleEndElement(XMLNamespaceBinde
> r.java:853)
>         at
>
org.apache.xerces.impl.XMLNamespaceBinder.endElement(XMLNamespaceBinder.java
> :643)
>         at
>
org.apache.xerces.impl.dtd.XMLDTDValidator.handleEndElement(XMLDTDValidator.
> java:3006)
>         at
>
org.apache.xerces.impl.dtd.XMLDTDValidator.endElement(XMLDTDValidator.java:9
> 30)
>         at
>
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.handleEndElement(XMLDo
> cumentFragmentScannerImpl.java:1145)
>         at
>
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocu
> mentFragmentScannerImpl.java:988)
>         at
>
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatc
> her.dispatch(XMLDocumentFragmentScannerImpl.java:1446)
>         at
>
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocume
> ntFragmentScannerImpl.java:333)
>         at
>
org.apache.xerces.parsers.StandardParserConfiguration.parse(StandardParserCo
> nfiguration.java:525)
>         at
>
org.apache.xerces.parsers.StandardParserConfiguration.parse(StandardParserCo
> nfiguration.java:581)
>         at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:147)
>         at
>
org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:115
> 7)
>         at
> org.apache.avalon.excalibur.xml.JaxpParser.parse(JaxpParser.java:241)
>         at
>
org.apache.cocoon.components.source.AbstractStreamSource.toSAX(AbstractStrea
> mSource.java:206)
>         at
>
org.apache.cocoon.generation.FileGenerator.generate(FileGenerator.java:142)
>         at
>
org.apache.cocoon.components.pipeline.CachingEventPipeline.process(CachingEv
> entPipeline.java:251)
>         at
>
org.apache.cocoon.components.pipeline.CachingStreamPipeline.process(CachingS
> treamPipeline.java:399)
>         at
>
org.apache.cocoon.www.sitemap_xmap.matchN109BB(C:\jakarta-tomcat-4.0.1\work\
>
localhost\cocoon\cocoon-files\org/apache/cocoon/www\sitemap_xmap.java:12044)
>         at
>
org.apache.cocoon.www.sitemap_xmap.process(C:\jakarta-tomcat-4.0.1\work\loca
> lhost\cocoon\cocoon-files\org/apache/cocoon/www\sitemap_xmap.java:3815)
>         at
>
org.apache.cocoon.www.sitemap_xmap.process(C:\jakarta-tomcat-4.0.1\work\loca
> lhost\cocoon\cocoon-files\org/apache/cocoon/www\sitemap_xmap.java:3097)
>         at org.apache.cocoon.sitemap.Handler.process(Handler.java:222)
>         at org.apache.cocoon.sitemap.Manager.invoke(Manager.java:179)
>         at
> org.apache.cocoon.sitemap.SitemapManager.process(SitemapManager.java:154)
>         at org.apache.cocoon.Cocoon.process(Cocoon.java:575)
>         at
> org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:998)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>         at
>
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
> FilterChain.java:247)
>         at
>
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
> ain.java:193)
>         at
>
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
> va:243)
>         at
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> 66)
>         at
>
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
>         at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>         at
>
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
> va:201)
>         at
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> 66)
>         at
>
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
>         at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>         at
> org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2344)
>         at
>
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164
> )
>         at
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> 66)
>         at
>
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.
> java:170)
>         at
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> 64)
>         at
>
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170
> )
>         at
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> 64)
>         at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:462)
>         at
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> 64)
>         at
>
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
>         at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>         at
>
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
> :163)
>         at
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> 66)
>         at
>
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
>         at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>         at
>
org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:
> 1011)
>         at
>
org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1106
> )
>         at java.lang.Thread.run(Thread.java:479)
>
> Here's an extract from the right hand side of the end of the sitemap.log:
> SQLTransformer: CONNECTION: TDB2
> SQLTransformer: DOC-ELEMENT: rowset
> SQLTransformer: ROW-ELEMENT: row
> SQLTransformer: NS-URI: http://apache.org/cocoon/SQL/2.0
> SQLTransformer: NS-PREFIX:
> /TraxTransformer: Using stylesheet:
>
'file:/C:/jakarta-tomcat-4.0.1/webapps/cocoon/stylesheets/simple-sql2html.xs
> l' in org.apache.cocoon.transformation.TraxTransformer@3b4b1e, last
> modified: 1021329582543
> FileGenerator: processing file dev/sql-page.xml
> FileGenerator: file resolved to
> file:/C:/jakarta-tomcat-4.0.1/webapps/cocoon/dev/sql-page.xml
> /SQLTransformer: PUBLIC ID: null
> /SQLTransformer: SYSTEM ID:
> file:/C:/jakarta-tomcat-4.0.1/webapps/cocoon/dev/sql-page.xml
> /SQLTransformer: RECEIVED CHARACTERS:
> /SQLTransformer: RECEIVED CHARACTERS: Hello
> /SQLTransformer: RECEIVED CHARACTERS:
> /SQLTransformer: RECEIVED CHARACTERS:
> /SQLTransformer: RECEIVED CHARACTERS: This is my first Cocoon2 page filled
> with sql data!
> /SQLTransformer: RECEIVED CHARACTERS:
> /SQLTransformer: RECEIVED START ELEMENT execute-query
> /SQLTransformer: RECEIVED CHARACTERS:
> /SQLTransformer: RECEIVED START ELEMENT query
> /SQLTransformer: RECEIVED CHARACTERS: select sys_grp_no, sys_grp_name from
> testdb2.sysgrps
> /SQLTransformer: RECEIVED END ELEMENT
> query(http://apache.org/cocoon/SQL/2.0)
> /SQLTransformer: QUERY IS "select sys_grp_no, sys_grp_name from
> testdb2.sysgrps"
> /SQLTransformer: RECEIVED CHARACTERS:
> /SQLTransformer: RECEIVED END ELEMENT
> execute-query(http://apache.org/cocoon/SQL/2.0)
> /SQLTransformer: SQLTransformer executing query nr 0
> /SQLTransformer$Query: EXECUTING select sys_grp_no, sys_grp_name from
> testdb2.sysgrps
>
> And finally, here's a snippet of the core.log ("with the
> [core.datasources.TDB2](/cocoon/db/test.html) HttpProcessor[8080][4]/"
> trimmed off):
> LogKitLogger: Marking 0 objects as old in pool.
> LogKitLogger: JdbcConnection object created
> LogKitLogger: Created a new
> org.apache.avalon.excalibur.datasource.JdbcConnection from the object
> factory.
> LogKitLogger: Got a org.apache.avalon.excalibur.datasource.JdbcConnection
> from the pool.
> LogKitLogger: Put a org.apache.avalon.excalibur.datasource.JdbcConnection
> back into the pool.
>
> Thanks a lot for your help, and sorry to bombard everyone with such a
large
> email!
> Kelly
>
> -----Original Message-----
> From: Christian Haul [mailto:[EMAIL PROTECTED]]
> Sent: Thursday, May 16, 2002 2:31 PM
> To: [EMAIL PROTECTED]
> Subject: Re: Connection problem to DB2
>
> On 16.May.2002 -- 12:50 PM, Kelly Cole wrote:
> > I am a new user to Cocoon, just trying to test drive it... One of the
> things
> > I would like to do is to connect to our database (db2 on os390
connecting
> > via DB2/Connect). Unfortunately, I get this entry in the sitemap.log:
>
> Things you didn't tell us:
> where is your driver located? (should be WEB-INF/lib)
>
> which versions do you use (Cocoon, JDK, Tomcat)?
> (should be 2.0.2 or (cvs) 2.0.3 or (cvs) 2.1-dev,
> 1.3.1_02, and 4.0.1, expect problems with other
> versions, solutions were posted oon this list)
>
> Try to find the portion in core.log where the
> connection pool is initialized. You need to
> associate a logger with the connection for that
> (a logger attribute like for the HSQL connection)
>
>         Chris.
>
> --
> C h r i s t i a n       H a u l
> [EMAIL PROTECTED]
>     fingerprint: 99B0 1D9D 7919 644A 4837  7D73 FEF9 6856 335A 9E08
>
> ---------------------------------------------------------------------
> Please check that your question has not already been answered in the
> FAQ before posting. <http://xml.apache.org/cocoon/faqs.html>
>
> To unsubscribe, e-mail: <[EMAIL PROTECTED]>
> For additional commands, e-mail: <[EMAIL PROTECTED]>
>
> ---------------------------------------------------------------------
> Please check that your question has not already been answered in the
> FAQ before posting. <http://xml.apache.org/cocoon/faqs.html>
>
> To unsubscribe, e-mail: <[EMAIL PROTECTED]>
> For additional commands, e-mail: <[EMAIL PROTECTED]>


---------------------------------------------------------------------
Please check that your question has not already been answered in the
FAQ before posting. <http://xml.apache.org/cocoon/faqs.html>

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



---------------------------------------------------------------------
Please check that your question has not already been answered in the
FAQ before posting. <http://xml.apache.org/cocoon/faqs.html>

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

Reply via email to