- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在网上查了一下,但没有找到太多。事实上,大多数信息都在 stackoverflow 上 - Show failure for SQL 2005 Job that executes Powershell script through CMD prompt, IF PS script fails但这是 SQL Server 2005 的情况,我希望 2008 年情况有所改善。
无论如何,如果 Powershell 脚本失败,我希望能够让 SQL Server 代理作业失败。在 SQL Server 中,我使用 powershell 步骤,如下:
write-output "this is a test error"
exit -1
我以为这会导致 SQL Server 作业出错,但它没有发生,它显示成功。是否有必要使用 cmdexec 步骤,然后 shell 到 powershell,以便能够在发生错误时获取错误?
谢谢,西尔维娅
最佳答案
引用 Ed Wilson 的第 10 条技巧“10. 处理 SQL Server 代理作业中的 Windows Powershell 错误”(来自“10 Tips for the SQL Server PowerShell Scripter”):
10。处理 SQL Server 代理作业中的 Windows Powershell 错误
默认情况下,ErrorActionPreference 设置为“Continue”,这会影响错误如何冒泡到 SQL Server 作业服务器。如果将 Windows PowerShell 命令作为 SQL Server 代理作业运行并且尚不存在语法错误,则该命令会产生错误(例如,尝试从不可用的服务器获取操作系统信息)。 SQL Server 代理作业将报告成功。如果您希望错误条件停止 SQL Server 代理作业的执行或产生错误,则需要添加一些错误处理。您可以使用 Windows PowerShell 作业步骤设置 SQL Server 代理作业,如下所示:
get-wmiobject Win32_OperatingSystem -ComputerName 'nothere'
该作业将成功运行,但如果您直接在 Windows PowerShell 中运行它,您将看到:
get-wmiobject Win32_OperatingSystem -ComputerName 'nothere'
get-wmiobject : The RPC server is unavailable. (Exception from HRESULT: 0x800706BA)
At line:1 char:1
+ get-wmiobject Win32_OperatingSystem -ComputerName 'nothere'
要将 Windows PowerShell 错误冒泡到 SQL Server 代理,您需要执行以下操作之一:
A.设置 $ErrorActionPreference = "Stop"
$erroractionpreference = "Stop"
get-wmiobject Win32_OperatingSystem -ComputerName 'nothere'
B.在 cmdlet 级别设置 ErrorAction(更精细)
get-wmiobject Win32_OperatingSystem -ComputerName 'nothere' -ErrorAction 'Stop'
C.将 Try/Catch 与 ErrorActionPreference 或 ErrorAction 结合使用
try
{
get-wmiobject Win32_OperatingSystem -ComputerName 'nothere' -ErrorAction 'Stop'
}
catch
{
throw "Something went wrong"
#or rethrow error
#throw $_
#or throw an error no message
#throw
}
D.继续,并使 SQL Server 代理作业失败
假设您有一组计算机,并且您希望继续处理错误,但您也希望作业失败。在这种情况下,您可以使用 ErrorVariable:
#Note the -ErrorVariable parameter takes a variable name without the $ prefix.
get-wmiobject Win32_OperatingSystem -ComputerName 'localhost','nothere','Win7boot' -ErrorVariable myError
if ($myError)
{ throw ("$myError") }
关于sql-server - 如何显示从 SQL Server 2008 R2 作业调用的 PowerShell 步骤中的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9111752/
我希望使用 API 根据处理 Q 的大小更改运行的 Web 作业实例的数量,我知道我可以在门户中设置规则,但最短聚合时间为 60 分钟,并且我如果我们突然遇到大量工作,不希望系统在扩展之前等待 60
假设我有一个 spark 应用程序并且有两个操作导致两个 spark 作业。 //spark Application //Spark Job1 .... erro
大家好! 作为我对Java的自学的一部分,我正在尝试完成可用的Java初学者分配之一here(非常古老的东西-2001) 问题是我不知道如何应对这个挑战:(我将不胜感激任何建议,因为该解决方案不再可用
我一直在使用 HADOOP 1.2.1 服务器,并在那里执行许多 pig 作业。最近,我考虑将我的 Hadoop 服务器更改为 HADOOP 2.2.0。所以我在 HADOOP 2.2.0 中尝试了一
好的,我修复了静态错误。现在我只是想找出为什么每个对象都得到相同的条目(即相同的名字、年龄、体重等)。这是代码: package classlab3b; import classlab3B.BodyM
我的家庭作业中的一个问题需要一些帮助,我已经尝试了大约一个小时,但无法运行。 列出购买商品数量超过每位顾客平均商品数量的顾客 表格如下: Customer(Cnum, CustomerName, Ad
Kubernetes Jobs重复创建 Pod,直到指定数量的容器成功终止。作业通常与更高级别的CronJob机制一起使用,该机制会按循环计划自动启动新作业。 定期使用 Jobs 和 CronJobs
我有以下工作类(我已经删除了实际的工作代码): @On("0 0 1 * * ?") public class DailyJob extends Job { @Override pub
假设您将 cron 作业配置为每分钟运行一次以做某事。如果实际任务运行时间超过一分钟会发生什么? cron 会创建另一个作业实例/线程吗?还是 cron 会等待并确保上一次运行完成? 谢谢! 最佳答案
我们正在使用 TeamCity 7 并想知道是否可以仅在前一个步骤失败时才运行步骤?我们在构建步骤配置中的选项让您可以选择仅在所有步骤都成功时执行,即使步骤失败,或者始终运行它。 有没有办法仅在前一个
我在 oracle 中编写作业以执行存储过程,但是当时机成熟时,它不会无缘无故地发生任何事情。 是否有某种日志可以让我查看是否发生了错误或其他事情? 我使用 dbms_job 包来创建作业 恩克斯。
我正在用 Java 创建一个用于文件共享的 p2p 应用程序。每个对等节点都将在我的机器上的不同端口上运行并监听请求。但我遇到的问题是,当创建 PeerNode 实例时,我的代码会进入无限循环。以下是
我正在尝试创建一个队列,但当我运行 php artisanqueue:work 时它不起作用,我在终端中得到的只是 [2017-11-30 19:56:27] Processing: App\Jobs
我正在使用PHP库phpseclib0.2.2将SSH自动化到我的一台服务器中。我将其设置为每5分钟运行一次的cron任务。 在设置完它并确保其运行等情况下注销后,我看到了以下内容: $ logout
有没有办法获取多分支管道作业扫描收集到的所有分支的名称? 我想设置一个依赖于现有构建作业的夜间构建,因此需要检查多分支作业是否包含某些特定分支。另一种方法是检查现有作业。 最佳答案 我通过使用 Jen
我在编程方面还很陌生,我不太确定如何完成分配给我的学校作业。 Write a function void print_min(unsigned char a, short b,int c),which
我的作业有问题,需要帮助! 问题 1: 完成下面的 Java 方法,以便 raiseToPower(x,n) 将数字 x 提高到整数 n 次方(即计算值 xn )。请记住 x-n = 1/xn,x0
我正在做一项家庭作业,该作业有四个文本字段和一个文本区域,以及一个将文本字段和文本区域保存到文本文件的按钮,每行一个元素。然后,应出现一个对话框通知用户文件已保存。当对话框关闭时,它应该清空文本字段和
我需要运行一个名为ArrayHolder的java程序,它将运行两个线程。 ArrayHolder 将有一个 Array。 ThreadSeven 会用 7 覆盖该 Array 的每个元素,并用 1
在我的程序中,应该读取学生姓名、ID 号和 GPA,将其分配给指定的学生,然后打印出来。一切都编译正常,但出现错误 Error: Could not find or load main class L
我是一名优秀的程序员,十分优秀!