Pro*Cのアプリケーションで、複数のスレッドから同時に同一のコンテキストを使用してSQLを発行するようなプログラム動かしたらどうなるか確認してみた。
プログラムはPro*Cで作成。
結果、 SQL実行時にエラーが発生した。
エラー発生時のsqlca.sqlerrm.sqlerrmcには以下の文字列が設定されてた。
SQL-02131: Runtime context in use
Oracleのマニュアルみたら、以下のようなエラー内容。
SQL-02131: ランタイム・コンテキストは使用中です。原因: アプリケーションがすでに使用中のランタイム・コンテキストを使用して、SQL文を実行しようとしました。処置: 同一のランタイム・コンテキストで1つのスレッドが完了するまで待ってから別のSQL文を実行するようにするか、または各スレッドごとに別々のランタイム・コンテキストを割り当てて使用するように、アプリケーションを修正してください。
ものすごくそのままの意味のエラー。
おとなしくスレッドの数だけConnectしよう。。