Привет всем, я вырываю свои волосы на этом.
Я проверил все свои разрешения как на сервере базы данных (SQL Server 2000), так и в файловой системе, чтобы убедиться, что то, что я пытаюсь сделать, должно быть возможным. Вот ситуация:
У меня есть веб-приложение Java EE, работающее на сервере Tomcat во внутренней сети моей компании. Короче говоря, это приложение сокращает числа, создает файл записей с разделителями каналов, который ДОЛЖНО ВСТАВЛЯЕТСЯ в нашу базу данных, и сохраняет файл на сервере UNIX.
Затем вызывается хранимая процедура, которая использует xp_cmdshell для передачи по FTP файла из UNIX в нашу коробку Windows SQL Server для БОЛЬШОЙ ВСТАВКИ файла. Когда я вызываю эту хранимую процедуру (вошел в систему как пользователь tomcat, с которого мы запускаем наше веб-приложение) из Management Studio, не возникает ни одной ошибки, и FTP передает, и файл загружается.
Это та часть, которая меня раздражает.
Когда приложение Java EE вызывает эту хранимую процедуру, оно на самом деле передает файл по FTP в ящик SQL Server, но я получаю исключение SQLServerException даже в случае успеха. Нет рифмы или причины. НО ... несмотря на то, что выдается исключение, мой файл попадает на сервер все красиво и уютно.
Есть ли у SQL Server проблема с запуском xp_cmdshell с сервера UNIX (как бы странно это ни звучало для меня, поскольку все, что делает программа, это вызывает хранимую процедуру, я все еще в офисе в 23:55 во вторник) ночь, так что я думаю, что нет ничего смешного ...)
Любое понимание было бы замечательно ...
EDIT:
Кроме того, я просматривал трафик на SQL Server с помощью SQL Profiler ... и я вижу фактическое утверждение, которое я использую для вызова хранимой процедуры. Когда я копирую это в SQL Server Management Studio и выполняю его, используя свои учетные данные пользователя Tomcat, оно выполняется безупречно ...