讨论:开发三层结构系统问题的思考集,高手请进!(100分)

  • 主题发起人 主题发起人 ferris
  • 开始时间 开始时间
F

ferris

Unregistered / Unconfirmed
GUEST, unregistred user!
我的三层系统用两了种方式实现:
1 socketconnection + transaction data module + bde + odbc + sybase
2 Dcomconnection + transaction data module + bde + odbc + sybase
一:我测试的结果是两者在速度上基本一样,令我很是诧异。能解释一下吗?
二:我的DCOM好不容易才配置好(在我的开发机和服务器上),客户端程序在开发机上能正常运行,但是在别的机器就不行了,后来发现是需要将服务器程序组件导出为到客户机器上去安装,安装时无论在有没有安装delphi的机器(win2000,98还没测试)上都报错‘com+注册失败’之类,如何解决? 导出msi时候有没有什么要注意的呢?

相比之下,socket连接就方便多了,只要发布几个dll文件(midas,stdole?,stdvcl?)可以看到socket是基本不需客户端配置的

三 选用dcom的原因是因为‘听闻’(呵呵)dcom连接比socket在数据库存取,事务管理方面好得多,而且在之前得系统开发中发现socket连接在客户数接近10个(单服务器)时会显得很慢,而且很容易僵死。
但是我却发现两者得速度没有想象中差距大。不知是不是我对三层的理解不够,抱着c/s的概念来写三层所致?
四 使用DCOM本来该用ADO的,但是系统的选型为SYBASE ASE 12.5 ,我无法找到它对ADO的支持,我的系统结构还有可改进的地方吗? bde+odbc访问SYBASE--可有更好的方案?
请恕小弟冒昧,一问就是一大箩筐,然而疑惑在胸,不吐不快,特向各位资深DFW请教,
解我困惑,不胜感激!
 
奇怪,居然没有归到midas/DOCM栏目去,我记得我是选了得
 
看错了,我的三层是在看 chenlili,房客 的帖子中学会的,两位dfw现在何处?
 
“socket连接在客户数接近10个(单服务器)时会显得很慢”
應該是你的程序沒有設計好吧?我40多個用戶都不覺得慢。
 
to aleyn:
可以讲解一下你的socket连接时的设计吗?客户端,appserver,数据库连接这三方面分别是如何部署的?
 
今天仔细看了看,在我的win2000 管理工具->组件服务 栏目中
我在服务器端是这样做之后,开发机客户端程序能够连接上服务器的
将我的服务器组件添加到 COM+ QC Dead Letter Queue Listener 的下属组件中
并做好相应的权限配置。这样做的后果就是导出的msi在别的机器上安装时注册失败(已经分发注册过midas.dll)。于是我就将组件从COM+ QC Dead Letter Queue Listener中删除,运行tregsvr -u 将组件unregister,然后重新一步步做,在 组件服务的 COM+应用程序中新建一个程序,将我的服务器组件加入,配置相关权限(dcomcnfg)但是开发机无法连接上。
 
高手来救我啊[:(]
 
关于三层构架的设置部署,使用“全文检索”搜索可以找到很多
关于Sysbase我没用过,DELPHI也很久没用,帮不上什么忙,见谅!
 
ZRWeng能来看看我就已经很感谢了,我在论坛和离线数据库都上查过了,帖子也都看过,可惜都帮助不大。
 
不好意思 我不懂 55~~
 
不好意思, 没有这方面的实践经验...
 
DCOM是安装在Win2kServer吗?开发DCOM的机器是什么操作系统?
我曾经遇到的一种情况是,在WinXp下开发的COM+装在win2003,winxp,win2k(sp3)都可以,
就是装在win2k Server下注册失败,后来在Win2k Server下重新编译一次再导出MSI 安装就可以了,你可以试试
 
开发机器是2000 profassional
服务器是2000 ADVANCED SERVER
ZRWeng 提醒了我,可能和操作系统的sp有关,我试试看
 
没有效果,艾
 
我有一个经验不知道对你有没有帮助
如果在xp下写的com+服务导出为.msi文件在win2000的操作系统上装
会出现"com+注册失败",但如果是在win2000下写的com+服务导出为.msi
再在其他装有win2000的机器上装就不会有问题.
好象"com+注册失败"跟操作系统的版本有些关系
 
注册失败的问题已经解决,我新建了一个com+应用程序,将组件添加进去,然后导出就ok了。
对于DCOM的配置我这次算是弄得比较清楚了。
我得服务端程序必须作为一组件添加到COM+ QC Dead Letter Queue Listener 中,
服务器才能正常监听客户程序。
我的程序跑起来了,接下来该好好花功夫调整系统的性能了。
项目月底就要初验了,真累啊。
 
就这样结束了吧,以后谁有dcom的配置问题可以来问我了,这一次差不多什么问题都碰过了
 
后退
顶部