mysql - Issue java.lang.Exception: Lock wait timeout exceeded; try restarting transaction -


when try run code have mistake: java.lang.exception: lock wait timeout exceeded; try restarting transaction. have see inoodb status , this. how can translate language know?. how can modify time innodb variable?.

thanks

mysql> show engine innodb status\g  | innodb |      | ===================================== 130117 13:25:22 innodb monitor output ===================================== per second averages calculated last 19 seconds ---------- semaphores ---------- os wait array info: reservation count 5, signal count 5 mutex spin waits 0, rounds 40, os waits 2 rw-shared spins 6, os waits 3; rw-excl spins 0, os waits 0 ------------ transactions ------------ trx id counter 0 46088 purge done trx's n:o < 0 45663 undo n:o < 0 0 history list length 5 list of transactions each session: ---transaction 0 0, not started, process no 20582, os thread id 139811275994880 mysql thread id 39, query id 169 localhost root show engine innodb status ---transaction 0 46087, active 8 sec, process no 20582, os thread id 139811275593472 inserting mysql tables in use 1, locked 1 lock wait 5 lock struct(s), heap size 1216, 3 row lock(s), undo log entries 1 mysql thread id 44, query id 168 172.17.150.33 root update insert albaranes    (id_cuenta_emisora,id_cuenta_receptora,id_pedido,id_formato_documento,descuento,nombre_report,destino_report) values (    19 ,                           23 ,                         1 ,                                   2 ,                        0.0,                                null,null   ) ------- trx has been waiting 8 sec lock granted: record locks space id 0 page no 228 n bits 256 index `primary` of table `cluw`.`pedidos` trx id  0 46087 lock mode s locks rec not gap waiting record lock, heap no 106 physical record: n_fields 13; compact format; info bits 0 0: len 4; hex 00000001; asc     ;; 1: len 6; hex 00000000b403; asc       ;; 2: len 7; hex    800000002d0110; asc     -  ;; 3: len 4; hex 00000001; asc     ;; 4: len 4; hex 00000017; asc     ;;   5: len 10; hex 32303132303430303031; asc 2012040001;; 6: len 8; hex 8000124ca5887d00; asc    l  } ;; 7: len 1; hex 80; asc  ;; 8: len 4; hex 00000000; asc     ;; 9: sql null; 10: sql null; 11: sql null; 12: len 4; hex 00000000; asc     ;;  ------------------ ---transaction 0 46083, active 9 sec, process no 20582, os thread id 139811275794176 11 lock struct(s), heap size 1216, 9 row lock(s), undo log entries 7 mysql thread id 43, query id 157 172.17.150.33 root trx read view not see trx id >= 0 46084, sees < 0 46084 -------- file i/o -------- i/o thread 0 state: waiting i/o request (insert buffer thread) i/o thread 1 state: waiting i/o request (log thread) i/o thread 2 state: waiting i/o request (read thread) i/o thread 3 state: waiting i/o request (write thread) pending normal aio reads: 0, aio writes: 0, ibuf aio reads: 0, log i/o's: 0, sync i/o's: 0 pending flushes (fsync) log: 0; buffer pool: 0 73 os file reads, 9 os file writes, 9 os fsyncs 0.00 reads/s, 0 avg bytes/read, 0.11 writes/s, 0.11 fsyncs/s ------------------------------------- insert buffer , adaptive hash index ------------------------------------- ibuf: size 1, free list len 0, seg size 2, 0 inserts, 0 merged recs, 0 merges hash table size 17393, node heap has 1 buffer(s) 0.00 hash searches/s, 2.53 non-hash searches/s --- log --- log sequence number 0 10153404 log flushed   0 10153404 last checkpoint @  0 10151824 0 pending log writes, 0 pending chkp writes 12 log i/o's done, 0.11 log i/o's/second ---------------------- buffer pool , memory ---------------------- total memory allocated 20742848; in additional pool allocated 1048576 dictionary memory allocated 188160 buffer pool size   512 free buffers       424 database pages     87 modified db pages  14 pending reads 0 pending writes: lru 0, flush list 0, single page 0 pages read 87, created 0, written 1 0.00 reads/s, 0.00 creates/s, 0.00 writes/s buffer pool hit rate 1000 / 1000 -------------- row operations -------------- 0 queries inside innodb, 0 queries in queue 2 read views open inside innodb main thread process no. 20582, id 139811124684544, state: sleeping number of rows inserted 7, updated 0, deleted 0, read 70 0.37 inserts/s, 0.00 updates/s, 0.00 deletes/s, 2.89 reads/s ---------------------------- end of innodb monitor output ============================  1 row in set (0.00 sec) 

