问题描述: 最近有个项目,就是说让服务器端采用WCF作为数据访问器来操作数据库,客户端不能直接连接数据库、看了一些WCF并发模型的文章、还是不懂像我这种情况:“ 需要很多客户端调用WCF服务获取数据库,万一同时获对一张表操作会不会有问题?”,望各位不吝赐教、本人水平有限、谢谢
5 个解决方案
#1
同时对一张表操作,跟你用不用WCF没有任何关系.
如果不用WCF,你只能去调用数据库里的存储过程,而用了WCF,而且确定所有客户端都访问WCF,没有直接访问数据库的,你可以在WCF多线程里给事务加锁,每次只能有一个线程去调用.
如果不用WCF,你只能去调用数据库里的存储过程,而用了WCF,而且确定所有客户端都访问WCF,没有直接访问数据库的,你可以在WCF多线程里给事务加锁,每次只能有一个线程去调用.
#2
相反,如果使用了WCF,而同时还有其他客户端能够直接访问数据库(比如服务器上跑的其他程序),那你依然要在数据库里做文章
WCF只不过起到"桥"的作用,转换了一下数据格式,不能从根本上解决脏数据的问题
想解决这个问题,你需要自己做逻辑,跟使用什么服务无关
WCF只不过起到"桥"的作用,转换了一下数据格式,不能从根本上解决脏数据的问题
想解决这个问题,你需要自己做逻辑,跟使用什么服务无关
#3
wcf是解决数据通信的,一个客户端和100个客户端都没问题。
你说的问题可以自己做数据锁定,表锁定,记录锁定等等。
你说的问题可以自己做数据锁定,表锁定,记录锁定等等。
#4
谢谢二位的回答、是这样、我现在困扰的是,假设有10个客户端通过调用服务器的方法去操作数据库的同一个资源、
我想得到的效果是客户端之间互不影响且都有一个WCF客户端实例,就是同时让你这么多客户端去提出请求,WCF服务器端
也同时接受请求,这时候WCF服务器端需要做些什么才能达到这个效果。 如果是一个一个来处理客户端请求,肯定效率上太低了。
#5
侦听请求肯定是只能在一个线程来处理
接到请求后可以为每个用户动态开个线程去执行,或者用线程池.
对于资源,要加锁,保证同时只有1个线程访问.
接到请求后可以为每个用户动态开个线程去执行,或者用线程池.
对于资源,要加锁,保证同时只有1个线程访问.
#1
同时对一张表操作,跟你用不用WCF没有任何关系.
如果不用WCF,你只能去调用数据库里的存储过程,而用了WCF,而且确定所有客户端都访问WCF,没有直接访问数据库的,你可以在WCF多线程里给事务加锁,每次只能有一个线程去调用.
如果不用WCF,你只能去调用数据库里的存储过程,而用了WCF,而且确定所有客户端都访问WCF,没有直接访问数据库的,你可以在WCF多线程里给事务加锁,每次只能有一个线程去调用.
#2
相反,如果使用了WCF,而同时还有其他客户端能够直接访问数据库(比如服务器上跑的其他程序),那你依然要在数据库里做文章
WCF只不过起到"桥"的作用,转换了一下数据格式,不能从根本上解决脏数据的问题
想解决这个问题,你需要自己做逻辑,跟使用什么服务无关
WCF只不过起到"桥"的作用,转换了一下数据格式,不能从根本上解决脏数据的问题
想解决这个问题,你需要自己做逻辑,跟使用什么服务无关
#3
wcf是解决数据通信的,一个客户端和100个客户端都没问题。
你说的问题可以自己做数据锁定,表锁定,记录锁定等等。
你说的问题可以自己做数据锁定,表锁定,记录锁定等等。
#4
谢谢二位的回答、是这样、我现在困扰的是,假设有10个客户端通过调用服务器的方法去操作数据库的同一个资源、
我想得到的效果是客户端之间互不影响且都有一个WCF客户端实例,就是同时让你这么多客户端去提出请求,WCF服务器端
也同时接受请求,这时候WCF服务器端需要做些什么才能达到这个效果。 如果是一个一个来处理客户端请求,肯定效率上太低了。
#5
侦听请求肯定是只能在一个线程来处理
接到请求后可以为每个用户动态开个线程去执行,或者用线程池.
对于资源,要加锁,保证同时只有1个线程访问.
接到请求后可以为每个用户动态开个线程去执行,或者用线程池.
对于资源,要加锁,保证同时只有1个线程访问.