⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 no.089_s00.milm

📁 一个内存数据库的源代码这是服务器端还有客户端
💻 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 + -