Tomcat stops responding and fails to shutdown - mysql

for the last four days i am facing a problem on my production server where Tomcat stops responding, and when i try to shut it down via shutdow.sh tomcat process stays alive. i will have to kill the process and start it again.
the below stack is logged directly before tomcat crashes and stops responding. i did lots of research but couldn't solve the problem just yet.
any help is appreciated
there are two SEVERE web application errors
Jun 9, 2012 4:50:08 PM org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc
SEVERE: The web application [/beta] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
Jun 9, 2012 4:50:08 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
SEVERE: The web application [/beta] appears to have started a thread named [MultiThreadedHttpConnectionManager cleanup] but has failed to stop it. This is very likely to create a memory leak.
and one MySQL error
INFO: Illegal access: this web application instance has been stopped already. Could not load com.mysql.jdbc.SQLError. The eventual following stack trace is caused by an error thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact.
java.lang.IllegalStateException
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1587)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1546)
at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3358)
at com.mysql.jdbc.MysqlIO.quit(MysqlIO.java:1695)
at com.mysql.jdbc.ConnectionImpl.realClose(ConnectionImpl.java:4388)
at com.mysql.jdbc.ConnectionImpl.cleanup(ConnectionImpl.java:1368)
at com.mysql.jdbc.ConnectionImpl.finalize(ConnectionImpl.java:2737)
at java.lang.ref.Finalizer.invokeFinalizeMethod(Native Method)
at java.lang.ref.Finalizer.runFinalizer(Finalizer.java:83)
at java.lang.ref.Finalizer.access$100(Finalizer.java:14)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:160)
full stack below
INFO: Destroying Spring FrameworkServlet 'springMvcServlet'
Jun 9, 2012 4:50:08 PM org.apache.catalina.core.ApplicationContext log
INFO: Closing Spring root WebApplicationContext
Jun 9, 2012 4:50:08 PM org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc
SEVERE: The web application [/beta] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
Jun 9, 2012 4:50:08 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
SEVERE: The web application [/beta] appears to have started a thread named [MultiThreadedHttpConnectionManager cleanup] but has failed to stop it. This is very likely to create a memory leak.
Jun 9, 2012 4:50:09 PM org.apache.catalina.loader.WebappClassLoader validateJarFile
INFO: validateJarFile(/home/bratecp/public_html/beta/WEB-INF/lib/ImageEditor.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
Jun 9, 2012 4:50:09 PM org.apache.catalina.loader.WebappClassLoader validateJarFile
INFO: validateJarFile(/home/bratecp/public_html/beta/WEB-INF/lib/gwt-user.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
Jun 9, 2012 4:50:09 PM org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring root WebApplicationContext
Jun 9, 2012 4:50:11 PM org.apache.catalina.loader.WebappClassLoader loadClass
INFO: Illegal access: this web application instance has been stopped already. Could not load com.mysql.jdbc.SQLError. The eventual following stack trace is caused by an error thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact.
java.lang.IllegalStateException
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1587)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1546)
at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3358)
at com.mysql.jdbc.MysqlIO.quit(MysqlIO.java:1695)
at com.mysql.jdbc.ConnectionImpl.realClose(ConnectionImpl.java:4388)
at com.mysql.jdbc.ConnectionImpl.cleanup(ConnectionImpl.java:1368)
at com.mysql.jdbc.ConnectionImpl.finalize(ConnectionImpl.java:2737)
at java.lang.ref.Finalizer.invokeFinalizeMethod(Native Method)
at java.lang.ref.Finalizer.runFinalizer(Finalizer.java:83)
at java.lang.ref.Finalizer.access$100(Finalizer.java:14)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:160)
Jun 9, 2012 4:58:44 PM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/local/jdk1.6.0_29/jre/lib/amd64/server:/usr/local/jdk1.6.0_29/jre/lib/amd64:/usr/local/jdk1.6.0_29/jre/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
Jun 9, 2012 4:58:44 PM org.apache.catalina.startup.SetAllPropertiesRule begin
WARNING: [SetAllPropertiesRule]{Server/Service/Connector} Setting property 'compression' to 'on' did not find a matching property.
Jun 9, 2012 4:58:44 PM org.apache.catalina.startup.SetAllPropertiesRule begin
WARNING: [SetAllPropertiesRule]{Server/Service/Connector} Setting property 'compressionMinSize' to '2048' did not find a matching property.
Jun 9, 2012 4:58:44 PM org.apache.catalina.startup.SetAllPropertiesRule begin
WARNING: [SetAllPropertiesRule]{Server/Service/Connector} Setting property 'noCompressionUserAgents' to 'gozilla, traviata' did not find a matching property.
Jun 9, 2012 4:58:44 PM org.apache.catalina.startup.SetAllPropertiesRule begin
WARNING: [SetAllPropertiesRule]{Server/Service/Connector} Setting property 'compressableMimeType' to 'text/xml,text/plain,application/json,application/javascript,text/css' did not find a matching property.
Jun 9, 2012 4:58:44 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'debug' to '1' did not find a matching property.
Jun 9, 2012 4:58:44 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'debug' to '0' did not find a matching property.
Jun 9, 2012 4:58:44 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'debug' to '1' did not find a matching property.
Jun 9, 2012 4:58:45 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
Jun 9, 2012 4:58:45 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
Jun 9, 2012 4:58:45 PM org.apache.catalina.startup.Catalina load

