通过命令行获取Informatica运行日志

本文遵循BY-SA版权协议,转载请附上原文出处链接。


本文作者: 黑伴白

本文链接: http://heibanbai.com.cn/posts/cb38ffff/

通过命令行获取Informatica运行日志

获取最近运行的工作流的日志事件

GetWorkflowLog

获取最近运行的工作流的日志事件。运行此命令时,PowerCenter 存储库服务必须正在运行。

官方链接:

GetWorkflowLog (informatica.com)

示例:

1
sh infacmd.sh isp getworkflowlog -dn Domain_infa -un user -pd passwd -wf wf_crt_fa_vw_csnjzjzj -is infa_dev_int -rs infa_dev_rep -fn test -rp user2 -ru passwd2

infacmd isp GetWorkflowLog 命令使用语法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
GetWorkflowLog

<-DomainName|-dn> domain_name

[<-UserName|-un> user_name]

[<-Password|-pd> password]

[<-SecurityDomain|-sdn> security_domain]

[<-Gateway|-hp> gateway_host1:port gateway_host2:port...]

[<-ResilienceTimeout|-re> timeout_period_in_seconds]

[<-Format|-fm> format_TEXT_XML_BIN]

[<-OutputFile|-lo> output_file_name]

<-IntegrationService|-is> integration_service_name

<-RepositoryService|-rs> repository_service_name

[<-RepositoryDomain|-rd> domain_of_repository]

<-RepositoryUser|-ru> repository_user

<-RepositoryPassword|-rp> repository_password

[<-RepositoryUserSecurityDomain|-rsdn> repository_user_security_domain]

<-FolderName|-fn> repository_folder_name

<-Workflow|-wf> workflow_name

[<-RunInstance|-in> run_instance_name] | <-RunId|-id> workflow_run_id]

注:

如果未指定 -un、-pd 和 -sdn 选项,infacmd isp GetWorkflowLog 命令将使用 -ru、-rp 和 -rsdn 选项的对应值。

infacmd isp GetWorkflowLog 选项和参数

