【问题标题】:How to set V$SESSION.PROGRAM via OCI?如何通过 OCI 设置 V$SESSION.PROGRAM?
【发布时间】:2020-01-12 01:50:24
【问题描述】:

使用 JDBC 瘦客户端,客户端可以配置在V$SESSION 视图的PROGRAM 列中显示的内容(这通过设置CONNECTION_PROPERTY_THIN_VSESSION_PROGRAM 连接属性来完成)。

使用 OCI 的 C 程序是否有类似的功能?

有一些方法可以使用session handle 设置CLIENT_INFOMODULEACTION 以及V$SESSION_CONNECT_INFO.DRIVER_INFO,但我找不到PROGRAM

【问题讨论】:

    标签: c oracle oracle-call-interface


    【解决方案1】:

    我还没有尝试过,但here's an archived blog post(带有示例 C 代码)关于该主题。作者说你可以通过在程序早期覆盖argv[0]来做到这一点,OCI会将该程序名称发送到服务器,例如

    prglen = strlen(argv[0]);
    strncpy(argv[0], "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", prglen);
    

    【讨论】:

    • 这是一种可能性,但这也会改变进程的ps 输出,这是不可取的。我想我可以在连接到 Oracle 之前这样做,然后恢复原始名称。
    • 凹凸。有没有人为此想出一个更清洁的解决方案?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-24
    • 1970-01-01
    • 1970-01-01
    • 2011-03-24
    • 2016-11-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多