jchc 发表于 2015-06-11 14:05

能用alarm()和signal()实现超时自动回滚吗

例如begin work后启动一个定时器设置超时时间;时间一到就rollback work:
int myfunction(){
EXEC SQL BEGIN WORK;
alarm(20);
signal(SIGALRM,timeout);
...
EXEC SQL COMMIT WORK;
return 0
...
}
void timeout(){
EXEC SQL ROLLBACK WORK;
}

也许某句SQL正在做耗时操作,这样时间到了能强行终止它并回滚吗?
还有timeout()执行完后会怎样?signal()语句之后的内容还执行否?
页: [1]
查看完整版本: 能用alarm()和signal()实现超时自动回滚吗