tomcat 7 ubuntu


root@ubuntu:/etc/init.d# apt-get install tomcat7*
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
 libservlet3.0-java libtomcat7-java tomcat7-common
Suggested packages:
 tomcat7-user libtcnative-1
The following packages will be upgraded:
 libservlet3.0-java libtomcat7-java tomcat7 tomcat7-common
4 upgraded, 0 newly installed, 0 to remove and 132 not upgraded.
Need to get 3,998 kB of archives.
After this operation, 1,024 B disk space will be freed.
Do you want to continue? [Y/n] y
Get:1 http://us.archive.ubuntu.com/ubuntu/ vivid-updates/main libservlet3.0-java all 7.0
.56-2ubuntu0.1 [303 kB]
Get:2 http://us.archive.ubuntu.com/ubuntu/ vivid-updates/main libtomcat7-java all 7.0.56
-2ubuntu0.1 [3,610 kB]
Get:3 http://us.archive.ubuntu.com/ubuntu/ vivid-updates/main tomcat7-common all 7.0.56-
2ubuntu0.1 [48.1 kB]
Get:4 http://us.archive.ubuntu.com/ubuntu/ vivid-updates/main tomcat7 all 7.0.56-2ubuntu
0.1 [36.8 kB]
Fetched 3,998 kB in 1min 4s (61.7 kB/s)                                                
Preconfiguring packages ...
(Reading database ... 145576 files and directories currently installed.)
Preparing to unpack .../libservlet3.0-java_7.0.56-2ubuntu0.1_all.deb ...
Unpacking libservlet3.0-java (7.0.56-2ubuntu0.1) over (7.0.56-2) ...
Preparing to unpack .../libtomcat7-java_7.0.56-2ubuntu0.1_all.deb ...
Unpacking libtomcat7-java (7.0.56-2ubuntu0.1) over (7.0.56-2) ...
Preparing to unpack .../tomcat7-common_7.0.56-2ubuntu0.1_all.deb ...
Unpacking tomcat7-common (7.0.56-2ubuntu0.1) over (7.0.56-2) ...
Preparing to unpack .../tomcat7_7.0.56-2ubuntu0.1_all.deb ...
Unpacking tomcat7 (7.0.56-2ubuntu0.1) over (7.0.56-2) ...
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for systemd (219-7ubuntu3) ...
Setting up libservlet3.0-java (7.0.56-2ubuntu0.1) ...
Setting up libtomcat7-java (7.0.56-2ubuntu0.1) ...
Setting up tomcat7-common (7.0.56-2ubuntu0.1) ...
Setting up tomcat7 (7.0.56-2ubuntu0.1) ...
root@ubuntu:/etc/init.d#

root@ubuntu:/etc/init.d# apt-get install tomcat7-docs tomcat7-examples            
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be upgraded:
 tomcat7-docs tomcat7-examples
2 upgraded, 0 newly installed, 0 to remove and 129 not upgraded.
Need to get 740 kB of archives.
After this operation, 0 B of additional disk space will be used.
Get:1 http://us.archive.ubuntu.com/ubuntu/ vivid-updates/main tomcat7-docs all 7.0.56-2u
buntu0.1 [556 kB]
Get:2 http://us.archive.ubuntu.com/ubuntu/ vivid-updates/main tomcat7-examples all 7.0.5
6-2ubuntu0.1 [184 kB]
Fetched 740 kB in 9s (76.6 kB/s)                                                       
(Reading database ... 145576 files and directories currently installed.)
Preparing to unpack .../tomcat7-docs_7.0.56-2ubuntu0.1_all.deb ...
Unpacking tomcat7-docs (7.0.56-2ubuntu0.1) over (7.0.56-2) ...
Preparing to unpack .../tomcat7-examples_7.0.56-2ubuntu0.1_all.deb ...
Unpacking tomcat7-examples (7.0.56-2ubuntu0.1) over (7.0.56-2) ...
Setting up tomcat7-docs (7.0.56-2ubuntu0.1) ...
Setting up tomcat7-examples (7.0.56-2ubuntu0.1) ...
dpkg -l | grep tomcat
ii  libtomcat7-java                               7.0.56-2ubuntu0.1                          all          Servlet and JSP engine -- core libraries
ii  tomcat7                                       7.0.56-2ubuntu0.1                          all          Servlet and JSP engine
ii  tomcat7-admin                                 7.0.56-2ubuntu0.1                          all          Servlet and JSP engine -- admin web applications
ii  tomcat7-common                                7.0.56-2ubuntu0.1                          all          Servlet and JSP engine -- common files
ii  tomcat7-docs                                  7.0.56-2ubuntu0.1                          all          Servlet and JSP engine -- documentation
ii  tomcat7-examples                              7.0.56-2ubuntu0.1                          all          Servlet and JSP engi
root@ubuntu:/etc/init.d#  apt-get install libapache2-mod-jk  

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Suggested packages:
 libapache-mod-jk-doc tomcat8
The following NEW packages will be installed:
 libapache2-mod-jk
0 upgraded, 1 newly installed, 0 to remove and 129 not upgraded.
Need to get 150 kB of archives.
After this operation, 452 kB of additional disk space will be used.
Get:1 http://us.archive.ubuntu.com/ubuntu/ vivid-updates/universe libapache2-mod-jk amd6
4 1:1.2.37-4+deb8u1build0.15.04.1 [150 kB]
Fetched 150 kB in 9s (16.5 kB/s)                                                       
Selecting previously unselected package libapache2-mod-jk.
(Reading database ... 145576 files and directories currently installed.)
Preparing to unpack .../libapache2-mod-jk_1%3a1.2.37-4+deb8u1build0.15.04.1_amd64.deb ..
.
Unpacking libapache2-mod-jk (1:1.2.37-4+deb8u1build0.15.04.1) ...
Setting up libapache2-mod-jk (1:1.2.37-4+deb8u1build0.15.04.1) ...
apache2_invoke: Enable module jk
create a webapp
root@ubuntu:/etc/init.d# cd /var/lib/tomcat7/webapps

root@ubuntu:/var/lib/tomcat7/webapps# mkdir tomcat-demo

root@ubuntu:/var/lib/tomcat7/webapps# mkdir tomcat-demo/helloworld

root@ubuntu:/var/lib/tomcat7/webapps# vim tomcat-demo/helloworld/index.jsp  
<HTML>
 <HEAD>
  <TITLE>Hello World</TITLE>
 </HEAD>
 <BODY>
  <H1>Hello World</H1>
  Today is: <%= new java.util.Date().toString() %>
 </BODY>
</HTML>


root@ubuntu:/etc/init.d# vim /etc/tomcat7/server.xml  
<Connector port="8009"protocol="AJP/1.3"redirectPort="8443"/>

root@ubuntu:/etc/init.d# vim /etc/apache2/workers.properties
# Define 1 real worker using ajp13
worker.list=worker1
# Set properties for worker (ajp13)

worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
 root@ubuntu:/usr/share/tomcat7/bin# vi /etc/apache2/mods-enabled/jk.conf

root@ubuntu:/etc/init.d# vim /etc/apache2/mods-available/jk.conf
  JkWorkersFile /etc/apache2/workers.properties
root@ubuntu:/usr/share/tomcat7/bin# vi /etc/apache2/mods-enabled/jk.load
root@ubuntu:/etc/init.d# vim /etc/apache2/mods-available/jk.load
LoadModule jk_module /usr/lib/apache2/modules/mod_jk.so

root@ubuntu:/etc/init.d# vi /etc/apache2/sites-enabled/000-default.conf

JkMount /tomcat-demo* worker1

root@ubuntu:/var/lib/tomcat7/webapps# service apache2 restart
root@ubuntu:/var/lib/tomcat7/webapps# service tomcat7 restart

vi /etc/tomcat7/tomcat-users.xml  


<role rolename="admin"/>
 <role rolename="admin-gui"/>
 <role rolename="admin-script"/>
 <role rolename="manager"/>
 <role rolename="manager-gui"/>
 <role rolename="manager-script"/>
 <role rolename="manager-jmx"/>
 <role rolename="manager-status"/>
 <user name="admin" password="admin" roles="admin,manager,admin-
gui,admin-script,manager-gui,manager-script,manager-jmx,manager-status”/>

root@ubuntu:/etc/init.d# ./tomcat7 restart  
                            
[
ok ] Restarting tomcat7 (via systemctl): tomcat7.service.



JAVA parameters

root@ubuntu:/usr/share/tomcat7/bin# vi /usr/share/tomcat7/bin/catalina.sh


root@ubuntu:/usr/share/tomcat7/bin# vi catalina.sh

export JAVA_OPTS="-Xms512m -Xmx1024m"
 export CATALINA_OPTS="-Xms512m -Xmx1024m"

root@ubuntu:/usr/share/tomcat7/bin# chmod a+x setenv.sh

setenv.sh
1
2
3
export CATALINA_OPTS="$CATALINA_OPTS -Xms512m"
export CATALINA_OPTS="$CATALINA_OPTS -Xmx8192m"
export CATALINA_OPTS="$CATALINA_OPTS -XX:MaxPermSize=256m"

