PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
12506 | 00/08/01 15:01:31 | RE(3):PB6.5: マルチスレッドについて By Taka |
12505 | 00/08/01 13:55:16 | RE(2):PB6.5: マルチスレッドについて By hasada |
12500 | 00/08/01 12:36:21 | RE(1):PB6.5: マルチスレッドについて By Taka |
12475 | 00/07/31 10:41:47 | PB6.5: マルチスレッドについて By hasada |
カテゴリ:PowerBuilderの不具合?
日付:2000年08月01日 15:01 発信者:Taka
題名:RE(3):PB6.5: マルチスレッドについて
hasadaさん、こんにちは。
>このあたりについては考慮しているつもりでいます。
>あるウインドウが別スレッドを生成し、DBMS_ALERTの待機が必要なくなった場合(アプリケーション終了時)
>に終了フラグを判断してウインドウが別スレッドを殺すという流れです。
了解です。失礼しました。
>DBMS_ALERTを使わないで試してみたのですがやっぱり同じ結果になってしまいました。
ということは、ORACLEセッションがビジーかどうかは関係なかったですね。
>スレッドを生成するオブジェクトのdestructorイベントでSharedObjectUnregisterするようにしています。
もしかして「スレッドを生成するオブジェクト」って、別の非表示オブジェクトか何かですか?
試しに、ウィンドウ上のボタンか何かでSharedObjectUnregisterしてみたらどうなりますか?
>気づいた部分とかございましたらまたアドバイスいただけるようお願いします。
SharedObjectUnregisterする直前に、共有オブジェクト側のユーザ関数を呼んだりしていませんか?
また、今回の件と関係あるかどうかわかりませんが、共有オブジェクトのdestructorイベントが
起動されるタイミングって、若干遅れて発生していた記憶があります。
(1) SharedObjectUnregister関数を実行
(2) (1)の次のステップを実行
(3) 共有オブジェクトのdestructorイベントが実行される
素直に考えると(3)は本来(1)の関数の中で発生するのが理想なんですが、何故か上記の流れで実行されるんです。
ということは、共有オブジェクトのdestructorイベントに書いたスクリプトの内容によっては、意図しない動きを
してしまうかもしれません。この観点でもチェックしてみてください。
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows NT 4.0
DBMS (記載なし)
Browser InternetExplorer4.X
Server SoftWare
OS Windows NT 4.0
DBMS Oracle 8.0
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.