On 13/05/2010 20:55, Jeff Hubbs wrote:
> Hello -

Please start an entirely new message when posting to the list rather
than editing a reply to another email.  This is called thread-hijacking.


p

> I have a DB2-backed legacy app on a legacy platform that I'm trying to
> modernize.  My objective is to modernize the platform underneath the app
> (Gentoo Linux for now, Tomcat 6.0.26, Sun JDK 1.6.0.20) and do so in a
> way that a longtime Java/Tomcat integrator would readily recognize (I'm
> not one).  App uses Hibernate and c3p0; Hibernate is packaged in the
> app's war but c3p0 is not; I've installed c3p0 through Gentoo's usual
> package management system.  I've also brought in the jar for the proper
> version of IBM DB2 JDBC driver and its corresponding "license jar" to
> match the DB2 instance version (versioning between DB2 and JDBC driver
> are tightly coupled).
> 
> On the legacy Tomcat 5.0 / JDK 1.5 platform, the database connection
> configuration info is handled in a seemingly customized way - something
> to do with virtual hosts.  At the top of the Tomcat-instance-wide
> server.xml file is this structure:
> 
> <!DOCTYPE web-app[
> <!ENTITY vhosts SYSTEM "vhosts.xml">
>      ]>
> 
> But for now, I'm not interested in dealing with any kind of virtual host
> arrangement.  The impetus behind that was so that users can run two
> independent sessions of the app in two separate browser tabs or windows .
> 
> In the vhosts.xml file is info that looks like it ought to belong in the
> app's context.xml file.  I understand that how context sections are
> written have changed since 5.0 and I *think* I've got that worked out.
> 
> The app's original MANIFEST.MF file has this in it:
> 
>      Classpath: WEB-INF/classes/mycapp/resource
> WEB-INF/classes/myapp/resource
>       /tld WEB-INF/classes/elms/resource/hbm/MYAPP
> 
> So:  given a working platform and after deploying the app war that I've
> been given (let's call it "myapp.war"), here are the post-deploy steps
> I've worked out so far:
> 
> * Create a symlink for $CATALINA_BASE/webapps/myapp/WEB-INF/lib/c3p0.jar
> to where the package manager has put c3p0.jar
> 
> * Create symlinks for db2jcc.jar and db2jcc_license_cu.jar in
> $CATALINA_BASE/webapps/myapp/WEB-INF/lib to where I've put them under
> /usr/src
> 
> * Generate a new $CATALINA_BASE/webapps/myapp/META-INF/context.xml (see
> below) and symlink $CATALINA_BASE/conf/Catalina/localhost/myapp.xml to it
> 
> * Add the following to $CATALINA_BASE/webapps/myapp/WEB-INF/web.xml,
> before the closing "</web-app>":
> 
> <resource-ref>
> <description>DB connection pool for MYAPP</description>
> <res-ref-name>jdbc/myappqa</res-ref-name>
> <res-type>com.mchange.v2.c3p0.ComboPooledDataSource</res-type>
> <res-auth>Container</res-auth>
> </resource-ref>
> 
> I've created a context.xml that looks like:
> 
>    <Context docBase="${catalina.home}/webapps/myapp" path=""
>    reloadable="false">
>    <Resource name="jdbc/myappqa"
>             description = "MYAPP connection pool"
>             auth="Container"
>             type="com.mchange.v2.c3p0.ComboPooledDataSource"
>             username="myappuser"
>             password="myapppassword"
>             driverClass="com.ibm.db2.jcc.DB2Driver"
>             url="jdbc:db2://mydb2server:50000/TESTDATA"
>             factory="org.apache.naming.factory.BeanFactory"
>             minPoolSize="15"
>             .
>             . <scissors of brevity applied - more parameters set>
>             .
>             />
>    </Context>
> 
> 
> I've been able to browse to the app and get a login page, but things
> explode at login attempt, i.e., first attempt to access the data source.
> 
> Question 1:  For this to work, do I need to add "WEB-INF/lib" to the
> "Classpath:" list?  There are about 80 jar files (including log4j,
> ftpbean, Hibernate) in there aside from the symlinks I've added for the
> c3p0, JDBC driver, and license jar files.
> 
> Question 2:  In my context.xml, is that one parameter supposed to be
> "driverClass" or "driverClassName"?  I've seen both used seemingly for
> the same purpose.
> 
> Question 3:  Some customization has been done involving
> hibernate.properties which I don't think is necessarily causing a
> problem (its "meat" has been replaced by a reference to another file
> much like server.xml), but in there I've noticed this:
> 
>    <property name="hibernate.connection.pool_size">15</property>
> 
> As I understand it, setting this parameter activates Hibernate's own
> connection pooler and further that Hibernate's own connection pooler is
> not supposed to be used in any capacity other than learning and
> testing.  Does having this setting be in here mean that this app was
> built (intentionally or not - likely not) to use Hibernate's connection
> pooler and c3p0 end-to-end?
> 
> Thanks in advance for your opinions/assistance.
> 
> 


Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to