and code give me problems:

public tdatosretorno sincronizarpedidos(tdatospedidos pedido,int metodo_facturacion,int proveedor){         tdatosretorno resultado = new tdatosretorno();           system.out.println("voy sincronizar los pedidos ahora mismo");         //system.out.println("pedidos"+pedidos);         system.out.println(pedido.getid_cuenta()+" y pedido es:"+pedido.getid_pedido());         try {         this.conexion = conectar();         this.conexion.setautocommit(false);          int estado_pedido=0;         date f_aprobacion=null;         boolean pedido_provisionado = true;          date f_provision=null;         string unidad_duracion_contrato=" ";         int duracion_contrato=0;         date f_inicio_contrato = new date();         date f_fin_contrato = new date();         dateformat dateformat = new simpledateformat("yyyy-mm-dd hh:mm:ss");         calendar cal = calendar.getinstance();          //int id_cuenta=buscar_cuentapedidos_ccis(pedido.getid_cuenta(),proveedor);         //system.out.println("id_cuenta es:"+id_cuenta);         sql="insert pedidos (id_pedido,id_estado_pedido,id_cuenta,n_pedido,f_creacion,es_actualizacion,id_pedido_actualizado,f_inicio_contrato,f_fin_contrato,f_aprobacion,estado_envio)"+         " values(?,?,?,?,?,?,?,?,?,?,?)";         system.out.println("la sql de insertar pedidos es:"+sql);         //int key=0;         this.pstm = this.conexion.preparestatement(sql,preparedstatement.return_generated_keys);         this.pstm.setint(1, pedido.getid_pedido());         this.pstm.setint(2, 1);         this.pstm.setint(3, pedido.getid_cuenta());         this.pstm.setstring(4, pedido.getn_pedido());         object objped = pedido.getf_creacion();         if(objped!=null){             system.out.println("fecha de creación es diferente de nulo");             java.sql.date f_creacionaux = new java.sql.date(pedido.getf_creacion().gettime());               this.pstm.setdate(5, f_creacionaux);         }else{             system.out.println("fecha de creación es nulo");             this.pstm.setdate(5, null);         }          this.pstm.setboolean(6, pedido.ises_actualizacion());         this.pstm.setint(7, pedido.getid_pedido_actualizado());         this.pstm.setdate(8, null);         this.pstm.setdate(9, null);         this.pstm.setdate(10, null);          this.pstm.setint(11, 0);             system.out.println("vamos hacer la insercción de pedidos");          int ejecutado =  this.pstm.executeupdate();             if(ejecutado==0){                   system.out.println("ejecutado tiene valor 0");                 throw new exception("error al grabar pedidos");           }          resultset rs = this.pstm.getgeneratedkeys();          int key = 0;         if (rs != null && rs.next()) {              key = rs.getint(1);          }             system.out.println("el pedido tiene una key de:"+key);              system.out.println("estamos fuera de pedidos ya");         if(pedido.getdatos_sv()!=null){                (int i=0;i<pedido.getdatos_sv().length;i++){                 servid=new int[pedido.getdatos_sv().length];                 sql="insert servidores_virtuales (id_servidor_virtual,id_pedido,nombre_servidor,duracion_contrato,cpu_cant,ram_cant,hdd_cant,hdd_unidad,sv_pvp,cpu_pvp,ram_pvp,hdd_pvp,sv_pvp_dist,cpu_pvp_dist,ram_pvp_dist,hdd_pvp_dist,ip_pvp,ip_pvp_dist,ip_polled_pvp,ip_polled_pvp_dist,ip_custom_pvp,ip_custom_pvp_dist,data_center,cluster,plantilla,estado_aprobacion,f_aprobacion,f_provision,es_actualizacion,f_actualizacion,disco_almacenamiento) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);";                 system.out.println("la sql meter es:"+sql);                 system.out.println("el número de servidores meter es:"+pedido.getdatos_sv().length);                   preparedstatement pstmsv = this.conexion.preparestatement(sql,preparedstatement.return_generated_keys);                 //system.out.println("el virtual server id que voy meter tiene id de ccis:"+pedido.getdatos_sv()[i].getid_servidor_virtual_ccis());                  pstmsv.setint(1, pedido.getdatos_sv()[i].getid_servidor_virtual());                 pstmsv.setint(2, pedido.getid_pedido()); //last insert id de pedido                  system.out.println("nombre del servidor:"+pedido.getdatos_sv()[i].getnombre_servidor());                 pstmsv.setstring(3, pedido.getdatos_sv()[i].getnombre_servidor());                 pstmsv.setstring(4, pedido.getdatos_sv()[i].getduracion_contrato());                 pstmsv.setint(5, pedido.getdatos_sv()[i].getcpu_cant());                 pstmsv.setstring(6, pedido.getdatos_sv()[i].getram_cant());                 pstmsv.setstring(7, pedido.getdatos_sv()[i].gethdd_cant());                 pstmsv.setstring(8, pedido.getdatos_sv()[i].gethdd_unidad());                 pstmsv.setdouble(9, pedido.getdatos_sv()[i].getsv_pvp());                 pstmsv.setdouble(10, pedido.getdatos_sv()[i].getcpu_pvp());                 pstmsv.setdouble(11, pedido.getdatos_sv()[i].getram_pvp());                 pstmsv.setdouble(12, pedido.getdatos_sv()[i].gethdd_pvp());                 pstmsv.setdouble(13, pedido.getdatos_sv()[i].getsv_pvp_dist());                 pstmsv.setdouble(14, pedido.getdatos_sv()[i].getcpu_pvp_dist());                 pstmsv.setdouble(15, pedido.getdatos_sv()[i].getram_pvp_dist());                 pstmsv.setdouble(16, pedido.getdatos_sv()[i].gethdd_pvp_dist());                 pstmsv.setdouble(17, pedido.getdatos_sv()[i].getip_pvp());                 pstmsv.setdouble(18, pedido.getdatos_sv()[i].getip_pvp_dist());                 pstmsv.setdouble(19, pedido.getdatos_sv()[i].getip_polled_pvp());                 pstmsv.setdouble(20, pedido.getdatos_sv()[i].getip_polled_pvp_dist());                 pstmsv.setdouble(21, pedido.getdatos_sv()[i].getip_custom_pvp());                 pstmsv.setdouble(22, pedido.getdatos_sv()[i].getip_custom_pvp_dist());                 pstmsv.setstring(23, pedido.getdatos_sv()[i].getdata_center());                 pstmsv.setstring(24, pedido.getdatos_sv()[i].getcluster());                 pstmsv.setstring(25, pedido.getdatos_sv()[i].getplantilla());                 pstmsv.setint(26, pedido.getdatos_sv()[i].getestado_aprobacion());                 //chequear nulos                 object objaprob = pedido.getdatos_sv()[i].getf_aprobacion();                 if(objaprob!=null){                       java.sql.date f_aprobacionaux = new java.sql.date(pedido.getdatos_sv()[i].getf_aprobacion().gettime());                       pstmsv.setdate(27, f_aprobacionaux);                  }else{                     system.out.println("nuloooooooooooooooooo");                     pstmsv.setdate(27, null);                 }                 object obj=pedido.getdatos_sv()[i].getf_provision();                 if(obj==null){                         system.out.println("nulooooooooooooooo");                         pstmsv.setdate(28, null);                 }else{                   java.sql.date f_provisionaux = new java.sql.date(pedido.getdatos_sv()[i].getf_provision().gettime());                   pstmsv.setdate(28, f_provisionaux);                 }                     pstmsv.setboolean(29, pedido.getdatos_sv()[i].ises_actualizacion());                 if(pedido.getdatos_sv()[i].getf_actualizacion()!=null){                     java.sql.date f_actualizacionaux =new java.sql.date(pedido.getdatos_sv()[i].getf_actualizacion().gettime());                     pstmsv.setdate(30, f_actualizacionaux);                      }else{                      pstmsv.setdate(30, null);                  }                 pstmsv.setstring(31, pedido.getdatos_sv()[i].getdisco_almacenamiento());                      system.out.println("el estado de aprobación del pedido es:"+pedido.getdatos_sv()[i].getestado_aprobacion());                                     switch(pedido.getdatos_sv()[i].getestado_aprobacion()){                        case 0:{                          switch(estado_pedido){                              case 0:{                                  estado_pedido =1;                                  break;                              }                              case 1:{                                  estado_pedido =1;                                  break;                              }                              case 2:{                                  estado_pedido = 1;                                  break;                              }                           }                          break;                      }                      case 1:{                          switch(estado_pedido){                              case 0:{                                 estado_pedido = 2;                                 break;                             }                             case 1:{                                 estado_pedido =1;                                 break;                             }                             case 2:{                                 estado_pedido=2;                                 break;                             }                          }                          break;                      }                  }                  if(estado_pedido==2){                     if(f_aprobacion==null){                         f_aprobacion = pedido.getdatos_sv()[i].getf_aprobacion();                     }else{                         if (f_aprobacion.compareto(pedido.getdatos_sv()[i].getf_aprobacion())<0){                              f_aprobacion = pedido.getdatos_sv()[i].getf_aprobacion();                         }                      }                      if(pedido.getdatos_sv()[i].getf_provision()==null){                         pedido_provisionado = false;                     }                     if(f_provision == null){                         pedido.getdatos_sv()[i].getf_provision();                     }else{                         if(pedido.getdatos_sv()[i].getf_provision().compareto(f_provision)>0){                             f_provision=pedido.getdatos_sv()[i].getf_provision();                         }                     }                  }                  string [] duracion = pedido.getdatos_sv()[i].getduracion_contrato().split("");                 int cant=0;                 if(duracion[0].trim().isempty()){                     cant=0;                 }else{                     cant = integer.parseint(duracion[0].trim());                 }                  string unidad = duracion[1].trim().touppercase();                   if(unidad_duracion_contrato ==" "){                     system.out.println("unidad_duracion_contrato es vacio y se llena");                     unidad_duracion_contrato = unidad;                     duracion_contrato = cant;                     system.out.println("la duración de contrato es:"+cant);                     system.out.println("la unidad de duracion de contrato es:"+unidad_duracion_contrato);                 }/*else{*/                     /* if(unidad_duracion_contrato != unidad){                          system.out.println("esto es lo que me falla donde unidad_duracion_contrato es:"+unidad_duracion_contrato +" y unidad es:"+unidad);                      }                     if (unidad_duracion_contrato != unidad || duracion_contrato != cant){                         throw new exception ("pedido con diferentes duraciones de contrato: "+key);                     }*/                 /*}*/                 system.out.println("voy hacer el insert de los servidores virtuales");                       int ejecutadoservivirtual =  pstmsv.executeupdate();                 system.out.println("ejecutadoservivirtual es:"+ejecutadoservivirtual);                 if(ejecutadoservivirtual==0){                                              throw new exception("error al grabar pedidos");               }                 resultset rsserv = pstmsv.getgeneratedkeys();                   if (rsserv != null && rsserv.next()) {                    int  keyservidorv = rsserv.getint(1);                   system.out.println("el keyservidorv es:"+keyservidorv);                 }                     /*for(int h=0;h< pedido.getdatos_sv().length;h++){                      system.out.println("h---------->"+h);*/                     switch (metodo_facturacion){                         case 1: //diode                         case 2: //directo                          {                               tdatosretorno result_coste = insertar_preciocoste_sv(pedido.getdatos_sv()[i].getid_servidor_virtual(),pedido.getdatos_sv()[i].getplantilla(),pedido.getdatos_sv()[i].getdisco_almacenamiento(),proveedor);                                if(result_coste.geterror()==-1){                                   throw new exception(result_coste.getdescripcion_error());                                }                               break;                         }                     }                 /*}*/                   int ind =0;                  /*for(int z =0;z<pedido.getdatos_sv().length;z++){  */ //meter sa dentro de servidores virtuales                      if(pedido.getdatos_sv()[i].getdatos_servicios_adicionales()!=null){                            sql="insert servicios_adicionales (id_servicio_adicional,id_servidor_virtual,sku,descripcion,cantidad,unidad,pvp,unidad_dist,pvp_dist,base_pvp,base_pvp_dist) values(?,?,?,?,?,?,?,?,?,?,?)";                             preparedstatement pstmsa = this.conexion.preparestatement(sql,preparedstatement.return_generated_keys);                            for(int k=0;k<pedido.getdatos_sv()[i].getdatos_servicios_adicionales().length;k++){                                 servid[i]=pedido.getdatos_sv()[i].getid_servidor_virtual();                                 system.out.println("k------------>"+k);                                  pstmsa.setint(1, pedido.getdatos_sv()[i].getdatos_servicios_adicionales()[k].getid_servicios_adicionales());                                 pstmsa.setint(2, pedido.getdatos_sv()[i].getid_servidor_virtual());  //nuestro lastinsert                                 system.out.println("sku----->"+pedido.getdatos_sv()[i].getdatos_servicios_adicionales()[k].getsku());                                 pstmsa.setstring(3, pedido.getdatos_sv()[i].getdatos_servicios_adicionales()[k].getsku());                                 system.out.println("descripción---->"+pedido.getdatos_sv()[i].getdatos_servicios_adicionales()[k].getdescripcion());                                 pstmsa.setstring(4, pedido.getdatos_sv()[i].getdatos_servicios_adicionales()[k].getdescripcion());                                 pstmsa.setint(5, pedido.getdatos_sv()[i].getdatos_servicios_adicionales()[k].getcantidad());                                 pstmsa.setstring(6, pedido.getdatos_sv()[i].getdatos_servicios_adicionales()[k].getunidad());                                 pstmsa.setdouble(7, pedido.getdatos_sv()[i].getdatos_servicios_adicionales()[k].getpvp());                                 pstmsa.setstring(8, pedido.getdatos_sv()[i].getdatos_servicios_adicionales()[k].getunidad_dist());                                 pstmsa.setdouble(9, pedido.getdatos_sv()[i].getdatos_servicios_adicionales()[k].getpvp_dist());                                 pstmsa.setdouble(10, pedido.getdatos_sv()[i].getdatos_servicios_adicionales()[k].getbase_pvp());                                 pstmsa.setdouble(11,pedido.getdatos_sv()[i].getdatos_servicios_adicionales()[k].getbase_pvp_dist());                                  ind++;                                 system.out.println("voy ejecutandosa ");                                 int ejecutadosa =  pstmsa.executeupdate();                                 if(ejecutadosa==0){                                     throw new exception("error al grabar envíos servicios adicionales");                                 }                                   resultset rssa = pstmsa.getgeneratedkeys();                                  int  keyservidora=0;                                 if (rssa != null && rssa.next()) {                                      keyservidora = rssa.getint(1);                                   }                                    /*for(int k=0;k<pedido.getdatos_sv()[i].getdatos_servicios_adicionales().length;k++){*/                                         switch(metodo_facturacion){                                           case 1:// diode                                           case 2: //directa                                            {                                                //system.out.println("keyservidora es:"+keyservidora);                                               system.out.println("sku es------------->"+pedido.getdatos_sv()[i].getdatos_servicios_adicionales()[k].getsku());                                               tdatosretorno result_coste = insertar_preciocoste_sa(pedido.getdatos_sv()[i].getdatos_servicios_adicionales()[k].getid_servicios_adicionales(),pedido.getdatos_sv()[i].getdatos_servicios_adicionales()[k].getsku(),1);                                                if(result_coste.geterror() == -1){                                                   throw new exception (result_coste.getdescripcion_error());                                               }                                               break;                                           }                                        }                                    /*}*/                                 }                        }                 /*}*/                 system.out.println("he acabado de grabar servicios adicionales");               }                }else{             throw new exception("pedido sin servidores virtuales:"+pedido.getid_pedido());           }         system.out.println("el método de facturación es:"+metodo_facturacion);         switch(metodo_facturacion){              case 1:{                 system.out.println("estado_pedido es_"+estado_pedido);                 if(estado_pedido == 1 || estado_pedido == 2){                      if(pedido.ises_actualizacion()){                         f_inicio_contrato = pedido.getf_creacion();                         f_fin_contrato = obtener_fecha_fin_contrato(pedido.getid_pedido_actualizado());                     }else{                         system.out.println("f_aprobacion es:"+f_aprobacion);                         if(f_aprobacion == null)                             f_inicio_contrato = pedido.getf_creacion();                         else                             f_inicio_contrato = f_aprobacion;                         system.out.println("unidad_duracion_contrato es:"+unidad_duracion_contrato);                         switch(unidad_duracion_contrato){                          case "day":{                                calendar caldays = calendar.getinstance();                                 caldays.settime(f_inicio_contrato);                                 caldays.add(calendar.date, duracion_contrato);                                   f_fin_contrato = caldays.gettime();                                break;                            }                            case "week":{                                 calendar caldays = calendar.getinstance();                                 caldays.settime(f_inicio_contrato);                                 caldays.add(calendar.date, duracion_contrato*7);                                     f_fin_contrato = caldays.gettime();                                break;                            }                            case "month":{                                system.out.println("estoy en mes y la duracion de contrato es:"+duracion_contrato);                                calendar caldays = calendar.getinstance();                                 caldays.settime(f_inicio_contrato);                                 caldays.add(calendar.month, duracion_contrato);                                   f_fin_contrato = caldays.gettime();                                 system.out.println("el fin de contrato es:"+f_fin_contrato);                                break;                            }                            case "year":{                               calendar caldays = calendar.getinstance();                                caldays.settime(f_inicio_contrato);                                caldays.add(calendar.year, duracion_contrato);                                f_fin_contrato = caldays.gettime();                               break;                            }                         }                     }                      if(pedido_provisionado){                         estado_pedido = 3;                     }                 }                 break;             }              case 2:{                 if(estado_pedido == 2){                      if(pedido.ises_actualizacion()){                         f_inicio_contrato = pedido.getf_creacion();                         f_inicio_contrato = obtener_fecha_fin_contrato(pedido.getid_pedido_actualizado());                     }else{                         system.out.println("f_aprobacion es:"+f_aprobacion);                         if(f_aprobacion == null){                             system.out.println("f_aprobacion es nulo entonces hay"+pedido.getf_creacion());                             f_inicio_contrato = pedido.getf_creacion();                         }                            else                             f_inicio_contrato = f_aprobacion;                          switch (unidad_duracion_contrato){                            case "day":{                                calendar caldays = calendar.getinstance();                                 caldays.settime(f_inicio_contrato);                                  caldays.add(calendar.date, duracion_contrato);                                  f_fin_contrato = caldays.gettime();                                break;                            }                            case "week":{                                 calendar caldays = calendar.getinstance();                                 caldays.settime(f_inicio_contrato);                                 caldays.add(calendar.date, duracion_contrato*7);                                     f_fin_contrato = caldays.gettime();                                break;                            }                            case "month":{                                 calendar caldays = calendar.getinstance();                                 caldays.settime(f_inicio_contrato);                                 caldays.add(calendar.month, duracion_contrato);                                   f_fin_contrato = caldays.gettime();                                break;                            }                            case "year":{                               calendar caldays = calendar.getinstance();                                caldays.settime(f_inicio_contrato);                                caldays.add(calendar.year, duracion_contrato);                                f_fin_contrato = caldays.gettime();                               break;                            }                         }                          if(pedido_provisionado){                             estado_pedido = 3;                         }                     }                  }                 break;               }             }                    int id_formato_documento;             system.out.println("voy mandar un albarán a:"+pedido.getid_cuenta());             tcuenta cuenta_receptora = buscar_cuenta(pedido.getid_cuenta());               if(cuenta_receptora.getcuenta()!= -1){  //aquí había -1                 system.out.println("cuenta receptora la cuenta padre es:"+cuenta_receptora.getcuenta_padre());                 tcuenta cuenta_emisora = buscar_cuenta_emisora(cuenta_receptora.getcuenta_padre());                 while(cuenta_emisora.getcuenta()!=-1){  //aquí había -1                      if(cuenta_emisora.getnivel()==0){                         id_formato_documento = 1;                     }else{                         id_formato_documento = 2;                     }                      tdatosretorno result1 = grabaralbaran(pedido.getid_pedido(),cuenta_emisora.getcuenta(),cuenta_receptora.getcuenta(),cuenta_receptora.getdescuento(),id_formato_documento);                     if(result1.geterror()==-1){                  //nuestro                         throw new exception(result1.getdescripcion_error());                     }                     cuenta_receptora = cuenta_emisora;                      cuenta_emisora = buscar_cuenta_emisora(cuenta_receptora.getcuenta_padre()); //tipo string n_cuenta_padre                     system.out.println("cuenta receptora es:"+cuenta_receptora.getcuenta());                 }             }else{                 throw new exception("la cuenta del pedido: "+pedido.getid_cuenta()+"no existe");             }                  tdatosretorno result;             for(int x=0;x<servid.length;x++){                 system.out.println(servid[x]);                 if(servid[x]!=0){                     result = generar_lineas_albaran(pedido,pedido.getid_pedido(),metodo_facturacion,servid[x]);                     if(result.geterror()==-1){                         throw new exception(result.getdescripcion_error());                     }                 }             }                    system.out.println("voy hacer el update de los pedidos");                 sql = "update pedidos set ";                  if(f_aprobacion != null){                      sql=sql+" f_aprobacion = ?,";                 }                  if((metodo_facturacion == 1)||(metodo_facturacion == 2 && (estado_pedido == 2 || estado_pedido == 3))){                      sql = sql +"f_inicio_contrato = ?,f_fin_contrato=?,";                 }                  sql = sql +"id_estado_pedido = ? id_pedido = ?";                 system.out.println("el sql del update es:"+sql);                 preparedstatement pstmact = this.conexion.preparestatement(sql);                 if((f_aprobacion!=null)&&(((metodo_facturacion == 1)||(metodo_facturacion == 2 && (estado_pedido == 2 || estado_pedido == 3))))){                     system.out.println("dentro de if de f_aprobacion");                       java.sql.date f_aprobacionaux = new java.sql.date(f_aprobacion.gettime());                     pstmact.setdate(1, f_aprobacionaux);                      java.sql.date f_inicio_contratoaux = new java.sql.date(f_inicio_contrato.gettime());                     pstmact.setdate(2, f_inicio_contratoaux);                     java.sql.date f_fin_contratoaux = new java.sql.date(f_fin_contrato.gettime());                     pstmact.setdate(3, f_fin_contratoaux);                     pstmact.setint(4, estado_pedido);                     pstmact.setint(5, pedido.getid_pedido());  // pedido mío?                  }                  if((f_aprobacion==null)&&(((metodo_facturacion == 1)||(metodo_facturacion == 2 && (estado_pedido == 2 || estado_pedido == 3))))){                     system.out.println("dentro de if de f_aprobacion");                      java.sql.date f_inicio_contratoaux = new java.sql.date(f_inicio_contrato.gettime());                     pstmact.setdate(1, f_inicio_contratoaux);                     java.sql.date f_fin_contratoaux = new java.sql.date(f_fin_contrato.gettime());                     pstmact.setdate(2, f_fin_contratoaux);                     pstmact.setint(3, estado_pedido);                     pstmact.setint(4, pedido.getid_pedido());  // pedido mío?                  }                   int ejecutadoped =  pstmact.executeupdate();                 if(ejecutadoped==0){                        throw new exception("error al actualizar pedidos");                 }                  if(pedido.getdatos_cuentas()!=null){                      for(int = 0; <pedido.getdatos_cuentas().length;i++){                          tdatosretorno result2 = actualizarcuenta(pedido.getdatos_cuentas()[i], true, false, true);                          if(result2.geterror()==-1){                             throw new exception(result2.getdescripcion_error());                          }                     }                   }                this.conexion.commit();             this.conexion.setautocommit(true);             this.conexion.close();             resultado.seterror(0);             resultado.setdescripcion_error("");             return resultado;                   } catch (exception e) {         // todo auto-generated catch block                  e.printstacktrace();                 resultado.seterror(-1);                 resultado.setdescripcion_error(e.getmessage());                 try {                     this.conexion.rollback();                     this.conexion.setautocommit(true);                 } catch (sqlexception e1) {                     // todo auto-generated catch block                     e1.printstacktrace();                 }                 e.printstacktrace();                 return resultado;       }      }    

what wrong?.thanks

database locks happen when there uncommitted transactions pending. database waiting explicit rollback or commit.

the table waiting on cluw.pedidos appears have such transaction.

  • check see if there other users holding uncommitted transaction open
  • check see if own query tool holding open transaction (check preferences of query tool auto-commit or that)
  • check code of application see if separate connection still holding transaction open

depending on number of rows being impacted database transaction, database engines may introduce row-level-locking or table-level-locking on other changes until transaction completed.


Comments

Popular posts from this blog

Why does Ruby on Rails generate add a blank line to the end of a file? -

keyboard - Smiles and long press feature in Android -

node.js - Bad Request - node js ajax post -