mokky14's IT diary

IT関係の仕事メモ、勉強会の感想など書いてます。

複数スレッドで同時に同一のコンテキストを使用してみた

Pro*Cのアプリケーションで、複数のスレッドから同時に同一のコンテキストを使用してSQLを発行するようなプログラム動かしたらどうなるか確認してみた。

プログラムはPro*Cで作成。

結果、 SQL実行時にエラーが発生した。

エラー発生時のsqlca.sqlerrm.sqlerrmcには以下の文字列が設定されてた。

SQL-02131: Runtime context in use

Oracleのマニュアルみたら、以下のようなエラー内容。

SQL-02131: ランタイム・コンテキストは使用中です。
原因: アプリケーションがすでに使用中のランタイム・コンテキストを使用して、SQL文を実行しようとしました。
処置: 同一のランタイム・コンテキストで1つのスレッドが完了するまで待ってから別のSQL文を実行するようにするか、または各スレッドごとに別々のランタイム・コンテキストを割り当てて使用するように、アプリケーションを修正してください。

ものすごくそのままの意味のエラー。

おとなしくスレッドの数だけConnectしよう。。