Monday, 28 October 2013

Repair Table in Mysql

You will get error like Db_Name.Table_Name marked as crashed  while exporting dump to Mysql.
For that you have to manually repair table use of following command

REPAIR TABLE TABLE_NAME

Monday, 24 December 2012

Resolve problem of Could not reserve enough space for object heap


Some time you will get  Error occurred during initialization of VM Could not reserve enough space for object heap Could not create the Java virtual machine.

It's noting you have to allocate enough Heap space for java

In Tomcat setClasspath.sh file just add below variable
export JAVA_OPTS="$JAVA_OPTS -Xms512m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m -Xss2m"

In normally you can run like this also


Suppose your class is called Test in package mypackage. Run your code like this:

java -Xmx1024m mypackage.Test

In Maven  Pom.xml  set like that


<configuration>
    <maxmemory>1024M</maxmemory>
</configuration>


Batch Processing In JDBC


Batch Processing allows you to group related SQL statements into a batch and submit them with one call to the database.
When can  improving performance by send several SQL statements to the database at once and  reduce the amount of communication overhead.

Batch Processing Have Three Methods.They are

The addBatch() method of Statement is used to add individual statements to the batch. The executeBatch() is used to start the execution of all the statements grouped together.

The executeBatch() returns an array of integers, and each element of the array represents the update count for the respective update statement.

You can remove them with the clearBatch() method. This method removes all the statements you added with the addBatch() method. However, you cannot selectively choose which statement to remove.

Batching with Statement Object:
Here is a typical sequence of steps to use Batch Processing with Statment Object:

Create a Statement object using either createStatement() methods.

Set auto-commit to false using setAutoCommit().

Add as many as SQL statements you like into batch using addBatch() method on created statement object.

Execute all the SQL statements using executeBatch() method on created statement object.

Finally, commit all the changes using commit() method.

Example :


import java.sql.*;

public class JdbcExecuteStatement {

  public static void main(String args[]) {
  Connection conn = null;
  String SQL="";
  String name="fd";
  String url = "jdbc:mysql://localhost:3306/test";
  String driver = "com.mysql.jdbc.Driver";
  String user = "root";
  String pass = "root";
  try {
 Class.forName(driver);
 conn = DriverManager.getConnection(url, user, pass);
// Create statement object
 Statement stmt = conn.createStatement();
 // Set auto-commit to false
          conn.setAutoCommit(false);
 // Create SQL statement
  SQL = "INSERT INTO Abc (no, name) " +
              "VALUES(200,'Zia')";
 // Add above SQL statement in the batch.
 stmt.addBatch(SQL);
 // Create one more SQL statement
  SQL = "INSERT INTO Abc (no, name) " +
              "VALUES(201,'Raj')";
 stmt.addBatch(SQL);
  // Add above SQL statement in the batch.
   SQL = "INSERT INTO Abc (no, name) " +
              "VALUES(203,'kumar')";
 // Add above SQL statement in the batch.
 stmt.addBatch(SQL);
 // Create one more SQL statement
  SQL = "UPDATE Abc SET name='"+name+"' " +
              "WHERE no = 1";
 // Add above SQL statement in the batch.
 stmt.addBatch(SQL);
 // Create an int[] to hold returned values
 int[] count=  stmt.executeBatch();
 //Explicitly commit statements to apply changes
 //conn.commit();

  } catch (Exception e) {
  System.out.println(e);

  }
  }
}

This above  Program is insert multiple  rows and updating multiple rows at once .


Sunday, 23 December 2012

Execute Statement In JDBC


        JDBC Execute Statement is used to execute SQL Statement, The Execute Statement accept SQL object as parameter and return you the result set from a database.
        statement.execute ( ) method is used to execute the sql query. This may return you a set of row into your table of database.

Example :

import java.sql.*; 
public class JdbcExecuteStatement {
  public static void main(String args[]) {
  Connection con = null; 
  Statement st = null; 
  String url = "jdbc:mysql://localhost:3306/test";
  String driver = "com.mysql.jdbc.Driver"; 
  String user = "root"; 
  String pass = "root"; 
  try { 
  Class.forName(driver);
  con = DriverManager.getConnection(url, user, pass);
  st = con.createStatement();
  String sql = "create table Abc(no integer,name varchar(10))"; 
  st.execute(sql);

  } catch (Exception e) {
  System.out.println(e);
  } 
  } 
}  

This will create one new table Abc with colum no and name

Wednesday, 5 December 2012

Overcome Problem Couldn't get host name In Sever

While updating centos server or installing new server  we will  get error like [Red5] Couldn't get host name! org.quartz. Scheduler Exception: Couldn't get host name! [See nested exception: java.net.UnknownHostException]

