📄 no.089_s00.milm
字号:
# >Number: 89include "mil_algebra_procs";include "mil_insert";include "mil_system_procs";# >Category: Mserver# >Synopsis: abort doesn't work right when BATs are unloaded# >Confidential: no# >Severity: serious# >Priority: high# >Responsible: boncz# >State: open# >Class: sw-bug# >Submitter-Id: unknown# >Arrival-Date: Mon Dec 1 14:49:04 1997# >Originator: windhouw# >Organization:# UvA# >Release: 971007# >Environment:# # >Description:# The following problem occurs:# - I'm running a "transaction";# - I abort the transaction;# - the updates and inserts seems to be reversed;# - I quit Mserver and restart it;# - the updates and inserts are back again.# # It seems to be that BATs that are swapped out of# memory, don't take part in the abort.# # I replayed this scene by explicitly swapping the BAT# to disk:# #You are system administrator (adm)!# >module(url);# >Server := new(oid,url);# >Server.persists(true);# >Server.rename("Server");# >Server.insert(oid(1),url("http://www.cwi.nl/")); # >Server.print;# #---------------------------------## # oid | Server ## #---------------------------------## [ 1@0, http://www.cwi.nl/ ]# >Server.unload;# >abort;# >Server.print;# #-----------------## # oid | Server ## #-----------------## ... QUIT & RESTART ...# #You are system administrator (adm)!# >module(url);# >Server.print;# #---------------------------------## # oid | Server ## #---------------------------------## [ 1@0, http://www.cwi.nl/ ]# # As this problem frequently occurs while testing my# application, my database gets inconsistent which# leads to runtime errors in the odmg packages (like# oid not found in the extent), while abort should# give me the possibilty to get back to the previous# consistent state of the database.module(url);var Server:= new(oid,url).persists(true).rename("Server");var Server2:= new(oid,url).persists(true).rename("Server2");var Clients:= new(oid,int).persists(true).rename("Clients");var Clients2:= new(oid,int).persists(true).rename("Clients2");commit();Server.insert(oid(1),url("http://www.cwi.nl/")); Server2.insert(oid(1),url("http://www.cwi.nl/")); Clients.insert(oid(1),3); Clients2.insert(oid(1),3); Server.print();Server2.print();Clients.print();Clients2.print();dir("Server");dir("Clients");unload("Server");unload("Clients");dir("Server");dir("Clients");abort();dir("Server");dir("Clients");Server.print();Server2.print();Clients.print();Clients2.print();quit();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -