MSSQL on Linux: OLE DB プロバイダーを使用してステートメント オブジェクトを作成できませんでした

Microsoft.SQLServer.Linux.EventRule.DBEngine.Could_not_create_a_statement_object_using_OLE_DB_provider_1_5_Rule (Rule)

このルールは、リンク サーバーに接続された OLE DB プロバイダーで SQL Server がステートメント オブジェクトを作成できなかった場合にアラートをトリガーします。

Knowledge Base article:

概要

SQL Server が、リンク サーバーに接続された OLE DB プロバイダーを使用してステートメント オブジェクトを作成できませんでした。Linux アプリケーション ログに、OLE DB プロバイダーの名前と SQL Server のインスタンスが示されます。

解決方法

Linux アプリケーション ログでイベント ID 7305 を探し、OLE DB プロバイダー名を特定します。クエリで使用された SQL ステートメントを確認します。クエリを再実行します。このエラーが繰り返し発生する場合は、OLE DB アプリケーションの開発元にお問い合わせください。

上書き可能なパラメーター

名前

説明

既定値

有効

ワークフローを有効または無効にします。

はい

間隔 (秒)

ワークフローを実行する定期的な実行間隔 (秒)。

300

優先度

アラートの優先度を定義します。

1

重要度

アラートの重要度を定義します。

1

同期時刻

同期時刻

 

タイムアウト (秒)

ワークフローが終了して失敗とマークされるまでの、ワークフローの許容実行時間を指定します。

200

データベース接続のタイムアウト (秒)

指定された期間中にデータベースにアクセスできない場合、ワークフローは失敗し、イベントが登録されます。

15

Element properties:

TargetMicrosoft.SQLServer.Linux.DBEngine
CategoryEventCollection
EnabledTrue
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
MSSQL on Linux: OLE DB プロバイダーを使用してステートメント オブジェクトを作成できませんでした
{0}
CommentMom2017ID='{5858D9E9-D97F-4B2C-B928-4EB127EA9487}';MOM2017GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}

Member Modules:

ID Module Type TypeId RunAs 
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ DataSource Microsoft.SQLServer.Linux.DataSource.EventCollectionFiltered Default
GenerateAlert WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="Microsoft.SQLServer.Linux.EventRule.DBEngine.Could_not_create_a_statement_object_using_OLE_DB_provider_1_5_Rule" Target="SqlDiscL!Microsoft.SQLServer.Linux.DBEngine" Enabled="true" Remotable="true" ConfirmDelivery="true" Comment="Mom2017ID='{5858D9E9-D97F-4B2C-B928-4EB127EA9487}';MOM2017GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="_F6DA1507_12AF_11D3_AB21_00A0C98620CE_" Comment="{F6DA1507-12AF-11D3-AB21-00A0C98620CE}" TypeID="Microsoft.SQLServer.Linux.DataSource.EventCollectionFiltered">
<MachineName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</MachineName>
<NetbiosComputerName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/NetbiosComputerName$</NetbiosComputerName>
<InstanceName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</InstanceName>
<ConnectionString>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<InstanceVersion>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Version$</InstanceVersion>
<InstanceEdition>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Edition$</InstanceEdition>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>200</TimeoutSeconds>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<EventDisplayNumber>7305</EventDisplayNumber>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="Health!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.Linux.EventRule.DBEngine.Could_not_create_a_statement_object_using_OLE_DB_provider_1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>Event ID: $Data/Property[@Name='EventID']$. $Data/Property[@Name='Message']$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>