It's nothing we forget to configure host name in hosts file.We can overcome these by  configuring host name in hosts file 

If you going to access locally  means just configure like this

# Do not remove the following line, or various programs

# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost




or going to access outside means you have  configure like this

# Do not remove the following line, or various programs

# that require network functionality will fail.

your static ip  host name

Ex for host name www.google.com

Thursday, 4 October 2012

Use of lsof


lsof is one of the most useful utilities for Linux and Unix systems.It stands for "list of open files" the lsof utility can help identify which files are being used by any given application, which network ports are open, and much more.

A process would show up in top or ps aux, but the executable didn't seem to exist. Using lsof, I could hunt down the scripts or executables used to run the malware.

For example, if you want to see all the open files owned by a process, you can use the -p option (for PID) like so:

"lsof -p XXXXX"

Here, you want to replace XXXXX with the process ID (PID) of the process you want to see. Note that you want to run this as root or using sudo. The output will show the command that has the file open, the PID, the user, the file descriptor, type, size of the file and the name of the file.

You can also see what files are open by users. Running lsof -u user will show all open files by processes owned by the user. You can also substitute the user ID (UID) for the username. If you want to eliminate a user from the listing, use ^user instead. The preceding caret will negate the selection, so the user will be ignored.

If you want to see what files are open over the network, use -i. This will show you which files and sockets are open, and their respective protocols, hostnames and so on. You can narrow network parameters down by IP version (-i4 for IPv4, -i6 for IPv6), protocol (UDP or TCP), and even hostname or port. By default, lsof will look up hostnames -- but you can turn this off using the -n option. It will run faster without needing to do name lookups.

You can also "and" things using the -a option. Want to see what network sockets are owned by a particular user or process? Try lsof -u user -a -i. That will show only the open TCP and UDP sockets.

Example:

 lsof -i -n -P

That command shows


COMMAND     PID       USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
sshd        698       root    3u  IPv4    3014      0t0  TCP *:22 (LISTEN)
sshd        698       root    4u  IPv6    3016      0t0  TCP *:22 (LISTEN)
avahi-dae   726      avahi   12u  IPv4    6921      0t0  UDP *:5353
avahi-dae   726      avahi   13u  IPv6    6922      0t0  UDP *:5353
avahi-dae   726      avahi   14u  IPv4    6923      0t0  UDP *:40507
avahi-dae   726      avahi   15u  IPv6    6924      0t0  UDP *:43886
cupsd       805       root    3u  IPv4 1994244      0t0  TCP *:631 (LISTEN)
cupsd       805       root    6u  IPv6 1994245      0t0  TCP *:631 (LISTEN)
cupsd       805       root    8u  IPv4 1994248      0t0  UDP *:631
mysqld      952      mysql   12u  IPv4   10623      0t0  TCP *:3306 (LISTEN)
mysqld      952      mysql   34u  IPv4  604375      0t0  TCP 127.0.0.1:3306->127.0.0.1:35123 (ESTABLISHED)
mysqld      952      mysql   45u  IPv4 2175928      0t0  TCP 127.0.0.1:3306->127.0.0.1:38270 (ESTABLISHED)
master     1069       root   12u  IPv4    8851      0t0  TCP *:25 (LISTEN)
apache2    1208       root    4u  IPv6   10534      0t0  TCP *:80 (LISTEN)
apache2    1219   www-data    4u  IPv6   10534      0t0  TCP *:80 (LISTEN)
apache2    1220   www-data    4u  IPv6   10534      0t0  TCP *:80 (LISTEN)
apache2    1221   www-data    4u  IPv6   10534      0t0  TCP *:80 (LISTEN)
apache2    1222   www-data    4u  IPv6   10534      0t0  TCP *:80 (LISTEN)






Resolve Applying iptables firewall rules failed


Some time we might be get error like Applying iptables firewall rules: iptables-restore: line 1 failed [FAILED].The line Number will be different.That is nothing  while editing editing iptables you may wrongly enter some extra attributes.
For example iptable rule will be like that

-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 21 -j ACCEPT

but you editing rule like

ss-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 21 -j ACCEPT

means you can get like Applying iptables firewall rules: iptables-restore: line 1[this the exact line failed] failed [FAILED].

For that you simply correct the rule and restart your iptables. And you away from that error.

If the iptable rule is correct and you getting same error means add the following line above the rules and add COMMIT statement end of the rule.Go to /etc/init.d/iptables and add

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT

-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 21 -j ACCEPT----->rule
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 25 -j ACCEPT----->rule

COMMIT


and restart your iptables .That  working fine