选项 参数 说明
-DomainName-dn domain_name 必需。 Informatica 域名。 可以使用 -dn 选项或环境变量 INFA_DEFAULT_DOMAIN 设置该域名。 如果使用这两种方法设置域名,则 -dn 选项优先。
-UserName-un user_name 如果域使用本地或 LDAP 身份验证,则为必选项。连接到域的用户名。 可以使用 -un 选项或环境变量 INFA_DEFAULT_DOMAIN_USER 设置该用户名。 如果使用这两种方法设置用户名,则 -un 选项优先。如果域使用 Kerberos 身份验证,则为可选选项。要通过单点登录运行该命令,请不要设置用户名。如果设置了用户名,则不能通过单点登录运行该命令。
-Password-pd 密码 如果指定了用户名,则为必选项。用户名的密码。 密码区分大小写。 可以使用 -pd 选项或环境变量 INFA_DEFAULT_DOMAIN_PASSWORD 设置密码。 如果使用这两种方法设置密码,则使用 -pd 选项设置的密码优先。
-SecurityDomain-sdn security_domain 如果域使用 LDAP 身份验证,则为必需选项。 如果域使用本地身份验证或 Kerberos 身份验证,则为可选选项。 域用户所属的安全域的名称。 可以使用 -sdn 选项或环境变量 INFA_DEFAULT_SECURITY_DOMAIN 设置安全域。 如果使用这两种方法设置安全域,则 -sdn 选项优先。 安全域名区分大小写。如果域使用本地身份验证或 LDAP 身份验证,则默认值为本地身份验证。 如果域使用 Kerberos 身份验证,则默认值为安装期间指定的用户域。
-Gateway-hp gateway_host1:port gateway_host2:port… 如果 domains.infa 文件中的网关连接信息过期,则为必需项。 域中网关节点的主机名称和端口号。
‑ResilienceTimeout-re timeout_period_in_seconds 可选。 infacmd 尝试建立或重新建立与域的连接持续的时间(以秒为单位)。 如果忽略该选项,则 infacmd 会使用在 INFA_CLIENT_RESILIENCE_TIMEOUT 环境变量中指定的超时值。 如果在环境变量中未指定值,则使用默认值 180 秒。
-Format-fm 格式 可选。 会话日志的格式。 有效类型包括:-Text-XML-Bin(二进制)如果选择二进制,则必须使用 OutputFile 选项指定文件名。如果未指定格式,infacmd 会使用在长度达到 80 个字符时换行的文本格式。
-OutputFile-lo output_file_name 工作流日志文件的文件名和路径。 默认情况下,服务管理器会使用主网关节点上的 server\infa_shared\log 目录。 忽略此选项会在屏幕上显示日志事件。 如果选择二进制作为输出文件类型,则必须使用此选项指定文件名。
‑IntegrationService-is integration_service_name 必需。 运行工作流的集成服务的名称。 要输入包含空格或其他非字母数字字符的名称,请使用引号将名称引起来。
-RepositoryService-rs repository_service_name 必需。 包含工作流的存储库服务的名称。 要输入包含空格或其他非字母数字字符的名称,请使用引号将名称引起来。
-RepositoryDomain-rd domain_of_repository 存储库处于本地域之外的其他域中时为必需。 存储库服务的域。 要输入包含空格或其他非字母数字字符的名称,请使用引号将名称引起来。
-RepositoryUser-ru 用户 本地身份验证和 LDAP 身份验证时为必需选项。 如果域使用 Kerberos 身份验证,则为可选选项。用于连接到存储库的用户名。 要输入包含空格或其他非字母数字字符的名称,请使用引号将名称引起来。
-RepositoryPassword-rp 密码 本地身份验证和 LDAP 身份验证时为必需选项。 如果域使用 Kerberos 身份验证,则为可选选项。用户密码。 可以使用 -rp 选项或环境变量 INFA_REPOSITORY_PASSWORD 设置密码。 如果同时使用这两种方法设置了密码,则使用 -rp 选项设置的密码将具有较高优先级。
-RepositoryUserSecurityDomain-rsdn repository_user_security_domain LDAP 或 Kerberos 身份验证时为必需选项。 如果域使用本地身份验证,则为可选选项。 PowerCenter 存储库用户所属的安全域的名称。安全域名区分大小写。 如果未指定此选项,该命令会将存储库用户安全域设置为本地。
-FolderName-fn repository_folder_name 必需。 包含工作流的文件夹的名称。 要输入包含空格或其他非字母数字字符的名称,请使用引号将名称引起来。
-Workflow-wf workflow_name 必需。 工作流的名称。 要输入包含空格或其他非字母数字字符的名称,请使用引号将名称引起来。
-RunInstance-in run_instance_name 工作流运行实例的名称。 如果您正在运行并发工作流,则可使用此选项。 可以使用 -in 或 -id 选项,但不能同时使用这两个选项。
-RunId-id workflow_run_id 工作流运行实例的运行标识符编号(运行 ID)。 如果您正在运行并发工作流,则可使用此选项。 可以使用 -in 或 -id 选项,但不能同时使用这两个选项。

获取最近运行的会话的日志事件

GetSessionLog

获取最近运行的会话的日志事件。运行此命令时,PowerCenter 存储库服务必须正在运行。

官方链接:

GetSessionLog (informatica.com)

示例:

1
sh infacmd.sh isp getsessionlog -dn Domain_infa -un user -pd passwd -wf wf_crt_fa_vw_csnjzjzj -ss s_m_crt_sqlfile_fa -is infa_dev_int -rs infa_dev_rep -fn test -rp user2 -ru passwd2

infacmd isp GetSessionLog 命令使用语法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
GetSessionLog

<-DomainName|-dn> domain_name

[<-UserName|-un> user_name]

[<-Password|-pd> password]

[<-SecurityDomain|-sdn> security_domain]

