Java: Różnice pomiędzy wersjami

(Serwer Tomcat)
Linia 18: Linia 18:
 
  mkdir -p /usr/home/''login''/tomcat/{conf,logs,temp}
 
  mkdir -p /usr/home/''login''/tomcat/{conf,logs,temp}
 
  cp -r /usr/local/apache-tomcat-8.0/conf/* /usr/home/''login''/tomcat/conf/
 
  cp -r /usr/local/apache-tomcat-8.0/conf/* /usr/home/''login''/tomcat/conf/
Później w pliku konfiguracyjnym serwera Tomcat <code class="directory">/usr/home/''login''/tomcat/conf/server.xml</code> należy zmienić pogrubione numery portów na numery wcześniej zarezerwowanych portów. Dwa pierwsze numery mają być takie same.
+
Później w pliku konfiguracyjnym serwera Tomcat <code class="directory">/usr/home/''login''/tomcat/conf/server.xml</code> należy zmienić numery portów (poprzedzone <code>port=</code>) na numery wcześniej zarezerwowanych portów. Dwa pierwsze numery muszą być takie same.
  <Connector port="'''8080'''" protocol="HTTP/1.1"
+
<syntaxhighlight lang="xml">
 +
<Connector port="8080" protocol="HTTP/1.1"
 +
          connectionTimeout="20000"
 +
          redirectPort="8443" />
 +
</syntaxhighlight><syntaxhighlight lang="xml">
 +
  <Connector executor="tomcatThreadPool"
 +
          port="8080" protocol="HTTP/1.1"
 +
          connectionTimeout="20000"
 +
          redirectPort="8443" />
  
<Connector executor="tomcatThreadPool"
+
</syntaxhighlight><syntaxhighlight lang="xml">
port="'''8080'''" protocol="HTTP/1.1"
+
  <Server port="8005" shutdown="SHUTDOWN">
 
+
</syntaxhighlight>
  <Server port="'''8005'''" shutdown="SHUTDOWN">  
 
 
Resztę konfiguracji serwera Tomcat należy ustawić samodzielnie. Po zmianie niezbędnych ustawień trzeba wyeksportować zmienną środowiskową <code>export CATALINA_BASE="/home/login/tomcat/"</code>. Serwer Tomcat w zależności od wybranej wersji należy uruchomić poleceniem:
 
Resztę konfiguracji serwera Tomcat należy ustawić samodzielnie. Po zmianie niezbędnych ustawień trzeba wyeksportować zmienną środowiskową <code>export CATALINA_BASE="/home/login/tomcat/"</code>. Serwer Tomcat w zależności od wybranej wersji należy uruchomić poleceniem:
 
  /usr/local/apache-tomcat-8.0/bin/startup.sh
 
  /usr/local/apache-tomcat-8.0/bin/startup.sh
Linia 31: Linia 38:
 
Aby ograniczyć wykorzystanie RAMu przez Tomcat należy utworzyć plik <code class="directory">setenv.sh</code> w <code class="direcotry">/usr/home/''login''/tomcat/conf/</code>, a w nim sprecyzować CATALINA_OPTS, na przykład:
 
Aby ograniczyć wykorzystanie RAMu przez Tomcat należy utworzyć plik <code class="directory">setenv.sh</code> w <code class="direcotry">/usr/home/''login''/tomcat/conf/</code>, a w nim sprecyzować CATALINA_OPTS, na przykład:
 
  CATALINA_OPTS='-Xms512m -Xmx1024m'
 
  CATALINA_OPTS='-Xms512m -Xmx1024m'
 +
 +
==== Wiele instancji ====
 +
 +
''Tomcat'' obsługuje serwowanie wielu aplikacji webowych na jednym serwerze. Aby dodać nową należy zarezerwować dodatkowy port TCP oraz trzeba dopisać do pliku <code class="directory">/usr/home/''login''/tomcat/conf/server.xml</code> konfigurację nowej strony:
 +
<syntaxhighlight lang="xml">
 +
<Service name="webapp">
 +
  <Connector port="35160" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/>
 +
  <Engine name="Catalina" defaultHost="localhost">
 +
  <Host name="localhost"  appBase="webapp2" unpackWARs="true" autoDeploy="true">
 +
    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
 +
          prefix="webapp2_access_log" suffix=".txt"
 +
          pattern="%h %l %u %t &quot;%r&quot; %s %b" />
 +
    </Host>
 +
  </Engine>
 +
</Service>
 +
</syntaxhighlight>
  
 
=== Serwer GlassFish  ===
 
=== Serwer GlassFish  ===

Wersja z 10:54, 30 lis 2015

Na serwerach MyDevil Java jest dostępna w wersjach OpenJDK: 1.8 (domyślnej) oraz 1.7.

Zmiana wersji Javy

Aby zmienić wersję Javy na 1.7 należy edytować zmienną export JAVA_VERSION="1.7". Można skorzystać z własnej wersji Java (również z wersji 32 bitowej) ściągniętej bezpośrednio z repozytoriów FreeBSD i uruchomionej na swoim koncie.

Pamięć RAM

Aby ograniczyć pamięć RAM dostępną procesowi java należy go uruchomić z opcją -Xms<pamiec> -Xmx<pamiec>, gdzie <pamiec> to ilość pamięci, na przykład 1g, 128m, 1024k.

Dodatkowo można użyć -XX:PermSize <pamięc> -XX:MaxPermSize <pamiec> aby ustawić Permanent Generation - miejsce, gdzie są przetrzymywane pliki klas, które są wynikiem skompilowanych klas i stron jsp. W momencie osiągnięcia maksimum miejsca wirtualna maszyna java uruchamia Full Garbage Collection. Gdy Full Garbage Collection po wyczyszczeniu starych starych klas bez referencji nadal nie będzie miejsca na nowo wygenerowane wtedy maszyna wirtualna javy wyłączy się z błędem Out-of-Memory Error (OOME). Parametr -XX:MaxPermSize <pamiec> nie jest już dostępny w Javie w wersji 8.

Istnieje również możliwość z korzystania z parametru -Xss <pamiec> w celu ustawienia rozmiaru stosu dla każdego wątku javy. W takim stosie są trzymane adresy do pamięci zwracnych przez funkcję obiektów, argumenty do funkcji itp.

Serwer Tomcat

Należy zarezerwować 2 porty TCP. Następnie trzeba utworzyć katalogi serwera oraz skopiować pliki konfiguracyjne w zależności od wybranej wersji serwera (dostępne wersje: 6.0, 7.0, 8.0)

mkdir -p /usr/home/login/tomcat/{conf,logs,temp}
cp -r /usr/local/apache-tomcat-8.0/conf/* /usr/home/login/tomcat/conf/

Później w pliku konfiguracyjnym serwera Tomcat /usr/home/login/tomcat/conf/server.xml należy zmienić numery portów (poprzedzone port=) na numery wcześniej zarezerwowanych portów. Dwa pierwsze numery muszą być takie same.

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />
<Connector executor="tomcatThreadPool" 
          port="8080" protocol="HTTP/1.1"
          connectionTimeout="20000"
redirectPort="8443" />
<Server port="8005" shutdown="SHUTDOWN">

Resztę konfiguracji serwera Tomcat należy ustawić samodzielnie. Po zmianie niezbędnych ustawień trzeba wyeksportować zmienną środowiskową export CATALINA_BASE="/home/login/tomcat/". Serwer Tomcat w zależności od wybranej wersji należy uruchomić poleceniem:

/usr/local/apache-tomcat-8.0/bin/startup.sh

Aby serwer był dostępny na porcie 80 należy utworzyć domenę typu proxy z adresem docelowym localhost i portem docelowym takim samym jaki został wpisany w Connector port.

Aby ograniczyć wykorzystanie RAMu przez Tomcat należy utworzyć plik setenv.sh w /usr/home/login/tomcat/conf/, a w nim sprecyzować CATALINA_OPTS, na przykład:

CATALINA_OPTS='-Xms512m -Xmx1024m'

Wiele instancji

Tomcat obsługuje serwowanie wielu aplikacji webowych na jednym serwerze. Aby dodać nową należy zarezerwować dodatkowy port TCP oraz trzeba dopisać do pliku /usr/home/login/tomcat/conf/server.xml konfigurację nowej strony:

<Service name="webapp">
  <Connector port="35160" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/>
  <Engine name="Catalina" defaultHost="localhost">
  <Host name="localhost"  appBase="webapp2" unpackWARs="true" autoDeploy="true">
    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
          prefix="webapp2_access_log" suffix=".txt"
          pattern="%h %l %u %t &quot;%r&quot; %s %b" />
    </Host>
  </Engine>
</Service>

Serwer GlassFish

Należy zarezerwować 6 portów TCP oraz włączyć binexec. Następnie trzeba skopiować bazowy katalog serwera GlassFish cp -r /usr/local/glassfish-4.1 /usr/home/login/ W pliku konfiguracyjnym domeny GlassFish /usr/home/login/glassfish-4.1/glassfish/domains/domain1/config/domain.xml trzeba przestawić pogrubione fragmenty ustawiając numery zarezerwowanych portów.

<network-listener port="8080" protocol="http-listener-1" transport="tcp" name="http-listener-1" thread-pool="http-thread-pool"></network-listener>
<network-listener port="8181" protocol="http-listener-2" transport="tcp" name="http-listener-2" thread-pool="http-thread-pool"></network-listener>
<network-listener port="4848" protocol="admin-listener" transport="tcp" name="admin-listener" thread-pool="admin-thread-pool"></network-listener>
<system-property name="JMS_PROVIDER_PORT" value="27676" description="Port Number that JMS Service will listen for remote clients connection." />
<iiop-listener port="3700" id="orb-listener-1" address="0.0.0.0" lazy-init="true"></iiop-listener>
<jmx-connector port="8686" address="0.0.0.0" security-enabled="false" auth-realm-name="admin-realm" name="system"></jmx-connector>

Resztę konfiguracji domeny GlassFish należy ustawić samodzielnie. Serwer GlassFish należy uruchomić poleceniem:

/usr/home/login/glassfish-4.1/bin/asadmin start-domain 

Aby serwer był dostępny na porcie 80 należy utworzyć domenę typu proxy z adresem docelowym localhost i portem docelowym takim samym jaki został wpisany w http-listener-1.