返回列表 发帖

[V5、V6、V7功能解说] 如何增加内存——报错“无更多可用内存”

问题汇总
在有些情况下,在X3中运行了一个要求非常高的程序之后,或者在通过复杂的单据向下挖掘多个功能之后,你或许会遭遇到这个问题:“无更多可用内存”。


管理模块
该解决方案适用于下列版本:Sage X3 V5、V6、V7


详细说明
这往往是因为在运行了一个消耗大量内存的程序之后,或者在打开太多大屏幕之后,你的会话缺少可用的内存。

Sage ERP X3中的内存是按账套以及按会话(也就是每个用户或批次连接)分配的。每个会话的最大内存设置存储在应用服务器上一个名为APL.ini的文件里。在账套功能的记录中也有录入内存设置,而这个值在每次审核账套记录时都会更新至APL.ini中。


解决方法
要想增加每次连接可用的最大内存,请访问应用服务器,并前往根账套目录(例如:D:SageX3V6Folders)。这通常是在和Runtime目录在同一层级的。

在这个目录中的每个X3账套内(包括实际的“X3”目录),你会找到一个名为APL.ini的文件,包含了一定数量的参数,格式为[parameter]=[value]。

maxmem参数表示每个会话允许使用的最大内存,以Kb(千字节)表示。通常这个参数是设为20Mb(20480)的。你可以根据服务器的能力以及预期连到X3的并发连接数来增加这个数值。

例如,如果在你的X3环境中有两个账套,PILOT和LIVE。你可以将FoldersPILOT和FoldersLIVE中的两个APL.ini文件的内存每个都增加至100Mb,只需将maxmem行更改为:
maxmem = 102400

你还可以增加sadmem的值,也就是说与数据库“交谈”的sadora或sadoss进程(Oracle和SQL Server)允许的最大内存。除非你经常运行非常大型的查询,否则这些进程所需的内存少于应用程序所需的内存。

如果你将这两个账套的maxmem值增加至100Mb,而X3账套的maxmem保持在20Mb,同时假设你希望最多能有100个并发用户连接,外加一些X3账套的连接,你的应用服务器最大可能耗用的量为:
100*100Mb + 2*20Mb = 10040Mb,这样就已经是10Gb不到一点了。

返回列表