Skip to content

Infrastructure and ancillary services

ferng edited this page Jun 8, 2020 · 22 revisions

JBOSS

Install

#as fern
cd ~/bin
cp ~/jboss-as-7.1.1.Final.tar.gz .
tar -zxvf jboss-as-7.1.1.Final.tar.gz
rm jboss-as-7.1.1.Final.tar.gz
  • create admin user
cd /home/fern/bin/jboss-as-7.1.1.Final/bin
./add-user.sh
# a) Management Us er (mgmt-users.properties)
# Realm (ManagementRealm)
# Username : admin
# Password : password
  • commands
cd /home/fern/bin/jboss-as-7.1.1.Final/bin
./jboss-cli.sh --connect command=:shutdown

Install Eclipse plug in

  • In eclipse: Help | Install New Software
  • Work with: http://download.jboss.org/jbosstools/updates/webtools/juno/
  • Select JBossAS Tools which should install:
    • JBoss Archives Tools
    • JBossAS Tools Server / Compression Integration
    • JBossAS Tools Server / JMX Integration
    • JBossAS Tools Server / Remote Systems Integration
    • JMX Console

Add JBoss server to Eclipse

  • New server
  • Server type: JBoss AS 7.1
  • Home directory: /home/fern/bin/jboss-as-7.1.1.Final
  • JRE: whatever you want

Tomcat

Install

sudo groupadd tomcat
sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
cd ~
wget http://mirrors.ukfast.co.uk/sites/ftp.apache.org/tomcat/tomcat-8/v8.0.30/bin/apache-tomcat-8.0.30.tar.gz

