预览加载中,请您耐心等待几秒...
1/4
2/4
3/4
4/4

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

在AX项目实施中,AOS服务异常暂停是大家比较容易遇到的问题,也是较为棘手和迫切需要解决的问题之一。在这里来探讨一下常见的原因和可能的解决方法。AOS服务异常暂停的原因,总的来说,主要有三个方面:1.OrphanedAXsessions。2.系统资源耗尽。3.网络因素。我们在这里主要讨论OrphanedAXSessions。什么是OrphanedSessionOrphanedSession,中文直译过来就是孤儿对话,其实就是对话(Session)还在保持一个活动的状态,但是原来使用该对话连接到AOS的客户端已经关闭了。那么其实这个时候AOS服务的自动重起或者暂停,都是属于一种自我保护措施,以释放占用的资源。为什么会产生OrphanedSessionOrphanedSession的产生是因为客户端在关闭的时候,却无法同时释放它所占有的网络连接。这里列出几个常见的,导致产生OrphanedSession的情况:a.强行关闭AX客户端b.客户端崩溃c.与终端服务器(terminalserver)的设置与配置有关d.W3wp.exe的强行关闭(EnterprisePortal)e.网络断开f.强行关闭Comconnector/.NETBusinessconnector客户端,或者因为代码原因导致Comconnector/.NETBusinessconnector客户端未能释放网络连接。那么OrphanedAXSession的产生,我们可以从事件查看器中找到一下类似的日志: EventID180 ObjectServerX:RPCerror:ClientprovidedaninvalidsessionIDX ObjectServerX:RPCerror:Clientprovidedaninvalidcontext RPCexception1726occurredinsessionX EventID186 SPIDSPID_numberforSessionIdX,isstillpresentinthedatabase.PleasedeletetheSPIDfromthedatabase. EventID110 ObjectServerX:NopingfromX.Terminatingthesession. 复制代码 查找产生OrphanedAXSession的原因那么当我们根据所产生的日志来判定,AOS服务异常暂停是因为OrphanedSessions所导致的话,我们该怎样来判定具体是由什么原因造成的呢?首先先找到到底是哪个用户的session导致的,通常我们可以通过以下语句来找到 select*fromsysuserlogwherelogoutdatetime=0andsessionid=x(AX2009) 复制代码 或者 select*fromsysuserlogwherelogouttime=0andsessionid=x(AX4) 复制代码 2010-4-1921:30上传 HYPERLINK"http://www.mbscn.net/forum.php?mod=attachment&aid=MTk5M3wwNjRjZWZkOXwxMjk2OTkxODE5fDU3NzAw&nothumb=yes"\o"OrphanedSession1.png下载次数:0"\t"_blank"下载附件(83.23KB) 特别要注意的是UserId和ComputerName。找出用户之后,可以通过询问用户来找出到底用户采取了什么活动导致客户端未能正常关闭。譬如说,有些用户喜欢用Windows任务管理器来关闭AX客户端,或者用户在使用某个客户化功能的时候发生了AX客户端异常关闭。当情况属于上面所说的后者的时候,我们就可以去检查客户化代码,找出导致出现OrphanedSessions的原因。使用终端服务器所导致的Orphanedsessions在生产环境中,客户会经常使用终端服务器(TerminalServer)来连接到AOS服务。那么有些用户会使用远程桌面(Remotedesktop)来登录终端服务器,可是当使用完AX的时候,有时候不是登出(Logout)而是直接中断(Disconnect)远程桌面连接,这个时候就会产生问题。因为用户中断远程桌面连接,该用户的AXSession还是处于激活(Active)状态。但是终端服务器的Timeout时间设定往往会小于AXSession的Timeout时间设定。就造成了终端服务器的session已经关闭了,可是AXSession还没有关闭,这个时候也会产生OrphanedSessions。我们通过上面的描述,清除了解了终端服务器所导致的Orphanedsessions的原因,那么我们