root@ubuntu:/usr/share/tomcat7/bin# ./catalina.sh run
Using CATALINA_BASE:   /usr/share/tomcat7
Using CATALINA_HOME:   /usr/share/tomcat7
Using CATALINA_TMPDIR: /usr/share/tomcat7/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/share/tomcat7/bin/bootstrap.jar:/usr/share/tomcat7/bin/tomcat-juli.jar
Nov 08, 2015 5:01:34 PM org.apache.catalina.startup.ClassLoaderFactory validateFile
WARNING: Problem with directory [/usr/share/tomcat7/common/classes], exists: [false], isDirectory: [false], canRead: [false]
Nov 08, 2015 5:01:34 PM org.apache.catalina.startup.ClassLoaderFactory validateFile
WARNING: Problem with directory [/usr/share/tomcat7/common], exists: [false], isDirectory: [false], canRead: [false]
Nov 08, 2015 5:01:34 PM org.apache.catalina.startup.ClassLoaderFactory validateFile
WARNING: Problem with directory [/usr/share/tomcat7/server/classes], exists: [false], isDirectory: [false], canRead: [false]
Nov 08, 2015 5:01:34 PM org.apache.catalina.startup.ClassLoaderFactory validateFile
WARNING: Problem with directory [/usr/share/tomcat7/server], exists: [false], isDirectory: [false], canRead: [false]
Nov 08, 2015 5:01:34 PM org.apache.catalina.startup.ClassLoaderFactory validateFile
WARNING: Problem with directory [/usr/share/tomcat7/shared/classes], exists: [false], isDirectory: [false], canRead: [false]
Nov 08, 2015 5:01:34 PM org.apache.catalina.startup.ClassLoaderFactory validateFile
WARNING: Problem with directory [/usr/share/tomcat7/shared], exists: [false], isDirectory: [false], canRead: [false]
Nov 08, 2015 5:01:34 PM org.apache.catalina.startup.Catalina initDirs
SEVERE: Cannot find specified temporary folder at /usr/share/tomcat7/temp
Nov 08, 2015 5:01:34 PM org.apache.catalina.startup.Catalina load
WARNING: Unable to load server configuration from [/usr/share/tomcat7/conf/server.xml]
Nov 08, 2015 5:01:34 PM org.apache.catalina.startup.Catalina initDirs
SEVERE: Cannot find specified temporary folder at /usr/share/tomcat7/temp
Nov 08, 2015 5:01:34 PM org.apache.catalina.startup.Catalina load
WARNING: Unable to load server configuration from [/usr/share/tomcat7/conf/server.xml]
Nov 08, 2015 5:01:34 PM org.apache.catalina.startup.Catalina start
SEVERE: Cannot start server. Server instance is not configured.


root@ubuntu:/usr/share/tomcat7/bin# /etc/init.d/tomcat7 restart
[ ok ] Restarting tomcat7 (via systemctl): tomcat7.service.


root@ubuntu:/usr/share/tomcat7/bin# tail /var/log/tomcat7/localhost_access_log.2015-11-08.txt
0:0:0:0:0:0:0:1 - - [08/Nov/2015:13:39:00 +0530] "GET / HTTP/1.1" 304 -
0:0:0:0:0:0:0:1 - - [08/Nov/2015:13:39:00 +0530] "GET /favicon.ico HTTP/1.1" 404 991
0:0:0:0:0:0:0:1 - - [08/Nov/2015:13:46:51 +0530] "GET /manager/html?org.apache.catalina.filters.CSRF_NONCE=5B6F7EF172D4AA721C510241F2B89ECD HTTP/1.1" 401 2474
0:0:0:0:0:0:0:1 - admin [08/Nov/2015:13:46:53 +0530] "GET /manager/html?org.apache.catalina.filters.CSRF_NONCE=5B6F7EF172D4AA721C510241F2B89ECD HTTP/1.1" 200 17581
root@ubuntu:/usr/share/tomcat7/bin# ps aux | grep java
tomcat7    4107  1.7  5.4 9378560 219708 ?      Sl   17:01   0:05 /usr/lib/jvm/default-java/bin/java -Djava.util.logging.config.file=/var/lib/tomcat7/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Xms512m -Xmx1024m -Xms512m -Xmx1024m -Xms512m -Xmx8192m -XX:MaxPermSize=256m -Djava.endorsed.dirs=/usr/share/tomcat7/endorsed -classpath /usr/share/tomcat7/bin/bootstrap.jar:/usr/share/tomcat7/bin/tomcat-juli.jar -Dcatalina.base=/var/lib/tomcat7 -Dcatalina.home=/usr/share/tomcat7 -Djava.io.tmpdir=/tmp/tomcat7-tomcat7-tmp org.apache.catalina.startup.Bootstrap start
root       4196  0.0  0.0   9492  2276 pts/2    S+   17:06   0:00 grep --color=auto java
root@ubuntu:/usr/share/tomcat7/bin# vi /usr/share/tomcat7/bin/setenv.sh
root@ubuntu:/usr/share/tomcat7/bin#

