RHAPS tomcat experiences, questions
"Tim Strike" <[email protected]> Tue, 23 Mar 2004 14:15:31 -0500
| Newsgroups | gmane.linux.redhat.rhaps.beta |
|---|---|
| Message-ID | <019f01c4110b$36231dc0$6501010a@CR2423715A> |
Just thought I'd document some experiences and ask some questions regarding
RHAPS tomcat installation.
General background:
- We currently use a standalone tomcat on RHL7.3 with a vendor app: runs
flawlessly.
- We're migrating from RHL7.3 to RHEL3 in our test environment.
- We tested a standalone tomcat on RHEL3 with the vendor app: worked
flawlessly.
- We tested RHAPS tomcat beta (to reduce admin overhead): have several
integration problems & questions.
- The vendor application has three components copied to
/usr/share/tomcat/webapps: a webapp archive media.war, a media.properties
file, and a media-optional directory
1) Unable to unpack/deploy media.war
Reported this as bug 118983 -- /var/lib/tomcat is root:root, and the tomcat
process can't unpack the media.war file to webapps/media. Changing
/var/lib/tomcat to tomcat:tomcat permitted the unpacking and deployment of
the media application. Not sure if this was an oversight or security
measure (I looked through the available documentation, and couldn't find
anything relevant).
2) Unable to load/recognize additional resources (../media-optional/*)
The application is unable to process files from ../media-optional (i.e.
webapps/media-optional directory) while running in RHAPS tomcat. The webapp
uses a custom class to load the optional properties from this directory.
Permissions are set correctly. There are no logged exceptions. Is there a
different security context associated with RHAPS tomcat (aside from user
tomcat), i.e. a compiled-in Java sandbox of some type? Any other ideas? I
haven't logged this as a bug yet, since it could still be user_error<tm>.
3) Unable to connect to MS-SQL database using Microsoft type 4 JDBC driver
The application connects to a SQL database using type 4 JDBC drivers. The
Microsoft drivers (msbase.jar, msutil.jar, mssqlserver.jar) are put into
common/lib and work with the standalone tomcat. When run using the RHAPS
tomcat, they throw an exception (AbstractMethodError) when the database
connection is established. Replacing the Microsoft drivers with Inetsoft
Sprinta2000 drivers (Sprinta2000.jar) allows the RHAPS tomcat server to
connect to the SQL server. The only difference is the driver manufacturer,
and the packaging (multiple .jar vs single .jar). Does the RHAPS tomcat
class loader not handle this properly? I haven't logged this as a bug yet,
since it could still be user_error<tm>.
Other Implementation Questions
1) The vendor requests some environment settings be set before launching the
server; we've normally put these into jakarta-tomcat/bin/setenv.sh -- given
that these scripts are not supplied for RHAPS tomcat, what is the intended
replacement? I see two options: /etc/sysconfig/tomcat (sourced during the
run), or /etc/rc.d/init.d/tomcat (to start the server). Is there another
option? If we make changes to sysconfig/tomcat or /init.d/tomcat, will
those scripts be overwritten in subsequent upgrades? (setenv.sh doesn't
exist, so this isn't a problem with our current set-up)
2) We have one instance of this application that requires additional .jar
files to be loaded via the CLASSPATH (for some reason, they can't be put
into common/lib, shared/lib or server/lib). Similar question to #1;
normally we'd modify setclasspath.sh to add this .jar to the CLASSPATH.
What is the replacement under RHAPS tomcat?
3) The vendor occasionally requires java heap dumps to diagnose problems; if
their application is run within RHAPS tomcat, my understanding is there is
no longer a JVM loaded, and so sending kill -3 <pid> to get a heap dump will
no longer work (RHAPS tomcat exits: I tried just-in-case).
In general I like the fact that RH is looking to integrate tomcat, but
deploying vendor applications with RHAPS tomcat has proven to be difficult
with a steep learning curve compared to standard deployment. The native
language implementation also seems to reduce the available functionality of
the JVM (java debugging & profiling, heapdumps, etc.), and the extensibility
of Tomcat. Why the decision by RH to switch the standard Tomcat deployment
so significantly? What is the critical point someone would choose RHAPS
tomcat over standard tomcat, and under what circumstances is that not
appropriate? We were looking to improve TCO by using a RH maintained
version, but it appears more problematic than we had anticipated and/or
discovered so far (although we're still working on it)...
Cheers, Tim
--- ### ---
Last 25 lines of MS-SQL server driver errors:
java.lang.AbstractMethodError
at _ZN4java4lang11VMThrowable16fillInStackTraceEPNS0_9ThrowableE
(/lib/ssa/libgcj.so.4.0.0)
at _ZN4java4lang9Throwable16fillInStackTraceEv (/lib/ssa/libgcj.so.4.0.0)
at _ZN4java4lang9ThrowableC1EPNS0_6StringE (/lib/ssa/libgcj.so.4.0.0)
at _ZN4java4lang9ThrowableC1Ev (/lib/ssa/libgcj.so.4.0.0)
at _ZN4java4lang5ErrorC1Ev (/lib/ssa/libgcj.so.4.0.0)
at _ZN4java4lang12LinkageErrorC1Ev (/lib/ssa/libgcj.so.4.0.0)
at _ZN4java4lang28IncompatibleClassChangeErrorC1Ev
(/lib/ssa/libgcj.so.4.0.0)
at _ZN4java4lang19AbstractMethodErrorC1Ev (/lib/ssa/libgcj.so.4.0.0)
at _Z14_Jv_MakeVTablePN4java4lang5ClassE (/lib/ssa/libgcj.so.4.0.0)
at _Z16_Jv_PrepareClassPN4java4lang5ClassE (/lib/ssa/libgcj.so.4.0.0)
at _Z16_Jv_WaitForStatePN4java4lang5ClassEi (/lib/ssa/libgcj.so.4.0.0)
at _ZN4java4lang11ClassLoader10linkClass0EPNS0_5ClassE
(/lib/ssa/libgcj.so.4.0.0)
at _ZN4java4lang11ClassLoader13resolveClass0EPNS0_5ClassE
(/lib/ssa/libgcj.so.4.0.0)
at _ZN4java4lang5Class15initializeClassEv (/lib/ssa/libgcj.so.4.0.0)
at _ZN4java4lang5Class7forNameEPNS0_6StringEbPNS0_11ClassLoaderE
(/lib/ssa/libgcj.so.4.0.0)
at _ZN4java4lang5Class7forNameEPNS0_6StringE (/lib/ssa/libgcj.so.4.0.0)
at
com.microsoft.jdbc.base.BaseClassUtility.getConnection(java.lang.String)
(Unknown Source)
at _ZN16_Jv_InterpMethod9run_classEP7ffi_cifPvP7ffi_rawS2_
(/lib/ssa/libgcj.so.4.0.0)
at
com.microsoft.jdbc.base.BaseClassUtility.getConnection(com.microsoft.jdbc.ba
se.BaseDriver) (Unknown Source)
at _ZN16_Jv_InterpMethod9run_classEP7ffi_cifPvP7ffi_rawS2_
(/lib/ssa/libgcj.so.4.0.0)
at com.microsoft.jdbc.base.BaseDriver.connect(java.lang.String,
java.util.Properties) (Unknown Source)
at _ZN16_Jv_InterpMethod10run_normalEP7ffi_cifPvP7ffi_rawS2_
(/lib/ssa/libgcj.so.4.0.0)
--
rhaps-beta-list mailing list
[email protected]
http://www.redhat.com/mailman/listinfo/rhaps-beta-list