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.
>
>
signature.asc
Description: OpenPGP digital signature
