将mod_plsql应用程序迁移到Oracle REST数据服务

时间:2015-02-05 10:14:47

标签: oracle weblogic oracle-apex oracle-fusion-middleware mod-plsql

我在MOS Doc ID 1945619.1上读到,从12.1.3 Oracle HTTP Server(OHS)开始,mod_plsql功能已被弃用,不会包含在12.2 Oracle HTTP Server中。

对于未来,Oracle建议迁移到Oracle REST数据服务(以前称为Oracle APEX侦听器)作为mod_plsql的替代方案。

我们的商店有很多mod_plsql应用程序(即使用HTP / HTF程序包编写的应用程序)。由于我对Oracle REST数据服务一无所知,因此我会问您是否可以在不更改代码的情况下将旧应用程序迁移到此新产品。

谢谢。

亲切的问候,克里斯蒂安

3 个答案:

答案 0 :(得分:2)

我的商店与你的情况差不多。 我们还有一些非常大的基于mod_plsql / htp的应用程序,并且必须在某些时候迁移到Oracle REST数据服务。

我们已经花了很多时间测试不同的ORDS配置,我们的总体结论是:

  • 仅支持APEX应用程序
  • 关键功能仍然可用
  • 难以配置和维护
  • 轻微的性能下降
  • 某些mod_plsql配置选项不再存在或已更改

当使用非APEX(纯HTF / HTP)应用程序时,我们目前面临的最大问题(实际上阻止我们切换到ORDS)是一些限制。 我们已经提交了一些SR,因为ORDS中的某些功能(例如文件上传和下载API)仅在运行APEX应用程序时可用。

答案 1 :(得分:2)

Doug McMahon(Oracle员工)为Apache提供了一个很棒的开源模块。 Apache PL / SQL网关模块 (mod_owa)

https://oss.oracle.com/projects/mod_owa/dist/documentation/modowa.htm

我在生产环境中使用它,我强烈推荐它。它非常快,坚如磐石。

您需要进行一些编译,但值得的是能够使用Apache 2.4和mod_plsql。

步骤:

  1. 下载httpd 2.4。?来自apache.org + extract
  2. 如果Centos 6或更低版本下载apr和apr-util
  3. 使用enable-so,make和make install进行配置

    ./ configure --enable-so --with-apr = / usr / local / apr --with-apr-util = / usr / local / apr

  4. 下载mod_owa +解压缩

  5. 创建空目录。复制" apache24"中的所有文件进入新文件夹。复制" src"中的所有文件到新文件夹

  6. 输入新文件夹并编辑modowa.mk< - 重要添加$ ORACLE_HOME,编辑APACHE_TOP

  7. 将mod_owa.so复制到apache的模块

  8. 在Apache的conf / dir中添加modowa.conf。

  9. 示例modowa.conf:

    loadModule owa_module modules/mod_owa.so
    
    <Location /pls>
        Options        None
        SetHandler     owa_handler
        OwaUserid      user/pass
        OwaNLS         AMERICAN_AMERICA.AL32UTF8
        OwaPool        100
        OwaStart       "package.procedure"
        OwaDocProc     "wwv_flow_file_mgr.process_download"
        OwaDocTable    photos_upload BLOB_CONTENT
        OwaUploadMax   50M
        OwaCharset     "utf8"
        order          deny,allow
        allow          from all
        OwaReset       LAZY
        OwaCharsize    4
        OwaFlex        package.procedure
        OwaHttp        REST 
    </Location>
    

    在启动httpd ORACLE_HOME之前,需要设置NLS_LANG(如果是本地,也需要设置ORACLE_SID)。它需要使用libclntsh.so访问Oracle Home。 (Oracle客户端会这样做)。

    我只是在/etc/ld.so.conf.d(+ ldconfig)下添加了oracle.conf(oracle home / lib的一行完整路径)

    真正的可扩展性和更清洁的设置然后OHS。

答案 2 :(得分:1)

克服的最大障碍是建立Oracle Rest Services(ORS)并确保其安全。完成此操作后,您的Web工具包应用程序将起作用。该网址可能会略有变化,因此如果您使用完整路径引用网址而不是相对路径,则可能需要修改代码。

我不确定ORS在mod_rewrite,mod_proxy,具有多个ip地址的虚拟主机等领域是否像Apache一样强大......