[<-Gateway|-hp> gateway_host1:port gateway_host2:port...]

[<-ResilienceTimeout|-re> timeout_period_in_seconds]

[<-Format|-fm> format_TEXT_XML_BIN]

[<-OutputFile|-lo> output_file_name]

<-IntegrationService|-is> integration_service_name

<-RepositoryService|-rs> repository_service_name

[<-RepositoryDomain|-rd> domain_of_repository]

<-RepositoryUser|-ru> repository_user]

<-RepositoryPassword|-rp> repository_password]

[<-RepositoryUserSecurityDomain|-rsdn> repository_user_security_domain]

<-FolderName|-fn> repository_folder_name

<-Workflow|-wf> workflow_name

[<-RunInstance|-in> run_instance_name] | <-RunId|-id> workflow_run_id]

<-Session|-ss> session_name

注:

如果未指定 -un、-pd 和 -sdn 选项,infacmd isp GetSessionLog 命令将使用 -ru、-rp 和 -rsdn 选项的对应值。

infacmd isp GetSessionLog 选项和参数

选项 参数 说明
-DomainName-dn domain_name 必需。 Informatica 域名。 可以使用 -dn 选项或环境变量 INFA_DEFAULT_DOMAIN 设置该域名。 如果使用这两种方法设置域名,则 -dn 选项优先。
-UserName-un user_name 如果域使用本地或 LDAP 身份验证,则为必选项。连接到域的用户名。 可以使用 -un 选项或环境变量 INFA_DEFAULT_DOMAIN_USER 设置该用户名。 如果使用这两种方法设置用户名,则 -un 选项优先。如果域使用 Kerberos 身份验证,则为可选选项。要通过单点登录运行该命令,请不要设置用户名。如果设置了用户名,则不能通过单点登录运行该命令。
-Password-pd 密码 如果指定了用户名,则为必选项。用户名的密码。 密码区分大小写。 可以使用 -pd 选项或环境变量 INFA_DEFAULT_DOMAIN_PASSWORD 设置密码。 如果使用这两种方法设置密码,则使用 -pd 选项设置的密码优先。
-SecurityDomain-sdn security_domain 如果域使用 LDAP 身份验证,则为必需选项。 如果域使用本地身份验证或 Kerberos 身份验证,则为可选选项。 域用户所属的安全域的名称。 可以使用 -sdn 选项或环境变量 INFA_DEFAULT_SECURITY_DOMAIN 设置安全域。 如果使用这两种方法设置安全域,则 -sdn 选项优先。 安全域名区分大小写。如果域使用本地身份验证或 LDAP 身份验证,则默认值为本地身份验证。 如果域使用 Kerberos 身份验证,则默认值为安装期间指定的用户域。
-Gateway-hp gateway_host1:port gateway_host2:port… 如果 domains.infa 文件中的网关连接信息过期,则为必需项。 域中网关节点的主机名称和端口号。
-ResilienceTimeout-re timeout_period_in_seconds 可选。 infacmd 尝试建立或重新建立与域的连接持续的时间(以秒为单位)。 如果忽略该选项,则 infacmd 会使用在 INFA_CLIENT_RESILIENCE_TIMEOUT 环境变量中指定的超时值。 如果在环境变量中未指定值,则使用默认值 180 秒。
-Format-fm 格式 可选。 会话日志的格式。 有效类型包括:-Text-XML-Bin(二进制)如果选择二进制,则必须使用 OutputFile 选项指定文件名。如果未指定格式,infacmd 会使用在长度达到 80 个字符时换行的文本格式。
-OutputFile-lo output_file_name 会话日志文件的文件名和路径。 默认情况下,服务管理器会使用主网关节点上的 server\infa_shared\log 目录。忽略此选项会在屏幕上显示日志事件。如果选择二进制作为输出文件类型,则必须使用此选项指定文件名。
‑IntegrationService-is integration_service_name 必需。 运行会话的集成服务的名称。要输入包含空格或其他非字母数字字符的名称,请使用引号将名称引起来。
-RepositoryService-rs repository_service_name 必需。 包含会话的存储库服务的名称。要输入包含空格或其他非字母数字字符的名称,请使用引号将名称引起来。
-RepositoryDomain-rd domain_of_repository 存储库处于本地域之外的其他域中时为必需。 存储库服务的域。 要输入包含空格或其他非字母数字字符的名称,请使用引号将名称引起来。
-RepositoryUser-ru repository_user 本地身份验证和 LDAP 身份验证时为必需选项。 如果域使用 Kerberos 身份验证,则为可选选项。用于连接到存储库的用户名。 要输入包含空格或其他非字母数字字符的名称,请使用引号将名称引起来。
-RepositoryPassword-rp repository_password 本地身份验证和 LDAP 身份验证时为必需选项。 如果域使用 Kerberos 身份验证,则为可选选项。用户密码。 可以使用 -rp 选项或环境变量 INFA_REPOSITORY_PASSWORD 设置密码。 如果同时使用这两种方法设置了密码,则使用 -rp 选项设置的密码将具有较高优先级。
-RepositoryUserSecurityDomain-rsdn repository_user_security_domain LDAP 或 Kerberos 身份验证时为必需选项。 如果域使用本地身份验证,则为可选选项。 PowerCenter 存储库用户所属的安全域的名称。安全域名区分大小写。 如果未指定此选项,该命令会将存储库用户安全域设置为本地。
-FolderName-fn repository_folder_name 必需。 包含会话的文件夹的名称。 要输入包含空格或其他非字母数字字符的名称,请使用引号将名称引起来。
-Workflow-wf workflow_name 必需。 包含会话的工作流的名称。 要输入包含空格或其他非字母数字字符的名称,请使用引号将名称引起来。
-RunInstance-in run_instance_name 包含会话的工作流运行实例的名称。 如果您正在运行并发工作流,则可使用此选项。 可以使用 -in 或 -id 选项,但不能同时使用这两个选项。
-RunId-id workflow_run_id 包含会话的工作流运行实例的运行标识符编号(运行 ID)。 如果您正在运行并发工作流,则可使用此选项。 可以使用 -in 或 -id 选项,但不能同时使用这两个选项。
-Session-ss session_name 必需。 会话名称。 要输入包含空格或其他非字母数字字符的名称,请使用引号将名称引起来。

