zoukankan      html  css  js  c++  java
  • 避免因为Arcgis Server服务设置不当导致Oracle Process溢出的方法

    我之前写过一篇文章《arcsoc进程无限增长导致oracle processes溢出》(见链接:https://www.cnblogs.com/6yuhang/p/9379086.html),后来我觉得没有说清楚,所以有了这一篇文章。

    1、问题说明

    对于ORACLE数据库,若用户密码已过期(即account_status为' EXPIRED'),当过期之后首次登陆数据库时(若登陆成功,会创建服务端process进程),数据库会要求首先设置新的密码,否则无法创建新的会话(session),如下图:

    若Arcgis Server地图服务的数据源是oracle,当用户密码已过期,在地图服务实例新建一个数据库连接后,由于未首先设置新的密码,当前的连接会一直"挂起"在设置新密码的状态。如果service服务还配置了多实例、高隔离等,那么每一个实例在连接数据库时,都会重复上述的过程,即创建了server process,但该process会一直"挂起" 。随着用户请求次数的增多,会导致server process很快超过数据库所设置的processes参数。

    2、调整方法

    2.1 检查是否有用户密码过期

    以sys用户登陆,执行如下的匿名存储过程,检查疑似密码已过期的用户。

    declare

    tcgs number;

    begin

    dbms_output.enable(1000000000);

    dbms_output.put_line('检查如下用户,他们的密码已过期且用户下存在图层:');

    for u in (select username from dba_users where account_status = 'EXPIRED')

    loop

    execute immediate 'select count(1) from dba_tab_columns where data_type in (''ST_GEOMETRY'' ,''SDO_GEOMETRY'') and owner=:1' into tcgs using u.username;

    if tcgs > 0 then

    dbms_output.put_line(u.username);

    end if;

    end loop;

    end;

    2.2 调整地图服务配置

    调整每个服务的配置信息,具体如下:

    1. 将空间实例可持续运行的最长时间由1800s降低到600s

    1. 将实例的隔离级别设置为"低隔离性",如下图:

    1. 可适当降低"每台计算机上最大实例数"。

    2.3 将数据库专有连接模式改为共享连接模式

        以sys用户登陆,执行如下的命令。

        alter system set dispatchers='(PROTOCOL=TCP)(DISPATCHERS=3)' scope=both;

     alter system set max_dispatchers = 10 scope=both;

     alter system set shared_servers = 10 scope=both;

     alter system set max_shared_servers = 40 scope=both;

     alter system set shared_server_sessions = 100 scope=both;

    2.4 使用户密码永不过期

    如果管理上允许设置用户密码永不过期,可以sys用户登陆,执行如下命令:

    alter profile default limit password_life_time unlimited;

  • 相关阅读:
    C++字符串函数之append()、insert()
    492. Construct the Rectangle(LeetCode)
    桶排序
    104. Maximum Depth of Binary Tree (LeetCode)
    557. Reverse Words in a String III(LeetCode )
    基数排序(LSD)
    500. Keyboard Row
    输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
    myeclipse打断点进入后无法查看变量的值的解决方法
    可参考的js代码
  • 原文地址:https://www.cnblogs.com/6yuhang/p/12045711.html
Copyright © 2011-2022 走看看