- PR -

php5,0,5からOracle10gへの接続ができない

1
投稿者投稿内容
未記入
会議室デビュー日: 2008/05/28
投稿数: 2
投稿日時: 2008-05-30 20:08
すみません、非常に困っているので、どなたか助言ございましたら
よろしくお願いしますm(_ _)m

以下の環境で開発をおこなっております。

・php5.0.5
・oracle10g
・Linux
・DBサーバとウェブサーバは別

phpのoci接続関数を用いたスクリプトを実行すると、
最初の接続関数の部分で処理がとまってしまいます。
関数が最後まで終了せず、タイムアウトエラーのみアパッチログに
はかれています。

TeraTerm等でのDBサーバ接続は問題なくおこなえますし、
ウェブサーバからsqlplusを実行することもできます。
なので設定やプロセス等の問題ではないと思うのですが・・

OCILogon関数やPEARのmdb2モジュールのmdb2::connect関数なども
ためしてみたのですが、どれも同じ症状が出ます。

少し前までは接続部分のスクリプトは正常に実行されていて、
insertやupdate等の操作系sqlを実行すると処理がとまっていました。
テストで何度か実行していると、急に接続関数部分でとまるようになったんです。

まったく原因がわからず途方にくれております。
何かわかる方がいらっしゃいましたら、アドバイスお願いいたします。。
ほったて
ベテラン
会議室デビュー日: 2007/11/10
投稿数: 68
投稿日時: 2008-05-31 15:22
PHPの実行モジュールのディレクトリになるのだろうか? どっかPHP実行サーバ側にsqlnet.logとかでてないでしょうか?
何かしらエラーでも残ってないかと期待。
未記入
会議室デビュー日: 2008/05/28
投稿数: 2
投稿日時: 2008-06-03 20:15
返事が遅くなりまして申し訳ありません。

アドバイスありがとうございます。
sqlnet.logを見てみたのですが、最近のログははかれていませんでした。。
(先月末くらいでとまっていました)

JIMMY
常連さん
会議室デビュー日: 2004/10/26
投稿数: 32
お住まい・勤務地: 東京
投稿日時: 2008-06-04 15:39
こんにちは
引用:

少し前までは接続部分のスクリプトは正常に実行されていて、
insertやupdate等の操作系sqlを実行すると処理がとまっていました。
テストで何度か実行していると、急に接続関数部分でとまるようになったんです。


「接続部分でとまる」というのは「接続に失敗する」事を指しているのですか?
それとも「接続要求待ち状態のまま停止してしまう」ということですか?
例えば

<?php
$wUser = "btomaster"; // 接続ユーザー
$wPassword = "btomaster"; // パスワード
$wInstance = "orcl2_nagano"; // phpが動作しているマシン内のtnsnames.oraのおけるエントリ名
$RS = oci_connect ( $wUser , $wPassword , $wInstance );
var_dump( $RS );
oci_close ( $RS );
?>

こんなコードを書いたときvar_dump()の結果も表示されないということですか?
原因がわからないときは、phpで書かれているクラスライブラリを使用せず、サンプルコードを自分で書いて確認したほうが、何が原因か判りやすいと思います。

当然問題ないと思うのですが、php.iniの
extension=php_oci8.dll
もしくは
extension=php_oci8.so
はコメント化されていませんよね?
phpinfo()
の結果は確認されていますか?
未記入
会議室デビュー日: 2008/06/06
投稿数: 1
投稿日時: 2008-06-06 02:10
JIMMYさん

ありがとうございます。

接続は、接続要求待ち状態のまま停止してしまう状態でした。
phpinfo等もいろいろ確認したのですが、結局原因がつかめず
phpの再インストールで接続の問題は解決しました。

それ以前にinsert等でこけていた件ですが、
こちらsqlplusからinsert、update等のsqlをなげた際に
最後commitしていなかったのが原因でした。。

おそらくそれに気付かず何度もアプリを実行したり
sqlplusからの処理を続けたりしたので、接続もおかしくなってしまったのでは・・
と思っています。。
(具体的に何がどうおかしくなったのかは、わかっていないですが・・)

アドバイスをいただいた皆様、ありがとうございました。
1

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