No.1
- 回答日時:
以下のスクリプトでは並列実行は起こりませんでしたよ。
---
<?php
for($i = 0; $i < 10000; $i++){
echo "No. $i\n";
}
?>
---
PHPスクリプトに並列実行を起こすようなコードが入っているのではないでしょうか。forkとか
この回答への補足
すみません、逆です。。
PHP内でシェルを実行するのではなく、
シェルからPHPを実行する場合についてです。
PHPの終了を待たずに次の処理に行っているのではないかという質問です。
すみませんが、よろしくお願いします。
No.3
- 回答日時:
>その次の処理がPHPの終了を待たずに実行されるようなのですが、
おそらく気のせいです。
test.phpの内容を書いてみてください。
また、どのような現象を目にして「なぜか test! という表示がPHPの処理中に出るように思えます。」と思ったのでしょうか?
この回答への補足
すみません、サンプルではきちんと動くようですので、
本処理を記述します。
test.php内では、データベース接続しています。
ちなみにPostgreSQL8.2.4です。
処理の内容は、データベース内にある全テーブルを取得し
1テーブルづつ、すべての項目に対して全文検索のように検索し、
ある値が入ってる項目をすべて別のある値にUPDATEするという
ちょっと重い処理です。
そしてこのPHPが終わったあとで、
「シェル」内から、Javaを呼び出します。(PHPではありません)
そして、Java内で先ほどのデータベースに接続し、insert処理を
実行すると、重複エラーになるのです。
ちなみに重複するようなデータは入れていません。(これは何度も確認しました)
原因がわからなかったので、もしかしたらPHPとJavaが並列処理されて
いてその関係でエラーになっているのかと、、、。
よくわかりません。。。
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のカテゴリーで質問した方が良いのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP ECCUBE4のページ管理でPHPを実行させたい 1 2023/04/06 11:42
- UNIX・Linux デフォルト値のパラメータ展開 1 2022/08/12 17:34
- PHP アップロード画像数でCSSを分けることに成功したのですが、画像の横に文字を並べることが出来ません。 3 2023/07/28 17:16
- PHP PHPの変わった閉じタグの必要性と意味を教えてください。 1 2022/08/28 15:15
- UNIX・Linux cronの@rebootでのdateコマンドの実行につきまして 2 2023/06/11 16:23
- PostgreSQL postgreSQLをbashで実行する際に「MORE」表示をなくす方法 1 2023/05/08 21:42
- PHP PHP MySql ページング 2 2022/09/20 06:38
- UNIX・Linux cronでシェルスクリプト実行時のkubactlコマンドが機能しない対処法。 2 2022/08/03 18:58
- PHP PHP一覧表示した項目にリンクをはりたい 1 2023/07/12 17:08
- PHP PHP ページング データベース 1 2022/06/16 10:30
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
telnet へのパイプができないです
-
シェルの実行について
-
時間を計算する方法
-
実行中のシェルスクリプト自体...
-
シェルスクリプト(if文)
-
FTPコマンドの戻り値について
-
Viで書き込もうとすると、保...
-
scpコマンドでリモートサーバの...
-
/ が何時の間にか「Read-only f...
-
メールサーバの/var/spool/mail...
-
属性変更できないです。
-
Macの Terminal でのエラーと...
-
CPUのbit数を調べるコマンド
-
ウィンドウズお自動起動後、ラ...
-
cactiでグラフが表示されない
-
書き込み権限が無いためコピー...
-
別名でリンク先を保存。
-
FTP接続中のコマンド実行結果を...
-
snmpでMIB取得
-
USBハードディスクのnfsでのエ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンド終了ステータス
-
FTPコマンドの戻り値について
-
cshで変数名の入れ子ができない
-
lsコマンドの色設定が反映されない
-
diskpart でパーティションの一...
-
実行中のシェルスクリプト自体...
-
Mac OSXのターミナルでemacsを起動
-
cronでftp自動転送を行いたい
-
telnet へのパイプができないです
-
cshの標準出力を制御したい
-
複数の処理を順番にログアウト...
-
vagrant upでエラーが表示され...
-
UNIX Cシェルで実数の比較
-
kshでのcase文条件範囲について
-
空白を含んだシェル変数の代入
-
shellから起動したkterm上でコ...
-
PHP4の Warning: pg_freeresul...
-
メニュー画面よりコマンド実行...
-
リモートシェルでファイルをroo...
-
cygwinシェルスクリプト内での...
おすすめ情報