【问题标题】:jmeter connectivity issue with oracleoracle的jmeter连接问题
【发布时间】:2026-02-07 02:50:02
【问题描述】:

响应消息:java.sql.SQLException:无法创建 PoolableConnectionFactory (ORA-00604: 递归 SQL 发生错误 级别 1 ORA-12705: 无法访问 NLS 数据文件或无效环境 指定)

【问题讨论】:

    标签: database oracle testing jmeter connectivity


    【解决方案1】:

    按照此过程为 Oracle 数据库设置 NLS_LANG 环境变量。为 Oracle 数据库设置 NLS_LANG 环境变量 确定 NLS_LANG 值。在数据仓库数据库中,运行命令 SELECT * FROM V$NLS_PARAMETERS

    记下 NLS_LANG 值,其格式为 [NLS_LANGUAGE]_[NLS_TERRITORY].[NLS_CHARACTERSET]。例如: American_America.UTF8 对于 Windows:导航到控制面板 > 系统并单击高级选项卡。单击环境变量。在系统变量部分中,单击新建。在变量名称字段中,输入 NLS_LANG。在变量值字段中,输入在步骤 1 中返回的 NLS_LANG 值。NLS_LANG 值的格式应为 [NLS_LANGUAGE]_[NLS_TERRITORY].[NLS_CHARACTERSET]。例如:American_America.UTF8。对于 UNIX,如下所示设置变量:setenv NLS_LANG

    例如:setenv NLS_LANG American_America.UTF8。如果您的数据是 7 位或 8 位 ASCII 并且 Informatica 服务器在 UNIX 上运行,则设置 NLS_LANG _.WE8ISO8859P1 注意:确保按照此过程中所述正确设置 NLS_LANG 变量,否则您的数据将不会显示正确。

    创建变量后重启机器。

    验证查询应在 JDBC CONNECTION CONFIGURATION 中的 jmeter 中更改为“select 1 from dual”。

    不要放分号;在 JDBC REQUEST 中的查询结束时

    【讨论】:

      【解决方案2】:

      我刚刚从 JMeter 3.2 升级到 4.0 时遇到了这个问题。

      我以前工作的脚本无法运行,我收到了上述错误。

      我没有选择去更改 Oracle 数据库的 NLS_LANG 环境变量。

      我的解决方案是简单地更改 JMeter.bat 并且 NOT 传递 JMETER_LANGUAGE

      即在 JMeter.bat 中:

      if not defined JMETER_COMPLETE_ARGS (
          rem set ARGS=%JAVA9_OPTS% %DUMP% %HEAP% %VERBOSE_GC% %GC_ALGO% %DDRAW% %SYSTEM_PROPS% %JMETER_LANGUAGE% %RUN_IN_DOCKER%
          set ARGS=%JAVA9_OPTS% %DUMP% %HEAP% %VERBOSE_GC% %GC_ALGO% %DDRAW% %SYSTEM_PROPS% %RUN_IN_DOCKER%
      ) else (
          set ARGS=
      )
      

      【讨论】: