- - PR -
Windows Server 2003にてログファイルがネットワークドライブに出力できない
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-08-16 12:57
Windows Server 2003にてWindowsサービスに登録しているTomcat上のJava
アプリケーションから出力しているログファイルがネットワークドライブ に出力できない問題が発生しています。 2006-08-15 15:26:38,595 ERROR [Ap04Action] EXCEPTION : java.io.FileNotFoundException: X:\\Log\\ACCESS_20060815.log (指定されたパスが見つかりません。) Windows Server 2000では、Windowsサービスのログオン権限をAdministrator にすることにより問題なく出力できています。Windows Server 2003も同様 の環境を作成しましたが、上記のエラーが出ています。 そこでWindows Server 2003の仕様(デフォルトの設定?)では、Windowsサ ービスのプロセスからはネットワークドライブが見えないと考えているので すが、合っていますでしょうか?またこれを回避する方法があれば、ご教授 をお願いいたします。 【環境】 Windows Server 2003 R2 SP1 Apache 1.3.33 Tomcat 4.1.31 Java j2sdk-1_4_2_09 [ メッセージ編集済み 編集者: 未記入 編集日時 2006-08-16 13:15 ] | ||||||||
|
投稿日時: 2006-08-16 13:18
Tomcatは良く分かりませんが、Logディレクトリ自体は既にあるのでしょうか?
標準ではファイル出力先を指定してもディレクトリまで作成してくれるわけではないので。 | ||||||||
|
投稿日時: 2006-08-16 14:14
想馬さん ご回答をありがとうございます。
>Tomcatは良く分かりませんが、Logディレクトリ自体は既にあるのでしょうか? >標準ではファイル出力先を指定してもディレクトリまで作成してくれるわけではないので。 はい。Javaアプリケーション側でディレクトリがない場合は、作成するように実装しています。ネットワークドライブでなければ、Windows Server 2003でも問題なく出力できています。 | ||||||||
|
投稿日時: 2006-08-16 15:37
Java Solution会議室のほうが適切かも・・・
Tomcatを実行するユーザの問題かな。。。とは予想できますが、 誰がログインするネットワークドライブに X: を指定していますか? | ||||||||
|
投稿日時: 2006-08-16 16:24
あっています。 理由はいくつかあります。 1つ目は、「ネットワークドライブ」はログオンユーザ毎の設定であるためです。 例えば、あなたのログオンアカウントで設定した「ネットワークドライブ」は他のアカウントには無効です。 件のサービスをどんなアカウント権限で実行しているのか知りませんが、「ネットワークドライブ」の設定を行ったのとは異なるアカウント権限で実行しているんでしょう。 また、SDK レベルでサービスを作成した場合、適切なログオンアカウントでサービスを実行していたとしても、明示的にユーザプロファイルを読み込まないと、「ネットワークドライブ」を含めた各種ユーザ設定を参照することが出来ません。 2目は、サービスの実行アカウントに与えられた権限によるものです。 件のサービスをどんなアカウント権限で実行しているのか知りませんが、ローカルシステムアカウントにはネットワーク資源に対するアクセスが許可されていないため、仮にローカルシステムアカウントで「ネットワークドライブ」の設定を行ったとしても、それを利用することは出来ません。
方法は何パターンかありますが、私が最も好ましいと考えるのは以下の方法です。 ・最終的にログルを書き出すプロセスを実行するための専用アカウントを作成する。 ・↑のアカウントに、ログ書き出しを含めて必要最小限度の権限を与える。 ・ログファイルの書き出し先の指定には UNC 表記を用いる。 以上です。 | ||||||||
|
投稿日時: 2006-08-17 18:55
かるあさん ご回答をありがとうございます。
ご指摘どおりです。初めての投稿で、間違ってしまいました。
ネットワークドライブを設定したユーザは、Administratorです。 Windowsサービス(Tomcat)のログオン権限をAdministratorには、 しているのですが、、、 ただWindows Server 2003を触るのが今回が初めてなので、なにか 足りない点があるかもしれません。 以上です。 | ||||||||
|
投稿日時: 2006-08-17 19:23
渋木宏明(ひどり)さん ご返信をありがとうございます。
ご丁寧なコメントとアドバイスありがとうございます。上記の方法でためしてみます。 以上です。 | ||||||||
|
投稿日時: 2006-08-21 14:20
上記の方法でログ書き出しすることができました。誠にありがとうございます。 UNC 表記では、アクセス可能で、ネットワークドライブを割り当てたドライ ブレターだとアクセスできない(パスが見つからない)のは、なぜだかわか らないです。何か権限が足りないのでしょうか?もしご存知の方がいらっしゃ いましたら、ご教授をお願いいたします。 以上です。 |