Thursday, March 29, 2018

To avoid password prompt when using startComponent.sh to start OHS

When we start OHS, it prompts for a password of nodemanager as :

$./startComponent.sh ohs1

Starting System Component ohs1 ...
Initializing WebLogic Scripting Tool (WLST) ...
Welcome to WebLogic Server Administration Scripting Shell
Type help() for help on available commands
Reading domain from /opt/ows/Oracle/Middleware/OHS_Home/user_projects/domains/base_domain
Please enter your password :


You can avoid password every time you launch the server with startComponent.sh/.cmd by starting it with the storeUserConfig option for the first time. Do the following:

$DOMAIN_HOME/bin/startComponent.sh componentName storeUserConfig

Please enter your password :


Type the password of nodemanager and press Enter. The system responds with this message:

"Creating a key file can reduce the security of your system if it is not a secured location after it is created. Do you want to create the key file? y or n."

Type y to store your Node manager password.

It creates hidden files in the users home directory after the above steps.
These files contain domain infomation.

for example

.wlst/nm-key-base_domain.props
.wlst/nm-cfg-base_domain.props

Wednesday, March 28, 2018

To exclude double slash from website url hosted in OHS

For redirecting the HTTP site to HTTPS, we do following changes to httpd.conf file,

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://abc.com/$1 [R,L]
    RewriteCond %{REQUEST_METHOD} ^OPTIONS
    RewriteRule .* . [F]
</IfModule>


This setting can cause double slash in the end of the website url.

To exclude the double slash, write "/" in place of "(.*)" as shown below,

 <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{HTTPS} off
    RewriteRule / https://abc.com/$1 [R,L]
    RewriteCond %{REQUEST_METHOD} ^OPTIONS
    RewriteRule .* . [F]
</IfModule>

Script to restart managed server in WebLogic

In this document, we will set a crontab to restart our managed server.
We will follow below steps :

1. Create a python script to stop the server.
2. Now create python script to start server.
3. Now create a shell script to run these python scripts.
4. Now create a script to run in crontab.
5. Now schedule the crontab as required. 

1. Create a python script to stop the server as,

$mkdir -p /u01/oracle/scripts
$vim stopappsrvr.py

connect('weblogic','','t3://<WebLogic Admin Server IP>:<AdminPort')

exitonerror=false
print "** Starting App Server **"
shutdown('AppServer', 'Server', force="true")
exit()
:wq

2. Now create python script to start server as,


$vim startappsrvr.py

