sp_engine {"online" | [offline | can_offline][, <engine_id>] |
["shutdown", <engine_id>]}
"online"
使引擎联机。sp_configure "max online engines" 的值必须大于当前联机引擎的数量。指定 "online" 使用引号,因为它是一个保留的关键字。
在线程化模式中,online 会使 syb_default_pool 的线程计数增加 1。
offline
使引擎脱机。还可以使用
在线程化模式中,offline 会使 syb_default_pool 的线程计数减少 1。
can_offline
返回有关是否可以使某个引擎变为脱机的信息。如果其状态是 online,则 can_offline 返回具有此引擎密切连接的 SAP ASE 任务(例如,在 Omni 或 java.net 任务中)。如果未指定
在线程化模式中,只有在引擎总数小于 syb_default_pool 中的线程总数且 syb_default_pool 中的线程总数大于或等于 2 时,can_offline 才会成功。
<engine_id>
引擎的 ID。<engine_id>,则 sp_engine 对 sysengines 中找到的引擎的值使用 <engine_id> 的递增或递减值。也就是说,如果系统使用引擎 0、1、2 和 3,并且您未指定引擎 ID,则 sp_engine 先将引擎 ID 3 脱机,然后将引擎 ID 2 脱机,依此类推。
线程化模式中忽略此参数。
"shutdown"
强制引擎脱机。如果有任何任务与此引擎关联,则在等待 5 分钟后注销这些任务。指定 "shutdown" 使用引号,因为它是一个保留的关键字。
使引擎 1 联机。消息是平台特定的(本例使用 Sun Solaris):
sp_engine "online", 1
02:00000:00000:2001/10/26 08:53:40.61 kernel Network and device connection
limit is 3042.
02:00000:00000:2001/10/26 08:53:40.61 kernel SSL Plus security modules
loaded successfully.
02:00000:00000:2001/10/26 08:53:40.67 kernel engine 2, os pid 8624 online
02:00000:00000:2001/10/26 08:53:40.67 kernel Enabling Sun Kernel
asynchronous disk I/O strategy
00:00000:00000:2001/10/26 08:53:40.70 kernel ncheck: Network fc0330c8
online
介绍使引擎脱机的步骤,当前正在运行具有该引擎密切连接的任务:
select engine, status from sysengines
engine status
------ ------
0 online
1 online
2 online
3 online
如果要让引擎 1 脱机:
sp_engine offline, 1
The following task(s) will affect the offline process:
spid: 19 has outstanding ct-lib connections.
然后运行与上面相同的查询,它现在显示引擎 1 处于脱机状态:
select engine, status from sysengines
engine status
------ ------
0 online
1 in offline
2 online
3 online
具有引擎 1 密切连接的任务一完成,SAP ASE 服务器就会向错误日志发出一个类似以下内容的消息:
02:00000:00000:2001/10/26 09:02:09.05 kernel engine 1, os pid
8623 offline
确定是否可以使引擎 1 脱机:
sp_engine can_offline, 1
使引擎 1 脱机:
sp_engine offline, 1
SAP ASE 服务器最终返回类似于以下内容的消息:
01:00000:00000:2001/11/09 16:11:11.85 kernel Engine 1 waiting for
affinitated process(es) before going offline
01:00000:00000:2001/11/09 16:11:11.85 kernel Process 917518 is preventing
engine 1 going offline
00:00000:00000:2001/11/09 16:16:01.90 kernel engine 1, os pid
21127 offline
关闭引擎 1:
sp_engine shutdown, 1
select engine, status from sysengines
where status = "online"
有时,当您使用 sp_engine "offline" 时,引擎不会立即脱机,而看上去是在引擎表中处于“休眠”状态。
这种情况是不能将附加到引擎的进程迁移到其它引擎导致的。当出现这种情况时,引擎不会接受新的工作,并消耗最低的 CPU 周期。当妨碍 engine offline 完成的进程结束或可进行迁移时,引擎将从休眠状态变为完全脱机状态,并从引擎表中消失。
sp_engine "shutdown" 是 offline 命令的一个强制性更强的版本。sp_engine "shutdown" 过程将主动注销妨碍引擎脱机的任何进程,强制引擎关闭。
但是,如果对具有客户端库或 Java 连接的引擎使用 sp_engine "shutdown",则会看到:
引擎存在尚未完成的 ct-lib/java 连接,因而无法使之脱机。
当出现这种情况时,请每隔几分钟就重复执行该命令,直到连接消失,这时便可以关闭引擎了。