脚本源码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
#!/bin/bash

# Desc:
# 1. 第一部分参数根据MoiaControl中配置的Informatica数据源获取
# 2. 第二部分参数按照为作业传入参数

############################# 第一部分 变量值相关 #####################################
# 默认情况下,infacmd 安装在 InformaticaInstallationDir/isp/bin 目录中, 可考虑增加到MoiaControl的环境变量中
infacmdDir="/InformaticaInstallationDir/isp/bin"

# 下面参数每个环境应该都是固定的, 配置在Informatica数据源中
# 集成服务名称
domain_service=${INFA_DEFAULT_SERVICE}
# 域名
domain_name=${INFA_DEFAULT_DOMAIN}
# 用户名
domain_user=${INFA_DEFAULT_DOMAIN_USER}
# 密码
domain_password=${INFA_DEFAULT_DOMAIN_PASSWORD}
# 存储库服务名称
repository_service=${INFA_REPOSITORY_SERVICE}
# 存储库用户名
repository_user=${INFA_REPOSITORY_USER}
# 存储库密码
repository_password=${INFA_REPOSITORY_PASSWORD}
############################# 第二部分 #####################################
# 下面参数每个作业都是不同的, 定义为变量
# 工作流文件夹名称
folder_name=$1
# 工作流名称
workflow_name=$2
# 参数文件-绝对路径
paramfile=$4
##############################################################################
Log()
{
currTime=`date +"%Y%m%d_%H:%M:%S"`
echo "${currTime} $*"
}
echo
Log "环境变量检查:"
echo
envFlag="Y"
if [ "X${domain_service}" == "X" ];then
Log "[Error] 集成服务名称为空"
envFlag="N"
fi
if [ "X${domain_name}" == "X" ];then
Log "[Error] Informatica域名为空"
envFlag="N"
fi
if [ "X${domain_user}" == "X" ];then
Log "[Error] 用户名INFA_DEFAULT_DOMAIN_USER为空"
envFlag="N"
fi
if [ "X${domain_password}" == "X" ];then
Log "[Error] 密码INFA_DEFAULT_DOMAIN_PASSWORD为空"
envFlag="N"
fi
if [ "X${repository_service}" == "X" ];then
Log "[Error] 存储库服务的名称为空"
envFlag="N"
fi
if [ "X${repository_user}" == "X" ];then
Log "[Error] 存储库的用户名为空"
envFlag="N"
fi
if [ "X${repository_password}" == "X" ];then
Log "[Error] 存储库的用户密码为空"
envFlag="N"
fi
echo
if [ "X${envFlag}" == "XN" ];then
Log "[Error] Informatica数据源配置有误, 请检查..."
echo
exit 1
fi