connect('weblogic','','t3://
<WebLogic Admin Server IP>:<AdminPort')
print "** Starting App Server **"
start(name="AppServer", block="true")

exit()

3. Now create a shell script to run these python scripts as,

$vim rst.sh

#App server is going to stop
echo `date`
export FMW_HOME=/u01/app/oracle/Middleware/Oracle_Home

$FMW_HOME/oracle_common/common/bin/./wlst.sh /u01/app/oracle/scripts/stopappsrvr.py
echo `date`
sleep 300
echo `date`
$FMW_HOME/oracle_common/common/bin/./wlst.sh /u01/app/oracle/scripts/startappsrvr.py
echo `date`

:wq

4. Now create a script to run in crontab as,
$vim restartsrvr.sh

. /u01/app/rst.sh > restart_$(date +"%Y_%m_%d_%I_%M_%p").log

:wq



5. Now schedule the crontab as required,

$crontab -e
#to run at midnight daily
0        0       *       *       *       /u01/app/./restartserver.sh

#to run at 1 PM daily
0        14        *        *        *   /u01/app/./restartserver.sh

Ping request with time stamp in Linux

Sometimes for troubleshooting purpose, we need timestamp with ping results.
 
Normal ping result
$ping www.google.com
 
Reply from 216.58.196.196: bytes=32 time=4ms TTL=57
Reply from 216.58.196.196: bytes=32 time=8ms TTL=57
Reply from 216.58.196.196: bytes=32 time=6ms TTL=57
Reply from 216.58.196.196: bytes=32 time=5ms TTL=57
Reply from 216.58.196.196: bytes=32 time=4ms TTL=57
Reply from 216.58.196.196: bytes=32 time=5ms TTL=57
Reply from 216.58.196.196: bytes=32 time=1089ms TTL=57
Reply from 216.58.196.196: bytes=32 time=5ms TTL=57
Reply from 216.58.196.196: bytes=32 time=195ms TTL=57


Ping Result with time stamp

$ping www.google.com | while read pong; do echo "$(date): $pong"; done

Tue Mar 27 13:00:00 IST 2018: 64 bytes from 216.58.196.196: icmp_seq=24707 ttl=62 time=0.377 ms
Tue Mar 27 13:00:01 IST 2018: 64 bytes from 216.58.196.196: icmp_seq=24708 ttl=62 time=0.428 ms
Tue Mar 27 13:00:02 IST 2018: 64 bytes from 216.58.196.196: icmp_seq=24709 ttl=62 time=0.380 ms
Tue Mar 27 13:00:03 IST 2018: 64 bytes from 216.58.196.196: icmp_seq=24710 ttl=62 time=0.408 ms
Tue Mar 27 13:00:04 IST 2018: 64 bytes from 216.58.196.196: icmp_seq=24711 ttl=62 time=0.549 ms
Tue Mar 27 13:00:05 IST 2018: 64 bytes from 216.58.196.196: icmp_seq=24712 ttl=62 time=0.382 ms
Q. What is Java?
Ans : Java is a programming language and computing platform.Java can be used to create complete applications that may run on a single computer or be distributed among servers and clients in a network. It can also be used to build a small application module or applet for use as part of a webpage.

Q. What are Java Servlets?
Ans : A servlet is a java program that executes on the server, accepting client requests and generating dynamic responses. Servlets do not just create HTML. Theses cal also be used to generate other MIME types, such as images.

Q. What is JSP (Java Server Pages)?
Ans : JSP are HTML documents that are interwoven with Java. JSP provides dynamic responses that is based on client request. JSP's are portable(write once, run everywhere). JSP's compile and run as servlets.

Q. What are EJBs (Enterprise Java Beans)? 
Ans :  EJBs are distributed components written in the java programming language.
EJBs provide distributable and deployable business services(Logic)to clients.
EJBs are reusable accross application servers.
EJBs execute within a container that provides management and control services.

Q. What is JDBC (Java Database Connectivity )?
Ans : Java Database Connectivity (JDBC) is an application programming interface (API) for the programming language Java, which defines how a client may access a database.
It is the standard java interface for accessing heterogeneous databases.

Q. What is JNDI (Java Naming and Directory Interface)?
Ans : JNDI is a Java API for a directory service that allows Java software clients to discover and look up data and objects via a name.It is an Java API for accessing naming and directory services.It built as a layer over DNS,LDAP and so on.

Q. What is JTA (Java Transaction API)?
Ans : JTA is a standard JAVA API that enables distributed transactions to be done across multiple X/Open XA resources in a Java environment.Java Transaction API (JTA) specifies standard Java interfaces between a transaction manager and the parties involved in a distributed transaction system: the resource manager, the application server, and the transactional applications.


Q. What is JMS (Java Messaging Service)?
Ans :  The Java Message Service is a Java API that allows applications to create, send, receive, and read messages.The JMS API defines a common set of interfaces and associated semantics that allow programs written in the Java programming language to communicate with other messaging implementations.The JMS API minimizes the set of concepts a programmer must learn in order to use messaging products but provides enough features to support sophisticated messaging applications.

Q. WHat is JAAS (Java Authentication & Autherization)?
Ans :  It is  a java based security management framework that supports single sign-on and a pluggable authentication Module(PAM).

Q. What is JMX (Java Management Extension)?
Ans : It defines a standard infrastructure to manage a device from java programs.MBEANS are the building blocks of JMX.

Q. What is JCA (Java Connector Architecture)?
Ans : JCA connects Enterprise Info. System(EIS) with resource adapters and resource adapters can be deployed in a Resource Adapter Archive(RAR).

Q. What is Client Application ?
Ans : The client application interacts with WLS through JRMP/T3, IIOP and jCOM.
The types of clients include :
a) Standalone java applications.
b) Applets within a browser.

Q. What is Web Client?
Ans : A web client interacts with oracle WLS via HTTP using servlets and JSPs.
The types of web clients includes :
a) Browser
b) Web Service(SOAP over HTTP)

Q. What is Proxy Server?
Ans : It forwards the requests to other machines. It can also be used to load balance a system.

Q. What is T3 protocol in WebLogic?
Ans :  T3 is an optimized protocol used to transport data between WLS and other java programs including clients and other WLS servers. WLS server keeps track of every JVM with which it connects and creates a single T3 connection to carry all traffic for a JVM.
T3 and T3s are proprietary protocols that are analogous to the industry standard HTTP or HTTPS protocols.