У меня есть многопоточное приложение C, которое было скомпилировано с использованием Oracle 10g (pro * c и библиотек.) Программа использует одно соединение с базой данных на поток. Мы переходим к 11g и при тестировании с 11g все, что использует контекст, отличный от глобального контекста, генерирует SQL-02134: Invalid runtime context
при подключении к базе данных. Использование глобального контекста работает нормально. Это известная несовместимость при переходе с 10g на 11g, или я что-то не так делаю? В конце концов я все перекомпилирую с 11g, но для целей реализации гораздо проще, если мы сможем запустить программу 10g, пока все базы данных не будут конвертированы.
Для чего бы то ни было, код включает в себя то, что я считаю нормальными вещами:
EXEC SQL ENABLE THREADS;
EXEC SQL CONTEXT ALLOCATE :thread_ctx
EXEC SQL CONTEXT USE :thread_ctx