There are at least two problems occurring simultaneously:
You are registering a JDBC driver that is being loaded from within your webapp's WEB-INF/lib directory and failing to deregister the driver when your webapp shuts down. You can deregister a JDBC driver easily using java.sql.DriverManager.deregisterDriver() from a ServletContextListener.
You (likely) have a non-daemon thread outliving your webapp. The only way to determine what is going on here is to take a thread dump to find out which thread is still alive (after you run shutdown.sh and wait maybe 5 seconds for everything to settle down) and where it may have come from. Basically, anywhere you start a thread in your webapp needs to have a symmetrical stop-thread when your webapp shuts down. Remember that certain operations start threads without you realizing it (for instance, creating a TimerTask, performing certain AWT-related operations, etc.).
You probably want to fix both of these problems to improve the stability of your application server.
In your stack trace above, it's a Connection finalizer that is trying to "really" close the connection to the database. I wonder if you aren't properly shutting-down your Connection objects (or a connection pool) before your webapp shuts down, and so the Connection finalizers are running after they can actually accomplish their goals (after the ClassLoader is dead).

Related

Upgrading logback from 1.2 to 1.3 stops logging

If I use any 1.3.x or 1.4.x logback-classic version, my application stops logging.
The logback.xml file maybe isn't even loaded (if I insert invalid xml or delete it, I get no errors).
It works fine with logback 1.2.11.
I'm using gradle automatic dependency resolution so I shouldn't have messed them.
This works:
logback-classic-1.2.11.jar + logback-core-1.2.11.jar + slf4j-api-1.7.32.jar
This doesn't work:
logback-classic-1.3.3.jar + logback-core-1.3.3.jar + slf4j-api-2.0.1.jar
java 8 on windows 10 in Eclipse 2022-09 (4.25.0)
My classpath:
activation-1.1.jar
annotations-13.0.jar
antlr-2.7.7.jar
attoparser-2.0.5.RELEASE.jar
byte-buddy-1.10.22.jar
checker-compat-qual-2.5.5.jar
checkout-sdk-1.0.5.jar
classmate-1.5.1.jar
commons-beanutils-1.9.4.jar
commons-codec-1.11.jar
commons-collections-3.2.2.jar
commons-configuration2-2.8.0.jar
commons-exec-1.3.jar
commons-fileupload-1.3.3.jar
commons-io-2.11.0.jar
commons-jxpath-1.3.jar
commons-lang3-3.12.0.jar
commons-logging-1.2.jar
commons-text-1.9.jar
concurrentlinkedhashmap-lru-1.4.2.jar
error_prone_annotations-2.5.1.jar
failureaccess-1.0.1.jar
FastInfoset-1.2.15.jar
flyway-core-5.0.5.jar
google-api-client-1.32.1.jar
google-api-client-jackson2-1.32.1.jar
google-http-client-1.39.2.jar
google-http-client-apache-v2-1.39.2.jar
google-http-client-gson-1.39.2.jar
google-oauth-client-1.31.5.jar
grpc-context-1.27.2.jar
gson-2.8.6.jar
guava-30.1.1-android.jar
hamcrest-core-1.3.jar
hibernate-commons-annotations-5.1.2.Final.jar
hibernate-core-5.5.0.Final.jar
hibernate-entitymanager-5.5.0.Final.jar
hibernate-validator-5.4.2.Final.jar
httpclient-4.5.13.jar
httpcore-4.4.14.jar
istack-commons-runtime-3.0.7.jar
j2objc-annotations-1.3.jar
jackson-annotations-2.12.7.jar
jackson-core-2.12.7.jar
jackson-databind-2.12.7.jar
jandex-2.2.3.Final.jar
javassist-3.27.0-GA.jar
javax.activation-api-1.2.0.jar
javax.inject-1.jar
javax.mail-1.6.2.jar
javax.persistence-api-2.2.jar
jaxb-api-2.3.1.jar
jaxb-runtime-2.3.1.jar
jboss-logging-3.4.2.Final.jar
jboss-transaction-api_1.2_spec-1.1.1.Final.jar
jsoup-1.9.2.jar
jsr305-3.0.2.jar
junit-4.13.2.jar
kotlin-stdlib-1.5.0.jar
kotlin-stdlib-common-1.5.0.jar
kotlin-stdlib-jdk7-1.5.0.jar
kotlin-stdlib-jdk8-1.5.0.jar
listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar
logback-classic-1.3.3.jar
logback-core-1.3.3.jar
metadata-extractor-2.16.0.jar
mysql-connector-java-8.0.25.jar
mysql-connector-java-8.0.30.jar
opencensus-api-0.28.0.jar
opencensus-contrib-http-util-0.28.0.jar
paypalhttp-1.0.3.jar
protobuf-java-3.11.4.jar
protobuf-java-3.19.4.jar
selenium-api-3.8.1.jar
selenium-chrome-driver-3.8.1.jar
selenium-firefox-driver-3.8.1.jar
selenium-remote-driver-3.8.1.jar
selenium-support-3.8.1.jar
slf4j-api-2.0.1.jar
spring-aop-5.3.18.jar
spring-beans-5.3.18.jar
spring-context-5.3.18.jar
spring-context-support-5.3.18.jar
spring-core-5.3.18.jar
spring-expression-5.3.18.jar
spring-jcl-5.3.18.jar
spring-jdbc-5.3.18.jar
spring-orm-5.3.18.jar
spring-security-config-5.5.0.jar
spring-security-core-5.5.0.jar
spring-security-crypto-5.5.0.jar
spring-security-web-5.5.0.jar
spring-social-config-1.1.4.RELEASE.jar
spring-social-core-1.1.4.RELEASE.jar
spring-social-facebook-2.0.3.RELEASE.jar
spring-social-web-1.1.4.RELEASE.jar
spring-tx-5.3.18.jar
spring-web-5.3.18.jar
spring-webmvc-5.3.18.jar
stax-ex-1.8.jar
thymeleaf-3.0.15.RELEASE.jar
thymeleaf-extras-springsecurity5-3.0.4.RELEASE.jar
thymeleaf-spring5-3.0.15.RELEASE.jar
tomcat-annotations-api-8.5.82.jar
tomcat-embed-core-8.5.82.jar
tomcat-servlet-api-8.0.48.jar
tomcat-servlet-api-8.5.82.jar
txw2-2.3.1.jar
unbescape-1.1.6.RELEASE.jar
validation-api-1.1.0.Final.jar
vibur-dbcp-25.0.jar
vibur-object-pool-25.0.jar
xmpcore-6.1.11.jar
EDIT:
These few lines in build.gradle make the difference between working and not working:
implementation('ch.qos.logback:logback-classic') {
version {
strictly '1.2.11'
}
}
EDIT:
This is the console output. None of it is logged by me. The "!!!!!" line is printed with System.out.println() as suggested and is black, all the rest is red:
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
nov 16, 2022 7:05:18 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-nio-8080"]
nov 16, 2022 7:05:18 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-nio-0.0.0.0-8009"]
nov 16, 2022 7:05:18 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["https-jsse-nio-8443"]
nov 16, 2022 7:05:19 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service [Tomcat]
nov 16, 2022 7:05:19 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet engine: [Apache Tomcat/8.5.83]
nov 16, 2022 7:05:19 PM org.apache.catalina.startup.ContextConfig getDefaultWebXmlFragment
INFO: No global web.xml found
nov 16, 2022 7:05:24 PM org.apache.catalina.core.ApplicationContext log
INFO: 2 Spring WebApplicationInitializers detected on classpath
nov 16, 2022 7:05:24 PM org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring root WebApplicationContext
SLF4J: Failed to load class "org.slf4j.impl.StaticMDCBinder".
SLF4J: Defaulting to no-operation MDCAdapter implementation.
SLF4J: See http://www.slf4j.org/codes.html#no_static_mdc_binder for further details.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
nov 16, 2022 7:05:35 PM org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring DispatcherServlet 'dispatcher'
nov 16, 2022 7:05:36 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-nio-8080"]
nov 16, 2022 7:05:36 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-nio-0.0.0.0-8009"]
nov 16, 2022 7:05:36 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["https-jsse-nio-8443"]
TLDR: Eclipse was adding slf4j-api-1.7.25 to the classpath because thymeleaf-3.0.15.RELEASE depended on it, ignoring the forced upgrade to slf4j-api-2.0.1.jar required by logback-classic:1.3.3. Fixed by updating to thymeleaf-3.1.0.RELEASE
There must be some bug in the Gradle dependency resolution used by Eclipse because the dependency of thymeleaf-3.0.15.RELEASE from slf4j-api-1.7.25 was not "totally" upgraded to slf4j-api-2.0.1.jar contrary to what is shown both by the Eclipse "Project and External Dependencies" tree and the manual gradle dependencyInsight command:
org.slf4j:slf4j-api:1.7.25 -> 2.0.1
+--- org.thymeleaf:thymeleaf:3.0.15.RELEASE
| \--- org.thymeleaf:thymeleaf-spring5:3.0.15.RELEASE
| \--- compileClasspath
In reality slf4j-api-1.7.25.jar was still used together with slf4j-api-2.0.1.jar but was visible only on the command line that you can get from the Eclipse "Run Configurations" > "Show Command Line" button.
This failure to upgrade a dependency doesn't always happen. In my case I had a ProjectMain depending on a ProjectLib and while both used thymeleaf-3.0.15.RELEASE just the former had a dependency on logback-classic:1.3.3 that was upgrading slf4j-api-1.7.25.jar to slf4j-api-2.0.1.jar.
EDIT:
Forcing the use of slf4j-api-2.0.1.jar on the main project doesn't prevent Eclipse from adding the old jar on the command line if the lib project still depends on it:
implementation('org.slf4j:slf4j-api') {
version {
strictly '2.0.1'
}
}
My two cents: are you using nested appenders in your configuration? If yes, this construct is not supported anymore since Logback 1.3 and your appenders may simply not be initialized. See LOGBACK-1674 for more information.

