
No.4ベストアンサー
- 回答日時:
>もしかしたらPHPとJavaが並列処理されていてその関係でエラーになっているのかと、、、。
そんなことはないので、原因は別の所にあります。
さまざまな原因が考えられますので、ひとつひとつつぶしていくんでしょうね。
>ちなみに重複するようなデータは入れていません。(これは何度も確認しました)
これが絶対に正しいのであれば、
>insert処理を実行すると、重複エラーになるのです。
このエラーは実際には重複エラーではないのでしょう。Javaプログラムのデバッグですね。
この回答への補足
返信ありがとうございます。
確かにPHPとJavaは並列には動いていないようです。
しかし、PostgreSQLの方はどうでしょうか?
実際に起こっているエラーはこちらです。
duplicate key violates unique constraint "test_pkey"
重複エラーと怒られています。。。
ちなみにPHPの後に記述していたJavaの処理をやめて、1時間ずらしてから
Javaを実行したらエラーにならなくなりました。
そこで私の予想では、
PHPで行っているDB内の全テーブルの全項目に対するUPDATE処理が
DB内部で別スレッドとして実行されていて、その完了を待たずにJava側から
Insert処理をしたために、起こったエラーではないかと。。。
DBの仕様はまったくわからないのですが、実際に起こった現象からの
推測です。
この内容はDBのカテゴリーで質問した方が良いのでしょうか?
No.3
- 回答日時:
>その次の処理がPHPの終了を待たずに実行されるようなのですが、
おそらく気のせいです。
test.phpの内容を書いてみてください。
また、どのような現象を目にして「なぜか test! という表示がPHPの処理中に出るように思えます。」と思ったのでしょうか?
この回答への補足
すみません、サンプルではきちんと動くようですので、
本処理を記述します。
test.php内では、データベース接続しています。
ちなみにPostgreSQL8.2.4です。
処理の内容は、データベース内にある全テーブルを取得し
1テーブルづつ、すべての項目に対して全文検索のように検索し、
ある値が入ってる項目をすべて別のある値にUPDATEするという
ちょっと重い処理です。
そしてこのPHPが終わったあとで、
「シェル」内から、Javaを呼び出します。(PHPではありません)
そして、Java内で先ほどのデータベースに接続し、insert処理を
実行すると、重複エラーになるのです。
ちなみに重複するようなデータは入れていません。(これは何度も確認しました)
原因がわからなかったので、もしかしたらPHPとJavaが並列処理されて
いてその関係でエラーになっているのかと、、、。
よくわかりません。。。

No.1
- 回答日時:
以下のスクリプトでは並列実行は起こりませんでしたよ。
---
<?php
for($i = 0; $i < 10000; $i++){
echo "No. $i\n";
}
?>
---
PHPスクリプトに並列実行を起こすようなコードが入っているのではないでしょうか。forkとか
この回答への補足
すみません、逆です。。
PHP内でシェルを実行するのではなく、
シェルからPHPを実行する場合についてです。
PHPの終了を待たずに次の処理に行っているのではないかという質問です。
すみませんが、よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Shellのパターンマッチについて
-
シェルの実行について
-
lsコマンドの色設定が反映されない
-
コマンド終了ステータス
-
cshが詳しい方は教えてください
-
複数の処理を順番にログアウト...
-
scpコマンドでリモートサーバの...
-
cactiでグラフが表示されない
-
コマンド プロンプトで作成し...
-
Illustratorのデータをまとめて...
-
Warning: Output is not to
-
DOSコマンドでのワイルドカ...
-
FTP接続中のコマンド実行結果を...
-
【ターミナル】MacBookにディー...
-
rcpコマンドについて、教えて!
-
loggerコマンドでkern.warning...
-
findでエラー
-
~/.bashrcを間違えて保存してし...
-
IBM漢字コードのSJIS変...
-
UNIXシェル内での日付計算
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンド終了ステータス
-
実行中のシェルスクリプト自体...
-
OSがプログラムをどのように実...
-
UNIX Cシェルで実数の比較
-
デフォルトシェルの調べ方
-
cshの標準出力を制御したい
-
Bシェルでパイプ→exitがうまく...
-
telnet へのパイプができないです
-
Shellのパターンマッチについて
-
FTPコマンドの戻り値について
-
diskpart でパーティションの一...
-
Bシェル内でのユーザー変更
-
IFS変数について詳しい方教えて...
-
シェルの実行について
-
cygwinシェルスクリプト内での...
-
csh(Cシェル)のevalに関して
-
cshで変数名の入れ子ができない
-
vagrant upでエラーが表示され...
-
cronでftp自動転送を行いたい
-
Mac OSXのターミナルでemacsを起動
おすすめ情報