我的应用程序部署在不同的站点上,但使用单个数据库的集中式架构。问题是我选择序列不重复db中的数据但我们在多个站点序列重复部署的应用程序是我的代码
entryid = objDB.CallSequence("SEQ_RESULTTEST");
var query = "SELECT " + HttpContext.Current.Session["bookcode"] + "." + SQ_NAME + ".nextval from dual";
OleDbCommand cmd = new OleDbCommand(query.ToUpper(), cn);
string maxcode = cmd.ExecuteScalar().ToString();
当同时访问多个站点时,此entryid包含相同的值请建议我不应重复的内容。
答案 0 :(得分:0)
在"集中式数据库"中创建一个序列。在本地,通过数据库链接为其创建同义词。这样做,所有站点都将使用相同的序列。
以下是一个例子:
SQL> create database link dblp
2 connect to pek identified by jzv
3 using 'centralized_db';
Database link created.
SQL> -- does it work?
SQL> select * from dual@dblp;
D
-
X
SQL> -- a synonym
SQL> create synonym s_seqa for seqa@dblp;
Synonym created.
SQL> select s_seqa.nextval from dual;
NEXTVAL
----------
5354227730
SQL>