1

突然、特定のファイル (AS/400 であると思われるリモート システム内のテーブル) の INSERT、UPDATE、および DELETE が失敗します。

使用するリンク サーバーは SQL Server でセットアップされ、ODBC データ ソース (DSN) を使用しています。データ ソースは、「iSeries Access for Windows の ODBC データ ソース」です。

この問題が発生するテーブルは 1 つだけです。エラーなしで、同じリンク サーバーを使用して他のテーブルで挿入と更新を行うことができ、SELECT は問題のあるテーブルに対して引き続き機能します。

INSERT および UPDATE ステートメントに対して次のメッセージが表示されます (以下のコードではサーバー名と DB 名が置き換えられています)。

Msg 7399, Level 16, State 1, Line 1
The OLE DB provider "MSDASQL" for linked server "MYSERVER" reported an error. 
The provider did not give any information about the error.
Msg 7343, Level 16, State 2, Line 1
The OLE DB provider "MSDASQL" for linked server "MYSERVER" could not INSERT INTO 
table "[MYSERVER].[MYDB].[DMPCOM].[DMPXIF]". Unknown provider error.

そして、DELETE は次のメッセージを表示します。

The OLE DB provider "MSDASQL" for linked server "MYSERVER" could not delete from 
table ""MYDB"."DMPCOM"."DMPXIF"". There was a recoverable, provider-specific 
error, such as an RPC failure.

これについて何か手がかりがあれば、遠慮なくこの質問に答えてください。

ありがとう、アンドレアス

4

1 に答える 1

1

エラーの理由は、リンク サーバーと ODBC iSeries データソースを使用して SQL Server から接続する AS400 ファイルでジャーナリングがオフになっているためです。これにより、コミットメント制御もオフになりました。

ただし、ODBC iSeries データソースで commit を「Commit immediately (*NONE)」に設定しても役に立ちませんでした。(おそらく、その設定を変更するだけではありません。)

AS/400 システムのデータベース管理者が、ジャーナリングとコミットメント コントロールを含むデフォルト設定でテーブルを再作成したところ、すべて正常に戻り、リンク サーバー接続から挿入、更新、および削除が機能しました。

于 2013-01-03T08:21:55.150 に答える