ねえ、私はこれで髪を引っ張っています。
データベース サーバー (SQL Server 2000) とファイル システムの両方ですべてのアクセス許可をチェックし、実行しようとしていることが可能であることを確認しました。状況は次のとおりです。
会社のイントラネットの Tomcat サーバーで Java EE Web アプリケーションを実行しています。簡単に言うと、このアプリケーションは数値を計算し、パイプ区切りのレコード ファイルを作成してデータベースに BULK INSERT し、そのファイルを UNIX サーバーに保存します。
次に、xp_cmdshell を使用して UNIX から Windows SQL Server ボックスにファイルを FTP 送信し、ファイルを一括挿入するストアド プロシージャが呼び出されます。Management Studio からこのストアド プロシージャ (Web アプリを実行する tomcat ユーザーとしてログイン) を呼び出すと、エラーは 1 つも発生せず、FTP が転送され、ファイルが読み込まれます。
これは私を悪化させている部分です。
Java EE アプリがこのストアド プロシージャを呼び出すと、実際にはファイルを SQL Server ボックスに FTP 送信しますが、成功しても SQLServerException が発生します。韻や理由はありません。しかし...例外がスローされたとしても、私のファイルはサーバー上ですべて快適になります。
UNIX サーバーから xp_cmdshell を実行すると、SQL Server で問題が発生しますか (プログラムが実行しているのはストアド プロシージャの呼び出しだけなので、これはばかげているように聞こえますが、火曜日の夜の 11:55PM にまだオフィスにいます。ばかげていることは何もないと思います...)
どんな洞察も素晴らしいでしょう...
編集:
また、SQL プロファイラーを使用して SQL Server へのトラフィックを表示しています...そして、ストアド プロシージャを呼び出すために使用している実際のステートメントを確認できます。それをSQL Server Management Studioにコピーし、Tomcatユーザー資格情報を使用して実行すると、問題なく実行されます...