我传递的参数在Param文件中定义为: - $$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的连接,命名为instance \ adw失败。错误:" java.net.SocketTimeoutException:接收超时"。验证服务器和实例名称,并检查没有防火墙阻止到端口1434的UDP流量。对于SQL Server 2005或更高版本,请验证主机上是否正在运行SQL Server Browser服务。
.....当我在java转换中直接硬编码时,它会被传递。
请帮我解决这个问题。
注意: - 所有其他参数都很容易传递,如用户名和密码。
答案 0 :(得分:0)
如果查看会话日志的顶部,您将能够准确找到该变量的设置。我的第一个怀疑是它根本没有设置,因为你已经将语句放在参数文件的错误位置(必须与标题下面的此会话的其他参数一起用于此会话)如果您不习惯参数文件,这是最容易犯的错误