Ways to debug apache tomcat


1) Start tomcat with this command 
~/apache-tomcat-7.0.47/bin/catalina.sh jpda start -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n

OR 

2) export CATALINA_OPTS='-Djava.awt.headless=true -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000'


And attache IDE to 8000 remote process.

Remote Management By JConsole


Getting trouble while connecting jconsole with remote process

Here is how to achieve it

As described here http://docs.oracle.com/javase/tutorial/jmx/remote/jconsole.html is not enough

sometimes one more java system property needs to be set which is
java.rmi.server.hostname=

for example in case of Apache Tomcat
follow this
1) Export JAVA_OPTS
export JAVA_OPTS='-Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=192.168.1.13'

2) Restart application

3) now from the jconsole connect to 192.168.1.13:9999 by providing credentials

Note : Firewall should be configured to allow these connections (or simply for the time stop iptables services (in linux))

Ref : http://stackoverflow.com/questions/1263991/connecting-remote-tomcat-jmx-instance-using-jconsole

Mondrian [MDX] accessing Member PROPERTIES

I was trying to access the properties of Dimension in my MDX schema, but the way it is mentioned in the Mondrian documentation was not working in 3.5.8 version. Then we got in trouble and wasted lot of time in figuring out that, how to access properties in Mondrian.

Here is how it worked for me

SELECT
{[Measures].[Total Sales Count]} ON COLUMNS,
[Store].[Store Id].MEMBERS DIMENSION PROPERTIES [Store].[Store Id].[Name] ON ROWS
FROM [Sales]

Where [Name] is the property of the level [Store Id]

Hope if you are searching for this, it may help you.

Including Custom Library Into Maven

This can be achieved in just simple 2 steps

1. Install file in maven local repository

mvn install:install-file -Dfile=/path/jarfile.jar -DgroupId=com.company -DartifactId=module-util -Dversion=1.0.0 -Dpackaging=jar

2. Add the entry in the pom.xml.

Find all active IP Address in LAN

Run following script in terminal
-------------------------------

for ip in $(seq 1 254); do ping -c 1 192.168.1.$ip>/dev/null; [ $? -eq 0 ] && echo "192.168.1.$ip UP" || : ; done


Note : 192.168.1.* is the local IP range for modem, It can be different for your machine.

GitHub : Download commit as patch

I was searching for this, to directly download commits as patches
And here is how it works

Say there is commit
https://github.com/pentaho/mondrian/commit/5b5dbac3bd430ee9600e3d4db13aada06564c230

and you want to get it as patch, then just simply add ".patch" at the last of the url and download it via wget or browser.
https://github.com/pentaho/mondrian/commit/5b5dbac3bd430ee9600e3d4db13aada06564c230.patch


That's All

Show all queries running in PostgreSQL database

Sometimes its useful to check what all queries are running in the database when debugging.
Using tcpdump command we can do this.
So for postgresql just execute this command in terminal

sudo tcpdump -i lo -s0 -nl -w- dst port postgres | strings -n8

This will show all queries running in database.