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
Post a Comment