Sequence disparando

Após um cadastro(na segunda vez) minha sequence(usando ORACLE 10g) dispara!
Faço assim:

 try{ //faz o insert do Client      
	   	        new ClientDao().insert(c);
	   	       //pega o id do último registro 
	   	       int id_c=new DBUtils().getSequence(Conexao.getConnection(),"SELECT CLIENTSEQ.CURRVAL FROM DUAL");  	        
	   	    System.out.println("ID do CLIENT após o insert:"+id_c);

Meu getSequence:

public int getSequence(Connection conn,String query){ int sequence=0; try{ PreparedStatement stmt = conn.prepareStatement(query); ResultSet result = stmt.executeQuery(); if (result.next()) { sequence=(int)result.getLong(1); } else { System.out.println("Sequence não encontrada!"); throw new SQLException("Sistema incapaz de pegar a Sequence da base!"); } result.close(); stmt.close(); }catch(Exception e){ throw new RuntimeException(e); } return sequence; }
Na primeira vez, vai OK:

[quote]
Entrou no insert:
ID do CLIENT após o insert:1[/quote]
No segundo insert dispara:

[quote]
Entrou no insert:
ID do CLIENT após o insert:21[/quote]

Meu insert na base:

[code]
try{

			int sequence=0;
			  stmt = this.connection.prepareStatement("SELECT CLIENTSEQ.NEXTVAL FROM DUAL");
			             ResultSet result = stmt.executeQuery();
			              if (result.next()) {
			                  sequence=(int)result.getLong(1);
			              } else {
			                   System.out.println("primary-key não encontrada!");
			                   throw new SQLException("PK not found!");
			              }
			 result.close();             
			 stmt.clearParameters();	   
	
	   stmt = (PreparedStatement) this.connection.prepareStatement(INSERT);
	   System.out.println("Entrou no insert:");
	              stmt.setInt(1, sequence);
		      stmt.setString(2, obj.getName());
                                  stmt.executeUpdate();
			      stmt.close();				        
	       }catch(Exception e){
	            throw new RuntimeException(e);
	       }[/code]

O que pode estar ocorrendo?

  1. Como foi configurada a sequence? Pode ser que ela esteja contando de 10 em 10
  2. É só você que usa o banco? Muita gente boa se dá mal porque esquece de pensar nisso.

Fiz assim:

E a aplicação é para apenas um usuario.

Paul,
apesar do nome SEQUENCE, uma sequence não garante a continuidade de seus números.Você pode por NOCACHE(que tem custos de performance-não relevantes numa app monousuário), mas não haverá garantias de uma sequencia sem intervalos se você der um rollback.Sequence é para garantir a unicidade dos valores, não a continuidade.