sudo mkdir /opt/tomcat
sudo tar xvf apache-tomcat-8*tar.gz -C /opt/tomcat --strip-components=1
cd /opt/tomcat
sudo chgrp -R tomcat conf
sudo chmod g+rwx conf
sudo chmod g+r conf/*
sudo chown -R tomcat webapps temp logs work conf
sudo chmod -R 777 webapps work temp logs conf

vi ~/.profile
CATALINA_HOME=/opt/tomcat
export CATALINA_HOME

Configure Users

cd $CATALINA_HOME/conf
vi tomcat-users.xml
#inside <tomcat-users>

<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="admin" password="password" roles="manager-gui"/>
<user username="antadmin" password="password" roles="manager-script"/>

Demon

sudo vi /etc/init/tomcat.conf
		
description "Tomcat Server"

  start on runlevel [2345]
  stop on runlevel [!2345]
  respawn
  respawn limit 10 5
./robo3t 
  setuid tomcat
  setgid tomcat

  env JAVA_HOME=/usr/lib/jvm/java-8-oracle/
  env CATALINA_HOME=/opt/tomcat

  # Modify these options as needed
  env JAVA_OPTS="-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom -Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n"
  env CATALINA_OPTS="-Xms512M -Xmx1024M -server -XX:+UseParallelGC"

Start / Stop

sudo exec $CATALINA_HOME/bin/catalina.sh run

# cleanup temp directory after stop
post-stop script
rm -rf $CATALINA_HOME/temp/*
end script
		
sudo initctl reload-configuration
sudo initctl start tomcat

sudo service tomcat stop
sudo service tomcat start

Additional vagrant config

config.vm.network "forwarded_port", guest: 8080, host: 8888
config.vm.network "forwarded_port", guest: 2376, host: 2376
config.vm.network "forwarded_port", guest: 8787, host: 8787

# if deploying to local windows instance
config.vm.synced_folder "webapps/", "/opt/tomcat/webapps"
on host crate folder vagrant/webapps

Configure SSL

#Create certificates
keytool -genkeypair -alias servercert -keyalg RSA -dname "CN=Server,OU=IT,O=My Bank,L=London,S=London,C=UK" -keypass letmein -keystore server_keystore.jks -storepass letmein
keytool -genkeypair -alias clientcert -keyalg RSA -dname "CN=Client,OU=Upstairs,O=TheCrunchyCorner,L=London,S=London,C=UK" -keypass letmein -keystore client_keystore.jks -storepass letmein

keytool -exportcert -alias servercert -file serverPublic.cer -keystore server_keystore.jks -storepass letmein
keytool -importcert -alias servercert -file serverPublic.cer -keystore client_cacerts.jks -storepass letmein

keytool -exportcert -alias clientcert -file clientPublic.cer -keystore client_keystore.jks -storepass letmein
keytool -importcert -alias clientcert -file clientPublic.cer -keystore server_cacerts.jks -storepass letmein

rm *cer

keytool -list -v -keystore server_keystore.jks -storepass letmein
keytool -list -v -keystore server_cacerts.jks -storepass letmein
keytool -list -v -keystore client_keystore.jks -storepass letmein
keytool -list -v -keystore client_cacerts.jks -storepass letmein

#copy cert to conf directory
cd ~/bin/apache-tomcat-7.0.40/conf
cp ~/prog/java/peacockint/test/keystore.jks .
cp ~/prog/java/peacockint/test/cacerts.jks .

#configure new https listener
vi server.xml
    <Connector port="8444" protocol="HT TP/1.1" SSLEnabled="true"
              maxThreads="150" scheme="https" secure="true"
              clientAuth="true" sslProtocol="TLS"
              keystoreFile="conf/keystore.jks"
              keystorePass="letmein"  
              truststoreFile="conf/cacerts.jks"
              truststorePass="letmein" />
              
#enable ssl debug
cd ~/bin/apache-tomcat-7.0.40/bin
vi setenv.sh 
JAVA_OPTS="$JAVA_OPTS -Dlog4j.debug=true -Djavax.net.debug=ssl"

Add TomCat server to Eclipse

  • New server
  • Server type: Tomcat v7.0 Server
  • Home directory: /home/fern/bin/apache-tomcat-7.0.40
  • JRE: whatever you want

Migrate Tomcat to JBoss

  • Eclipse: New Dynamic web project:
    • Project name: dataaccess
    • Location: /home/fern/prog/java/dataaccess
  • Select "Generate web.xml deployment descriptor"
  • Then back on the shell on the project's root:
cd /home/fern/prog/java/dataaccess
cp -r /home/fern/dgedit/javaDev/Spring\ Recipes\ 2nd\ Ed/dataaccess/src/main/java/com src
cp -r /home/fern/dgedit/javaDev/Spring\ Recipes\ 2nd\ Ed/dataaccess/src/main/resources/log4j.properties src
cp -r /home/fern/dgedit/javaDev/Spring\ Recipes\ 2nd\ Ed/dataaccess/src/main/webapp/WEB-INF WebContent
cp -r /home/fern/dgedit/javaDev/Spring\ Recipes\ 2nd\ Ed/dataaccess/src/main/resources/*properties WebContent

#non web projects
cp -r /home/fern/dgedit/javaDev/Spring\ Recipes\ 2nd\ Ed/dataaccess/src/main/resources/*xml src
cp -r /home/fern/dgedit/javaDev/Spring\ Recipes\ 2nd\ Ed/dataaccess/src/main/resources/*sql src

cp -r /home/fern/dgedit/javaDev/Spring\ Recipes\ 2nd\ Ed/dataaccess/src/main/resources/META-INF/*xml src
cp <library>.jar WebContent/WEB-INF/lib

Mongo

Install

sudo systemctl start mongod
# run this if the above fails and try again
sudo systemctl daemon-reload
sudo systemctl status mongod
sudo systemctl stop mongod

Mongo shell

mongo
show dbs
use main
db.getCollection('users').find({})

RoboT3

cd /usr/local/bin
sudo mv robo3t-1.3.1-linux-x86_64-7419c406.tar.gz /usr/local/bin
cd /usr/local/bin
sudo tar -xvzf robo3t-1.3.1-linux-x86_64-7419c406.tar.gz
sudo mv robo3t-1.3.1-linux-x86_64-7419c406 robomonogo
cd robomongo/bin
./robo3t
/usr/local/bin/robomongo/bin/robo3t

HSQLDB

Enough of a DB for dev without killing the environment

Installing HSQLDB

cd ~/Downloads
unzip hsqldb-2.3.0.zip
mv hsqldb-2.3.0 ~/dgedit/

#copy into the project:
cp hsqldb/lib/hsqldb.jar /home/fern/prog/java/moniPoop/WebContent/WEB-INF/lib/

#unix environment variables:
testDataDir=/home/fern/data/
export testDataDir

#windows environment variables:
testData=C:\Users\gonzalezf\Documents\admin

SQL tool

vi /home/fern/sqltool.rc

urlid peacock
url jdbc:hsqldb:hsql://localhost:9005/peacock
username MR_PEACOCK_APP
password MR_PEACOCK_APP
driver org.hsqldb.jdbc.JDBCDriver

java -jar c:\Users\Fernando\Documents\bin\hsqldb-2.3.1\hsqldb\lib\sqltool.jar --rcfile c:\Users\Fernando\Documents\sqltool.rc peacock

ActiveMq

Installation

#check it's ok
gpg --import KEYS
gpg --verify apache-activemq-5.8.0-bin.tar.gz.asc

#install it
cd ~/Downloads
tar -zxvf apache-activemq-5.8.0-bin.tar.gz 
mv apache-activemq-5.8.0 ~/bin
cd ~/bin/apache-activemq-5.8.0

Configure

#reduce kahaDb storage requirements
vi conf/activemq.xml
#comment 100Gb storageUsage

        <systemUsage>
            <systemUsage>
                <memoryUsage>
                    <memoryUsage limit="10 mb"/>
                </memoryUsage>
                <storeUsage>
                    <storeUsage limit="20 mb"/>
                </storeUsage>
                <tempUsage>
                    <tempUsage limit="40 mb"/>
                </tempUsage>
            </systemUsage>
        </systemUsage>

#statistics module needed for unit / integration testing in broker
<plugins>
  <statisticsBrokerPlugin/>
</plugins>

#then start it all up
bin/activemq start
logon: admin/admin

Postman

Installation

cd /usr/local/bin
sudo mv ~/Downloads/Postman-linux-x64-7.25.0.tar.gz .
sudo tar -xvzf Postman-linux-x64-7.25.0.tar.gz
cd Postman
./Postman
/usr/local/bin/Postman/Postman

The Grinder

Installation

#install it
cd bin
cp ~/Downloads/grinder-3.11-binary.zip .
unzip grinder-3.11-binary.zip
rm grinder-3.11-binary.zip

#environment
vi ~/.profile
CLASSPATH=/home/fern/bin/grinder-3.11/lib/grinder.jar
export CLASSPATH

cd ~/prog/java/peacockmybank/test/com/thecrunchycorner/peacockmybank/grinder
cp /home/fern/bin/grinder-3.11/examples/grinder.properties .
vi grinder.properties

Run it

#admin console
java net.grinder.Console

#no admin console
java -classpath lib/grinder.jar net.grinder.Console -headless
java net.grinder.Console -headless

#agents
java net.grinder.Grinder

#display console config
curl http://localhost:6373/version

#list connected agents
curl http://localhost:6373/agents/status

#start worker process in agent
curl -H "Content-Type: application/json" -X POST http://localhost:6373/agents/start-workers 

#reset worker process in agent
curl -H "Content-Type: application/json" -X POST http://localhost:6373/agents/stop-workers

Fuse

Redeploy Integration

fabric:container-stop defaultIntegration1
fabric:container-remove-profile defaultIntegration1 fusebox-application.enquiry
fabric:container-start defaultIntegration1
fabric:container-stop defaultIntegration1
fabric:container-add-profile  defaultIntegration1 fusebox-application.enquiry
fabric:container-start defaultIntegration1

Management

osgi:shutdown

Weblogic

Management

C:\base_domain\startWebLogic.cmd
C:\base_domain\bin\startNodeManager.cmd
C:\base_domain\bin\stopNodeManager.cmd
C:\base_domain\bin\stopWebLogic.cmd

Debugging

Add this to the server start arguments

-Dweblogic.debug.DebugHttp=true
-Dweblogic.debug.DebugHttpLogging=true
-DDebugURLResolution=true
-Dweblogic.debug.DebugWebAppModule=true
-Dcom.sun.xml.ws.transport.http.HttpAdapter.dump=true
-Dcom.sun.xml.ws.transport.http.client.HttpTransportPipe.dump=true
-Dweblogic.debug.DebugHttpSessions=true
-Dweblogic.debug.DebugReplication=true
-Xdebug
-Xnoagent
-Xrunjdwp:transport=dt_socket,address=8498,server=y,suspend=n

Coherence

Setup and configure cross cluster domain cache

  • Environment > Coherence Clusters > New >

  • Name : clusterNameCoherence

    • Next >
    • Clustering Mode: Unicast
    • Cluster Listen Port: 7574
  • Next >

    • In the Clusters Section tick: clusterName
  • Finish

  • Environment > Coherence Clusters > esubLogCoherence > Configuration > Cache Configuratios > New >

    • Name:
  • Environment > Clusters > esublog > Coherence

    • Local Storage Enabled :untick

JVM arguments:

start up arguments:

-Xmx512m -Dweblogic.debug.DebugHttp=true -Dweblogic.debug.DebugHttpLogging=true -DDebugURLResolution=true -Dweblogic.debug.DebugWebAppModule=true -Dcom.sun.xml.ws.transport.http.HttpAdapter.dump=true -Dcom.sun.xml.ws.transport.http.client.HttpTransportPipe.dump=true -Dweblogic.debug.DebugHttpSessions=true -Dweblogic.debug.DebugReplication=true -Dtangosol.coherence.session.localstorage=true

Now for coding:

  • push coherence to maven so it can be built
mvn install:install-file -Dfile=coherence.jar -DgeneratePom=true -DgroupId=weblogic.com.oracle -DartifactId=coherence -Dversion=12.2.1.2.0 -Dpackaging=jar
mvn deploy:deploy-file -Dfile=coherence.jar -DgeneratePom=true -DrepositoryId=nexus -DgroupId=weblogic.com.oracle -DartifactId=coherence -Dversion=12.2.1.2.0 -Dpackaging=jar

Clone this wiki locally