0

我正在传递一个参数,该参数定义为:-$$SQL_DB_CONNECT_STRING在参数文件中,例如:-

$$SQL_DB_CONNECT_STRING = jdbc:sqlserver://TEST10.ad.test.com\adw;databaseName=TT_FIL_DB;selectMethod=cursor

我通过调用表达式然后在 JAVA 转换中使用此参数,例如:-

$$SQL_DB_CONNECT_STRING [parameter File] --> o_SQL_DB_CONNECT_STRING [expression Transformation] --> SQL_DB_CONNECT_STRING [Java Transformation] like:-

String db_connect_string = SQL_DB_CONNECT_STRING;

当我运行工作流程时,它会出现错误:-

错误:- [错误] com.microsoft.sqlserver.jdbc.SQLServerException:与主机 TEST10.ad.test.com 的连接,命名实例 \adw 失败。错误:“java.net.SocketTimeoutException:接收超时”。验证服务器和实例名称,并检查没有防火墙阻止 UDP 流量到端口 1434。对于 SQL Server 2005 或更高版本,验证 SQL Server Browser 服务是否正在主机上运行。

.....当我直接在java转换中对其进行硬编码时,它就通过了。

请帮我解决这个问题。

注意:- 所有其他参数都可以轻松传递,例如用户名和密码。

4

1 回答 1

0

如果您查看会话日志的顶部,您将能够准确找到该变量设置的内容。我的第一个怀疑是它根本没有设置,因为您将该语句放在参数文件中的错误位置(必须与此会话的其他参数一起位于标头下方,标识这些参数用于此会话)如果您不习惯参数文件,这是最容易犯的错误

于 2017-05-29T18:20:44.693 回答