Showing posts with label linux. Show all posts
Showing posts with label linux. Show all posts

Saturday, December 3, 2016

Thread Dumps in WebLogic12c Server

Thread Dumps in WebLogic12c Server
Here I am going to provide information about different ways on taking java thread dumps in a WebLogic Server environment.

Thread dumps are very useful to analyze and troubleshoot performance related issues such as server hang, deadlocks, slow running, idle or stuck applications,  etc.

Different ways to take thread dumps in WebLogic Server 

Always prefer Operating system(OS) commands rather instead of Admin Console or Java Classes, because if the console is hanging, users won't be able to connect to it to issue thread dumps.

1. OS Commands for Thread Dumps

i)
 On Windows,

<ctrl>+<break> --
 the thread dumps are generated in the server stdout

ii)
 On Solaris / Linux

first identify the process ID (
pid) using   ps -ef | grep java, then run   kill -3 <pid> td_filename 2>&1

2. Using weblogic.WLST ( work only from WLS 9.x onwards)


First set CLASSPATH using setDomain.cmd or setDomain.sh (wlst.sh /wlst.cmd will also do in path C:\Oracle\Middleware\wlserver_12.1\common\bin ). Then run below command

java weblogic.WLST ThreadDumps.py

save below code in ThreadDumps.py file:
connect("<username>","<password>","t3://<url>:<port>")
cd(‘Servers’)
cd(‘AdminServer’)
threadDump()
disconnect()
exit()
threadDump()

The thread dumps get stored in the location from where you run it.

3. From Weblogic Administration Console

navigating to Server -> <server_name> -> Monitoring -> Dump threads stack.

4. From the JRockit Command line

jrcmd <pid> print_threads


Monday, December 17, 2012

Thread Dumps in WebLogic12c Server


Here going to provide information about different ways on taking java thread dumps in a WebLogic Server environment.
Thread dumps are very useful to analyze and troubleshoot performance related issues such as server hang, deadlocks, slow running, idle or stuck applications,  etc.
Different ways to take thread dumps in WebLogic Server
Always prefer Operating system(OS) commands rather instead of Admin Console or Java Classes, because if the console is hanging, users won’t be able to connect to it to issue thread dumps.
1. OS Commands for Thread Dumps
i) On Windows,
<ctrl>+<break> — the thread dumps are generated in the server stdout
ii) On Solaris / Linux
first identify the process ID (pid) using   ps -ef | grep java, then run   kill -3 <pid> td_filename 2>&1
2. Using weblogic.WLST ( work only from WLS 9.x onwards)
First set CLASSPATH using setDomain.cmd or setDomain.sh (wlst.sh /wlst.cmd will also do in path C:\Oracle\Middleware\wlserver_12.1\common\bin ). Then run below command
java weblogic.WLST ThreadDumps.py
save below code in ThreadDumps.py file:
connect(“<username>”,”<password>”,”t3://<url>:<port>”)
cd(‘Servers’)
cd(‘AdminServer’)
threadDump()
disconnect()
exit()
threadDump()
The thread dumps get stored in the location from where you run it.
3. From Weblogic Administration Console
navigating to Server -> <server_name> -> Monitoring -> Dump threads stack.
4. From the JRockit Command line
jrcmd <pid> print_threads

CURL Commands


Password secure:

curl –data-binary @<Filename> -k -u adminhttps://hostname:5550Admin Password

Non password secure:curl –data-binary @request.xml https://hostname:5550 -u admin:{adminPW} -k

To check weather server is up or not:curl -f http://<hostname&gt;:7400/monitor

How to install GCC in linux


Important messages about GCC:

GCC version :     $ gcc -v
gcc path  :  $which gcc
If you are using Red Hat Enterprise Linux, type the command:

# up2date gcc
If you are using CentOS/Fedora Core Linux, type the command:

# yum install gcc

Some important GCC commands :
$ which gcc
/usr/bin/gcc

$ whereis gcc
gcc: /usr/bin/gcc3.2-version /usr/bin/gcc /usr/local/bin/gcc /usr/share/man/man1/gcc.1.bz2 /usr/share/man/man1/gcc.1

$ gcc -v
Reading specs from /usr//bin/../lib/gcc-lib/i586-mandrake-linux-gnu/3.3.1/specs
Configured with: /usr/local/src/gcc-3.3.1/configure –prefix=/usr –libdir=/usr/lib –with-slibdir=/lib –mandir=/usr/share/man –infodir=/usr/share/info –enable-shared –enable-threads=posix –disable-checking –enable-long-long –enable-__cxa_atexit –enable-languages=c,c++,ada,f77,objc,java –host=i586-mandrake-linux-gnu –with-system-zlib
Thread model: posix
gcc version 3.3.1

$ gcc –version
gcc (GCC) 3.3.1
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.



Install GCC in linux:
su -
passwrd:
mkdir /usr/local/src
cd /usr/local/src
gunzip /tmp/gcc-3.3.1.tar.gz #where I downloaded the file
tar xvf /tmp/gcc-3.3.1.tar
cd /opt/build
/usr/local/src/gcc-3.3.1/configure
–prefix=/usr –libdir=/usr/lib –with-slibdir=/lib –mandir=/usr/share/man –infodir=/usr/share/info –enable-shared –enable-threads=posix –disable-checking –enable-long-long –enable-__cxa_atexit –enable-languages=c,c++,ada,f77,objc,java –host=i586-mandrake-linux-gnu –with-system-zlib


make
make install

copy file from one linux to another linux box using SCP


sending a file from one linux box to another linux box.

scp stands for secure cp (copy), which means that you can copy files across an ssh connection that will be encrypted, and therefore secured.

You can this way copy files from or to a remote server, you can even copy files from one remote server to another remote server, without passing through your PC.

Usage
scp [[user@]from-host:]source-file [[user@]to-host:][destination-file]
Description of options
from-host
Is the name or IP of the host where the source file is, this can be omitted if the from-host is the host where you are actually issuing the command

user
Is the user which have the right to access the file and directory that is supposed to be copied in the cas of the from-host and the user who has the rights to write in the to-host

source-file
Is the file or files that are going to be copied to the destination host, it can be a directory but in that case you need to specify the -r option to copy the contents of the directory

destination-file
Is the name that the copied file is going to take in the to-host, if none is given all copied files are going to maintain its names
Options
-p
Preserves the modification and access times, as well as the permissions of the source-file in the destination-file
-q
Do not display the progress bar
-r
Recursive, so it copies the contents of the source-file (directory in this case) recursively
-v
Displays debugging messages
Examples

scp *.txt user@remote.server.com:/home/user/

This will copy all files with .txt extension to the directory /home/user in the remote.server.com host

scp -r subha@10.1.2.2:/home/subha/ subha@10.1.2.3:/home/subha/

This is going to recursively copy all files from miguel’s Home directory on 10.1.2.2 host to his Home directory in 10.1.2.3 host.

list of UNIX/Linux or Bash commands (Snapshot)


UNIX OR BASH COMMANDS

adduser Add a user to the system addgroup Add a group to the system alias Create an alias • apropos Search Help manual pages (man -k) apt-get Search for and install software packages (Debian) aspell Spell Checker awk Find and Replace text, database sort/validate/index basename Strip directory and suffix from filenames bash GNU Bourne-Again SHell bc Arbitrary precision calculator language bg Send to background break Exit from a loop • builtin Run a shell builtin bzip2 Compress or decompress named file(s) cal Display a calendar case Conditionally perform a command cat Display the contents of a file cd Change Directory cfdisk Partition table manipulator for Linux chgrp Change group ownership chmod Change access permissions chown Change file owner and group chroot Run a command with a different root directory chkconfig System services (runlevel) cksum Print CRC checksum and byte counts clear Clear terminal screen cmp Compare two files comm Compare two sorted files line by line command Run a command - ignoring shell functions • continue Resume the next iteration of a loop • cp Copy one or more files to another location cron Daemon to execute scheduled commands crontab Schedule a command to run at a later time csplit Split a file into context-determined pieces cut Divide a file into several parts date Display or change the date & time dc Desk Calculator dd Convert and copy a file, write disk headers, boot records ddrescue Data recovery tool declare Declare variables and give them attributes • df Display free disk space diff Display the differences between two files diff3 Show differences among three files dig DNS lookup dir Briefly list directory contents dircolors Colour setup for `ls' dirname Convert a full pathname to just a path dirs Display list of remembered directories dmesg Print kernel & driver messages du Estimate file space usage echo Display message on screen • egrep Search file(s) for lines that match an extended expression eject Eject removable media enable Enable and disable builtin shell commands • env Environment variables ethtool Ethernet card settings eval Evaluate several commands/arguments exec Execute a command exit Exit the shell expect Automate arbitrary applications accessed over a terminal expand Convert tabs to spaces export Set an environment variable expr Evaluate expressions false Do nothing, unsuccessfully fdformat Low-level format a floppy disk fdisk Partition table manipulator for Linux fg Send job to foreground fgrep Search file(s) for lines that match a fixed string file Determine file type find Search for files that meet a desired criteria fmt Reformat paragraph text fold Wrap text to fit a specified width. for Expand words, and execute commands format Format disks or tapes free Display memory usage fsck File system consistency check and repair ftp File Transfer Protocol function Define Function Macros fuser Identify/kill the process that is accessing a file gawk Find and Replace text within file(s) getopts Parse positional parameters grep Search file(s) for lines that match a given pattern groups Print group names a user is in gzip Compress or decompress named file(s) hash Remember the full pathname of a name argument head Output the first part of file(s) help Display help for a built-in command • history Command History hostname Print or set system name id Print user and group id's if Conditionally perform a command ifconfig Configure a network interface ifdown Stop a network interface ifup Start a network interface up import Capture an X server screen and save the image to file install Copy files and set attributes join Join lines on a common field kill Stop a process from running killall Kill processes by name less Display output one screen at a time let Perform arithmetic on shell variables • ln Make links between files local Create variables • locate Find files logname Print current login name logout Exit a login shell • look Display lines beginning with a given string lpc Line printer control program lpr Off line print lprint Print a file lprintd Abort a print job lprintq List the print queue lprm Remove jobs from the print queue ls List information about file(s) lsof List open files make Recompile a group of programs man Help manual mkdir Create new folder(s) mkfifo Make FIFOs (named pipes) mkisofs Create an hybrid ISO9660/JOLIET/HFS filesystem mknod Make block or character special files more Display output one screen at a time mount Mount a file system mtools Manipulate MS-DOS files mv Move or rename files or directories mmv Mass Move and rename (files) netstat Networking information nice Set the priority of a command or job nl Number lines and write files nohup Run a command immune to hangups nslookup Query Internet name servers interactively open Open a file in its default application op Operator access passwd Modify a user password paste Merge lines of files pathchk Check file name portability ping Test a network connection pkill Stop processes from running popd Restore the previous value of the current directory pr Prepare files for printing printcap Printer capability database printenv Print environment variables printf Format and print data • ps Process status pushd Save and then change the current directory pwd Print Working Directory quota Display disk usage and limits quotacheck Scan a file system for disk usage quotactl Set disk quotas ram ram disk device rcp Copy files between two machines read Read a line from standard input • readarray Read from stdin into an array variable • readonly Mark variables/functions as readonly reboot Reboot the system rename Rename files renice Alter priority of running processes remsync Synchronize remote files via email return Exit a shell function rev Reverse lines of a file rm Remove files rmdir Remove folder(s) rsync Remote file copy (Synchronize file trees) screen Multiplex terminal, run remote shells via ssh scp Secure copy (remote file copy) sdiff Merge two files interactively sed Stream Editor select Accept keyboard input seq Print numeric sequences set Manipulate shell variables and functions sftp Secure File Transfer Program shift Shift positional parameters shopt Shell Options shutdown Shutdown or restart linux sleep Delay for a specified time slocate Find files sort Sort text files source Run commands from a file `.' split Split a file into fixed-size pieces ssh Secure Shell client (remote login program) strace Trace system calls and signals su Substitute user identity sudo Execute a command as another user sum Print a checksum for a file symlink Make a new name for a file sync Synchronize data on disk with memory tail Output the last part of files tar Tape ARchiver tee Redirect output to multiple files test Evaluate a conditional expression time Measure Program running time times User and system times touch Change file timestamps top List processes running on the system traceroute Trace Route to Host trap Run a command when a signal is set(bourne) tr Translate, squeeze, and/or delete characters true Do nothing, successfully tsort Topological sort tty Print filename of terminal on stdin type Describe a command • ulimit Limit user resources • umask Users file creation mask umount Unmount a device unalias Remove an alias • uname Print system information unexpand Convert spaces to tabs uniq Uniquify files units Convert units from one scale to another unset Remove variable or function names unshar Unpack shell archive scripts until Execute commands (until error) useradd Create new user account usermod Modify user account users List users currently logged in uuencode Encode a binary file uudecode Decode a file created by uuencode v Verbosely list directory contents (`ls -l -b') vdir Verbosely list directory contents (`ls -l -b') vi Text Editor vmstat Report virtual memory statistics watch Execute/display a program periodically wc Print byte, word, and line counts whereis Search the user's $path, man pages and source files for a program which Search the user's $path for a program file while Execute commands who Print all usernames currently logged in whoami Print the current user id and name (`id -un') Wget Retrieve web pages or files via HTTP, HTTPS or FTP write Send a message to another user xargs Execute utility, passing constructed argument list(s) yes Print a string until interrupted . Run a command script in the current shell ### Comment / Remark

Switching Users: su in Linux



Switching Users: su

To switch to another user, we use su command
Running su without any parameter will automatically try to login you to root user.

You’ll be prompted for the root password and, if you enter it correctly, will drop down to a root shell.

Example:

[vih@hostname ~]$ su
It will prompt for the password, if you give the correct password you will be logged into the root shell.

If you are already in the root user(shell) and want to switch to another ID, you don’t need to enter the password when you issue this command.
If u want to login to with a particular user, then

[vih@hostname ~]$ su subha
(Or)
[vih@hostname ~]$ su – subha

The difference is,if we are using optional hyphen (-), this is tells us to switch identities and run the login scripts for that user (use the user specific environmental variables).

If there is no hyphen, the shell will take the globally set environment variables.

Linux Commands in realtime


1———->How to find  ramsize , os, os bit in Linuxarch; free -m; cat /etc/redhat-release    ( This command will tell you all these details )


2———>How to know which is 32bit and 64 bit in linuxuname -mi386 or i686 then it is 32 bit x86_64 is 64bit


3——-> How to use traceroute in windows and linux:——->in windows

> tracert <domain or IP address>Example—> tracert http://www.yahoo.com

——->in linux# traceroute <domain or IP address>Example----> traceroute www.google.com

Important commands in MIddleware Admin :

$ uname  -a                                          —————> Linux version of java.

$ java -version                               —————–> which java version it is using.

$ which java                                 —————–> where java is installed in that system.

$ ps  -ef | grep  java                  ——————> Is java is working or not.

$ps -ef  | grep httpd                ——————–> is web server is working or not.

$jboss  log-file  <path>        ———————> to see perticular log file.

$tail -f  <log file name >       ———————> to see the log file running.

$less  <log file name>         ———————- >

$tail  -200 <log file name>——————— > to see the last 200 lines of the log file.

$grep  -i  subha  <log file name >—————–> to find “subha”  in the log file .

$ find -name  subha*.*  —————————–> to find the files starting with subha.

Set Java Path in linux


SET JAVA PATH IN LINUX:

Set JAVA_HOME as follows using syntax export JAVA_HOME=<path-to-java>. If your path is set to /usr/java/jdk1.5.0_07/bin/java, set it as follows:

$ export JAVA_HOME=/usr/java/jdk1.5.0_07/bin/java

Set PATH as follows:
$export PATH=$PATH:/usr/java/jdk1.5.0_07/bin
Save and close the file. Just logout and login back to see new changes:
$ echo $JAVA_HOME
$ echo $PATH

Tip: Use the following command to find out exact path to which java executable under UNIX / Linux:
$ which java

Set JAVA_HOME / PATH for all user


You need to setup global config in /etc/profile OR /etc/bash.bashrc file for all users:

# vi /etc/profile
Next setup PATH / JAVA_PATH variables as follows:

export PATH=$PATH:/usr/java/jdk1.5.0_07/bin
export PATH=$PATH:/usr/java/jdk1.5.0_07/bin