If you may get an error java.lang.OutOfMemoryError: PermGen space in both windows or linux system,

Configure the MaxPermSize value in  setenv.sh or catalina.sh like,
1
2
export JAVA_OPTS="-Xms256m -Xmx512m -XX:MaxPermSize=128m"



set CATALINA_OPTS=%CATALINA_OPTS% -Djava.library.path=”C:\Program Files\Documentum\shared” -Xms256m -Xmx256m -XX:NewSize=64m -XX:MaxNewSize=64m -XX:SurvivorRatio=14 -verbose:gc

 -Xms Starting heap size (default is 256m)

-Xmx Maximum Heap size (default is 256m)

YoungGen

-XX:NewSize Starting NewSize memory allocation (default is 64)

-XX:MaxNewSize Maximum NewSize allocation (default is 64)

-XX:SurvivorRatio Fraction of NewSize reserved for survivor (not GC) space (default is 14)

ou just need to...

  - add -XX:PermSize and -XX:MaxPermSize to CATALINA_OPTS to configure PermGen to be 512M.

  - add -XX:NewSize and -XX:MaxNewSize to CATALINA_OPTS to configure YoungGen to be 200M.

  - restart your Tomcat instance

 java -Xms128m -Xmx2g MyApp

It is useful to know that both -Xms and -Xmx are only shortcuts which are internally mapped to -XX:InitialHeapSize and -XX:MaxHeapSize. These two XX flags may also be used directly, to the same effect:

java -XX:InitialHeapSize=128m -XX:MaxHeapSize=2g MyApp

 java -XX:PermSize=128m -XX:MaxPermSize=256m MyApp

XX:+UseCodeCacheFlushing

-XX:InitialCodeCacheSize=n Defines the initial size of the Code Cache.
-XX:ReservedCodeCacheSize=n Defines the maximum size of the Code Cache.

-XX:ReservedCodeCacheSize=32m Reserved code cache size (in bytes) - maximum code cache size. [Solaris 64-bit, amd64, and -server x86: 2048m; in 1.5.0_06 and earlier, Solaris 64-bit and and64: 1024m.]

https://developer.opentext.com/webaccess/#url=%2Fawd%2Fresources%2Farticles%2F6123%2Ftomcat%2Bconfiguration%2Bmemory%2B%2Bheap%2Band%2Bpermgen

Java Garbage Collection

In java, garbage means unreferenced objects.
Garbage Collection is process of reclaiming the runtime unused memory automatically. In other words, it is a way to destroy the unused objects.
To do so, we were using free() function in C language and delete() in C++. But, in java it is performed automatically. So, java provides better memory management.

Advantage of Garbage Collection

  • It makes java memory efficient because garbage collector removes the unreferenced objects from heap memory.
  • It is automatically done by the garbage collector(a part of JVM) so we don't need to make extra efforts.


http://jpbempel.blogspot.in/2012/11/the-usefull-jvm-options.html

GC Settings/Tuning
 For configuring GC, there is tons of options, specially for the CMS ! But at the end few are really usefull. I will not enter into fine tuning of CMS.

-XX:+UseSerialGC Activates classic monothreaded young GC
-XX:+UseParallelGC Activates multi-threaded young GC
-XX:+UseParNewGC Activates another multi-threaded young GC but required for CMS.
-XX:+UseParalelOldGCActivates multi-threaded Old GC.
-XX:+UseConcMarkSweepGCActivates Concurrent GC
-XX:+UseG1GC Activates Garbage First GC
-XX:ParallelGCThreads=n Fixes number of threads for Parallel*GC Usefull for multiple JVM on same machine to avoid GC threads disturb other JVM threads
-XX:CMSInitiatingOccupancyFraction=n Fixes fraction in percentage of the old when CMS start. Usefull when allocation rate is not very predictable.
-XX:+UseCMSInitiatingOccupancyOnly CMS only start based on the previous parameter and not on the internal heuristic.
-XX:+CMSClassUnloadingEnabled Enables to unload classes from PermGen during CMS GC. Otherwise you need to wait the FullGC.

Comments

Popular posts from this blog

ansible redhat cluster qorum qdevice

PE 3.9.0 on centos 6

gfs2 cluster