EAServer 新手上路----JaguarCts开发者必读
2024-07-21 02:11:15
供稿:网友
sybase enterprise application server新手上路
sybase easerver的文章也有一些,很少提及到开发中的一些细节问题。本人从事jaguarcts开发不久,遇到了许多细节问题,想来刚从事jaguarcts开发者也会遇上,以做参考,另则心中还存有许多问题,故撰此文,起抛砖引玉之效,望jaguarcts高手能释疑,深表感谢。
一、系统配置部分:
1、 运行环境:
win2000 server版,sp2补丁,p3850cpu,pb8.0beta+easerver3.6.1。
2、 运行环境安装注意事项:
在开发环境中jaguarcts服务器不要安装成nt服务,因为开发中经常修改jaguarcts组件,会出现“object can‘t save”的错误,若不是nt服务,用jaguar server(debug)。出现此类错误后重启动j aguar server(debug)即可。若安装成nt服务可用以下指令删除:
serverstart servicename -remove (serivename是nt服务中jaguar的服务名)
win2000 server版一定要打补丁,其实sp1也可,否则无法生成代理(proxy)。
3、 启动jaguar管理器(图(一))
(a) jaguarmagager菜单tool/connect/ jaguar manager。
(b) 点profile manager可以新增一个profile。
(c) 在user name 中输入jagadmin(系统)
(d) password默认为空。
(e) host name可以是localhost。(如果你有一定的经验,它可以改为你的机器名,但在connect成功后要进去修改listener中各端口的主机名。)
4、 启动安全管理器(图(二))
(a) jaguarmanager菜单tool/connect ecurity manager。
(b) pin默认密码是“sybase”
5、 修改jagadmin的密码
(a) 当3连接成功后,在jaguarmanager中双击servers,显示当前所有服务,选一服务后击右键,在右键菜单中选server property打开属性面板。
(b) 在属性面板中选security改密码。
6、 管理连接缓冲
(a) 在jaguarmanager中双击servers,在列表中选一个server。
(b) 选install connection caches
(c) 右键,在弹出的菜单上选“create and install a new connection cache”
(d) 在弹出的窗口中输入connection cache名。
(e) 确定后就进入了connection cache配置面板。
(f) 本文以配置sqlserver为例。在general选项卡中配置:server name 为sqlserver的服务名。user name为登录sqlserver的用户id,输入password。在driver选项卡中选odbc,dll or class name 为odbc32.dll。ping一下试试。
(g) 若ping通不过,你就得看一下本文前面(3)提到的hostname你输入的是什么,若localhost就不行,改为你的机器名。
二、开发应用部分
a、服务端:
1、 新建easerver profile如下图。server name即计算机名。port number为9000,login name为jagadmin。
2、 在new----target----easerver component开始向导
3、 next-next-应用名、库文件存放-next-implement new interface--pbobjectname(n_cst_base)easerver component name--easerver profile--pakeage name(组件以包为单位,新增一个包或选一个存在的包)--component type(stadard component)--instance pooling options(supported)--transaction supported option(not supported)--interface options(next)--other options(全选)--project(next)--next--next--finish
4、 打开刚创建的组件n_cst_base,在constructor事件中:
sqlca.dbms = "mss microsoft sql server 6.x"
sqlca.database = "jaguar_2001"
sqlca.servername = "jaguarcts"
sqlca.logid = "sa"
sqlca.autocommit = false
sqlca.dbparm = ""
connect using sqlca ;
if sqlca.sqlcode = -1 then
messagebox(“system”,"数据库连接失败!"+sqlca.sqlerrtext)
end if
5、 在n_cst_base的destructor事件中:
disconnect using sqlca ;
6、 在n_cst_basek中新增一个对象函数:
of_user_login(string as_userid,string as_password) return integer
//
integer li_return
select count(*) into :li_return from jag001 where jag0101 = : as_userid and jag0102 = : as_password ;
return li_return
jag001表的字段:jag0101(varchar(20))—jag0102(varchar(20))
7、 生成组件代理对象
new--project----easerver proxy wizard一直next,值得注意的是出现一个treeview时、让你选一个包(即在3中创建的包),下一步是选一个代理库(可以选存在的pbl,也可以新增一个pbl),next后是deployment actions,要选三(代理对象名=包名+组件名)
8、 若不出意外,代理对象就生成了。
b、客户端:
1、 新建一个应用。
2、 新建一个连接对象
new--pbobject--connection object wizard其中值得注意的是connectivity options(requires easerver connection);pakage name即3中创建的包。connection object名可以默认,也可以自已输入;resource of connect information可以任选一种。
3、 在新应用的open事件:
n_cst_connect inv_connect_srv //2创建的连接对象声明
jaguar_2001_n_cst_base inv_login_srv //代理对象声明
integer li_return
inv_connect_srv = create n_cst_connect
li_return = inv_connect_srv.connecttoserver( )
try //创建代理对象inv_login_srv
li_return =
inv_connect_srv.createinstance(inv_login_srv,"jaguar_2001/n_cst_base")
catch (cts_pbuserexception uae)
li_return = 999
end try
if li_return <> 0 then
messagebox("error info", "errorcode= " + string(inv_connect_srv.errcode) + "~nerrtext= " + inv_connect_srv.errtext)
end if
try // 进行登录,表中有一行数据(xzh2000,000000)
li_return = inv_login_srv.of_user_logon(‘xzh2000’,’000000’)
catch (cts_pbuserexception uae1)
li_return = 999
end try
if li_return = 1 then
messagebox(“system”,”ok”)
else
messagebox(“system”,”cancel”)
end if
三 说明:
本文是在jaguar manage(debug)启动情况下通过,如有疑问,请发email:至:[email protected]