IBM APIC starting loopback

I am new to API Connect, and I have installed npm, node and apic in my local MacBook. Now I have created a loopback directory and trying to run the loopback application using apic Start. However, I am not understanding the error received from the logs:
MacBook-Pro-2:socialreviews Work$ apic start
Error: Service socialreviews started but did not initialize within the timeout period. Dumping log buffer.
[Tue Apr 30 12:02:42 2019] com.ibm.diagnostics.healthcenter.loader INFO: Node Application Metrics 3.1.3.201810251210 (Agent Core 3.2.6)
[Tue Apr 30 12:02:42 2019] com.ibm.diagnostics.healthcenter.mqtt INFO: Connecting to broker localhost:1883
strong-supervisor attaching dashboard at /appmetrics-dash
2019-04-30T09:02:42.694Z pid:44844 worker:0 INFO supervisor starting (pid 44844)
2019-04-30T09:02:42.697Z pid:44844 worker:0 INFO supervisor reporting metrics to internal:
2019-04-30T09:02:42.709Z pid:44844 worker:0 INFO supervisor size set to undefined
2019-04-30T09:02:42.905Z pid:44848 worker:1 [Tue Apr 30 12:02:42 2019] com.ibm.diagnostics.healthcenter.loader INFO: Node Application Metrics 3.1.3.201810251210 (Agent Core 3.2.6)
2019-04-30T09:02:42.959Z pid:44848 worker:1 [Tue Apr 30 12:02:42 2019] com.ibm.diagnostics.healthcenter.mqtt INFO: Connecting to broker localhost:1883
2019-04-30T09:02:42.995Z pid:44848 worker:1 strong-supervisor attaching dashboard at /appmetrics-dash
2019-04-30T09:02:45.017Z pid:44848 worker:1 Web server listening at: http://0.0.0.0:4004
2019-04-30T09:24:29.148Z pid:44844 worker:0 WARN received SIGTERM, shutting down
2019-04-30T09:24:29.148Z pid:44844 worker:0 INFO supervisor size set to undefined
2019-04-30T09:24:29.148Z pid:44844 worker:0 INFO supervisor stopped
Can someone help me with this issue please?
This issue is solved, however I am not 100% sure what was the exact issue. What I have done is ran apic edit command then when clicking on start it suddenly asked me to install docker. I have done so, then I started to have readable errors of some packages not installed. So I used npm commands to install them and my issue is fixed now! :)