echo

if [ $# -ne 4 ];then
Log "[Error] 作业传入参数输入有误, 请检查..."
echo
exit 1
fi

useInfo()
{
echo
echo "调度工作流执行:"
echo "Usage: pmcmd startworkflow -sv service -d domain -u username -p password -folder folder -paramfile paramfile -wait workflow"
echo " -sv : 集成服务名称"
echo " -d : 域名"
echo " -u : 用户名"
echo " -p : 密码"
echo " -folder : 文件夹"
echo " -paramfile: 参数文件"
echo " -wait : 等待模式"
echo " - : 工作流名称"
echo
echo "查看工作流日志:"
echo "Usage: sh infacmd.sh isp getworkflowlog"
echo " -dn : Informatica域名"
echo " -un : 用户名INFA_DEFAULT_DOMAIN_USER"
echo " -pd : 密码INFA_DEFAULT_DOMAIN_PASSWORD"
echo " -wf : 工作流的名称"
echo " -is : 集成服务的名称"
echo " -rs : 存储库服务的名称"
echo " -fn : 工作流的文件夹的名称"
echo " -ru : 存储库的用户名"
echo " -rp : 存储库的用户密码 INFA_REPOSITORY_PASSWORD"
echo
echo "查看session日志:"
echo "Usage: sh infacmd.sh isp getsessionlog"
echo " -dn : Informatica 域名"
echo " -un : 用户名 INFA_DEFAULT_DOMAIN_USER"
echo " -pd : 密码 INFA_DEFAULT_DOMAIN_PASSWORD"
echo " -wf : 工作流的名称"
echo " -ss : 会话名称"
echo " -is : 集成服务的名称"
echo " -rs : 存储库服务的名称"
echo " -fn : 工作流的文件夹的名称"
echo " -ru : 存储库的用户名"
echo " -rp : 存储库的用户密码 INFA_REPOSITORY_PASSWORD"
exit 1
}
echo
Log "[Info ] 开始调度工作流执行:"
execFlag="Y"
Log "pmcmd startworkflow -sv ${domain_service} -d ${domain_name} -u ${domain_user} -p ${domain_password} -folder ${folder_name} -paramfile ${paramfile} -wait ${workflow_name}"
pmcmd startworkflow -sv ${domain_service} -d ${domain_name} -u ${domain_user} -p ${domain_password} -folder ${folder_name} -paramfile ${paramfile} -wait ${workflow_name}
execRes=$?
if [ ${execRes} -eq 0 ];then
Log "[Info ] 工作流[${workflow_name}]执行完成"
else
execFlag="N"
if [ ${execRes} -eq 1 ];then
Log "[Error] 工作流[${workflow_name}]执行失败"
Log "[Error] 集成服务不可用,或 pmcmd 无法连接到集成服务。 TCP/IP 主机名、端口号或者网络存在问题。"
elif [ ${execRes} -eq 2 ];then
Log "[Error] 工作流[${workflow_name}]执行失败"
Log "[Error] 任务名称、工作流名称或文件夹名称不存在。"
elif [ ${execRes} -eq 3 ];then
Log "[Error] 工作流[${workflow_name}]执行失败"
Log "[Error] 启动或运行工作流或任务时出错。"
elif [ ${execRes} -eq 4 ];then
Log "[Error] 工作流[${workflow_name}]执行失败"
Log "[Error] 使用错误。 您将错误的选项传递到 pmcmd。"
elif [ ${execRes} -eq 5 ];then
Log "[Error] 工作流[${workflow_name}]执行失败"
Log "[Error] 发生了内部 pmcmd 错误。"
elif [ ${execRes} -eq 7 ];then
Log "[Error] 工作流[${workflow_name}]执行失败"
Log "[Error] 您使用的用户名或密码无效。"
elif [ ${execRes} -eq 8 ];then
Log "[Error] 工作流[${workflow_name}]执行失败"
Log "[Error] 您没有相应的权限或特权,无法执行该任务。"
elif [ ${execRes} -eq 9 ];then
Log "[Error] 工作流[${workflow_name}]执行失败"
Log "[Error] 发送请求时,与集成服务的连接超时。"
elif [ ${execRes} -eq 12 ];then
Log "[Error] 工作流[${workflow_name}]执行失败"
Log "[Error] 集成服务无法启动恢复,因为会话或工作流已计划、正在等待事件、正在等待、正在初始化、正在中止、正在停止、已禁用或正在运行。"
elif [ ${execRes} -eq 13 ];then
Log "[Error] 工作流[${workflow_name}]执行失败"
Log "[Error] 用户名环境变量设置为空值。"
elif [ ${execRes} -eq 14 ];then
Log "[Error] 工作流[${workflow_name}]执行失败"
Log "[Error] 密码环境变量设置为空值。"
elif [ ${execRes} -eq 15 ];then
Log "[Error] 工作流[${workflow_name}]执行失败"
Log "[Error] 缺少用户名环境变量。"
elif [ ${execRes} -eq 16 ];then
Log "[Error] 工作流[${workflow_name}]执行失败"
Log "[Error] 缺少密码环境变量。"
elif [ ${execRes} -eq 17 ];then
Log "[Error] 工作流[${workflow_name}]执行失败"
Log "[Error] 参数文件不存在。"
elif [ ${execRes} -eq 18 ];then
Log "[Error] 工作流[${workflow_name}]执行失败"
Log "[Error] 集成服务找到参数文件,但没有用于会话参数的初始值,例如 $input$output。"
elif [ ${execRes} -eq 19 ];then
Log "[Error] 工作流[${workflow_name}]执行失败"
Log "[Error] 集成服务无法恢复会话,因为工作流配置为持续运行。"
elif [ ${execRes} -eq 20 ];then
Log "[Error] 工作流[${workflow_name}]执行失败"
Log "[Error] 发生存储库错误。 确保存储库服务和数据库正在运行,并且未超过与数据库的连接数限制。"
elif [ ${execRes} -eq 21 ];then
Log "[Error] 工作流[${workflow_name}]执行失败"
Log "[Error] 集成服务正在关闭,不接受新的请求。"
elif [ ${execRes} -eq 22 ];then
Log "[Error] 工作流[${workflow_name}]执行失败"
Log "[Error] 集成服务找不到您指定的工作流/会话的唯一实例。 使用文件夹名称或工作流名称再次输入命令。"
elif [ ${execRes} -eq 23 ];then
Log "[Error] 工作流[${workflow_name}]执行失败"
Log "[Error] 没有可用于请求的数据。"
elif [ ${execRes} -eq 24 ];then
Log "[Error] 工作流[${workflow_name}]执行失败"
Log "[Error] 内存不足。"
elif [ ${execRes} -eq 25 ];then
Log "[Error] 工作流[${workflow_name}]执行失败"
Log "[Error] 已取消命令。"
else
Log "[Error] 工作流[${workflow_name}]执行失败"
fi
fi
echo

Log "[Info ] 查询工作流日志:"
Log "[Info ] ${infacmdDir}/infacmd.sh isp getworkflowlog -dn ${domain_name} -un ${domain_user} -pd ${domain_password} -wf ${workflow_name} -is ${domain_service} -rs ${repository_service} -fn ${folder_name} -ru ${repository_user} -rp ${repository_password}"
${infacmdDir}/infacmd.sh isp getworkflowlog -dn ${domain_name} -un ${domain_user} -pd ${domain_password} -wf ${workflow_name} -is ${domain_service} -rs ${repository_service} -fn ${folder_name} -ru ${repository_user} -rp ${repository_password}
if [ $? -ne 0 ];then
Log "[Info ] 查询工作流[${workflow_name}]日志失败"
fi
echo

# 查询session日志需要知道session名称,一个工作流可能包含N个session,需要从存储库中进行查询
# 连接存储库
sqlplus
# 查询工作流及session对应sql
找出源、目标、映射、主题、工作流、会话之间的关系
wfSession="SELECT f.subj_name AS folder_name,
wf.task_name AS workflow_name,
se.instance_name AS session_name,
m.mapping_name,
src.instance_name AS source_name,
tgt.instance_name AS target_name
FROM opb_subject f,
opb_task wf,
(SELECT workflow_id,
instance_id,
task_id,
task_type,
instance_name,
MAX(version_number)
FROM opb_task_inst sess
WHERE sess.task_type = 68
GROUP BY workflow_id,
instance_id,
task_id,
task_type,
instance_name) se,
(SELECT session_id, mapping_id, MAX(version_number)
FROM opb_session
GROUP BY session_id, mapping_id) s,
opb_mapping m,
(SELECT mapping_id, instance_name, widget_type, MAX(version_number)
FROM opb_widget_inst
GROUP BY mapping_id, instance_name, widget_type) src,
(SELECT mapping_id, instance_name, widget_type, MAX(version_number)
FROM opb_widget_inst
GROUP BY mapping_id, instance_name, widget_type) tgt
WHERE
wf.subject_id = f.subj_id
AND se.workflow_id = wf.task_id
AND wf.task_type = 71
AND se.task_id = s.session_id
AND s.mapping_id = m.mapping_id
AND src.mapping_id = m.mapping_id
AND src.widget_type = 1
AND tgt.mapping_id = m.mapping_id
AND tgt.widget_type = 2
AND f.subj_id = 38"

# 根据查询结果循环获取所有session日志
echo "$wfSession"|
while read session_name
do
Log "[Info ] 查询session日志:"
Log "[Info ] ${infacmdDir}/infacmd.sh isp getsessionlog -dn ${domain_name} -un ${domain_user} -pd ${domain_password} -wf ${workflow_name} -ss ${session_name} -is ${domain_service} -rs ${repository_service} -fn ${folder_name} -ru ${repository_user} -rp ${repository_password}"
${infacmdDir}/infacmd.sh isp getsessionlog -dn ${domain_name} -un ${domain_user} -pd ${domain_password} -wf ${workflow_name} -ss ${session_name} -is ${domain_service} -rs ${repository_service} -fn ${folder_name} -ru ${repository_user} -rp ${repository_password}
if [ $? -ne 0 ];then
Log "[Info ] 查询工作流[${workflow_name}]session[${session_name}]日志失败"
fi
done
echo

if [ "X${execFlag}" == "XN" ];then
Log "[Error] 工作流[${workflow_name}]执行失败"
exit 2
fi

蚂蚁再小也是肉🥩!


通过命令行获取Informatica运行日志
http://heibanbai.com.cn/posts/cb38ffff/
作者
黑伴白
发布于
2021年8月20日
许可协议

“您的支持,我的动力!觉得不错的话,给点打赏吧 ୧(๑•̀⌄•́๑)૭”

微信二维码

微信支付

支付宝二维码

支付宝支付