只是一個典型的RDM Embedded 10.0用戶

2 月 9

首席技術官Randy Merilatt討論了RDM Embedded 10.0的來龍去脈。作為該項目的原始開發人員之一,Randy談到了新的核心API函數,RDMe對SQL的添加以及更多內容。

在我完全擔任CTO角色之前,我仍在履行作為新SQL的主要開發人員的最終職責。 嵌入式RDM(RDMe)。在這篇博客文章中,我想介紹一下我使用RDMe的軟件工程師所擁有的一些經驗。現在,理所當然,我不是那種認為是客觀用戶的人。我毫不懷疑地有偏見。而且,我是RDMe的使用專家。畢竟,我是該產品的原始開發人員之一。但是,多年來,我一直沒有參與過任何工程開發工作,現在,我正在使用其他公司的工程產品。因此,我要分享的是真實的,我不會誇大其詞。

SQL本質上只是一個RDMe應用程序。儘管我們已經為RDMe運行時添加了一些新的核心API函數以支持SQL的需求,但是這些新函數將對所有用戶可用,因此SQL不能利用RDMe所擁有的所有用戶都無法使用的功能。由於在撰寫本文時,SQL仍在開發中,因此我必須聲明,RDMe的使用主要處於測試和調試模式。但這並不是說沒有大量使用RDMe,因為新《 SQL用戶指南》中引用的示例數據庫之一包含多個表(記錄類型),每個表包含超過100,000行(記錄出現)。為了讓您對RDMe運行時用法的廣度有所了解,本文末尾的表顯示了SQL中使用的所有核心API函數。 SQL還使用許多RDMe PSP(平台支持包)功能。

正在使用的RDMe版本是將隨SQL一起發布的新版本。它基於RDMe 10.0。我已經使用一個或多個RDMe事務性文件服務器(TFS)作為我的四核Windows 7計算機上的獨立進程運行了測試。到目前為止,在所有測試中,我自己的(新)代碼中遇到了許多錯誤,但在RDMe運行時中卻遇到了很少的錯誤。實際上,我遇到的唯一錯誤是在RDMe運行時中添加的新功能中,以支持SQL(隨後已修復)。使用RDMe 10.0系統沒有任何問題。它對我來說具有很好的性能,並且是 高可用性數據庫。實際上,這對於我們的其他RDMe 10.0用戶也是如此。自從去年7月發布以來,我們很少收到用戶對其有任何問題的報告,這歸功於Raima Q / A團隊所做的出色工作。

我之所以喜歡TFS架構,是因為它尚未崩潰。 SQL在調試會話期間經常崩潰(不可避免的內存故障等),但是TFS只是識別出斷開連接並繼續運行。因為RDMe運行時與TFS是分開的,所以應用程序破壞數據庫的難度要大得多(並非沒有可能,只是難度更大)。我尚未在SQL的測試和調試中發生任何數據庫損壞。

我也喜歡只讀事務處理功能,並將其使用合併到新的SQL的SELECT語句處理中。使用只讀事務模式時,執行SELECT語句將自動發出d_trrobegin調用,而不是發出所需的表讀取鎖。不需要鎖,也不會阻塞任何數據庫操作。它非常快而且很乾淨。

如果您是RDM Embedded用戶,但尚未決定升級到版本10.0,請允許我這樣做。探索新的TFS體系結構提供的功能。我相信,您將獲得的靈活性和可靠性是值得的。

立即下載RDM Embedded

帶有X的RDMe核心API函數的列表,這些X函數指示SQL中使用的函數
*即將發布的新功能是 斜體
d_blob刪除 X d_findnm X d_recfrst X
d_blobread X d_findpm X d_reclast
d_blobseek d_fldnum d_reclock
d_blobsize X d_freeall X d_reclstat X
d_blobtell d_iclose d_recnext X
d_blobtruncate d_initfile d_recnum
d_blobwrite X d_initialize X d_recprev
d_關閉 X d_internals d_recread X
d_closetask X d_iopen X d_recset X
d_cmtype d_iopen_ptr X d_rectot X
d_connect X d_ismember X d_recwrite X
d_cotype d_isowner X d_rerdcurr
d_crget X d_keydel d_set_dberr X
d_crread X d_keydir* X d_setdb
d_crset X d_keyexist d_setfree
d_crtype X d_keyfind X d_setkey
d_crwrite X d_keyfree d_setlock
d_csmget d_keyfrst X d_setlstat
d_csmread d_keylast d_setmm
d_csmset X d_keylock d_setmo
d_csmwrite d_keylstat d_setmr X
d_csoget X d_keynext X d_setnum
d_csoread X d_keyprev X d_setom
d_csoset X d_keyrdstate X d_setoo
d_csowrite d_keyread X d_setor X
d_curkey d_keystore d_setpages
d_dberr d_keyszstate X d_setrm
d_dbnum X d_keywrstate X d_setro
d_dbsetini d_lmstat d_timeout X
d_dbuserid d_lock X d_trabort X
d_dbver d_makenew d_tractive X
d_decode_dba X d_members d_trbegin X
d_def_opt d_off_opt d_trdeletemark X
d_delete X d_on_opt d_trend X
d_destroy d_open X d_trmark X
d_discon X d_open_ptr X d_trprecommit
d_disdel d_opentask X d_trrobegin X
d_encode_dba d_pkeyfind X d_trroend X
d_fillnew X d_pkeynext X d_trrollback X
d_findco X d_pkeyprev d_wrcurr
d_findfm X d_rdcurr
d_findlm d_recfree

Get notified about new RDM updates

Be the first to know about new Raima Database Manager updates when they go live, use cases, industry trends and more.