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.

Wednesday, January 31, 2018

Some useful shortcut commands for windows

1: lusrmgr.msc-------to see user and computer

2: compmgmt.msc------to see computer management

3: devmgmt.msc-------to see devices and driver

4: ncpa.cpl----------to see local area connection

5: appwiz.cpl--------to see control pannel

6: control-----------to see control pannel

7: sysdm.cpl---------to see my computer properties

8: dnsmgmt.msc-------to see DNS configuration.

9: dsa.msc-----------to see Active Directory User and Computer.

10: intcpl.cpl-------to see internet properties.

11: cleanmgr---------to clean c drive from unwanted junk files.

12: taskmgr.msc------to open task manager

13: eventvwr.msc----to see event viewer

14: regedit.msc-----to check registry info.

15: gpedit.msc------to configure Group oplicy on local PC

16: services.msc----to check services information.

17: secpol.msc------to check local security and policy.

18: msconfig--------to check startup running application.

19: osk-------------ON SCREEN KEYBOARD

Tuesday, December 5, 2017

Configure ssmtp to use gmail SMTP relay on CentOS

1. Install ssmtp rpm as,

#yum install ssmtp

2. Now edit ssmtp.conf file as,

#vim /etc/ssmtp/ssmtp.conf

root=XXX@gmail.com
mailhub=smtp.gmail.com:465
AuthUser=XXXX@gmail.com
AuthPass=<Password of gmail account>
FromLineOverride=YES
UseTLS=YES
TLS_CA_File=/etc/pki/tls/certs/ca-bundle.crt

3. After this, make ssmtp default mta as,

#alternatives --config mta

it will ask to choose mta, here select the ssmtp and enter.


4. Now send the mail as,

#mail -s "SUBJECT" xxxxx@abc.com


Wednesday, November 8, 2017

javax.net.ssl.SSLKeyException in Node Manager status

Problem : Could not start node manager

Problem Explanation : I have changed my machine(It got currupted) and use the existing HDD partition to again run the machine. All was right but node manager was not running.

Error : javax.net.ssl.SSLKeyException

Solution : This issue has two solutions as,

A. Disable the hostname verification
B. Recreate the certificates

A. Disable the hostname verification ,

1. In the Admin console for your domain, go to Environment -> Servers -> AdminServer.
2. Click on the SSL tab.
3. Expand the “Advanced” section at the bottom.
4. Set Hostname Verification to None.
5. Save and activate the changes.



B. Recreate the certificates ,

1. First of all set the WLS enviornment varibales using,

$MIDDLEWARE_HOME/wlserver_10.3/server/bin/.setWLSEnv.sh

2. Backup the Demoidentity.jks keystore located in,

$MIDDLEWARE_HOME/wlserver_10.3/server/lib/DemoIdentity.jks

3. Generate the private key of the keystore using the following command:

java utils.CertGen -cn hostname -keyfilepass DemoIdentityPassPhrase -certfile newcert -keyfile newkey

Note : Here I got error "utils.CertGen not found"
Solution : For this we have need to set CLASSPATH manually as,

$export CLASSPATH=$CLASSPATH:/stage/oracle/middleware/wlserver_10.3/server/lib/weblogic.jar

After this run the above command again.

4. Import the generated key in the Demoidentity.jks using the following command:

java utils.ImportPrivateKey -keystore DemoIdentity.jks -storepass DemoIdentityKeyStorePassPhrase -keyfile newkey.pem -keyfilepass DemoIdentityPassPhrase -certfile newcert.pem -alias demoidentity.

5. Now restart the WebLogic Server.

Wednesday, November 1, 2017

To increase the heap size of a Managed server

1. Open Admin console, go to server-->server name-->Configuration-->server start.
2. Here in Arguments section, write the desired heap size as,

-Xms512m -Xmx512m

Tuesday, October 31, 2017

BEA-090087 - Server failed to bind to the configured Admin port. The port may already be used by another process.


BEA-090087 - Server failed to bind to the configured Admin port. The port may already be used by another process.

 Reason 1 : This error occured when we try to start managed server on other physical machine with node manager.


Solution : We have to create new node manager that points to other physical machine.

Procedure :

1. Go to Enviournment-->Machines.
2. Here click on New button, then give the name for the machine and select the type of the machine and then Next.
3.Here give the listen address and listen port of the node manager and click on Finish.

Reason 2 : This error occurred when we try to start two nodemanager on one physical machine. e.g. one for weblogic and second for OHS.

Solution

Just change the port of one nodemanager.

java.lang.OutOfMemoryError: PermGen space

Error : java.lang.OutOfMemoryError: PermGen space

Solution : Have to increase PermSize of weblogic server

Procedure :

Weblogic Version : 10.3.6

1. go to $DOMAIN_HOME/bin

2. Here edit the file setDomainEnv.sh.

$vim setDomainEnv.sh

3. Here change the value of min and max PerSize as,

241 MEM_PERM_SIZE_64BIT="-XX:PermSize=512m"
242 export MEM_PERM_SIZE_64BIT
243
244 MEM_PERM_SIZE_32BIT="-XX:PermSize=48m"
245 export MEM_PERM_SIZE_32BIT
246
247 if [ "${JAVA_USE_64BIT}" = "true" ] ; then
248         MEM_PERM_SIZE="${MEM_PERM_SIZE_64BIT}"
249         export MEM_PERM_SIZE
250 else
251         MEM_PERM_SIZE="${MEM_PERM_SIZE_32BIT}"
252         export MEM_PERM_SIZE
253 fi
254
255 MEM_MAX_PERM_SIZE_64BIT="-XX:MaxPermSize=1024m"
256 export MEM_MAX_PERM_SIZE_64BIT
257
258 MEM_MAX_PERM_SIZE_32BIT="-XX:MaxPermSize=128m"


Line no. 241 for Min. PermSize and Line no. 255 for Max. PerSize.

Sunday, April 16, 2017

To change the Mode of Weblogic server from Developer to Production

To change all the servers of a domain to run in production mode :

 1. Go to weblogic console.
 2. Select the desired domain.
 3. On Configuration tab, go to General.
 4. Here check the option "Enable production Mode"
 5. Now click on save.
 6. Now restart the servers.


 

Wednesday, March 8, 2017

Cloning of SOA server 11.1.1.4.0 in HP-UX system

The following commands are applicable for the supported cloning process:

-  MW_HOME/oracle_common/bin/copyBinary.sh
-  MW_HOME/oracle_common/bin/copyConfig.sh
-  MW_HOME/oracle_common/bin/extractMovePlan.sh
-  MW_HOME/oracle_common/bin/pasteBinary.sh
-  MW_HOME/oracle_common/bin/pasteConfig.sh



Steps:

1.Run the copyBinary.sh script in source system as,

MW_HOME/oracle_common/bin/copyBinary.sh


Syntax:

./copyBinary.sh -javaHome <Java_location> -archiveLoc <Location where you want to save the generated archive> -sourceMWHomeLoc <Location of middleware home>

Example:

./copyBinary.sh -javaHome /opt/java6 -archiveLoc /isoa/dev_clone/cp_dev_binary.jar -sourceMWHomeLoc /isoa/oracle/middleware

2. Now copy the generated jar file to target system as,

$scp /isoa/dev_clone/cp_dev_binary.jar <username>@<IP of target>:/isoa/clone


3. Now on target server, first of all create directory structure for middleware home as,


$mkdir -p /isoa/oracle



4. Now run the pasteBinary.sh script on target as,


MW_HOME/oracle_common/bin/pasteBinary.sh



Syntax:

/isoa/clone/./pasteBinary.sh -javaHome <JAVA_HOME> -archiveLoc <Location of jar file> -targetMWHomeLoc <MW_Home>

Example:

$ /isoa/clone/./pasteBinary.sh -javaHome /opt/java6 -archiveLoc /isoa/clone/soa_clone_tmp_dir/cp_dev_binary.jar -targetMWHomeLoc /isoa/oracle/middleware

Though the command is long and there is a limitation of words in HP-UX OS, so we put the whole command in a script and then run that script as,


$vi binarycopy.sh

Now copy the command to the script and then run the script as,

$./binarycopy.sh

 
 



5. Now on Source system, run the copyConfig.sh script as,

MW_HOME/oracle_common/bin/copyConfig.sh

Syntax:

./copyConfig.sh -javaHome <Java Home> -archiveLoc <Generated archive location> -sourceDomainLoc <Source domain Location> -sourceMWHomeLoc <Source Middleware Location> -domainHostName <ip or hostname of the source server> -domainPortNum <port> -domainAdminUserName <username> -domainAdminPasswordFile <Path of plain text password file> -silent false

 Example:

./copyConfig.sh -javaHome /opt/java6 -archiveLoc /isoa/dev_clone/mw_config_backup.jar -sourceDomainLoc /isoa/oracle/middleware/user_projects/domains/soadev_domain -sourceMWHomeLoc /isoa/oracle/middleware -domainHostName idevsoz1 -domainPortNum 7001 -domainAdminUserName weblogic -domainAdminPasswordFile /isoa/oracle/middleware/oracle_common/bin/pwd.txt -silent false

Note : We again put this command in a script, but after 3-4 hours, it gives an error of "GC limit exceeded". So we also define java arguments in the script as,

$vi configcopy.sh

 


Now run the configcopy script as,

$./configcopy.sh

 

When this script will completed successfully, a jar file named “mw_config_backup.jar” will be created.




6. Now on source system, run extractMovePlan.sh script as,

This command will extract a move plan from the copy archive created from the copyConfig command.

Syntax:

./extractMovePlan -javaHome <Java Home> -archiveLoc <ARCHIVE_LOC> -movePlanDir <PLAN_DIR>

Example:

./extractMovePlan -javaHome /opt/java6 -archiveLoc /isoa/dev_clone/mw_config_backup.jar -planDirLoc /isoa/dev_clone/moveplan

It will generate moveplan.xml file in moveplan directory.




7. Change moveplan.xml file according to target server

In movepaln directory there is an xml file named moveplan.xml, change the following info. According to target server

-Hostname or IP address of the Admin server, Managed servers
-DB hostname,Port no. and Service Name
-Datasource password file location etc.



8. Copy config jar file and moveplan directory to target system 

 $scp mw_config_backup.jar <username>@<IP of target server>:/isoa/clone

$ scp -r moveplan <username>@<IP of target server>:/isoa/clone


9. On the target system, run pasteConfig.sh script as, 

Here create a password file of weblogic user password as,
$cd /isoa/clone
$vi pwd.txt

Here just write the password of weblogic user.

Now go to “MW_HOME/oracle_common/bin” and run the pasteConfig.sh script as,

Syntax:

./pasteConfig.sh -javaHome <JAVA_HOME> -archiveLoc <jar file location> -targetDomainLoc <Location where you want to create domain on target> -targetMWHomeLoc <MW_Home> -movePlanLoc <moveplan.xml file location> -domainAdminPassword <Password file location>

Example:

/isoa/oracle/middleware/oracle_common/bin/./pasteConfig.sh -javaHome /opt/java6 -archiveLoc /isoa/clone/mw_config_backup.jar -targetDomainLoc /isoa/oracle/middleware/user_projects/domains/soapch_domain -targetMWHomeLoc /isoa/oracle/middleware -movePlanLoc /isoa/clone/moveplan/moveplan.xml -domainAdminPassword /isoa/clone/pwd.txt


Note: Here again we have put this command in a script named configcopy.sh as,

$vi configcopy.sh

 

Now run the script as,

$./configcopy.sh
 

When this script will execute successfully, there will be a message that “Cloning is successful”.

Now Start the weblogic server and then managed servers.