How to deploy a single HTML file on Tomcat 6

I have an HTML file named "testUrBuddy.html". I want to run this file on my local host. I have a Tomcat 6 server installed. When I run the server I get these logs:
Jul 31, 2014 5:40:21 PM org.apache.catalina.core.AprLifecycleListener init INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jdk1.7.0_55\bin; ...
Jul 31, 2014 5:40:22 PM org.apache.coyote.http11.Http11Protocol init INFO: Initializing Coyote HTTP/1.1 on http-8080 Jul 31, 2014 5:40:22 PM org.apache.catalina.startup.Catalina load INFO: Initialization processed in 600 ms
Jul 31, 2014 5:40:22 PM org.apache.catalina.core.StandardService start INFO: Starting service Catalina
Jul 31, 2014 5:40:22 PM org.apache.catalina.core.StandardEngine start INFO: Starting Servlet Engine: Apache Tomcat/6.0.37
Jul 31, 2014 5:40:22 PM org.apache.coyote.http11.Http11Protocol start INFO: Starting Coyote HTTP/1.1 on http-8080
Jul 31, 2014 5:40:22 PM org.apache.jk.common.ChannelSocket init INFO: JK: ajp13 listening on /0.0.0.0:8009
Jul 31, 2014 5:40:22 PM org.apache.jk.server.JkMain start INFO: Jk running ID=0 time=1/16 config=null Jul 31, 2014 5:40:22 PM org.apache.catalina.startup.Catalina start INFO: Server startup in 390 ms
This means my server is running. I put my testUrBuddy.html file in the webapps\ROOT folder. After running the server, when I type http://localhost:8080/testUrBuddy.html on the URL I am getting this error :
HTTP Status 404 - /testUrBuddy.html description The requested resource is not available.
Do i have change something in web.xml or somewhere else?.
You need to add the file into a web project. The project needs at least a WEB-INF folder including a web.xml file. If you are using Eclipse, do this:
Click "New"
Select "Other"
Select "Dynamic Web Project"
Follow the instructions and mark the checkbox "create deployment descriptor" (web.xml).
Put the HTML file into the "webapps" folder.
Export it as a war file.

