- PR -

Timeoutについて

投稿者投稿内容
kats
会議室デビュー日: 2006/04/03
投稿数: 5
投稿日時: 2006-04-03 19:19
初めての投稿です。
よろしくお願いします。
何分経験が浅いため、言葉足らずの点があると思いますが、ご容赦ください。

linuxサーバにweblogicとApacheを入れています。

現象としてはサーバ内の処理中、5分おきに同じ処理が走るため、DB(oracle)にinsertする時に一意制約違反が発生してしまいます。

タイムアウトが原因かと思い、apacheのhttpd.confの"Timeout"の値を300から1440へ変更してみたのですが、変わらず5分おきに処理が走ってしまいます。

原因がわからず困っています。

解る方がいらっしゃったらお教えください。よろしくお願いします。



[ メッセージ編集済み 編集者: kats 編集日時 2006-04-03 19:20 ]
末記人
大ベテラン
会議室デビュー日: 2005/12/05
投稿数: 233
お住まい・勤務地: あわにこ
投稿日時: 2006-04-03 22:03
こんばんは

その5分おきにしている処理というのは何でしょうか?
バッチ処理かなにかですか?

単にアプリケーションのつくりが悪いだけだと思いますけど...
失礼ですが一意制約エラーの意味、わかっていますか?
kats
会議室デビュー日: 2006/04/03
投稿数: 5
投稿日時: 2006-04-03 22:37
わかり辛くてすいません。

処理というのは確かにバッチ処理です。

バッチ処理が複数回走ることにより、DBに対し、同じデータを2回以上insertしようとして一意制約違反が起こっています。

ローカル上ではきちんと動き、Linuxサーバを経由するとこういう現象が起こっているので、アプリケーション自体に問題はなく、ApacheかWeblogicの設定が原因ではないかと思ったのですが・・・。

稚拙な文章で申し訳ありません。




oki
ベテラン
会議室デビュー日: 2004/12/18
投稿数: 55
投稿日時: 2006-04-03 23:02
こんばんは。

なぜ、Apacheのタイムアウトが怪しいと思われたのでしょうか?

ブラウザのイベントがバッチ処理起動のトリガになっていると
推測しますが、複数起動されたログは確認しましたか?

いずれにしても、もう少し詳しい情報がないと
的を得た回答は難しいですね。



[ メッセージ編集済み 編集者: hoho 編集日時 2006-04-03 23:19 ]

[ メッセージ編集済み 編集者: hoho 編集日時 2006-04-03 23:19 ]
末記人
大ベテラン
会議室デビュー日: 2005/12/05
投稿数: 233
お住まい・勤務地: あわにこ
投稿日時: 2006-04-03 23:32
まだ様子がよくわからないのですが
Webからのアクセスがバッチ処理のトリガになっているのでしょうか?

その場合にはブラウザからのリクエストでフラグファイルのようなものを更新してcronなどで処理をするようなイメージでしょうか?
それともブラウザからのリクエストでそのまま処理を走らせているのでしょうか?

もう少し詳細な構成と、アクションを記述していただかないと神でもないかぎり(ry

metaとかJavaScriptで refreshが書かれているだけだったりして...
kats
会議室デビュー日: 2006/04/03
投稿数: 5
投稿日時: 2006-04-04 10:35
おはようございます。

皆さん返答ありがとうございます。

また返事が遅くなってすいません。

ご指摘のとおり断片的な情報でわかり辛いですね。

以下に私が解る範囲で書きます。

クライアント側のアプレットの画面のボタンからサーバ側のバッチ処理を起動します。

weblogicのログを確認すると、バッチ処理が5分(300秒)ごとにリトライされているように思われます。(例えば15分だと3回バッチ処理が起動)

バージョンは、
APサーバ:Weblogic Server8.1J
JVM:1.4.2_08
apache:Apache(2.0.53)


以上です。

とりあえず、refreshを調べてみます。

多分まだ断片的で申し訳ありませんがよろしくお願いします。

[ メッセージ編集済み 編集者: kats 編集日時 2006-04-04 14:40 ]
kats
会議室デビュー日: 2006/04/03
投稿数: 5
投稿日時: 2006-04-04 17:43
こんばんは。

ブラウザ上でrefleshはされていないみたいです。(記述自体ありませんでした)

サーバー内の処理が長すぎる為に、リトライがかかっているのではないかと考えているのですが・・・。

ご存知の方がいらっしゃったらお教えください。

よろしくお願いします。






[ メッセージ編集済み 編集者: kats 編集日時 2006-04-04 17:53 ]
unibon
ぬし
会議室デビュー日: 2002/08/22
投稿数: 1532
お住まい・勤務地: 美人谷        良回答(20pt)
投稿日時: 2006-04-04 17:52
HTTP の request を受け取ってから response を返し終わるまでに、Web サーバー側で5分以上かかる長い処理をおこなっているのですよね?
良くは知りませんが、いわゆるセキュリティーソフトウェアの類のものがどこかに入っていてそれがリトライをしているのではないでしょうか。
ブラウザー側、プロキシー(やファイヤーウォール)、Web サーバー側のいずれも考えられますが、まず、もしプロキシーを使っていたら外してみましょう。プロキシーが一番怪しいです。
もしプロキシーでなければ、残るは、ブラウザー側、かサーバー側のどちらかになりますが、ブラウザー側で動くやつにもそういうリトライっぽいことをする製品もあったかも?なかったかも?

スキルアップ/キャリアアップ(JOB@IT)