有时候我们需要弹出个提示框然后让它自己关闭,然而实际使用中的弹出框确实阻塞进程,网上貌似有一种另类的解决方式,大致思路是把弹出框放到另外的一个窗体上,直接贴代码 主窗体 using System; using System.Windows.Forms; namespace WinForm { public partial class MainForm : Form { public MainForm() { InitializeComponent(); } private void button
select A.SPID as 被阻塞进程,a.CMD AS 正在执行的操作,b.spid AS 阻塞进程号,b.cmd AS 阻塞进程正在执行的操作 from master..sysprocesses a,master..sysprocesses b and a.blocked= b.spid exec sp_who 'active'--查看系统内所有的活动进程 BLK不为0的为死锁 --返回某个进程对资源的锁定情况 )--返回对象ID对应的对象名 )--显示从客户端发送到服务器的最后一个语
public class WinMessageHelper { private struct COPYDATASTRUCT { public IntPtr dwData; public int cbData; [MarshalAs(UnmanagedType.LPStr)] public string lpData; } //使用COPYDATA进行跨进程通信 public const int WM_COPYDATA = 0x004A; [DllImport("User32.dll",
1.故障现象描述 2.确认故障现象 3.排查ASM层面 4.解决问题 1.故障现象描述 环境:AIX 7.1 + Standalone Oracle 11.2.0.4 现象:客户反映某11g版本的ADG备库无法正常进行任何查询,数据库alert发现ORA-00494:enqueue [CF] held for too long (more than 900 seconds) by 'inst 1, osid 18875390'. 2.确认故障现象 登录到db实例,尝试查询select open_
修改或删除数据前先备份,先备份,先备份(重要事情说三遍)! 1.首先,查看线程,分析是否存在阻塞进程,blocked>0都是当前被阻塞的进程 SELECT * FROM sysprocesses where blocked >0 order by blocked ; 2.找到被阻塞的线程后,想要继续查看进程被谁阻塞,分析导致阻塞的源头 SELECT * FROM SYSPROCESSES WHERE spid =spid_no(这是你要分析的进程ID) 3.查看此进程执行的SQL 是哪个,查