Insert JSP data into MS Access database?

I keep getting different errors while trying to insert data retrieved from a html page using JSP into a table in my MS Access database. Everyone time I try to fix or change my code I get a different error. the current error is:
(ps. i'm using apache tomcat. my database is called "tico" and "Contacts" is the name of the table. the field names in MS access are "Job Code:" and "TICo's Client:"). If anyone can help, it would be much appreciated. thanks. :)
-------------------------------------------------------------------------
enter code here
HTTP Status 500 - An exception occurred processing JSP page /TICo Website/onejsp.jsp at line 21
type Exception report
message An exception occurred processing JSP page /TICo Website/onejsp.jsp at line 21
description The server encountered an internal error that prevented it from fulfilling this request.``
exception
org.apache.jasper.JasperException: An exception occurred processing JSP page /TICo Website/onejsp.jsp at line 21
18: url = "jdbc:odbc:tico"
19: />
20:
21: <sql:update var="tico" scope="request" dataSource ="${tico}">
22: INSERT INTO Contacts
23: ([Job Code:], [TICo's Client:])
24: VALUES (?, ?)
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException
(JspServletWrapper.java:521)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:412)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
root cause
javax.servlet.ServletException: javax.servlet.jsp.JspException: Unable to get
connection,
DataSource invalid: "java.sql.SQLException: [Microsoft]
[ODBC Driver Manager]
Data source name not found and no default driver specified"
org.apache.jasper.runtime.PageContextImpl.doHandlePageException
(PageContextImpl.java:865)
org.apache.jasper.runtime.PageContextImpl.handlePageException
(PageContextImpl.java:794)
org.apache.jsp.TICo_0020Website.onejsp_jsp._jspService(onejsp_jsp.java:215)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
root cause
javax.servlet.jsp.JspException: Unable to get connection, DataSource invalid:
"java.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name
not found and no default driver specified"
org.apache.taglibs.standard.tag.common.sql.UpdateTagSupport.
getConnection(UpdateTagSupport. java:243)
org.apache.taglibs.standard.tag.common.sql.UpdateTagSupport.doStartTag
(UpdateTagSupport.jav a:124)
org.apache.jsp.TICo_0020Website.onejsp_jsp._jspx_meth_sql_005fupdate_005f0
(onejsp_jsp.java: 264)
org.apache.jsp.TICo_0020Website.onejsp_jsp._jspService(onejsp_jsp.java:80)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
note The full stack trace of the root cause is available in the Apache
Tomcat/6.0.37 logs.
Apache Tomcat/6.0.37
----------------------------------------------------------------------------------
full stack trace
-------------------------------------------------------------------------------
enter code hereJun 25, 2013 9:54:33 AM
org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance
in production environments was not found on the java.library.path: C:\Program
Files\Apache Software Foundation\Tomcat 6.0\bin;C:\Windows\Sun\Java\bin;C:
\Windows \system32;C:\Windows;C:\Windows\system32;C:\Windows;C:\Windows\System32
\Wbem;C:\Windows \System32\WindowsPowerShell\v1.0\;;.
Jun 25, 2013 9:54:33 AM org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
Jun 25, 2013 9:54:33 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 438 ms
Jun 25, 2013 9:54:33 AM org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
Jun 25, 2013 9:54:33 AM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.37
Jun 25, 2013 9:54:33 AM org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deploying configuration descriptor manager.xml
Jun 25, 2013 9:54:33 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory docs
Jun 25, 2013 9:54:33 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory ROOT
Jun 25, 2013 9:54:34 AM org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
Jun 25, 2013 9:54:34 AM org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
Jun 25, 2013 9:54:34 AM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/15 config=null
Jun 25, 2013 9:54:34 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 800 ms
Jun 25, 2013 10:03:14 AM org.apache.coyote.http11.Http11Protocol pause
INFO: Pausing Coyote HTTP/1.1 on http-8080
Jun 25, 2013 10:03:15 AM org.apache.catalina.core.StandardService stop
INFO: Stopping service Catalina
Jun 25, 2013 10:03:15 AM org.apache.coyote.http11.Http11Protocol destroy
INFO: Stopping Coyote HTTP/1.1 on http-8080
Jun 25, 2013 10:03:21 AM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance
in production environments was not found on the java.library.path: C:\Program
Files\Apache Software Foundation\Tomcat 6.0\bin;C:\Windows\Sun\Java\bin;C:\Windows
\system32;C:\Windows;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:
\Windows \System32\WindowsPowerShell\v1.0\;;.
Jun 25, 2013 10:03:21 AM org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
Jun 25, 2013 10:03:21 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 348 ms
Jun 25, 2013 10:03:21 AM org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
Jun 25, 2013 10:03:21 AM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.37
Jun 25, 2013 10:03:21 AM org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deploying configuration descriptor manager.xml
Jun 25, 2013 10:03:21 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory docs
Jun 25, 2013 10:03:21 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory ROOT
Jun 25, 2013 10:03:22 AM org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
Jun 25, 2013 10:03:22 AM org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
Jun 25, 2013 10:03:22 AM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/15 config=null
Jun 25, 2013 10:03:22 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 495 ms`
JSP Page
<%#page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<%# taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<%# taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
<html>
<head>
<title>Using GET and POST Method to Read Form Data</title>
</head>
<body>
<sql:setDataSource
var = "tico"
scope = "session"
driver = "sun.jdbc.odbc.JdbcOdbcDriver"
url = "jdbc:odbc:tico"
/>
<sql:update var="tico" scope="request" dataSource ="${tico}">
INSERT INTO Contacts
(Job Code:, TICo's Client:)
VALUES (?, ?)
<sql:param value = "${param.jobcode}" />
<sql:param value = "${param.ticosclient}" />
</sql:update>
<center>
<h1>Using GET Method to Read Form Data</h1>
<div style="position:absolute; top:20px; width:100%; height:80px;">
<ul>
<table align='center' style="width: 1000px; height: 81px;" border="0" cellpadding="0"
cellspacing="0" align="center">
<col width="33">
<col width="33">
<col width="33">
<col width="33"></br></br></br>
<tr><td>
<li><p><b>Job Code:</b>
<%= request.getParameter("jobcode")%>
</p></li>
</td></tr>
<tr><td>
<li><p><b>TICo's Client:</b>
<%= request.getParameter("ticosclient")%>
</p></li>
</td></tr>
</body>
</html>
Certainly one thing you'll need to fix is your SQL command text.
INSERT INTO Contacts
(Job Code:, TICo's Client:)
VALUES (?, ?)
will have to be changed to
INSERT INTO Contacts
([Job Code:], [TICo's Client:])
VALUES (?, ?)
By the way, you may want to double-check that there really are colon (:) characters in the field names. That's quite normal for labels on a form, but it's rather unusual for them to be included in the actual field names.
Edit
The "Data source name not found and no default driver specified" error suggests that the JSP process is running in the 64-bit environment and the 64-bit version of the Access Database Engine (a.k.a. "ACE") has not been installed on the server. To correct that, download and install the 64-bit version of the Access Database Engine from here, then create a 64-bit System DSN for the database (via the normal Windows Control Panel applet, not SYSWOW64).

what happened when set jruby min runtime?

I am now struggle on Jruby on Rails. We did not config the min/max jruby runtime before, the portal works well.
In these days, i found that set these config will improve our portal's performance, so I decide to config it in this way:
config.webxml.jruby.min.runtimes = 2
config.webxml.jruby.max.runtimes = 4
However, we portal can not boot up after i setting this, the log continue throw the java class can not found error:
INFO: Info: received max runtimes = 4
Dec 19, 2012 1:57:18 PM org.apache.catalina.core.ApplicationContext log
INFO: Info: received min runtimes = 2
Dec 19, 2012 1:57:18 PM org.apache.catalina.core.ApplicationContext log
INFO: Info: received max runtimes = 4
Dec 19, 2012 1:57:18 PM org.apache.catalina.core.ApplicationContext log
INFO: An exception happened during JRuby-Rack startup
cannot link Java class com.portal.util.selector.SelectorUtil, probable missing dependency: Could not initialize class com.portal.util.selector.SelectorUtil
--- System
jruby 1.6.1 (ruby-1.8.7-p330) (2011-04-12 85838f6) (Java HotSpot(TM) 64-Bit Server VM 1.6.0_35) [linux-amd64-java]
Time: Wed Dec 19 13:57:18 +0000 2012
Server: Apache Tomcat/6.0.35
jruby.home: file:/var/tomcat/webapps/ROOT/WEB-INF/lib/jruby-stdlib-1.6.1.jar!/META-INF/jruby.home
What is the difference when we set this min/max jruby runtime? Anyone can get me out of this?
Thanks in advance.
jruby thread safe comparison
in config/warbler.rb
config.webxml.jruby.min.runtimes = 1
config.webxml.jruby.max.runtimes = 1
and in config/environments/production.rb
config.threadsafe!